From e52bf044b1b75fcbf185e809eed5e5ec8bd62874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Wed, 25 Mar 2026 21:05:03 +0100 Subject: [PATCH 01/43] Initial version of postgres cluster and postgres database CRs Adds PostgresCluster, PostgresClusterClass, and PostgresDatabase CRDs with controllers, RBAC, CRD manifests, and samples. Integrates cloudnative-pg v1.28.0 operator dependency. Bumps controller-runtime to v0.22.4 and k8s deps to v0.34.2 for compatibility. --- .tool-versions | 1 + CLAUDE.md | 26 + PROJECT | 27 + api/v4/common_types.go | 108 +- api/v4/postgrescluster_types.go | 207 ++++ api/v4/postgresclusterclass_types.go | 204 ++++ api/v4/postgresdatabase_types.go | 96 ++ api/v4/zz_generated.deepcopy.go | 664 +++++++++++ ...ise.splunk.com_postgresclusterclasses.yaml | 332 ++++++ ...nterprise.splunk.com_postgresclusters.yaml | 477 ++++++++ ...terprise.splunk.com_postgresdatabases.yaml | 267 +++++ cmd/main.go | 17 + ...ise.splunk.com_postgresclusterclasses.yaml | 326 ++++++ ...nterprise.splunk.com_postgresclusters.yaml | 469 ++++++++ ...terprise.splunk.com_postgresdatabases.yaml | 259 +++++ config/crd/kustomization.yaml | 3 + config/rbac/postgrescluster_admin_role.yaml | 27 + config/rbac/postgrescluster_editor_role.yaml | 33 + config/rbac/postgrescluster_viewer_role.yaml | 29 + .../rbac/postgresclusterclass_admin_role.yaml | 27 + .../postgresclusterclass_editor_role.yaml | 33 + .../postgresclusterclass_viewer_role.yaml | 29 + config/rbac/postgresdatabase_admin_role.yaml | 27 + config/rbac/postgresdatabase_editor_role.yaml | 33 + config/rbac/postgresdatabase_viewer_role.yaml | 29 + config/rbac/role.yaml | 35 + ...enterprise_v4_postgrescluster_default.yaml | 12 + .../enterprise_v4_postgrescluster_dev.yaml | 28 + ...nterprise_v4_postgresclusterclass_dev.yaml | 39 + ...terprise_v4_postgresclusterclass_prod.yaml | 80 ++ .../enterprise_v4_postgresdatabase.yaml | 18 + config/samples/kustomization.yaml | 3 + .../database/01-invalid-duplicate-names.yaml | 14 + .../02-invalid-immutability-update.yaml | 19 + .../database/03-invalid-deletion-policy.yaml | 11 + .../database/04-invalid-missing-fields.yaml | 11 + go.mod | 87 +- go.sum | 190 ++-- .../controller/postgrescluster_controller.go | 179 +++ .../postgrescluster_controller_test.go | 84 ++ .../controller/postgresdatabase_controller.go | 115 ++ .../postgresdatabase_controller_test.go | 84 ++ internal/controller/suite_test.go | 175 +-- pkg/postgresql/cluster/core/cluster.go | 1006 +++++++++++++++++ pkg/postgresql/cluster/core/types.go | 102 ++ .../database/adapter/db_repository.go | 80 ++ pkg/postgresql/database/core/database.go | 941 +++++++++++++++ pkg/postgresql/database/core/ports.go | 10 + pkg/postgresql/database/core/types.go | 94 ++ pkg/splunk/common/names.go | 3 + pkg/splunk/test/controller.go | 10 + pkg/splunk/util/util.go | 2 +- pkg/splunk/util/util_test.go | 2 +- test/connect-to-postgres-cluster.sh | 121 ++ test/postgrescluster-retain-upgrade-flow.sh | 356 ++++++ test/testenv/deployment.go | 4 +- test/testenv/ingest_utils.go | 2 +- 57 files changed, 7357 insertions(+), 310 deletions(-) create mode 100644 .tool-versions create mode 100644 CLAUDE.md create mode 100644 api/v4/postgrescluster_types.go create mode 100644 api/v4/postgresclusterclass_types.go create mode 100644 api/v4/postgresdatabase_types.go create mode 100644 bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml create mode 100644 bundle/manifests/enterprise.splunk.com_postgresclusters.yaml create mode 100644 bundle/manifests/enterprise.splunk.com_postgresdatabases.yaml create mode 100644 config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml create mode 100644 config/crd/bases/enterprise.splunk.com_postgresclusters.yaml create mode 100644 config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml create mode 100644 config/rbac/postgrescluster_admin_role.yaml create mode 100644 config/rbac/postgrescluster_editor_role.yaml create mode 100644 config/rbac/postgrescluster_viewer_role.yaml create mode 100644 config/rbac/postgresclusterclass_admin_role.yaml create mode 100644 config/rbac/postgresclusterclass_editor_role.yaml create mode 100644 config/rbac/postgresclusterclass_viewer_role.yaml create mode 100644 config/rbac/postgresdatabase_admin_role.yaml create mode 100644 config/rbac/postgresdatabase_editor_role.yaml create mode 100644 config/rbac/postgresdatabase_viewer_role.yaml create mode 100644 config/samples/enterprise_v4_postgrescluster_default.yaml create mode 100644 config/samples/enterprise_v4_postgrescluster_dev.yaml create mode 100644 config/samples/enterprise_v4_postgresclusterclass_dev.yaml create mode 100644 config/samples/enterprise_v4_postgresclusterclass_prod.yaml create mode 100644 config/samples/enterprise_v4_postgresdatabase.yaml create mode 100644 config/samples/validation-tests/database/01-invalid-duplicate-names.yaml create mode 100644 config/samples/validation-tests/database/02-invalid-immutability-update.yaml create mode 100644 config/samples/validation-tests/database/03-invalid-deletion-policy.yaml create mode 100644 config/samples/validation-tests/database/04-invalid-missing-fields.yaml create mode 100644 internal/controller/postgrescluster_controller.go create mode 100644 internal/controller/postgrescluster_controller_test.go create mode 100644 internal/controller/postgresdatabase_controller.go create mode 100644 internal/controller/postgresdatabase_controller_test.go create mode 100644 pkg/postgresql/cluster/core/cluster.go create mode 100644 pkg/postgresql/cluster/core/types.go create mode 100644 pkg/postgresql/database/adapter/db_repository.go create mode 100644 pkg/postgresql/database/core/database.go create mode 100644 pkg/postgresql/database/core/ports.go create mode 100644 pkg/postgresql/database/core/types.go create mode 100755 test/connect-to-postgres-cluster.sh create mode 100755 test/postgrescluster-retain-upgrade-flow.sh diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 000000000..1527bb834 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +golang 1.25.5 \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..de84839de --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,26 @@ +# Claude Code – Project Ground Rules + +## Role & Expertise +- You are a **Go expert** and a **Kubernetes controller/operator expert**. +- You write **small, clean, unit-testable functions**. +- Comments explain **why**, not what. Avoid restating the code in prose. + +## Code Style +- Keep functions focused and short — each should do one thing. +- Prefer explicit error handling with descriptive context (e.g. `fmt.Errorf("reconciling roles: %w", err)`). +- Avoid deep nesting; use early returns. + +## Reconciler / Operator Design +- The **reconciler is the main orchestration flow**. All state modifications are coordinated here. +- We build state **incrementally**: each major step updates state and requeues (`ctrl.Result{RequeueAfter: ...}`). +- Every operation must be **idempotent** — safe to run multiple times with the same outcome. +- Follow **Kubernetes controller best practices**: + - Use `SSA` (Server-Side Apply) where appropriate. + - Emit `Events` for meaningful state transitions. + - Use `Status` conditions to reflect progress and errors. + - Respect finalizers for cleanup logic. + +## Testing +- New logic should be accompanied by unit tests. +- Prefer table-driven tests. +- Mock external dependencies (k8s client, DB connections) via interfaces. diff --git a/PROJECT b/PROJECT index e87979069..9acd416fe 100644 --- a/PROJECT +++ b/PROJECT @@ -140,4 +140,31 @@ resources: kind: ObjectStorage path: github.com/splunk/splunk-operator/api/v4 version: v4 +- api: + crdVersion: v1 + namespaced: true + controller: true + domain: splunk.com + group: enterprise + kind: PostgresCluster + path: github.com/splunk/splunk-operator/api/v4 + version: v4 +- api: + crdVersion: v1 + namespaced: true + controller: true + domain: splunk.com + group: enterprise + kind: PostgresClusterClass + path: github.com/splunk/splunk-operator/api/v4 + version: v4 +- api: + crdVersion: v1 + namespaced: true + controller: true + domain: splunk.com + group: enterprise + kind: PostgresDatabase + path: github.com/splunk/splunk-operator/api/v4 + version: v4 version: "3" diff --git a/api/v4/common_types.go b/api/v4/common_types.go index e53317075..5bba9c0cd 100644 --- a/api/v4/common_types.go +++ b/api/v4/common_types.go @@ -91,15 +91,12 @@ type Spec struct { // Image to use for Splunk pod containers (overrides RELATED_IMAGE_SPLUNK_ENTERPRISE environment variables) Image string `json:"image"` - // Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent") - // +kubebuilder:validation:Enum=Always;IfNotPresent;Never - // +kubebuilder:default=IfNotPresent - // +optional - ImagePullPolicy string `json:"imagePullPolicy,omitempty"` + // Sets pull policy for all images (either “Always” or the default: “IfNotPresent”) + // +kubebuilder:validation:Enum=Always;IfNotPresent + ImagePullPolicy string `json:"imagePullPolicy"` // Name of Scheduler to use for pod placement (defaults to “default-scheduler”) - // +optional - SchedulerName string `json:"schedulerName,omitempty"` + SchedulerName string `json:"schedulerName"` // Kubernetes Affinity rules that control how pods are assigned to particular nodes. Affinity corev1.Affinity `json:"affinity"` @@ -140,7 +137,7 @@ const ( // PhaseTerminating means a custom resource is in the process of being removed PhaseTerminating Phase = "Terminating" - // PhaseError means an error occurred with custom resource management + // PhaseError means an error occured with custom resource management PhaseError Phase = "Error" ) @@ -167,16 +164,13 @@ type CommonSplunkSpec struct { Spec `json:",inline"` // Storage configuration for /opt/splunk/etc volume - // +optional - EtcVolumeStorageConfig StorageClassSpec `json:"etcVolumeStorageConfig,omitempty"` + EtcVolumeStorageConfig StorageClassSpec `json:"etcVolumeStorageConfig"` // Storage configuration for /opt/splunk/var volume - // +optional - VarVolumeStorageConfig StorageClassSpec `json:"varVolumeStorageConfig,omitempty"` + VarVolumeStorageConfig StorageClassSpec `json:"varVolumeStorageConfig"` // List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ - // +optional - Volumes []corev1.Volume `json:"volumes,omitempty"` + Volumes []corev1.Volume `json:"volumes"` // Inline map of default.yml overrides used to initialize the environment Defaults string `json:"defaults"` @@ -216,12 +210,10 @@ type CommonSplunkSpec struct { // ServiceAccount is the service account used by the pods deployed by the CRD. // If not specified uses the default serviceAccount for the namespace as per // https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server - // +optional - ServiceAccount string `json:"serviceAccount,omitempty"` + ServiceAccount string `json:"serviceAccount"` // ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers // WARNING: Setting environment variables used by Splunk or Ansible will affect Splunk installation and operation - // +optional ExtraEnv []corev1.EnvVar `json:"extraEnv,omitempty"` // ReadinessInitialDelaySeconds defines initialDelaySeconds(See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes) for Readiness probe @@ -235,64 +227,45 @@ type CommonSplunkSpec struct { LivenessInitialDelaySeconds int32 `json:"livenessInitialDelaySeconds"` // LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command - // +optional - // +kubebuilder:default:={"initialDelaySeconds":30,"timeoutSeconds":30,"periodSeconds":30,"failureThreshold":3} LivenessProbe *Probe `json:"livenessProbe,omitempty"` // ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes - // +optional - // +kubebuilder:default:={"initialDelaySeconds":10,"timeoutSeconds":5,"periodSeconds":5,"failureThreshold":3} ReadinessProbe *Probe `json:"readinessProbe,omitempty"` // StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes - // +optional - // +kubebuilder:default:={"initialDelaySeconds":40,"timeoutSeconds":30,"periodSeconds":30,"failureThreshold":12} StartupProbe *Probe `json:"startupProbe,omitempty"` // Sets imagePullSecrets if image is being pulled from a private registry. // See https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - // +optional ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` } // StorageClassSpec defines storage class configuration -// +kubebuilder:validation:XValidation:rule="!(size(self.storageClassName) > 0 && self.ephemeralStorage == true)",message="storageClassName and ephemeralStorage are mutually exclusive" -// +kubebuilder:validation:XValidation:rule="!(size(self.storageCapacity) > 0 && self.ephemeralStorage == true)",message="storageCapacity and ephemeralStorage are mutually exclusive" type StorageClassSpec struct { // Name of StorageClass to use for persistent volume claims - // +optional - StorageClassName string `json:"storageClassName,omitempty"` + StorageClassName string `json:"storageClassName"` - // Storage capacity to request persistent volume claims (default="10Gi" for etc and "100Gi" for var) - // +optional - StorageCapacity string `json:"storageCapacity,omitempty"` + // Storage capacity to request persistent volume claims (default=”10Gi” for etc and "100Gi" for var) + StorageCapacity string `json:"storageCapacity"` // If true, ephemeral (emptyDir) storage will be used + // default false // +optional - // +kubebuilder:default=false - EphemeralStorage bool `json:"ephemeralStorage,omitempty"` + EphemeralStorage bool `json:"ephemeralStorage"` } // SmartStoreSpec defines Splunk indexes and remote storage volume configuration type SmartStoreSpec struct { // List of remote storage volumes - // +optional - // +listType=map - // +listMapKey=name VolList []VolumeSpec `json:"volumes,omitempty"` // List of Splunk indexes - // +optional - // +listType=map - // +listMapKey=name IndexList []IndexSpec `json:"indexes,omitempty"` // Default configuration for indexes - // +optional Defaults IndexConfDefaultsSpec `json:"defaults,omitempty"` // Defines Cache manager settings - // +optional CacheManagerConf CacheManagerSpec `json:"cacheManager,omitempty"` } @@ -301,23 +274,18 @@ type CacheManagerSpec struct { IndexAndCacheManagerCommonSpec `json:",inline"` // Eviction policy to use - // +optional EvictionPolicy string `json:"evictionPolicy,omitempty"` // Max cache size per partition - // +optional MaxCacheSizeMB uint `json:"maxCacheSize,omitempty"` // Additional size beyond 'minFreeSize' before eviction kicks in - // +optional EvictionPaddingSizeMB uint `json:"evictionPadding,omitempty"` // Maximum number of buckets that can be downloaded from remote storage in parallel - // +optional MaxConcurrentDownloads uint `json:"maxConcurrentDownloads,omitempty"` // Maximum number of buckets that can be uploaded to remote storage in parallel - // +optional MaxConcurrentUploads uint `json:"maxConcurrentUploads,omitempty"` } @@ -327,42 +295,30 @@ type IndexConfDefaultsSpec struct { } // VolumeSpec defines remote volume config -// +kubebuilder:validation:XValidation:rule="self.provider != 'aws' || size(self.region) > 0",message="region is required when provider is aws" type VolumeSpec struct { // Remote volume name - // +kubebuilder:validation:Required - // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Remote volume URI - // +kubebuilder:validation:Required - // +kubebuilder:validation:MinLength=1 Endpoint string `json:"endpoint"` // Remote volume path - // +kubebuilder:validation:Required - // +kubebuilder:validation:MinLength=1 Path string `json:"path"` // Secret object name - // +optional - SecretRef string `json:"secretRef,omitempty"` + SecretRef string `json:"secretRef"` // Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp. - // +kubebuilder:validation:Enum=s3;blob;gcs Type string `json:"storageType"` // App Package Remote Store provider. Supported values: aws, minio, azure, gcp. - // +optional - // +kubebuilder:validation:Enum=aws;minio;azure;gcp - Provider string `json:"provider,omitempty"` + Provider string `json:"provider"` - // Region of the remote storage volume where apps reside. Required for aws, optional for azure and gcp. - // +optional - Region string `json:"region,omitempty"` + // Region of the remote storage volume where apps reside. Used for aws, if provided. Not used for minio and azure. + Region string `json:"region"` } -// VolumeAndTypeSpec used to add any custom variables for volume implementation +// VolumeAndTypeSpec used to add any custom varaibles for volume implementation type VolumeAndTypeSpec struct { VolumeSpec `json:",inline"` } @@ -370,12 +326,9 @@ type VolumeAndTypeSpec struct { // IndexSpec defines Splunk index name and storage path type IndexSpec struct { // Splunk index name - // +kubebuilder:validation:Required - // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Index location relative to the remote volume path - // +optional RemotePath string `json:"remotePath,omitempty"` IndexAndCacheManagerCommonSpec `json:",inline"` @@ -387,26 +340,21 @@ type IndexSpec struct { type IndexAndGlobalCommonSpec struct { // Remote Volume name - // +optional VolName string `json:"volumeName,omitempty"` // MaxGlobalDataSizeMB defines the maximum amount of space for warm and cold buckets of an index - // +optional MaxGlobalDataSizeMB uint `json:"maxGlobalDataSizeMB,omitempty"` // MaxGlobalDataSizeMB defines the maximum amount of cumulative space for warm and cold buckets of an index - // +optional MaxGlobalRawDataSizeMB uint `json:"maxGlobalRawDataSizeMB,omitempty"` } // IndexAndCacheManagerCommonSpec defines configurations that can be configured at index level or at server level type IndexAndCacheManagerCommonSpec struct { // Time period relative to the bucket's age, during which the bucket is protected from cache eviction - // +optional HotlistRecencySecs uint `json:"hotlistRecencySecs,omitempty"` // Time period relative to the bucket's age, during which the bloom filter file is protected from cache eviction - // +optional HotlistBloomFilterRecencyHours uint `json:"hotlistBloomFilterRecencyHours,omitempty"` } @@ -427,9 +375,8 @@ type AppSourceDefaultSpec struct { // PremiumAppsProps represents properties for premium apps such as ES type PremiumAppsProps struct { - // Type: enterpriseSecurity for now, can accommodate itsi etc.. later + // Type: enterpriseSecurity for now, can accomodate itsi etc.. later // +optional - // +kubebuilder:validation:Enum=enterpriseSecurity Type string `json:"type,omitempty"` // Enterpreise Security App defaults @@ -456,13 +403,9 @@ type EsDefaults struct { // AppSourceSpec defines list of App package (*.spl, *.tgz) locations on remote volumes type AppSourceSpec struct { // Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo - // +kubebuilder:validation:Required - // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Location relative to the volume path - // +kubebuilder:validation:Required - // +kubebuilder:validation:MinLength=1 Location string `json:"location"` AppSourceDefaultSpec `json:",inline"` @@ -480,18 +423,17 @@ type AppFrameworkSpec struct { // 1. If no value or 0 is specified then it means periodic polling is disabled. // 2. If anything less than min is specified then we set it to 1 min. // 3. If anything more than the max value is specified then we set it to 1 day. - // +optional AppsRepoPollInterval int64 `json:"appsRepoPollIntervalSeconds,omitempty"` // App installation period within a reconcile. Apps will be installed during this period before the next reconcile is attempted. // Note: Do not change this setting unless instructed to do so by Splunk Support - // +optional + // +kubebuilder:validation:Optional // +kubebuilder:validation:Minimum:=30 // +kubebuilder:default:=90 SchedulerYieldInterval uint64 `json:"appInstallPeriodSeconds,omitempty"` // Maximum number of retries to install Apps - // +optional + // +kubebuilder:validation:Optional // +kubebuilder:validation:Minimum:=0 // +kubebuilder:default:=2 PhaseMaxRetries uint32 `json:"installMaxRetries,omitempty"` @@ -500,13 +442,9 @@ type AppFrameworkSpec struct { VolList []VolumeSpec `json:"volumes,omitempty"` // List of App sources on remote storage - // +optional - // +listType=map - // +listMapKey=name AppSources []AppSourceSpec `json:"appSources,omitempty"` // Maximum number of apps that can be downloaded at same time - // +optional MaxConcurrentAppDownloads uint64 `json:"maxConcurrentAppDownloads,omitempty"` } @@ -545,7 +483,7 @@ type AppSrcDeployInfo struct { type BundlePushStageType int const ( - // BundlePushUninitialized indicates bundle push never happened + // BundlePushUninitialized indicates bundle push never happend BundlePushUninitialized BundlePushStageType = iota // BundlePushPending waiting for all the apps to be copied to the Pod BundlePushPending diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go new file mode 100644 index 000000000..6ddb14c9d --- /dev/null +++ b/api/v4/postgrescluster_types.go @@ -0,0 +1,207 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v4 + +import ( + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ManagedRole represents a PostgreSQL role to be created and managed in the cluster. +type ManagedRole struct { + // Name of the role/user to create. + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MaxLength=63 + Name string `json:"name"` + + // PasswordSecretRef references a Secret and the key within it containing the password for this role. + // +optional + PasswordSecretRef *corev1.SecretKeySelector `json:"passwordSecretRef,omitempty"` + + // Exists controls whether the role should be present (true) or absent (false) in PostgreSQL. + // +kubebuilder:default=true + // +optional + Exists bool `json:"exists,omitempty"` +} + +// PostgresClusterSpec defines the desired state of PostgresCluster. +// Validation rules ensure immutability of Class, and that Storage and PostgresVersion can only be set once and cannot be removed or downgraded. +// +kubebuilder:validation:XValidation:rule="!has(oldSelf.postgresVersion) || (has(self.postgresVersion) && int(self.postgresVersion.split('.')[0]) >= int(oldSelf.postgresVersion.split('.')[0]))",messageExpression="!has(self.postgresVersion) ? 'postgresVersion cannot be removed once set (was: ' + oldSelf.postgresVersion + ')' : 'postgresVersion major version cannot be downgraded (from: ' + oldSelf.postgresVersion + ', to: ' + self.postgresVersion + ')'" +// +kubebuilder:validation:XValidation:rule="!has(oldSelf.storage) || (has(self.storage) && quantity(self.storage).compareTo(quantity(oldSelf.storage)) >= 0)",messageExpression="!has(self.storage) ? 'storage cannot be removed once set (was: ' + string(oldSelf.storage) + ')' : 'storage size cannot be decreased (from: ' + string(oldSelf.storage) + ', to: ' + string(self.storage) + ')'" +// +kubebuilder:validation:XValidation:rule="!has(self.connectionPoolerConfig)",message="connectionPoolerConfig cannot be overridden on PostgresCluster" +type PostgresClusterSpec struct { + // This field is IMMUTABLE after creation. + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="class is immutable" + Class string `json:"class"` + + // Storage overrides the storage size from ClusterClass. + // Example: "5Gi" + // +optional + Storage *resource.Quantity `json:"storage,omitempty"` + + // Instances overrides the number of PostgreSQL instances from ClusterClass. + // +optional + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=10 + Instances *int32 `json:"instances,omitempty"` + + // PostgresVersion is the PostgreSQL version (major or major.minor). + // Examples: "18" (latest 18.x), "18.1" (specific minor), "17", "16" + // +kubebuilder:validation:Pattern=`^[0-9]+(\.[0-9]+)?$` + // +optional + PostgresVersion *string `json:"postgresVersion,omitempty"` + + // Resources overrides CPU/memory resources from ClusterClass. + // +optional + Resources *corev1.ResourceRequirements `json:"resources,omitempty"` + + // PostgreSQL overrides PostgreSQL engine parameters from ClusterClass. + // Maps to postgresql.conf settings. + // Default empty map prevents panic. + // Example: {"shared_buffers": "128MB", "log_min_duration_statement": "500ms"} + // +optional + // +kubebuilder:default={} + PostgreSQLConfig map[string]string `json:"postgresqlConfig,omitempty"` + + // PgHBA contains pg_hba.conf host-based authentication rules. + // Defines client authentication and connection security (cluster-wide). + // Maps to pg_hba.conf settings. + // Default empty array prevents panic. + // Example: ["hostssl all all 0.0.0.0/0 scram-sha-256"] + // +optional + // +kubebuilder:default={} + PgHBA []string `json:"pgHBA,omitempty"` + + // ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed for this cluster. + // When set, takes precedence over the class-level connectionPoolerEnabled value. + // +kubebuilder:default=false + // +optional + ConnectionPoolerEnabled *bool `json:"connectionPoolerEnabled,omitempty"` + + // Only takes effect when connection pooling is enabled. + // +optional + ConnectionPoolerConfig *ConnectionPoolerConfig `json:"connectionPoolerConfig,omitempty"` + + // ManagedRoles contains PostgreSQL roles that should be created in the cluster. + // This field supports Server-Side Apply with per-role granularity, allowing + // multiple PostgresDatabase controllers to manage different roles independently. + // +optional + // +listType=map + // +listMapKey=name + ManagedRoles []ManagedRole `json:"managedRoles,omitempty"` + + // ClusterDeletionPolicy controls the deletion behavior of the underlying CNPG Cluster when the PostgresCluster is deleted. + // +kubebuilder:validation:Enum=Delete;Retain + // +kubebuilder:default=Retain + // +optional + ClusterDeletionPolicy *string `json:"clusterDeletionPolicy,omitempty"` +} + +// PostgresClusterResources defines references to Kubernetes resources related to the PostgresCluster, such as ConfigMaps and Secrets. +type PostgresClusterResources struct { + // ConfigMapRef references the ConfigMap with connection endpoints. + // Contains: CLUSTER_ENDPOINTS, POOLER_ENDPOINTS (if connection pooler enabled) + // +optional + ConfigMapRef *corev1.LocalObjectReference `json:"configMapRef,omitempty"` + + // +optional + SuperUserSecretRef *corev1.SecretKeySelector `json:"secretRef,omitempty"` +} + +// PostgresClusterStatus defines the observed state of PostgresCluster. +type PostgresClusterStatus struct { + // Phase represents the current phase of the PostgresCluster. + // Values: "Pending", "Provisioning", "Failed", "Ready", "Deleting" + // +optional + Phase *string `json:"phase,omitempty"` + + // Conditions represent the latest available observations of the PostgresCluster's state. + // +optional + Conditions []metav1.Condition `json:"conditions,omitempty"` + + // ProvisionerRef contains reference to the provisioner resource managing this PostgresCluster. + // Right now, only CNPG is supported. + // +optional + ProvisionerRef *corev1.ObjectReference `json:"provisionerRef,omitempty"` + + // ConnectionPoolerStatus contains the observed state of the connection pooler. + // Only populated when connection pooler is enabled in the PostgresClusterClass. + // +optional + ConnectionPoolerStatus *ConnectionPoolerStatus `json:"connectionPoolerStatus,omitempty"` + + // ManagedRolesStatus tracks the reconciliation status of managed roles. + // +optional + ManagedRolesStatus *ManagedRolesStatus `json:"managedRolesStatus,omitempty"` + + // Resources contains references to related Kubernetes resources like ConfigMaps and Secrets. + // +optional + Resources *PostgresClusterResources `json:"resources,omitempty"` +} + +// ManagedRolesStatus tracks the state of managed PostgreSQL roles. +type ManagedRolesStatus struct { + // Reconciled contains roles that have been successfully created and are ready. + // +optional + Reconciled []string `json:"reconciled,omitempty"` + + // Pending contains roles that are being created but not yet ready. + // +optional + Pending []string `json:"pending,omitempty"` + + // Failed contains roles that failed to reconcile with error messages. + // +optional + Failed map[string]string `json:"failed,omitempty"` +} + +// ConnectionPoolerStatus contains the observed state of the connection pooler. +type ConnectionPoolerStatus struct { + // Enabled indicates whether pooler is active for this cluster. + Enabled bool `json:"enabled"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Namespaced +// +kubebuilder:printcolumn:name="Class",type=string,JSONPath=`.spec.class` +// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` + +// PostgresCluster is the Schema for the postgresclusters API. +type PostgresCluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec PostgresClusterSpec `json:"spec,omitempty"` + Status PostgresClusterStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PostgresClusterList contains a list of PostgresCluster. +type PostgresClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PostgresCluster `json:"items"` +} + +func init() { + SchemeBuilder.Register(&PostgresCluster{}, &PostgresClusterList{}) +} diff --git a/api/v4/postgresclusterclass_types.go b/api/v4/postgresclusterclass_types.go new file mode 100644 index 000000000..9945ec669 --- /dev/null +++ b/api/v4/postgresclusterclass_types.go @@ -0,0 +1,204 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v4 + +import ( + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +kubebuilder:validation:XValidation:rule="!has(self.cnpg) || self.provisioner == 'postgresql.cnpg.io'",message="cnpg config can only be set when provisioner is postgresql.cnpg.io" +// +kubebuilder:validation:XValidation:rule="!has(self.config) || !has(self.config.connectionPoolerEnabled) || !self.config.connectionPoolerEnabled || (has(self.cnpg) && has(self.cnpg.connectionPooler))",message="cnpg.connectionPooler must be set when config.connectionPoolerEnabled is true" +// PostgresClusterClassSpec defines the desired state of PostgresClusterClass. +// PostgresClusterClass is immutable after creation - it serves as a template for Cluster CRs. +type PostgresClusterClassSpec struct { + // Provisioner identifies which database provisioner to use. + // Currently supported: "postgresql.cnpg.io" (CloudNativePG) + // +kubebuilder:validation:Required + // +kubebuilder:validation:Enum=postgresql.cnpg.io + Provisioner string `json:"provisioner"` + + // PostgresClusterConfig contains cluster-level configuration. + // These settings apply to PostgresCluster infrastructure. + // Can be overridden in PostgresCluster CR. + // +kubebuilder:default={} + // +optional + Config *PostgresClusterClassConfig `json:"config,omitempty"` + + // CNPG contains CloudNativePG-specific configuration and policies. + // Only used when Provisioner is "postgresql.cnpg.io" + // These settings CANNOT be overridden in PostgresCluster CR (platform policy). + // +optional + CNPG *CNPGConfig `json:"cnpg,omitempty"` +} + +// PostgresClusterClassConfig contains provider-agnostic cluster configuration. +// These fields define PostgresCluster infrastructure and can be overridden in PostgresCluster CR. +type PostgresClusterClassConfig struct { + // Instances is the number of database instances (1 primary + N replicas). + // Single instance (1) is suitable for development. + // High availability requires at least 3 instances (1 primary + 2 replicas). + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=10 + // +kubebuilder:default=1 + // +optional + Instances *int32 `json:"instances,omitempty"` + + // Storage is the size of persistent volume for each instance. + // Cannot be decreased after cluster creation (PostgreSQL limitation). + // Recommended minimum: 10Gi for production viability. + // Example: "50Gi", "100Gi", "1Ti" + // +kubebuilder:default="50Gi" + // +optional + Storage *resource.Quantity `json:"storage,omitempty"` + + // PostgresVersion is the PostgreSQL version (major or major.minor). + // Examples: "18" (latest 18.x), "18.1" (specific minor), "17", "16" + // +kubebuilder:validation:Pattern=`^[0-9]+(\.[0-9]+)?$` + // +kubebuilder:default="18" + // +optional + PostgresVersion *string `json:"postgresVersion,omitempty"` + + // Resources defines CPU and memory requests/limits per instance. + // All instances in the cluster have the same resources. + // +optional + Resources *corev1.ResourceRequirements `json:"resources,omitempty"` + + // PostgreSQLConfig contains PostgreSQL engine configuration parameters. + // Maps to postgresql.conf settings (cluster-wide). + // Example: {"max_connections": "200", "shared_buffers": "2GB"} + // +optional + PostgreSQLConfig map[string]string `json:"postgresqlConfig,omitempty"` + + // PgHBA contains pg_hba.conf host-based authentication rules. + // Defines client authentication and connection security (cluster-wide). + // Example: ["hostssl all all 0.0.0.0/0 scram-sha-256"] + // +optional + PgHBA []string `json:"pgHBA,omitempty"` + + // ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed. + // When true, creates RW and RO pooler deployments for clusters using this class. + // Can be overridden in PostgresCluster CR. + // +kubebuilder:default=false + // +optional + ConnectionPoolerEnabled *bool `json:"connectionPoolerEnabled,omitempty"` +} + +// ConnectionPoolerMode defines the PgBouncer connection pooling strategy. +// +kubebuilder:validation:Enum=session;transaction;statement +type ConnectionPoolerMode string + +const ( + // ConnectionPoolerModeSession assigns a connection for the entire client session (most compatible). + ConnectionPoolerModeSession ConnectionPoolerMode = "session" + + // ConnectionPoolerModeTransaction returns the connection after each transaction (recommended). + ConnectionPoolerModeTransaction ConnectionPoolerMode = "transaction" + + // ConnectionPoolerModeStatement returns the connection after each statement (limited compatibility). + ConnectionPoolerModeStatement ConnectionPoolerMode = "statement" +) + +// ConnectionPoolerConfig defines PgBouncer connection pooler configuration. +// When enabled, creates RW and RO pooler deployments for clusters using this class. +type ConnectionPoolerConfig struct { + // Instances is the number of PgBouncer pod replicas. + // Higher values provide better availability and load distribution. + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=10 + // +kubebuilder:default=3 + // +optional + Instances *int32 `json:"instances,omitempty"` + + // Mode defines the connection pooling strategy. + // +kubebuilder:default="transaction" + // +optional + Mode *ConnectionPoolerMode `json:"mode,omitempty"` + + // Config contains PgBouncer configuration parameters. + // Passed directly to CNPG Pooler spec.pgbouncer.parameters. + // See: https://cloudnative-pg.io/docs/1.28/connection_pooling/#pgbouncer-configuration-options + // +optional + Config map[string]string `json:"config,omitempty"` +} + +// CNPGConfig contains CloudNativePG-specific configuration. +// These fields control CNPG operator behavior and enforce platform policies. +// Cannot be overridden in Cluster CR. +type CNPGConfig struct { + // PrimaryUpdateMethod determines how the primary instance is updated. + // "restart" - tolerate brief downtime (suitable for development) + // "switchover" - minimal downtime via automated failover (production-grade) + // + // NOTE: When using "switchover", ensure clusterConfig.instances > 1. + // Switchover requires at least one replica to fail over to. + // +kubebuilder:validation:Enum=restart;switchover + // +kubebuilder:default=switchover + // +optional + PrimaryUpdateMethod *string `json:"primaryUpdateMethod,omitempty"` + + // ConnectionPooler contains PgBouncer connection pooler configuration. + // When enabled, creates RW and RO pooler deployments for clusters using this class. + // +optional + ConnectionPooler *ConnectionPoolerConfig `json:"connectionPooler,omitempty"` +} + +// PostgresClusterClassStatus defines the observed state of PostgresClusterClass. +type PostgresClusterClassStatus struct { + // Conditions represent the latest available observations of the PostgresClusterClass state. + // +optional + Conditions []metav1.Condition `json:"conditions,omitempty"` + + // Phase represents the current phase of the PostgresClusterClass. + // Valid phases: "Ready", "Invalid" + // +optional + Phase *string `json:"phase,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster +// +kubebuilder:printcolumn:name="Provisioner",type=string,JSONPath=`.spec.provisioner` +// +kubebuilder:printcolumn:name="Instances",type=integer,JSONPath=`.spec.postgresClusterConfig.instances` +// +kubebuilder:printcolumn:name="Storage",type=string,JSONPath=`.spec.postgresClusterConfig.storage` +// +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.spec.postgresClusterConfig.postgresVersion` +// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` + +// PostgresClusterClass is the Schema for the postgresclusterclasses API. +// PostgresClusterClass defines a reusable template and policy for postgres cluster provisioning. +type PostgresClusterClass struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec PostgresClusterClassSpec `json:"spec,omitempty"` + Status PostgresClusterClassStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PostgresClusterClassList contains a list of PostgresClusterClass. +type PostgresClusterClassList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PostgresClusterClass `json:"items"` +} + +func init() { + SchemeBuilder.Register(&PostgresClusterClass{}, &PostgresClusterClassList{}) +} diff --git a/api/v4/postgresdatabase_types.go b/api/v4/postgresdatabase_types.go new file mode 100644 index 000000000..edab619b0 --- /dev/null +++ b/api/v4/postgresdatabase_types.go @@ -0,0 +1,96 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v4 + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// PostgresDatabaseSpec defines the desired state of PostgresDatabase. +// +kubebuilder:validation:XValidation:rule="self.clusterRef == oldSelf.clusterRef",message="clusterRef is immutable" +type PostgresDatabaseSpec struct { + // Reference to Postgres Cluster managed by postgresCluster controller + // +kubebuilder:validation:Required + ClusterRef corev1.LocalObjectReference `json:"clusterRef"` + + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinItems=1 + // +kubebuilder:validation:MaxItems=10 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.filter(y, y.name == x.name).size() == 1)",message="database names must be unique" + Databases []DatabaseDefinition `json:"databases"` +} + +type DatabaseDefinition struct { + // +kubebuilder:validation:Required + // +kubebuilder:validation:MaxLength=30 + Name string `json:"name"` + Extensions []string `json:"extensions,omitempty"` + // +kubebuilder:validation:Enum=Delete;Retain + // +kubebuilder:default=Delete + DeletionPolicy string `json:"deletionPolicy,omitempty"` +} + +type DatabaseInfo struct { + Name string `json:"name"` + Ready bool `json:"ready"` + DatabaseRef *corev1.LocalObjectReference `json:"databaseRef,omitempty"` + AdminUserSecretRef *corev1.SecretKeySelector `json:"adminUserSecretRef,omitempty"` + RWUserSecretRef *corev1.SecretKeySelector `json:"rwUserSecretRef,omitempty"` + ConfigMapRef *corev1.LocalObjectReference `json:"configMap,omitempty"` +} + +// PostgresDatabaseStatus defines the observed state of PostgresDatabase. +type PostgresDatabaseStatus struct { + // +optional + Phase *string `json:"phase,omitempty"` + // +optional + Conditions []metav1.Condition `json:"conditions,omitempty"` + // +optional + Databases []DatabaseInfo `json:"databases,omitempty"` + // ObservedGeneration represents the .metadata.generation that the status was set based upon. + // +optional + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Cluster",type=string,JSONPath=`.spec.clusterRef.name` +// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` + +// PostgresDatabase is the Schema for the postgresdatabases API. +type PostgresDatabase struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec PostgresDatabaseSpec `json:"spec,omitempty"` + Status PostgresDatabaseStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PostgresDatabaseList contains a list of PostgresDatabase. +type PostgresDatabaseList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PostgresDatabase `json:"items"` +} + +func init() { + SchemeBuilder.Register(&PostgresDatabase{}, &PostgresDatabaseList{}) +} diff --git a/api/v4/zz_generated.deepcopy.go b/api/v4/zz_generated.deepcopy.go index 7ae136536..d9535fb93 100644 --- a/api/v4/zz_generated.deepcopy.go +++ b/api/v4/zz_generated.deepcopy.go @@ -22,6 +22,7 @@ package v4 import ( "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" ) @@ -180,6 +181,31 @@ func (in *BundlePushTracker) DeepCopy() *BundlePushTracker { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CNPGConfig) DeepCopyInto(out *CNPGConfig) { + *out = *in + if in.PrimaryUpdateMethod != nil { + in, out := &in.PrimaryUpdateMethod, &out.PrimaryUpdateMethod + *out = new(string) + **out = **in + } + if in.ConnectionPooler != nil { + in, out := &in.ConnectionPooler, &out.ConnectionPooler + *out = new(ConnectionPoolerConfig) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CNPGConfig. +func (in *CNPGConfig) DeepCopy() *CNPGConfig { + if in == nil { + return nil + } + out := new(CNPGConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CacheManagerSpec) DeepCopyInto(out *CacheManagerSpec) { *out = *in @@ -355,6 +381,108 @@ func (in *CommonSplunkSpec) DeepCopy() *CommonSplunkSpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConnectionPoolerConfig) DeepCopyInto(out *ConnectionPoolerConfig) { + *out = *in + if in.Instances != nil { + in, out := &in.Instances, &out.Instances + *out = new(int32) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(ConnectionPoolerMode) + **out = **in + } + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolerConfig. +func (in *ConnectionPoolerConfig) DeepCopy() *ConnectionPoolerConfig { + if in == nil { + return nil + } + out := new(ConnectionPoolerConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConnectionPoolerStatus) DeepCopyInto(out *ConnectionPoolerStatus) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionPoolerStatus. +func (in *ConnectionPoolerStatus) DeepCopy() *ConnectionPoolerStatus { + if in == nil { + return nil + } + out := new(ConnectionPoolerStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatabaseDefinition) DeepCopyInto(out *DatabaseDefinition) { + *out = *in + if in.Extensions != nil { + in, out := &in.Extensions, &out.Extensions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseDefinition. +func (in *DatabaseDefinition) DeepCopy() *DatabaseDefinition { + if in == nil { + return nil + } + out := new(DatabaseDefinition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatabaseInfo) DeepCopyInto(out *DatabaseInfo) { + *out = *in + if in.DatabaseRef != nil { + in, out := &in.DatabaseRef, &out.DatabaseRef + *out = new(v1.LocalObjectReference) + **out = **in + } + if in.AdminUserSecretRef != nil { + in, out := &in.AdminUserSecretRef, &out.AdminUserSecretRef + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } + if in.RWUserSecretRef != nil { + in, out := &in.RWUserSecretRef, &out.RWUserSecretRef + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } + if in.ConfigMapRef != nil { + in, out := &in.ConfigMapRef, &out.ConfigMapRef + *out = new(v1.LocalObjectReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseInfo. +func (in *DatabaseInfo) DeepCopy() *DatabaseInfo { + if in == nil { + return nil + } + out := new(DatabaseInfo) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EsDefaults) DeepCopyInto(out *EsDefaults) { *out = *in @@ -742,6 +870,58 @@ func (in *LicenseManagerStatus) DeepCopy() *LicenseManagerStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedRole) DeepCopyInto(out *ManagedRole) { + *out = *in + if in.PasswordSecretRef != nil { + in, out := &in.PasswordSecretRef, &out.PasswordSecretRef + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedRole. +func (in *ManagedRole) DeepCopy() *ManagedRole { + if in == nil { + return nil + } + out := new(ManagedRole) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedRolesStatus) DeepCopyInto(out *ManagedRolesStatus) { + *out = *in + if in.Reconciled != nil { + in, out := &in.Reconciled, &out.Reconciled + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Pending != nil { + in, out := &in.Pending, &out.Pending + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Failed != nil { + in, out := &in.Failed, &out.Failed + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedRolesStatus. +func (in *ManagedRolesStatus) DeepCopy() *ManagedRolesStatus { + if in == nil { + return nil + } + out := new(ManagedRolesStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MonitoringConsole) DeepCopyInto(out *MonitoringConsole) { *out = *in @@ -946,6 +1126,490 @@ func (in *PhaseInfo) DeepCopy() *PhaseInfo { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresCluster) DeepCopyInto(out *PostgresCluster) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresCluster. +func (in *PostgresCluster) DeepCopy() *PostgresCluster { + if in == nil { + return nil + } + out := new(PostgresCluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PostgresCluster) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterClass) DeepCopyInto(out *PostgresClusterClass) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterClass. +func (in *PostgresClusterClass) DeepCopy() *PostgresClusterClass { + if in == nil { + return nil + } + out := new(PostgresClusterClass) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PostgresClusterClass) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterClassConfig) DeepCopyInto(out *PostgresClusterClassConfig) { + *out = *in + if in.Instances != nil { + in, out := &in.Instances, &out.Instances + *out = new(int32) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + x := (*in).DeepCopy() + *out = &x + } + if in.PostgresVersion != nil { + in, out := &in.PostgresVersion, &out.PostgresVersion + *out = new(string) + **out = **in + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = new(v1.ResourceRequirements) + (*in).DeepCopyInto(*out) + } + if in.PostgreSQLConfig != nil { + in, out := &in.PostgreSQLConfig, &out.PostgreSQLConfig + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PgHBA != nil { + in, out := &in.PgHBA, &out.PgHBA + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ConnectionPoolerEnabled != nil { + in, out := &in.ConnectionPoolerEnabled, &out.ConnectionPoolerEnabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterClassConfig. +func (in *PostgresClusterClassConfig) DeepCopy() *PostgresClusterClassConfig { + if in == nil { + return nil + } + out := new(PostgresClusterClassConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterClassList) DeepCopyInto(out *PostgresClusterClassList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PostgresClusterClass, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterClassList. +func (in *PostgresClusterClassList) DeepCopy() *PostgresClusterClassList { + if in == nil { + return nil + } + out := new(PostgresClusterClassList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PostgresClusterClassList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterClassSpec) DeepCopyInto(out *PostgresClusterClassSpec) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = new(PostgresClusterClassConfig) + (*in).DeepCopyInto(*out) + } + if in.CNPG != nil { + in, out := &in.CNPG, &out.CNPG + *out = new(CNPGConfig) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterClassSpec. +func (in *PostgresClusterClassSpec) DeepCopy() *PostgresClusterClassSpec { + if in == nil { + return nil + } + out := new(PostgresClusterClassSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterClassStatus) DeepCopyInto(out *PostgresClusterClassStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]metav1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Phase != nil { + in, out := &in.Phase, &out.Phase + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterClassStatus. +func (in *PostgresClusterClassStatus) DeepCopy() *PostgresClusterClassStatus { + if in == nil { + return nil + } + out := new(PostgresClusterClassStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterList) DeepCopyInto(out *PostgresClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PostgresCluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterList. +func (in *PostgresClusterList) DeepCopy() *PostgresClusterList { + if in == nil { + return nil + } + out := new(PostgresClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PostgresClusterList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterResources) DeepCopyInto(out *PostgresClusterResources) { + *out = *in + if in.ConfigMapRef != nil { + in, out := &in.ConfigMapRef, &out.ConfigMapRef + *out = new(v1.LocalObjectReference) + **out = **in + } + if in.SuperUserSecretRef != nil { + in, out := &in.SuperUserSecretRef, &out.SuperUserSecretRef + *out = new(v1.SecretKeySelector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterResources. +func (in *PostgresClusterResources) DeepCopy() *PostgresClusterResources { + if in == nil { + return nil + } + out := new(PostgresClusterResources) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterSpec) DeepCopyInto(out *PostgresClusterSpec) { + *out = *in + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + x := (*in).DeepCopy() + *out = &x + } + if in.Instances != nil { + in, out := &in.Instances, &out.Instances + *out = new(int32) + **out = **in + } + if in.PostgresVersion != nil { + in, out := &in.PostgresVersion, &out.PostgresVersion + *out = new(string) + **out = **in + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = new(v1.ResourceRequirements) + (*in).DeepCopyInto(*out) + } + if in.PostgreSQLConfig != nil { + in, out := &in.PostgreSQLConfig, &out.PostgreSQLConfig + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PgHBA != nil { + in, out := &in.PgHBA, &out.PgHBA + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ConnectionPoolerEnabled != nil { + in, out := &in.ConnectionPoolerEnabled, &out.ConnectionPoolerEnabled + *out = new(bool) + **out = **in + } + if in.ConnectionPoolerConfig != nil { + in, out := &in.ConnectionPoolerConfig, &out.ConnectionPoolerConfig + *out = new(ConnectionPoolerConfig) + (*in).DeepCopyInto(*out) + } + if in.ManagedRoles != nil { + in, out := &in.ManagedRoles, &out.ManagedRoles + *out = make([]ManagedRole, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ClusterDeletionPolicy != nil { + in, out := &in.ClusterDeletionPolicy, &out.ClusterDeletionPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterSpec. +func (in *PostgresClusterSpec) DeepCopy() *PostgresClusterSpec { + if in == nil { + return nil + } + out := new(PostgresClusterSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterStatus) DeepCopyInto(out *PostgresClusterStatus) { + *out = *in + if in.Phase != nil { + in, out := &in.Phase, &out.Phase + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]metav1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProvisionerRef != nil { + in, out := &in.ProvisionerRef, &out.ProvisionerRef + *out = new(v1.ObjectReference) + **out = **in + } + if in.ConnectionPoolerStatus != nil { + in, out := &in.ConnectionPoolerStatus, &out.ConnectionPoolerStatus + *out = new(ConnectionPoolerStatus) + **out = **in + } + if in.ManagedRolesStatus != nil { + in, out := &in.ManagedRolesStatus, &out.ManagedRolesStatus + *out = new(ManagedRolesStatus) + (*in).DeepCopyInto(*out) + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = new(PostgresClusterResources) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterStatus. +func (in *PostgresClusterStatus) DeepCopy() *PostgresClusterStatus { + if in == nil { + return nil + } + out := new(PostgresClusterStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresDatabase) DeepCopyInto(out *PostgresDatabase) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresDatabase. +func (in *PostgresDatabase) DeepCopy() *PostgresDatabase { + if in == nil { + return nil + } + out := new(PostgresDatabase) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PostgresDatabase) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresDatabaseList) DeepCopyInto(out *PostgresDatabaseList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PostgresDatabase, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresDatabaseList. +func (in *PostgresDatabaseList) DeepCopy() *PostgresDatabaseList { + if in == nil { + return nil + } + out := new(PostgresDatabaseList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PostgresDatabaseList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresDatabaseSpec) DeepCopyInto(out *PostgresDatabaseSpec) { + *out = *in + out.ClusterRef = in.ClusterRef + if in.Databases != nil { + in, out := &in.Databases, &out.Databases + *out = make([]DatabaseDefinition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresDatabaseSpec. +func (in *PostgresDatabaseSpec) DeepCopy() *PostgresDatabaseSpec { + if in == nil { + return nil + } + out := new(PostgresDatabaseSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresDatabaseStatus) DeepCopyInto(out *PostgresDatabaseStatus) { + *out = *in + if in.Phase != nil { + in, out := &in.Phase, &out.Phase + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]metav1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Databases != nil { + in, out := &in.Databases, &out.Databases + *out = make([]DatabaseInfo, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresDatabaseStatus. +func (in *PostgresDatabaseStatus) DeepCopy() *PostgresDatabaseStatus { + if in == nil { + return nil + } + out := new(PostgresDatabaseStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PremiumAppsProps) DeepCopyInto(out *PremiumAppsProps) { *out = *in diff --git a/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml b/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml new file mode 100644 index 000000000..b564ca757 --- /dev/null +++ b/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml @@ -0,0 +1,332 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.18.0 + creationTimestamp: null + labels: + name: splunk-operator + name: postgresclusterclasses.enterprise.splunk.com +spec: + group: enterprise.splunk.com + names: + kind: PostgresClusterClass + listKind: PostgresClusterClassList + plural: postgresclusterclasses + singular: postgresclusterclass + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.provisioner + name: Provisioner + type: string + - jsonPath: .spec.postgresClusterConfig.instances + name: Instances + type: integer + - jsonPath: .spec.postgresClusterConfig.storage + name: Storage + type: string + - jsonPath: .spec.postgresClusterConfig.postgresVersion + name: Version + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v4 + schema: + openAPIV3Schema: + description: |- + PostgresClusterClass is the Schema for the postgresclusterclasses API. + PostgresClusterClass defines a reusable template and policy for postgres cluster provisioning. + 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: |- + PostgresClusterClassSpec defines the desired state of PostgresClusterClass. + PostgresClusterClass is immutable after creation - it serves as a template for Cluster CRs. + properties: + cnpg: + description: |- + CNPG contains CloudNativePG-specific configuration and policies. + Only used when Provisioner is "postgresql.cnpg.io" + These settings CANNOT be overridden in PostgresCluster CR (platform policy). + properties: + connectionPooler: + description: |- + ConnectionPooler contains PgBouncer connection pooler configuration. + When enabled, creates RW and RO pooler deployments for clusters using this class. + properties: + config: + additionalProperties: + type: string + description: |- + Config contains PgBouncer configuration parameters. + Passed directly to CNPG Pooler spec.pgbouncer.parameters. + See: https://cloudnative-pg.io/docs/1.28/connection_pooling/#pgbouncer-configuration-options + type: object + instances: + default: 3 + description: |- + Instances is the number of PgBouncer pod replicas. + Higher values provide better availability and load distribution. + format: int32 + maximum: 10 + minimum: 1 + type: integer + mode: + default: transaction + description: Mode defines the connection pooling strategy. + enum: + - session + - transaction + - statement + type: string + type: object + primaryUpdateMethod: + default: switchover + description: |- + PrimaryUpdateMethod determines how the primary instance is updated. + "restart" - tolerate brief downtime (suitable for development) + "switchover" - minimal downtime via automated failover (production-grade) + + NOTE: When using "switchover", ensure clusterConfig.instances > 1. + Switchover requires at least one replica to fail over to. + enum: + - restart + - switchover + type: string + type: object + config: + default: {} + description: |- + PostgresClusterConfig contains cluster-level configuration. + These settings apply to PostgresCluster infrastructure. + Can be overridden in PostgresCluster CR. + properties: + connectionPoolerEnabled: + default: false + description: |- + ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed. + When true, creates RW and RO pooler deployments for clusters using this class. + Can be overridden in PostgresCluster CR. + type: boolean + instances: + default: 1 + description: |- + Instances is the number of database instances (1 primary + N replicas). + Single instance (1) is suitable for development. + High availability requires at least 3 instances (1 primary + 2 replicas). + format: int32 + maximum: 10 + minimum: 1 + type: integer + pgHBA: + description: |- + PgHBA contains pg_hba.conf host-based authentication rules. + Defines client authentication and connection security (cluster-wide). + Example: ["hostssl all all 0.0.0.0/0 scram-sha-256"] + items: + type: string + type: array + postgresVersion: + default: "18" + description: |- + PostgresVersion is the PostgreSQL version (major or major.minor). + Examples: "18" (latest 18.x), "18.1" (specific minor), "17", "16" + pattern: ^[0-9]+(\.[0-9]+)?$ + type: string + postgresqlConfig: + additionalProperties: + type: string + description: |- + PostgreSQLConfig contains PostgreSQL engine configuration parameters. + Maps to postgresql.conf settings (cluster-wide). + Example: {"max_connections": "200", "shared_buffers": "2GB"} + type: object + resources: + description: |- + Resources defines CPU and memory requests/limits per instance. + All instances in the cluster have the same resources. + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This field depends on the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + storage: + anyOf: + - type: integer + - type: string + default: 50Gi + description: |- + Storage is the size of persistent volume for each instance. + Cannot be decreased after cluster creation (PostgreSQL limitation). + Recommended minimum: 10Gi for production viability. + Example: "50Gi", "100Gi", "1Ti" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + provisioner: + description: |- + Provisioner identifies which database provisioner to use. + Currently supported: "postgresql.cnpg.io" (CloudNativePG) + type: string + required: + - provisioner + type: object + x-kubernetes-validations: + - message: cnpg config can only be set when provisioner is postgresql.cnpg.io + rule: '!has(self.cnpg) || self.provisioner == ''postgresql.cnpg.io''' + - message: cnpg.connectionPooler must be set when config.connectionPoolerEnabled + is true + rule: '!has(self.config) || !has(self.config.connectionPoolerEnabled) + || !self.config.connectionPoolerEnabled || (has(self.cnpg) && has(self.cnpg.connectionPooler))' + status: + description: PostgresClusterClassStatus defines the observed state of + PostgresClusterClass. + properties: + conditions: + description: Conditions represent the latest available observations + of the PostgresClusterClass state. + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + 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. + 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 + phase: + description: |- + Phase represents the current phase of the PostgresClusterClass. + Valid phases: "Ready", "Invalid" + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundle/manifests/enterprise.splunk.com_postgresclusters.yaml b/bundle/manifests/enterprise.splunk.com_postgresclusters.yaml new file mode 100644 index 000000000..abc6ddfd0 --- /dev/null +++ b/bundle/manifests/enterprise.splunk.com_postgresclusters.yaml @@ -0,0 +1,477 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.18.0 + creationTimestamp: null + labels: + name: splunk-operator + name: postgresclusters.enterprise.splunk.com +spec: + group: enterprise.splunk.com + names: + kind: PostgresCluster + listKind: PostgresClusterList + plural: postgresclusters + singular: postgrescluster + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.class + name: Class + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v4 + schema: + openAPIV3Schema: + description: PostgresCluster is the Schema for the postgresclusters 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: |- + PostgresClusterSpec defines the desired state of PostgresCluster. + Validation rules ensure immutability of Class, and that Storage and PostgresVersion can only be set once and cannot be removed or downgraded. + properties: + class: + description: This field is IMMUTABLE after creation. + minLength: 1 + type: string + x-kubernetes-validations: + - message: class is immutable + rule: self == oldSelf + clusterDeletionPolicy: + default: Retain + description: ClusterDeletionPolicy controls the deletion behavior + of the underlying CNPG Cluster when the PostgresCluster is deleted. + enum: + - Delete + - Retain + type: string + connectionPoolerConfig: + description: Only takes effect when connection pooling is enabled. + properties: + config: + additionalProperties: + type: string + description: |- + Config contains PgBouncer configuration parameters. + Passed directly to CNPG Pooler spec.pgbouncer.parameters. + See: https://cloudnative-pg.io/docs/1.28/connection_pooling/#pgbouncer-configuration-options + type: object + instances: + default: 3 + description: |- + Instances is the number of PgBouncer pod replicas. + Higher values provide better availability and load distribution. + format: int32 + maximum: 10 + minimum: 1 + type: integer + mode: + default: transaction + description: Mode defines the connection pooling strategy. + enum: + - session + - transaction + - statement + type: string + type: object + connectionPoolerEnabled: + default: false + description: |- + ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed for this cluster. + When set, takes precedence over the class-level connectionPoolerEnabled value. + type: boolean + instances: + description: Instances overrides the number of PostgreSQL instances + from ClusterClass. + format: int32 + maximum: 10 + minimum: 1 + type: integer + managedRoles: + description: |- + ManagedRoles contains PostgreSQL roles that should be created in the cluster. + This field supports Server-Side Apply with per-role granularity, allowing + multiple PostgresDatabase controllers to manage different roles independently. + items: + description: ManagedRole represents a PostgreSQL role to be created + and managed in the cluster. + properties: + exists: + default: true + description: Exists controls whether the role should be present + (true) or absent (false) in PostgreSQL. + type: boolean + name: + description: Name of the role/user to create. + maxLength: 63 + minLength: 1 + type: string + passwordSecretRef: + description: PasswordSecretRef references a Secret and the key + within it containing the password for this role. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + pgHBA: + default: [] + description: |- + PgHBA contains pg_hba.conf host-based authentication rules. + Defines client authentication and connection security (cluster-wide). + Maps to pg_hba.conf settings. + Default empty array prevents panic. + Example: ["hostssl all all 0.0.0.0/0 scram-sha-256"] + items: + type: string + type: array + postgresVersion: + description: |- + PostgresVersion is the PostgreSQL version (major or major.minor). + Examples: "18" (latest 18.x), "18.1" (specific minor), "17", "16" + pattern: ^[0-9]+(\.[0-9]+)?$ + type: string + postgresqlConfig: + additionalProperties: + type: string + default: {} + description: |- + PostgreSQL overrides PostgreSQL engine parameters from ClusterClass. + Maps to postgresql.conf settings. + Default empty map prevents panic. + Example: {"shared_buffers": "128MB", "log_min_duration_statement": "500ms"} + type: object + resources: + description: Resources overrides CPU/memory resources from ClusterClass. + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This field depends on the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + storage: + anyOf: + - type: integer + - type: string + description: |- + Storage overrides the storage size from ClusterClass. + Example: "5Gi" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + required: + - class + type: object + x-kubernetes-validations: + - messageExpression: '!has(self.postgresVersion) ? ''postgresVersion cannot + be removed once set (was: '' + oldSelf.postgresVersion + '')'' : ''postgresVersion + major version cannot be downgraded (from: '' + oldSelf.postgresVersion + + '', to: '' + self.postgresVersion + '')''' + rule: '!has(oldSelf.postgresVersion) || (has(self.postgresVersion) && + int(self.postgresVersion.split(''.'')[0]) >= int(oldSelf.postgresVersion.split(''.'')[0]))' + - messageExpression: '!has(self.storage) ? ''storage cannot be removed + once set (was: '' + string(oldSelf.storage) + '')'' : ''storage size + cannot be decreased (from: '' + string(oldSelf.storage) + '', to: + '' + string(self.storage) + '')''' + rule: '!has(oldSelf.storage) || (has(self.storage) && quantity(self.storage).compareTo(quantity(oldSelf.storage)) + >= 0)' + - message: connectionPoolerConfig cannot be overridden on PostgresCluster + rule: '!has(self.connectionPoolerConfig)' + status: + description: PostgresClusterStatus defines the observed state of PostgresCluster. + properties: + conditions: + description: Conditions represent the latest available observations + of the PostgresCluster's state. + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + 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. + 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 + connectionPoolerStatus: + description: |- + ConnectionPoolerStatus contains the observed state of the connection pooler. + Only populated when connection pooler is enabled in the PostgresClusterClass. + properties: + enabled: + description: Enabled indicates whether pooler is active for this + cluster. + type: boolean + type: object + managedRolesStatus: + description: ManagedRolesStatus tracks the reconciliation status of + managed roles. + properties: + failed: + additionalProperties: + type: string + description: Failed contains roles that failed to reconcile with + error messages. + type: object + pending: + description: Pending contains roles that are being created but + not yet ready. + items: + type: string + type: array + reconciled: + description: Reconciled contains roles that have been successfully + created and are ready. + items: + type: string + type: array + type: object + phase: + description: |- + Phase represents the current phase of the PostgresCluster. + Values: "Pending", "Provisioning", "Failed", "Ready", "Deleting" + type: string + provisionerRef: + description: |- + ProvisionerRef contains reference to the provisioner resource managing this PostgresCluster. + Right now, only CNPG is supported. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + resources: + description: Resources contains references to related Kubernetes resources + like ConfigMaps and Secrets. + properties: + configMapRef: + description: |- + ConfigMapRef references the ConfigMap with connection endpoints. + Contains: CLUSTER_ENDPOINTS, POOLER_ENDPOINTS (if connection pooler enabled) + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + secretRef: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundle/manifests/enterprise.splunk.com_postgresdatabases.yaml b/bundle/manifests/enterprise.splunk.com_postgresdatabases.yaml new file mode 100644 index 000000000..badbc70b8 --- /dev/null +++ b/bundle/manifests/enterprise.splunk.com_postgresdatabases.yaml @@ -0,0 +1,267 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.18.0 + creationTimestamp: null + labels: + name: splunk-operator + name: postgresdatabases.enterprise.splunk.com +spec: + group: enterprise.splunk.com + names: + kind: PostgresDatabase + listKind: PostgresDatabaseList + plural: postgresdatabases + singular: postgresdatabase + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.clusterRef.name + name: Cluster + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v4 + schema: + openAPIV3Schema: + description: PostgresDatabase is the Schema for the postgresdatabases 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: PostgresDatabaseSpec defines the desired state of PostgresDatabase. + properties: + clusterRef: + description: Reference to Postgres Cluster managed by postgresCluster + controller + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + databases: + items: + properties: + deletionPolicy: + default: Delete + enum: + - Delete + - Retain + type: string + extensions: + items: + type: string + type: array + name: + maxLength: 30 + type: string + required: + - name + type: object + maxItems: 10 + minItems: 1 + type: array + x-kubernetes-validations: + - message: database names must be unique + rule: self.all(x, self.filter(y, y.name == x.name).size() == 1) + required: + - clusterRef + - databases + type: object + x-kubernetes-validations: + - message: clusterRef is immutable + rule: self.clusterRef == oldSelf.clusterRef + status: + description: PostgresDatabaseStatus defines the observed state of PostgresDatabase. + properties: + conditions: + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + 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. + 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 + databases: + items: + properties: + adminUserSecretRef: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + configMap: + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + databaseRef: + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + type: string + ready: + type: boolean + rwUserSecretRef: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + type: array + observedGeneration: + description: ObservedGeneration represents the .metadata.generation + that the status was set based upon. + format: int64 + type: integer + phase: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/cmd/main.go b/cmd/main.go index 3c9e223cc..9b960c2bc 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -53,6 +53,8 @@ import ( enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" enterpriseApi "github.com/splunk/splunk-operator/api/v4" "github.com/splunk/splunk-operator/internal/controller" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" //+kubebuilder:scaffold:imports //extapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) @@ -66,6 +68,7 @@ func init() { utilruntime.Must(clientgoscheme.AddToScheme(scheme)) utilruntime.Must(enterpriseApi.AddToScheme(scheme)) utilruntime.Must(enterpriseApiV3.AddToScheme(scheme)) + utilruntime.Must(cnpgv1.AddToScheme(scheme)) //+kubebuilder:scaffold:scheme //utilruntime.Must(extapi.AddToScheme(scheme)) } @@ -279,6 +282,20 @@ func main() { setupLog.Error(err, "unable to create controller", "controller", "Telemetry") os.Exit(1) } + if err := (&controller.PostgresDatabaseReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "PostgresDatabase") + os.Exit(1) + } + if err := (&controller.PostgresClusterReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "PostgresCluster") + os.Exit(1) + } // Setup centralized validation webhook server (opt-in via ENABLE_VALIDATION_WEBHOOK env var, defaults to false) enableWebhooks := os.Getenv("ENABLE_VALIDATION_WEBHOOK") diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml new file mode 100644 index 000000000..70ef3536b --- /dev/null +++ b/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml @@ -0,0 +1,326 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.18.0 + name: postgresclusterclasses.enterprise.splunk.com +spec: + group: enterprise.splunk.com + names: + kind: PostgresClusterClass + listKind: PostgresClusterClassList + plural: postgresclusterclasses + singular: postgresclusterclass + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.provisioner + name: Provisioner + type: string + - jsonPath: .spec.postgresClusterConfig.instances + name: Instances + type: integer + - jsonPath: .spec.postgresClusterConfig.storage + name: Storage + type: string + - jsonPath: .spec.postgresClusterConfig.postgresVersion + name: Version + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v4 + schema: + openAPIV3Schema: + description: |- + PostgresClusterClass is the Schema for the postgresclusterclasses API. + PostgresClusterClass defines a reusable template and policy for postgres cluster provisioning. + 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: |- + PostgresClusterClassSpec defines the desired state of PostgresClusterClass. + PostgresClusterClass is immutable after creation - it serves as a template for Cluster CRs. + properties: + cnpg: + description: |- + CNPG contains CloudNativePG-specific configuration and policies. + Only used when Provisioner is "postgresql.cnpg.io" + These settings CANNOT be overridden in PostgresCluster CR (platform policy). + properties: + connectionPooler: + description: |- + ConnectionPooler contains PgBouncer connection pooler configuration. + When enabled, creates RW and RO pooler deployments for clusters using this class. + properties: + config: + additionalProperties: + type: string + description: |- + Config contains PgBouncer configuration parameters. + Passed directly to CNPG Pooler spec.pgbouncer.parameters. + See: https://cloudnative-pg.io/docs/1.28/connection_pooling/#pgbouncer-configuration-options + type: object + instances: + default: 3 + description: |- + Instances is the number of PgBouncer pod replicas. + Higher values provide better availability and load distribution. + format: int32 + maximum: 10 + minimum: 1 + type: integer + mode: + default: transaction + description: Mode defines the connection pooling strategy. + enum: + - session + - transaction + - statement + type: string + type: object + primaryUpdateMethod: + default: switchover + description: |- + PrimaryUpdateMethod determines how the primary instance is updated. + "restart" - tolerate brief downtime (suitable for development) + "switchover" - minimal downtime via automated failover (production-grade) + + NOTE: When using "switchover", ensure clusterConfig.instances > 1. + Switchover requires at least one replica to fail over to. + enum: + - restart + - switchover + type: string + type: object + config: + default: {} + description: |- + PostgresClusterConfig contains cluster-level configuration. + These settings apply to PostgresCluster infrastructure. + Can be overridden in PostgresCluster CR. + properties: + connectionPoolerEnabled: + default: false + description: |- + ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed. + When true, creates RW and RO pooler deployments for clusters using this class. + Can be overridden in PostgresCluster CR. + type: boolean + instances: + default: 1 + description: |- + Instances is the number of database instances (1 primary + N replicas). + Single instance (1) is suitable for development. + High availability requires at least 3 instances (1 primary + 2 replicas). + format: int32 + maximum: 10 + minimum: 1 + type: integer + pgHBA: + description: |- + PgHBA contains pg_hba.conf host-based authentication rules. + Defines client authentication and connection security (cluster-wide). + Example: ["hostssl all all 0.0.0.0/0 scram-sha-256"] + items: + type: string + type: array + postgresVersion: + default: "18" + description: |- + PostgresVersion is the PostgreSQL version (major or major.minor). + Examples: "18" (latest 18.x), "18.1" (specific minor), "17", "16" + pattern: ^[0-9]+(\.[0-9]+)?$ + type: string + postgresqlConfig: + additionalProperties: + type: string + description: |- + PostgreSQLConfig contains PostgreSQL engine configuration parameters. + Maps to postgresql.conf settings (cluster-wide). + Example: {"max_connections": "200", "shared_buffers": "2GB"} + type: object + resources: + description: |- + Resources defines CPU and memory requests/limits per instance. + All instances in the cluster have the same resources. + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This field depends on the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + storage: + anyOf: + - type: integer + - type: string + default: 50Gi + description: |- + Storage is the size of persistent volume for each instance. + Cannot be decreased after cluster creation (PostgreSQL limitation). + Recommended minimum: 10Gi for production viability. + Example: "50Gi", "100Gi", "1Ti" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + provisioner: + description: |- + Provisioner identifies which database provisioner to use. + Currently supported: "postgresql.cnpg.io" (CloudNativePG) + enum: + - postgresql.cnpg.io + type: string + required: + - provisioner + type: object + x-kubernetes-validations: + - message: cnpg config can only be set when provisioner is postgresql.cnpg.io + rule: '!has(self.cnpg) || self.provisioner == ''postgresql.cnpg.io''' + - message: cnpg.connectionPooler must be set when config.connectionPoolerEnabled + is true + rule: '!has(self.config) || !has(self.config.connectionPoolerEnabled) + || !self.config.connectionPoolerEnabled || (has(self.cnpg) && has(self.cnpg.connectionPooler))' + status: + description: PostgresClusterClassStatus defines the observed state of + PostgresClusterClass. + properties: + conditions: + description: Conditions represent the latest available observations + of the PostgresClusterClass state. + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + 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. + 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 + phase: + description: |- + Phase represents the current phase of the PostgresClusterClass. + Valid phases: "Ready", "Invalid" + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml new file mode 100644 index 000000000..14ba142d6 --- /dev/null +++ b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml @@ -0,0 +1,469 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.18.0 + name: postgresclusters.enterprise.splunk.com +spec: + group: enterprise.splunk.com + names: + kind: PostgresCluster + listKind: PostgresClusterList + plural: postgresclusters + singular: postgrescluster + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.class + name: Class + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v4 + schema: + openAPIV3Schema: + description: PostgresCluster is the Schema for the postgresclusters 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: |- + PostgresClusterSpec defines the desired state of PostgresCluster. + Validation rules ensure immutability of Class, and that Storage and PostgresVersion can only be set once and cannot be removed or downgraded. + properties: + class: + description: This field is IMMUTABLE after creation. + minLength: 1 + type: string + x-kubernetes-validations: + - message: class is immutable + rule: self == oldSelf + clusterDeletionPolicy: + default: Retain + description: ClusterDeletionPolicy controls the deletion behavior + of the underlying CNPG Cluster when the PostgresCluster is deleted. + enum: + - Delete + - Retain + type: string + connectionPoolerConfig: + description: Only takes effect when connection pooling is enabled. + properties: + config: + additionalProperties: + type: string + description: |- + Config contains PgBouncer configuration parameters. + Passed directly to CNPG Pooler spec.pgbouncer.parameters. + See: https://cloudnative-pg.io/docs/1.28/connection_pooling/#pgbouncer-configuration-options + type: object + instances: + default: 3 + description: |- + Instances is the number of PgBouncer pod replicas. + Higher values provide better availability and load distribution. + format: int32 + maximum: 10 + minimum: 1 + type: integer + mode: + default: transaction + description: Mode defines the connection pooling strategy. + enum: + - session + - transaction + - statement + type: string + type: object + connectionPoolerEnabled: + default: false + description: |- + ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed for this cluster. + When set, takes precedence over the class-level connectionPoolerEnabled value. + type: boolean + instances: + description: Instances overrides the number of PostgreSQL instances + from ClusterClass. + format: int32 + maximum: 10 + minimum: 1 + type: integer + managedRoles: + description: |- + ManagedRoles contains PostgreSQL roles that should be created in the cluster. + This field supports Server-Side Apply with per-role granularity, allowing + multiple PostgresDatabase controllers to manage different roles independently. + items: + description: ManagedRole represents a PostgreSQL role to be created + and managed in the cluster. + properties: + exists: + default: true + description: Exists controls whether the role should be present + (true) or absent (false) in PostgreSQL. + type: boolean + name: + description: Name of the role/user to create. + maxLength: 63 + minLength: 1 + type: string + passwordSecretRef: + description: PasswordSecretRef references a Secret and the key + within it containing the password for this role. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + pgHBA: + default: [] + description: |- + PgHBA contains pg_hba.conf host-based authentication rules. + Defines client authentication and connection security (cluster-wide). + Maps to pg_hba.conf settings. + Default empty array prevents panic. + Example: ["hostssl all all 0.0.0.0/0 scram-sha-256"] + items: + type: string + type: array + postgresVersion: + description: |- + PostgresVersion is the PostgreSQL version (major or major.minor). + Examples: "18" (latest 18.x), "18.1" (specific minor), "17", "16" + pattern: ^[0-9]+(\.[0-9]+)?$ + type: string + postgresqlConfig: + additionalProperties: + type: string + default: {} + description: |- + PostgreSQL overrides PostgreSQL engine parameters from ClusterClass. + Maps to postgresql.conf settings. + Default empty map prevents panic. + Example: {"shared_buffers": "128MB", "log_min_duration_statement": "500ms"} + type: object + resources: + description: Resources overrides CPU/memory resources from ClusterClass. + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This field depends on the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + storage: + anyOf: + - type: integer + - type: string + description: |- + Storage overrides the storage size from ClusterClass. + Example: "5Gi" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + required: + - class + type: object + x-kubernetes-validations: + - messageExpression: '!has(self.postgresVersion) ? ''postgresVersion cannot + be removed once set (was: '' + oldSelf.postgresVersion + '')'' : ''postgresVersion + major version cannot be downgraded (from: '' + oldSelf.postgresVersion + + '', to: '' + self.postgresVersion + '')''' + rule: '!has(oldSelf.postgresVersion) || (has(self.postgresVersion) && + int(self.postgresVersion.split(''.'')[0]) >= int(oldSelf.postgresVersion.split(''.'')[0]))' + - messageExpression: '!has(self.storage) ? ''storage cannot be removed + once set (was: '' + string(oldSelf.storage) + '')'' : ''storage size + cannot be decreased (from: '' + string(oldSelf.storage) + '', to: + '' + string(self.storage) + '')''' + rule: '!has(oldSelf.storage) || (has(self.storage) && quantity(self.storage).compareTo(quantity(oldSelf.storage)) + >= 0)' + - message: connectionPoolerConfig cannot be overridden on PostgresCluster + rule: '!has(self.connectionPoolerConfig)' + status: + description: PostgresClusterStatus defines the observed state of PostgresCluster. + properties: + conditions: + description: Conditions represent the latest available observations + of the PostgresCluster's state. + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + 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. + 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 + connectionPoolerStatus: + description: |- + ConnectionPoolerStatus contains the observed state of the connection pooler. + Only populated when connection pooler is enabled in the PostgresClusterClass. + properties: + enabled: + description: Enabled indicates whether pooler is active for this + cluster. + type: boolean + type: object + managedRolesStatus: + description: ManagedRolesStatus tracks the reconciliation status of + managed roles. + properties: + failed: + additionalProperties: + type: string + description: Failed contains roles that failed to reconcile with + error messages. + type: object + pending: + description: Pending contains roles that are being created but + not yet ready. + items: + type: string + type: array + reconciled: + description: Reconciled contains roles that have been successfully + created and are ready. + items: + type: string + type: array + type: object + phase: + description: |- + Phase represents the current phase of the PostgresCluster. + Values: "Pending", "Provisioning", "Failed", "Ready", "Deleting" + type: string + provisionerRef: + description: |- + ProvisionerRef contains reference to the provisioner resource managing this PostgresCluster. + Right now, only CNPG is supported. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + resources: + description: Resources contains references to related Kubernetes resources + like ConfigMaps and Secrets. + properties: + configMapRef: + description: |- + ConfigMapRef references the ConfigMap with connection endpoints. + Contains: CLUSTER_ENDPOINTS, POOLER_ENDPOINTS (if connection pooler enabled) + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + secretRef: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml b/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml new file mode 100644 index 000000000..d8df534d3 --- /dev/null +++ b/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml @@ -0,0 +1,259 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.18.0 + name: postgresdatabases.enterprise.splunk.com +spec: + group: enterprise.splunk.com + names: + kind: PostgresDatabase + listKind: PostgresDatabaseList + plural: postgresdatabases + singular: postgresdatabase + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.clusterRef.name + name: Cluster + type: string + - jsonPath: .status.phase + name: Phase + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v4 + schema: + openAPIV3Schema: + description: PostgresDatabase is the Schema for the postgresdatabases 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: PostgresDatabaseSpec defines the desired state of PostgresDatabase. + properties: + clusterRef: + description: Reference to Postgres Cluster managed by postgresCluster + controller + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + databases: + items: + properties: + deletionPolicy: + default: Delete + enum: + - Delete + - Retain + type: string + extensions: + items: + type: string + type: array + name: + maxLength: 30 + type: string + required: + - name + type: object + maxItems: 10 + minItems: 1 + type: array + x-kubernetes-validations: + - message: database names must be unique + rule: self.all(x, self.filter(y, y.name == x.name).size() == 1) + required: + - clusterRef + - databases + type: object + x-kubernetes-validations: + - message: clusterRef is immutable + rule: self.clusterRef == oldSelf.clusterRef + status: + description: PostgresDatabaseStatus defines the observed state of PostgresDatabase. + properties: + conditions: + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + 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. + 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 + databases: + items: + properties: + adminUserSecretRef: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + configMap: + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + databaseRef: + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + type: object + x-kubernetes-map-type: atomic + name: + type: string + ready: + type: boolean + rwUserSecretRef: + description: SecretKeySelector selects a key of a Secret. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + type: array + observedGeneration: + description: ObservedGeneration represents the .metadata.generation + that the status was set based upon. + format: int64 + type: integer + phase: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml index 21dd480ce..648316baf 100644 --- a/config/crd/kustomization.yaml +++ b/config/crd/kustomization.yaml @@ -13,6 +13,9 @@ resources: - bases/enterprise.splunk.com_ingestorclusters.yaml - bases/enterprise.splunk.com_queues.yaml - bases/enterprise.splunk.com_objectstorages.yaml +- bases/enterprise.splunk.com_postgresdatabases.yaml +- bases/enterprise.splunk.com_postgresclusterclasses.yaml +- bases/enterprise.splunk.com_postgresclusters.yaml #+kubebuilder:scaffold:crdkustomizeresource diff --git a/config/rbac/postgrescluster_admin_role.yaml b/config/rbac/postgrescluster_admin_role.yaml new file mode 100644 index 000000000..bb3f2e06b --- /dev/null +++ b/config/rbac/postgrescluster_admin_role.yaml @@ -0,0 +1,27 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants full permissions ('*') over enterprise.splunk.com. +# This role is intended for users authorized to modify roles and bindings within the cluster, +# enabling them to delegate specific permissions to other users or groups as needed. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgrescluster-admin-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusters + verbs: + - '*' +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusters/status + verbs: + - get diff --git a/config/rbac/postgrescluster_editor_role.yaml b/config/rbac/postgrescluster_editor_role.yaml new file mode 100644 index 000000000..13884ce4b --- /dev/null +++ b/config/rbac/postgrescluster_editor_role.yaml @@ -0,0 +1,33 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants permissions to create, update, and delete resources within the enterprise.splunk.com. +# This role is intended for users who need to manage these resources +# but should not control RBAC or manage permissions for others. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgrescluster-editor-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusters + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusters/status + verbs: + - get diff --git a/config/rbac/postgrescluster_viewer_role.yaml b/config/rbac/postgrescluster_viewer_role.yaml new file mode 100644 index 000000000..0474151b3 --- /dev/null +++ b/config/rbac/postgrescluster_viewer_role.yaml @@ -0,0 +1,29 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants read-only access to enterprise.splunk.com resources. +# This role is intended for users who need visibility into these resources +# without permissions to modify them. It is ideal for monitoring purposes and limited-access viewing. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgrescluster-viewer-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusters + verbs: + - get + - list + - watch +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusters/status + verbs: + - get diff --git a/config/rbac/postgresclusterclass_admin_role.yaml b/config/rbac/postgresclusterclass_admin_role.yaml new file mode 100644 index 000000000..d16defdd6 --- /dev/null +++ b/config/rbac/postgresclusterclass_admin_role.yaml @@ -0,0 +1,27 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants full permissions ('*') over enterprise.splunk.com. +# This role is intended for users authorized to modify roles and bindings within the cluster, +# enabling them to delegate specific permissions to other users or groups as needed. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresclusterclass-admin-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses + verbs: + - '*' +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses/status + verbs: + - get diff --git a/config/rbac/postgresclusterclass_editor_role.yaml b/config/rbac/postgresclusterclass_editor_role.yaml new file mode 100644 index 000000000..a634510ff --- /dev/null +++ b/config/rbac/postgresclusterclass_editor_role.yaml @@ -0,0 +1,33 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants permissions to create, update, and delete resources within the enterprise.splunk.com. +# This role is intended for users who need to manage these resources +# but should not control RBAC or manage permissions for others. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresclusterclass-editor-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses/status + verbs: + - get diff --git a/config/rbac/postgresclusterclass_viewer_role.yaml b/config/rbac/postgresclusterclass_viewer_role.yaml new file mode 100644 index 000000000..4da318ff2 --- /dev/null +++ b/config/rbac/postgresclusterclass_viewer_role.yaml @@ -0,0 +1,29 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants read-only access to enterprise.splunk.com resources. +# This role is intended for users who need visibility into these resources +# without permissions to modify them. It is ideal for monitoring purposes and limited-access viewing. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresclusterclass-viewer-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses + verbs: + - get + - list + - watch +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses/status + verbs: + - get diff --git a/config/rbac/postgresdatabase_admin_role.yaml b/config/rbac/postgresdatabase_admin_role.yaml new file mode 100644 index 000000000..b98548d5c --- /dev/null +++ b/config/rbac/postgresdatabase_admin_role.yaml @@ -0,0 +1,27 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants full permissions ('*') over enterprise.splunk.com. +# This role is intended for users authorized to modify roles and bindings within the cluster, +# enabling them to delegate specific permissions to other users or groups as needed. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresdatabase-admin-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresdatabases + verbs: + - '*' +- apiGroups: + - enterprise.splunk.com + resources: + - postgresdatabases/status + verbs: + - get diff --git a/config/rbac/postgresdatabase_editor_role.yaml b/config/rbac/postgresdatabase_editor_role.yaml new file mode 100644 index 000000000..21891af10 --- /dev/null +++ b/config/rbac/postgresdatabase_editor_role.yaml @@ -0,0 +1,33 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants permissions to create, update, and delete resources within the enterprise.splunk.com. +# This role is intended for users who need to manage these resources +# but should not control RBAC or manage permissions for others. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresdatabase-editor-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresdatabases + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - enterprise.splunk.com + resources: + - postgresdatabases/status + verbs: + - get diff --git a/config/rbac/postgresdatabase_viewer_role.yaml b/config/rbac/postgresdatabase_viewer_role.yaml new file mode 100644 index 000000000..702fab391 --- /dev/null +++ b/config/rbac/postgresdatabase_viewer_role.yaml @@ -0,0 +1,29 @@ +# This rule is not used by the project splunk-operator itself. +# It is provided to allow the cluster admin to help manage permissions for users. +# +# Grants read-only access to enterprise.splunk.com resources. +# This role is intended for users who need visibility into these resources +# without permissions to modify them. It is ideal for monitoring purposes and limited-access viewing. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresdatabase-viewer-role +rules: +- apiGroups: + - enterprise.splunk.com + resources: + - postgresdatabases + verbs: + - get + - list + - watch +- apiGroups: + - enterprise.splunk.com + resources: + - postgresdatabases/status + verbs: + - get diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 7873f18e1..d676ac24a 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -55,6 +55,8 @@ rules: - licensemasters - monitoringconsoles - objectstorages + - postgresclusters + - postgresdatabases - queues - searchheadclusters - standalones @@ -77,6 +79,8 @@ rules: - licensemasters/finalizers - monitoringconsoles/finalizers - objectstorages/finalizers + - postgresclusters/finalizers + - postgresdatabases/finalizers - queues/finalizers - searchheadclusters/finalizers - standalones/finalizers @@ -93,6 +97,8 @@ rules: - licensemasters/status - monitoringconsoles/status - objectstorages/status + - postgresclusters/status + - postgresdatabases/status - queues/status - searchheadclusters/status - standalones/status @@ -100,3 +106,32 @@ rules: - get - patch - update +- apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses + verbs: + - get + - list + - watch +- apiGroups: + - postgresql.cnpg.io + resources: + - clusters + - databases + - poolers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - postgresql.cnpg.io + resources: + - clusters/status + - poolers/status + verbs: + - get diff --git a/config/samples/enterprise_v4_postgrescluster_default.yaml b/config/samples/enterprise_v4_postgrescluster_default.yaml new file mode 100644 index 000000000..6669aceb2 --- /dev/null +++ b/config/samples/enterprise_v4_postgrescluster_default.yaml @@ -0,0 +1,12 @@ +# This is a sample PostgresCluster manifest with default values for all fields. +# Defaults are inherited from the ClusterClass "postgresql-dev" (see enterprise_v4_clusterclass_dev.yaml) and can be overridden here. +apiVersion: enterprise.splunk.com/v4 +kind: PostgresCluster +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresql-cluster-dev +spec: + class: postgresql-dev + diff --git a/config/samples/enterprise_v4_postgrescluster_dev.yaml b/config/samples/enterprise_v4_postgrescluster_dev.yaml new file mode 100644 index 000000000..b5c6b8700 --- /dev/null +++ b/config/samples/enterprise_v4_postgrescluster_dev.yaml @@ -0,0 +1,28 @@ +# Sample PostgresCluster using Postgres-dev ClusterClass with overriding defaults +# This sample demonstrates how to override default values from the ClusterClass "postgresql-dev" (see enterprise_v4_clusterclass_dev.yaml) in a PostgresCluster manifest. +# Overrides include changing storage, changing PostgreSQL version, and modifying resources. +apiVersion: enterprise.splunk.com/v4 +kind: PostgresCluster +metadata: + labels: + app.kubernetes.io/name: splunk-operator + app.kubernetes.io/managed-by: kustomize + name: postgresql-cluster-dev +spec: + # Reference the ClusterClass to inherit defaults - this is required, immutable, and must match the name of an existing ClusterClass + class: postgresql-dev + clusterDeletionPolicy: Retain + instances: 3 + # Storage and PostgreSQL version are overridden from the ClusterClass defaults. Validation rules on the PostgresCluster resource will prevent removing these fields or setting them to lower values than the original overrides. + storage: 1Gi + postgresVersion: "15.10" + resources: + requests: + cpu: "250m" + memory: "512Mi" + limits: + cpu: "500m" + memory: "1Gi" + # Enable connection pooler for this cluster + # Takes precedence over the class-level connectionPoolerEnabled value + connectionPoolerEnabled: true \ No newline at end of file diff --git a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml new file mode 100644 index 000000000..a9846e36c --- /dev/null +++ b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml @@ -0,0 +1,39 @@ +--- +# Development PostgresClusterClass +# Minimal configuration for local development and testing +apiVersion: enterprise.splunk.com/v4 +kind: PostgresClusterClass +metadata: + name: postgresql-dev +spec: + provisioner: postgresql.cnpg.io + + config: + # Single instance - no HA (suitable for development) + instances: 1 + + # Small storage for development + storage: 10Gi + + # Latest PostgreSQL 18 + postgresVersion: "18" + + # Minimal resources + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1" + memory: "2Gi" + connectionPoolerEnabled: true + + cnpg: + # Restart method - tolerate downtime in dev + primaryUpdateMethod: restart + connectionPooler: + instances: 2 + mode: transaction + config: + max_client_conn: "100" + diff --git a/config/samples/enterprise_v4_postgresclusterclass_prod.yaml b/config/samples/enterprise_v4_postgresclusterclass_prod.yaml new file mode 100644 index 000000000..56d9f232a --- /dev/null +++ b/config/samples/enterprise_v4_postgresclusterclass_prod.yaml @@ -0,0 +1,80 @@ +--- +# Production PostgresClusterClass +# Full configuration with HA, security, and tuned PostgreSQL settings +apiVersion: enterprise.splunk.com/v4 +kind: PostgresClusterClass +metadata: + name: postgresql-prod +spec: + provisioner: postgresql.cnpg.io + + config: + # High availability - 1 primary + 2 replicas + instances: 3 + + # Production storage + storage: 100Gi + + # PostgreSQL 18.1 (specific minor version) + postgresVersion: "18.1" + + # Production-grade resources + resources: + requests: + cpu: "2" + memory: "8Gi" + limits: + cpu: "4" + memory: "16Gi" + + # Tuned PostgreSQL configuration for OLTP workload + postgresqlConfig: + # Connection settings + max_connections: "200" + + # Memory settings (based on 8GB RAM) + shared_buffers: "2GB" + effective_cache_size: "6GB" + maintenance_work_mem: "512MB" + work_mem: "20MB" + + # WAL settings + wal_buffers: "16MB" + min_wal_size: "1GB" + max_wal_size: "4GB" + + # Query tuning + random_page_cost: "1.1" # SSD optimization + effective_io_concurrency: "200" + + # Logging + log_destination: "stderr" + logging_collector: "on" + log_min_duration_statement: "1000" # Log queries > 1s + + # Secure pg_hba configuration + pgHBA: + # Reject all non-SSL connections + - "hostnossl all all 0.0.0.0/0 reject" + # Require SSL + password authentication + - "hostssl all all 0.0.0.0/0 scram-sha-256" + + # Enable connection pooler for clusters using this class + connectionPoolerEnabled: true + + cnpg: + # Switchover method - minimal downtime via automated failover + primaryUpdateMethod: switchover + + # Connection pooler configuration (PgBouncer) + connectionPooler: + # Number of PgBouncer pod replicas + instances: 3 + # Pooling mode + mode: transaction + # PgBouncer configuration parameters + config: + # Maximum number of client connections allowed + max_client_conn: "100" + # Default number of server connections per user/database pair + default_pool_size: "20" diff --git a/config/samples/enterprise_v4_postgresdatabase.yaml b/config/samples/enterprise_v4_postgresdatabase.yaml new file mode 100644 index 000000000..874393548 --- /dev/null +++ b/config/samples/enterprise_v4_postgresdatabase.yaml @@ -0,0 +1,18 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresDatabase +metadata: + name: splunk-databases + # namespace: default +spec: + clusterRef: + name: postgresql-cluster-dev + databases: + - name: kvstore + extensions: + - pg_stat_statements + - pgcrypto + deletionPolicy: Delete + - name: analytics + extensions: + - pg_trgm + deletionPolicy: Delete \ No newline at end of file diff --git a/config/samples/kustomization.yaml b/config/samples/kustomization.yaml index 34c05ab05..b2d13b188 100644 --- a/config/samples/kustomization.yaml +++ b/config/samples/kustomization.yaml @@ -16,4 +16,7 @@ resources: - enterprise_v4_ingestorcluster.yaml - enterprise_v4_queue.yaml - enterprise_v4_objectstorage.yaml +- enterprise_v4_postgresdatabase.yaml +- enterprise_v4_postgresclusterclass_dev.yaml +- enterprise_v4_postgrescluster_default.yaml #+kubebuilder:scaffold:manifestskustomizesamples diff --git a/config/samples/validation-tests/database/01-invalid-duplicate-names.yaml b/config/samples/validation-tests/database/01-invalid-duplicate-names.yaml new file mode 100644 index 000000000..95cd4d19b --- /dev/null +++ b/config/samples/validation-tests/database/01-invalid-duplicate-names.yaml @@ -0,0 +1,14 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresDatabase +metadata: + name: test-duplicate-names + namespace: default +spec: + clusterRef: + name: postgres-cluster + databases: + - name: kvstore + extensions: + - pg_stat_statements + - name: analytics + - name: kvstore # DUPLICATE! Should fail with: "database names must be unique" diff --git a/config/samples/validation-tests/database/02-invalid-immutability-update.yaml b/config/samples/validation-tests/database/02-invalid-immutability-update.yaml new file mode 100644 index 000000000..73dfb300b --- /dev/null +++ b/config/samples/validation-tests/database/02-invalid-immutability-update.yaml @@ -0,0 +1,19 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresDatabase +metadata: + name: test-postgresdatabase + namespace: default +spec: + clusterRef: + name: different-cluster # CHANGED! Should fail with: "clusterRef is immutable" + databases: + - name: kvstore + extensions: + - pg_stat_statements + - pgcrypto + deletionPolicy: Retain + - name: analytics + extensions: + - pg_trgm + deletionPolicy: Delete + - name: metrics diff --git a/config/samples/validation-tests/database/03-invalid-deletion-policy.yaml b/config/samples/validation-tests/database/03-invalid-deletion-policy.yaml new file mode 100644 index 000000000..bb911e88c --- /dev/null +++ b/config/samples/validation-tests/database/03-invalid-deletion-policy.yaml @@ -0,0 +1,11 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresDatabase +metadata: + name: test-invalid-policy + namespace: default +spec: + clusterRef: + name: postgres-cluster + databases: + - name: kvstore + deletionPolicy: Archive # INVALID! Only "Delete" or "Retain" allowed diff --git a/config/samples/validation-tests/database/04-invalid-missing-fields.yaml b/config/samples/validation-tests/database/04-invalid-missing-fields.yaml new file mode 100644 index 000000000..c0376eb21 --- /dev/null +++ b/config/samples/validation-tests/database/04-invalid-missing-fields.yaml @@ -0,0 +1,11 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresDatabase +metadata: + name: test-missing-fields + namespace: default +spec: + # Missing clusterRef - REQUIRED field! + databases: + - name: kvstore + - extensions: # Missing name - REQUIRED in DatabaseDefinition! + - pg_stat_statements diff --git a/go.mod b/go.mod index 3615f95ed..2f9b00cc6 100644 --- a/go.mod +++ b/go.mod @@ -13,26 +13,30 @@ require ( github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85 github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1 github.com/aws/aws-sdk-go-v2/service/sqs v1.42.21 + github.com/cloudnative-pg/cloudnative-pg v1.28.0 github.com/go-logr/logr v1.4.3 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 + github.com/jackc/pgx/v5 v5.8.0 github.com/joho/godotenv v1.5.1 github.com/minio/minio-go/v7 v7.0.16 github.com/onsi/ginkgo v1.16.5 github.com/onsi/ginkgo/v2 v2.28.1 github.com/onsi/gomega v1.39.1 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.22.0 + github.com/prometheus/client_golang v1.23.2 + github.com/sethvargo/go-password v0.3.1 github.com/stretchr/testify v1.11.1 github.com/wk8/go-ordered-map/v2 v2.1.7 - go.uber.org/zap v1.27.0 + go.uber.org/zap v1.27.1 google.golang.org/api v0.155.0 - k8s.io/api v0.33.0 - k8s.io/apiextensions-apiserver v0.33.0 - k8s.io/apimachinery v0.33.0 - k8s.io/client-go v0.33.0 + k8s.io/api v0.34.2 + k8s.io/apiextensions-apiserver v0.34.2 + k8s.io/apimachinery v0.34.2 + k8s.io/client-go v0.34.2 k8s.io/kubectl v0.26.2 - sigs.k8s.io/controller-runtime v0.21.0 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 + sigs.k8s.io/controller-runtime v0.22.4 ) require ( @@ -64,26 +68,40 @@ require ( github.com/buger/jsonparser v1.1.1 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cloudnative-pg/barman-cloud v0.3.3 // indirect + github.com/cloudnative-pg/cnpg-i v0.3.0 // indirect + github.com/cloudnative-pg/machinery v0.3.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.13.0 // indirect github.com/evanphx/json-patch/v5 v5.9.11 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/jsonpointer v0.22.0 // indirect + github.com/go-openapi/jsonreference v0.21.1 // indirect + github.com/go-openapi/swag v0.24.1 // indirect + github.com/go-openapi/swag/cmdutils v0.24.0 // indirect + github.com/go-openapi/swag/conv v0.24.0 // indirect + github.com/go-openapi/swag/fileutils v0.24.0 // indirect + github.com/go-openapi/swag/jsonname v0.24.0 // indirect + github.com/go-openapi/swag/jsonutils v0.24.0 // indirect + github.com/go-openapi/swag/loading v0.24.0 // indirect + github.com/go-openapi/swag/mangling v0.24.0 // indirect + github.com/go-openapi/swag/netutils v0.24.0 // indirect + github.com/go-openapi/swag/stringutils v0.24.0 // indirect + github.com/go-openapi/swag/typeutils v0.24.0 // indirect + github.com/go-openapi/swag/yamlutils v0.24.0 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/cel-go v0.23.2 // indirect - github.com/google/gnostic-models v0.6.9 // indirect + github.com/google/cel-go v0.26.0 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 // indirect github.com/google/s2a-go v0.1.7 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect @@ -91,35 +109,40 @@ require ( github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid v1.3.1 // indirect + github.com/kubernetes-csi/external-snapshotter/client/v8 v8.4.0 // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/lib/pq v1.10.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect github.com/minio/md5-simd v1.1.0 // indirect github.com/minio/sha256-simd v0.1.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/moby/spdystream v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.86.2 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rs/xid v1.2.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/spf13/cobra v1.8.1 // indirect - github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/cobra v1.10.1 // indirect + github.com/spf13/pflag v1.0.10 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/x448/float16 v0.8.4 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect go.opentelemetry.io/otel v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect @@ -129,6 +152,7 @@ require ( go.opentelemetry.io/otel/trace v1.40.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect go.uber.org/multierr v1.11.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.47.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect @@ -139,7 +163,7 @@ require ( golang.org/x/sys v0.40.0 // indirect golang.org/x/term v0.39.0 // indirect golang.org/x/text v0.33.0 // indirect - golang.org/x/time v0.9.0 // indirect + golang.org/x/time v0.12.0 // indirect golang.org/x/tools v0.41.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect @@ -147,18 +171,17 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect google.golang.org/grpc v1.78.0 // indirect google.golang.org/protobuf v1.36.11 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.33.0 // indirect - k8s.io/component-base v0.33.0 // indirect + k8s.io/apiserver v0.34.2 // indirect + k8s.io/component-base v0.34.2 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect + k8s.io/kube-openapi v0.0.0-20250905212525-66792eed8611 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/go.sum b/go.sum index f4c6dae6b..9ec3df9aa 100644 --- a/go.sum +++ b/go.sum @@ -82,11 +82,18 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudnative-pg/barman-cloud v0.3.3 h1:EEcjeV+IUivDpmyF/H/XGY1pGaKJ5LS5MYeB6wgGcak= +github.com/cloudnative-pg/barman-cloud v0.3.3/go.mod h1:5CM4MncAxAjnqxjDt0I5E/oVd7gsMLL0/o/wQ+vUSgs= +github.com/cloudnative-pg/cloudnative-pg v1.28.0 h1:vkv0a0ewDSfJOPJrsyUr4uczsxheReAWf/k171V0Dm0= +github.com/cloudnative-pg/cloudnative-pg v1.28.0/go.mod h1:209fkRR6m0vXUVQ9Q498eAPQqN2UlXECbXXtpGsZz3I= +github.com/cloudnative-pg/cnpg-i v0.3.0 h1:5ayNOG5x68lU70IVbHDZQrv5p+bErCJ0mqRmOpW2jjE= +github.com/cloudnative-pg/cnpg-i v0.3.0/go.mod h1:VOIWWXcJ1RyioK+elR2DGOa4cBA6K+6UQgx05aZmH+g= +github.com/cloudnative-pg/machinery v0.3.1 h1:KtPA6EwELTUNisCMLiFYkK83GU9606rkGQhDJGPB8Yw= +github.com/cloudnative-pg/machinery v0.3.1/go.mod h1:jebuqKxZAbrRKDEEpVCIDMKW+FbWtB9Kf/hb2kMUu9o= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0= github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -94,8 +101,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8Yc github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes= +github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -105,18 +112,18 @@ github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU= github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs= github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo= github.com/gkampitakis/go-diff v1.3.2 h1:Qyn0J9XJSDTgnsgHRdz9Zp24RaJeKMUHg2+PDZZdC4M= @@ -130,14 +137,34 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/jsonpointer v0.22.0 h1:TmMhghgNef9YXxTu1tOopo+0BGEytxA+okbry0HjZsM= +github.com/go-openapi/jsonpointer v0.22.0/go.mod h1:xt3jV88UtExdIkkL7NloURjRQjbeUgcxFblMjq2iaiU= +github.com/go-openapi/jsonreference v0.21.1 h1:bSKrcl8819zKiOgxkbVNRUBIr6Wwj9KYrDbMjRs0cDA= +github.com/go-openapi/jsonreference v0.21.1/go.mod h1:PWs8rO4xxTUqKGu+lEvvCxD5k2X7QYkKAepJyCmSTT8= +github.com/go-openapi/swag v0.24.1 h1:DPdYTZKo6AQCRqzwr/kGkxJzHhpKxZ9i/oX0zag+MF8= +github.com/go-openapi/swag v0.24.1/go.mod h1:sm8I3lCPlspsBBwUm1t5oZeWZS0s7m/A+Psg0ooRU0A= +github.com/go-openapi/swag/cmdutils v0.24.0 h1:KlRCffHwXFI6E5MV9n8o8zBRElpY4uK4yWyAMWETo9I= +github.com/go-openapi/swag/cmdutils v0.24.0/go.mod h1:uxib2FAeQMByyHomTlsP8h1TtPd54Msu2ZDU/H5Vuf8= +github.com/go-openapi/swag/conv v0.24.0 h1:ejB9+7yogkWly6pnruRX45D1/6J+ZxRu92YFivx54ik= +github.com/go-openapi/swag/conv v0.24.0/go.mod h1:jbn140mZd7EW2g8a8Y5bwm8/Wy1slLySQQ0ND6DPc2c= +github.com/go-openapi/swag/fileutils v0.24.0 h1:U9pCpqp4RUytnD689Ek/N1d2N/a//XCeqoH508H5oak= +github.com/go-openapi/swag/fileutils v0.24.0/go.mod h1:3SCrCSBHyP1/N+3oErQ1gP+OX1GV2QYFSnrTbzwli90= +github.com/go-openapi/swag/jsonname v0.24.0 h1:2wKS9bgRV/xB8c62Qg16w4AUiIrqqiniJFtZGi3dg5k= +github.com/go-openapi/swag/jsonname v0.24.0/go.mod h1:GXqrPzGJe611P7LG4QB9JKPtUZ7flE4DOVechNaDd7Q= +github.com/go-openapi/swag/jsonutils v0.24.0 h1:F1vE1q4pg1xtO3HTyJYRmEuJ4jmIp2iZ30bzW5XgZts= +github.com/go-openapi/swag/jsonutils v0.24.0/go.mod h1:vBowZtF5Z4DDApIoxcIVfR8v0l9oq5PpYRUuteVu6f0= +github.com/go-openapi/swag/loading v0.24.0 h1:ln/fWTwJp2Zkj5DdaX4JPiddFC5CHQpvaBKycOlceYc= +github.com/go-openapi/swag/loading v0.24.0/go.mod h1:gShCN4woKZYIxPxbfbyHgjXAhO61m88tmjy0lp/LkJk= +github.com/go-openapi/swag/mangling v0.24.0 h1:PGOQpViCOUroIeak/Uj/sjGAq9LADS3mOyjznmHy2pk= +github.com/go-openapi/swag/mangling v0.24.0/go.mod h1:Jm5Go9LHkycsz0wfoaBDkdc4CkpuSnIEf62brzyCbhc= +github.com/go-openapi/swag/netutils v0.24.0 h1:Bz02HRjYv8046Ycg/w80q3g9QCWeIqTvlyOjQPDjD8w= +github.com/go-openapi/swag/netutils v0.24.0/go.mod h1:WRgiHcYTnx+IqfMCtu0hy9oOaPR0HnPbmArSRN1SkZM= +github.com/go-openapi/swag/stringutils v0.24.0 h1:i4Z/Jawf9EvXOLUbT97O0HbPUja18VdBxeadyAqS1FM= +github.com/go-openapi/swag/stringutils v0.24.0/go.mod h1:5nUXB4xA0kw2df5PRipZDslPJgJut+NjL7D25zPZ/4w= +github.com/go-openapi/swag/typeutils v0.24.0 h1:d3szEGzGDf4L2y1gYOSSLeK6h46F+zibnEas2Jm/wIw= +github.com/go-openapi/swag/typeutils v0.24.0/go.mod h1:q8C3Kmk/vh2VhpCLaoR2MVWOGP8y7Jc8l82qCTd1DYI= +github.com/go-openapi/swag/yamlutils v0.24.0 h1:bhw4894A7Iw6ne+639hsBNRHg9iZg/ISrOVr+sJGp4c= +github.com/go-openapi/swag/yamlutils v0.24.0/go.mod h1:DpKv5aYuaGm/sULePoeiG8uwMpZSfReo1HR3Ik0yaG8= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -166,17 +193,16 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/cel-go v0.23.2 h1:UdEe3CvQh3Nv+E/j9r1Y//WO0K0cSyD7/y0bzyLIMI4= -github.com/google/cel-go v0.23.2/go.mod h1:52Pb6QsDbC5kvgxvZhiL9QX1oZEkcUF/ZqaPx1J5Wwo= -github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= -github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= +github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI= +github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM= +github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -204,6 +230,14 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fm github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= +github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.8.0 h1:TYPDoleBBme0xGSAX3/+NujXXtpZn9HBONkQC7IEZSo= +github.com/jackc/pgx/v5 v5.8.0/go.mod h1:QVeDInX2m9VyzvNeiCJVjCkNFqzsNb43204HshNSZKw= +github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= +github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -223,17 +257,20 @@ github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kubernetes-csi/external-snapshotter/client/v8 v8.4.0 h1:bMqrb3UHgHbP+PW9VwiejfDJU1R0PpXVZNMdeH8WYKI= +github.com/kubernetes-csi/external-snapshotter/client/v8 v8.4.0/go.mod h1:E3vdYxHj2C2q6qo8/Da4g7P+IcwqRZyy3gJBzYybV9Y= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg= github.com/mfridman/tparse v0.18.0 h1:wh6dzOKaIwkUGyKgOntDW4liXSo37qg5AXbIhkMV3vE= @@ -253,8 +290,9 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= @@ -281,29 +319,34 @@ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.86.2 h1:VRXUgbGmpmjZgFYiUnTwlC+JjfCUs5KKFsorJhI1ZKQ= +github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.86.2/go.mod h1:nPk0OteXBkbT0CRCa2oZQL1jRLW6RJ2fuIijHypeJdk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sethvargo/go-password v0.3.1 h1:WqrLTjo7X6AcVYfC6R7GtSyuUQR9hGyAj/f1PYQZCJU= +github.com/sethvargo/go-password v0.3.1/go.mod h1:rXofC1zT54N7R8K/h1WDUdkf9BOx5OptoxrMBcrXzvs= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -321,6 +364,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/thoas/go-funk v0.9.3 h1:7+nAEx3kn5ZJcnDm2Bh23N2yOtweO14bi//dvRtgLpw= +github.com/thoas/go-funk v0.9.3/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -339,8 +384,8 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= @@ -363,8 +408,10 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -430,8 +477,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= -golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= -golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= +golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -489,8 +536,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= @@ -508,36 +555,35 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.33.0 h1:yTgZVn1XEe6opVpP1FylmNrIFWuDqe2H0V8CT5gxfIU= -k8s.io/api v0.33.0/go.mod h1:CTO61ECK/KU7haa3qq8sarQ0biLq2ju405IZAd9zsiM= -k8s.io/apiextensions-apiserver v0.33.0 h1:d2qpYL7Mngbsc1taA4IjJPRJ9ilnsXIrndH+r9IimOs= -k8s.io/apiextensions-apiserver v0.33.0/go.mod h1:VeJ8u9dEEN+tbETo+lFkwaaZPg6uFKLGj5vyNEwwSzc= -k8s.io/apimachinery v0.33.0 h1:1a6kHrJxb2hs4t8EE5wuR/WxKDwGN1FKH3JvDtA0CIQ= -k8s.io/apimachinery v0.33.0/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM= -k8s.io/apiserver v0.33.0 h1:QqcM6c+qEEjkOODHppFXRiw/cE2zP85704YrQ9YaBbc= -k8s.io/apiserver v0.33.0/go.mod h1:EixYOit0YTxt8zrO2kBU7ixAtxFce9gKGq367nFmqI8= -k8s.io/client-go v0.33.0 h1:UASR0sAYVUzs2kYuKn/ZakZlcs2bEHaizrrHUZg0G98= -k8s.io/client-go v0.33.0/go.mod h1:kGkd+l/gNGg8GYWAPr0xF1rRKvVWvzh9vmZAMXtaKOg= -k8s.io/component-base v0.33.0 h1:Ot4PyJI+0JAD9covDhwLp9UNkUja209OzsJ4FzScBNk= -k8s.io/component-base v0.33.0/go.mod h1:aXYZLbw3kihdkOPMDhWbjGCO6sg+luw554KP51t8qCU= +k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= +k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= +k8s.io/apiextensions-apiserver v0.34.2 h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo= +k8s.io/apiextensions-apiserver v0.34.2/go.mod h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE= +k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= +k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE= +k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI= +k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= +k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= +k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ= +k8s.io/component-base v0.34.2/go.mod h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= -k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= +k8s.io/kube-openapi v0.0.0-20250905212525-66792eed8611 h1:o4oKOsvSymDkZRsMAPZU7bRdwL+lPOK5VS10Dr1D6eg= +k8s.io/kube-openapi v0.0.0-20250905212525-66792eed8611/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= k8s.io/kubectl v0.26.2 h1:SMPB4j48eVFxsYluBq3VLyqXtE6b72YnszkbTAtFye4= k8s.io/kubectl v0.26.2/go.mod h1:KYWOXSwp2BrDn3kPeoU/uKzKtdqvhK1dgZGd0+no4cM= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8= -sigs.k8s.io/controller-runtime v0.21.0/go.mod h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/controller-runtime v0.22.4 h1:GEjV7KV3TY8e+tJ2LCTxUTanW4z/FmNB7l327UfMq9A= +sigs.k8s.io/controller-runtime v0.22.4/go.mod h1:+QX1XUpTXN4mLoblf4tqr5CQcyHPAki2HLXqQMY6vh8= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go new file mode 100644 index 000000000..dfa1f7eaf --- /dev/null +++ b/internal/controller/postgrescluster_controller.go @@ -0,0 +1,179 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package controller + +import ( + "context" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + clustercore "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/builder" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + "sigs.k8s.io/controller-runtime/pkg/event" + "sigs.k8s.io/controller-runtime/pkg/predicate" +) + +const ( + ClusterTotalWorker int = 2 +) + +// PostgresClusterReconciler reconciles PostgresCluster resources. +type PostgresClusterReconciler struct { + client.Client + Scheme *runtime.Scheme +} + +// +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters/status,verbs=get;update;patch +// +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters/finalizers,verbs=update +// +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusterclasses,verbs=get;list;watch +// +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=clusters,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=clusters/status,verbs=get +// +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=poolers,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=poolers/status,verbs=get + +func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + return clustercore.PostgresClusterService(ctx, r.Client, r.Scheme, req) +} + +// SetupWithManager registers the controller and owned resource watches. +func (r *PostgresClusterReconciler) SetupWithManager(mgr ctrl.Manager) error { + return ctrl.NewControllerManagedBy(mgr). + For(&enterprisev4.PostgresCluster{}, builder.WithPredicates(postgresClusterPredicator())). + Owns(&cnpgv1.Cluster{}, builder.WithPredicates(cnpgClusterPredicator())). + Owns(&cnpgv1.Pooler{}, builder.WithPredicates(cnpgPoolerPredicator())). + Owns(&corev1.Secret{}, builder.WithPredicates(secretPredicator())). + Owns(&corev1.ConfigMap{}, builder.WithPredicates(configMapPredicator())). + Named("postgresCluster"). + WithOptions(controller.Options{ + MaxConcurrentReconciles: ClusterTotalWorker, + }). + Complete(r) +} + +func deletionTimestampChanged(oldObj, newObj metav1.Object) bool { + return !equality.Semantic.DeepEqual(oldObj.GetDeletionTimestamp(), newObj.GetDeletionTimestamp()) +} + +func ownerReferencesChanged(oldObj, newObj metav1.Object) bool { + return !equality.Semantic.DeepEqual(oldObj.GetOwnerReferences(), newObj.GetOwnerReferences()) +} + +// postgresClusterPredicator triggers on generation changes, deletion, and finalizer transitions. +func postgresClusterPredicator() predicate.Predicate { + return predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return true }, + DeleteFunc: func(event.DeleteEvent) bool { return true }, + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj, oldOK := e.ObjectOld.(*enterprisev4.PostgresCluster) + newObj, newOK := e.ObjectNew.(*enterprisev4.PostgresCluster) + if !oldOK || !newOK { + return true + } + if oldObj.Generation != newObj.Generation { + return true + } + if deletionTimestampChanged(oldObj, newObj) { + return true + } + // Finalizer changes indicate registration or deletion  always reconcile. + return controllerutil.ContainsFinalizer(oldObj, clustercore.PostgresClusterFinalizerName) != + controllerutil.ContainsFinalizer(newObj, clustercore.PostgresClusterFinalizerName) + }, + GenericFunc: func(event.GenericEvent) bool { return false }, + } +} + +// cnpgClusterPredicator triggers only on phase changes or owner reference changes. +func cnpgClusterPredicator() predicate.Predicate { + return predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return true }, + DeleteFunc: func(event.DeleteEvent) bool { return true }, + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj, oldOK := e.ObjectOld.(*cnpgv1.Cluster) + newObj, newOK := e.ObjectNew.(*cnpgv1.Cluster) + if !oldOK || !newOK { + return true + } + return oldObj.Status.Phase != newObj.Status.Phase || + ownerReferencesChanged(oldObj, newObj) + }, + GenericFunc: func(event.GenericEvent) bool { return false }, + } +} + +// cnpgPoolerPredicator triggers only on instance count changes. +func cnpgPoolerPredicator() predicate.Predicate { + return predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return true }, + DeleteFunc: func(event.DeleteEvent) bool { return true }, + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj, oldOK := e.ObjectOld.(*cnpgv1.Pooler) + newObj, newOK := e.ObjectNew.(*cnpgv1.Pooler) + if !oldOK || !newOK { + return true + } + return oldObj.Status.Instances != newObj.Status.Instances + }, + GenericFunc: func(event.GenericEvent) bool { return false }, + } +} + +// secretPredicator triggers only on owner reference changes. +func secretPredicator() predicate.Predicate { + return predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return true }, + DeleteFunc: func(event.DeleteEvent) bool { return true }, + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj, oldOK := e.ObjectOld.(*corev1.Secret) + newObj, newOK := e.ObjectNew.(*corev1.Secret) + if !oldOK || !newOK { + return true + } + return ownerReferencesChanged(oldObj, newObj) + }, + GenericFunc: func(event.GenericEvent) bool { return false }, + } +} + +// configMapPredicator triggers on data, label, annotation, or owner reference changes. +func configMapPredicator() predicate.Predicate { + return predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return true }, + DeleteFunc: func(event.DeleteEvent) bool { return true }, + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj, oldOK := e.ObjectOld.(*corev1.ConfigMap) + newObj, newOK := e.ObjectNew.(*corev1.ConfigMap) + if !oldOK || !newOK { + return true + } + return !equality.Semantic.DeepEqual(oldObj.Data, newObj.Data) || + !equality.Semantic.DeepEqual(oldObj.Labels, newObj.Labels) || + !equality.Semantic.DeepEqual(oldObj.Annotations, newObj.Annotations) || + ownerReferencesChanged(oldObj, newObj) + }, + GenericFunc: func(event.GenericEvent) bool { return false }, + } +} diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go new file mode 100644 index 000000000..c0f3493d9 --- /dev/null +++ b/internal/controller/postgrescluster_controller_test.go @@ -0,0 +1,84 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package controller + +import ( + "context" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/reconcile" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + enterprisev4 "github.com/splunk/splunk-operator/api/v4" +) + +var _ = Describe("PostgresCluster Controller", func() { + Context("When reconciling a resource", func() { + const resourceName = "test-resource" + + ctx := context.Background() + + typeNamespacedName := types.NamespacedName{ + Name: resourceName, + Namespace: "default", // TODO(user):Modify as needed + } + postgresCluster := &enterprisev4.PostgresCluster{} + + BeforeEach(func() { + By("creating the custom resource for the Kind PostgresCluster") + err := k8sClient.Get(ctx, typeNamespacedName, postgresCluster) + if err != nil && errors.IsNotFound(err) { + resource := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: resourceName, + Namespace: "default", + }, + // TODO(user): Specify other spec details if needed. + } + Expect(k8sClient.Create(ctx, resource)).To(Succeed()) + } + }) + + AfterEach(func() { + // TODO(user): Cleanup logic after each test, like removing the resource instance. + resource := &enterprisev4.PostgresCluster{} + err := k8sClient.Get(ctx, typeNamespacedName, resource) + Expect(err).NotTo(HaveOccurred()) + + By("Cleanup the specific resource instance PostgresCluster") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + }) + It("should successfully reconcile the resource", func() { + By("Reconciling the created resource") + controllerReconciler := &PostgresClusterReconciler{ + Client: k8sClient, + Scheme: k8sClient.Scheme(), + } + + _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ + NamespacedName: typeNamespacedName, + }) + Expect(err).NotTo(HaveOccurred()) + // TODO(user): Add more specific assertions depending on your controller's reconciliation logic. + // Example: If you expect a certain status condition after reconciliation, verify it here. + }) + }) +}) diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go new file mode 100644 index 000000000..40faa3eb3 --- /dev/null +++ b/internal/controller/postgresdatabase_controller.go @@ -0,0 +1,115 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package controller + +import ( + "context" + "reflect" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + dbadapter "github.com/splunk/splunk-operator/pkg/postgresql/database/adapter" + dbcore "github.com/splunk/splunk-operator/pkg/postgresql/database/core" + + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/builder" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller" + "sigs.k8s.io/controller-runtime/pkg/event" + "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/predicate" +) + +// PostgresDatabaseReconciler reconciles a PostgresDatabase object. +type PostgresDatabaseReconciler struct { + client.Client + Scheme *runtime.Scheme +} + +const ( + DatabaseTotalWorker int = 2 +) + +//+kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresdatabases,verbs=get;list;watch;create;update;patch;delete +//+kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresdatabases/status,verbs=get;update;patch +//+kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresdatabases/finalizers,verbs=update +//+kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters,verbs=get;list;watch +//+kubebuilder:rbac:groups=postgresql.cnpg.io,resources=clusters,verbs=get;list;watch;patch +//+kubebuilder:rbac:groups=postgresql.cnpg.io,resources=databases,verbs=get;list;watch;create;update;patch;delete +//+kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;create;update;delete +//+kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;create;update;delete + +func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + logger := log.FromContext(ctx) + + postgresDB := &enterprisev4.PostgresDatabase{} + if err := r.Get(ctx, req.NamespacedName, postgresDB); err != nil { + if apierrors.IsNotFound(err) { + logger.Info("PostgresDatabase resource not found, ignoring") + return ctrl.Result{}, nil + } + return ctrl.Result{}, err + } + return dbcore.PostgresDatabaseService(ctx, r.Client, r.Scheme, postgresDB, dbadapter.NewDBRepository) +} + +// SetupWithManager sets up the controller with the Manager. +func (r *PostgresDatabaseReconciler) SetupWithManager(mgr ctrl.Manager) error { + if err := mgr.GetFieldIndexer().IndexField( + context.Background(), + &cnpgv1.Database{}, + ".metadata.controller", + func(obj client.Object) []string { + owner := metav1.GetControllerOf(obj) + if owner == nil { + return nil + } + if owner.APIVersion != enterprisev4.GroupVersion.String() || owner.Kind != "PostgresDatabase" { + return nil + } + return []string{owner.Name} + }, + ); err != nil { + return err + } + return ctrl.NewControllerManagedBy(mgr). + For(&enterprisev4.PostgresDatabase{}, builder.WithPredicates( + predicate.Or( + predicate.GenerationChangedPredicate{}, + predicate.Funcs{ + UpdateFunc: func(e event.UpdateEvent) bool { + return !reflect.DeepEqual( + e.ObjectOld.GetFinalizers(), + e.ObjectNew.GetFinalizers(), + ) + }, + }, + ), + )). + Owns(&cnpgv1.Database{}). + Owns(&corev1.Secret{}). + Owns(&corev1.ConfigMap{}). + Named("postgresdatabase"). + WithOptions(controller.Options{ + MaxConcurrentReconciles: DatabaseTotalWorker, + }). + Complete(r) +} diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go new file mode 100644 index 000000000..4e0589cad --- /dev/null +++ b/internal/controller/postgresdatabase_controller_test.go @@ -0,0 +1,84 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package controller + +import ( + "context" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/reconcile" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + enterprisev4 "github.com/splunk/splunk-operator/api/v4" +) + +var _ = Describe("Database Controller", func() { + Context("When reconciling a resource", func() { + const resourceName = "test-resource" + + ctx := context.Background() + + typeNamespacedName := types.NamespacedName{ + Name: resourceName, + Namespace: "default", // TODO(user):Modify as needed + } + database := &enterprisev4.PostgresDatabase{} + + BeforeEach(func() { + By("creating the custom resource for the Kind Database") + err := k8sClient.Get(ctx, typeNamespacedName, database) + if err != nil && errors.IsNotFound(err) { + resource := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: resourceName, + Namespace: "default", + }, + // TODO(user): Specify other spec details if needed. + } + Expect(k8sClient.Create(ctx, resource)).To(Succeed()) + } + }) + + AfterEach(func() { + // TODO(user): Cleanup logic after each test, like removing the resource instance. + resource := &enterprisev4.PostgresDatabase{} + err := k8sClient.Get(ctx, typeNamespacedName, resource) + Expect(err).NotTo(HaveOccurred()) + + By("Cleanup the specific resource instance Database") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + }) + It("should successfully reconcile the resource", func() { + By("Reconciling the created resource") + controllerReconciler := &PostgresDatabaseReconciler{ + Client: k8sClient, + Scheme: k8sClient.Scheme(), + } + + _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ + NamespacedName: typeNamespacedName, + }) + Expect(err).NotTo(HaveOccurred()) + // TODO(user): Add more specific assertions depending on your controller's reconciliation logic. + // Example: If you expect a certain status condition after reconciliation, verify it here. + }) + }) +}) diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 142a8720c..94db6a730 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2018-2022 Splunk Inc. All rights reserved. +Copyright 2026. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,156 +18,99 @@ package controller import ( "context" - "fmt" + "os" "path/filepath" "testing" - "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "go.uber.org/zap/zapcore" + + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/envtest" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" - clientgoscheme "k8s.io/client-go/kubernetes/scheme" - ctrl "sigs.k8s.io/controller-runtime" - - enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" - enterpriseApi "github.com/splunk/splunk-operator/api/v4" - //+kubebuilder:scaffold:imports + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + // +kubebuilder:scaffold:imports ) -var cfg *rest.Config -var k8sClient client.Client -var testEnv *envtest.Environment -var k8sManager ctrl.Manager +// These tests use Ginkgo (BDD-style Go testing framework). Refer to +// http://onsi.github.io/ginkgo/ to learn more about Ginkgo. -func TestAPIs(t *testing.T) { +var ( + ctx context.Context + cancel context.CancelFunc + testEnv *envtest.Environment + cfg *rest.Config + k8sClient client.Client +) + +func TestControllers(t *testing.T) { RegisterFailHandler(Fail) RunSpecs(t, "Controller Suite") } -var _ = BeforeSuite(func(ctx context.Context) { - opts := zap.Options{ - Development: true, - TimeEncoder: zapcore.RFC3339NanoTimeEncoder, - } - logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true), zap.UseFlagOptions(&opts))) +var _ = BeforeSuite(func() { + logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) - By("bootstrapping test environment") + ctx, cancel = context.WithCancel(context.TODO()) + + var err error + err = enterprisev4.AddToScheme(scheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + // +kubebuilder:scaffold:scheme + By("bootstrapping test environment") testEnv = &envtest.Environment{ CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")}, ErrorIfCRDPathMissing: true, } - var err error + // Retrieve the first found binary directory to allow running tests from IDEs + if getFirstFoundEnvTestBinaryDir() != "" { + testEnv.BinaryAssetsDirectory = getFirstFoundEnvTestBinaryDir() + } // cfg is defined in this file globally. cfg, err = testEnv.Start() Expect(err).NotTo(HaveOccurred()) Expect(cfg).NotTo(BeNil()) - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - //+kubebuilder:scaffold:scheme - - // Create New Manager for controller - k8sManager, err = ctrl.NewManager(cfg, ctrl.Options{ - Scheme: clientgoscheme.Scheme, - }) - Expect(err).ToNot(HaveOccurred()) - if err := (&ClusterManagerReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&ClusterMasterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&IndexerClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&IngestorClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&LicenseManagerReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&LicenseMasterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&MonitoringConsoleReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&SearchHeadClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&StandaloneReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - - go func() { - err = k8sManager.Start(ctrl.SetupSignalHandler()) - fmt.Printf("error %v", err.Error()) - Expect(err).ToNot(HaveOccurred()) - }() - - Expect(err).ToNot(HaveOccurred()) - - k8sClient, err = client.New(cfg, client.Options{Scheme: clientgoscheme.Scheme}) + k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) Expect(err).NotTo(HaveOccurred()) Expect(k8sClient).NotTo(BeNil()) - -}, NodeTimeout(time.Second*500)) +}) var _ = AfterSuite(func() { By("tearing down the test environment") - testEnv.Stop() + cancel() + err := testEnv.Stop() + Expect(err).NotTo(HaveOccurred()) }) + +// getFirstFoundEnvTestBinaryDir locates the first binary in the specified path. +// ENVTEST-based tests depend on specific binaries, usually located in paths set by +// controller-runtime. When running tests directly (e.g., via an IDE) without using +// Makefile targets, the 'BinaryAssetsDirectory' must be explicitly configured. +// +// This function streamlines the process by finding the required binaries, similar to +// setting the 'KUBEBUILDER_ASSETS' environment variable. To ensure the binaries are +// properly set up, run 'make setup-envtest' beforehand. +func getFirstFoundEnvTestBinaryDir() string { + basePath := filepath.Join("..", "..", "bin", "k8s") + entries, err := os.ReadDir(basePath) + if err != nil { + logf.Log.Error(err, "Failed to read directory", "path", basePath) + return "" + } + for _, entry := range entries { + if entry.IsDir() { + return filepath.Join(basePath, entry.Name()) + } + } + return "" +} diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go new file mode 100644 index 000000000..66622d8ad --- /dev/null +++ b/pkg/postgresql/cluster/core/cluster.go @@ -0,0 +1,1006 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package core + +import ( + "context" + "fmt" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + password "github.com/sethvargo/go-password/password" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/equality" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/utils/ptr" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + log "sigs.k8s.io/controller-runtime/pkg/log" +) + +// PostgresClusterService is the application service entry point called by the primary adapter (reconciler). +func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtime.Scheme, req ctrl.Request) (ctrl.Result, error) { + logger := log.FromContext(ctx) + logger.Info("Reconciling PostgresCluster", "name", req.Name, "namespace", req.Namespace) + + var cnpgCluster *cnpgv1.Cluster + var poolerEnabled bool + var postgresSecretName string + secret := &corev1.Secret{} + + // 1. Fetch the PostgresCluster instance, stop if not found. + postgresCluster := &enterprisev4.PostgresCluster{} + if err := c.Get(ctx, req.NamespacedName, postgresCluster); err != nil { + if apierrors.IsNotFound(err) { + logger.Info("PostgresCluster deleted, skipping reconciliation") + return ctrl.Result{}, nil + } + logger.Error(err, "Unable to fetch PostgresCluster") + return ctrl.Result{}, err + } + if postgresCluster.Status.Resources == nil { + postgresCluster.Status.Resources = &enterprisev4.PostgresClusterResources{} + } + + updateStatus := func(conditionType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { + return setStatus(ctx, c, postgresCluster, conditionType, status, reason, message, phase) + } + + // Finalizer handling must come before any other processing. + if err := handleFinalizer(ctx, c, scheme, postgresCluster, secret); err != nil { + if apierrors.IsNotFound(err) { + logger.Info("PostgresCluster already deleted, skipping finalizer update") + return ctrl.Result{}, nil + } + logger.Error(err, "Failed to handle finalizer") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterDeleteFailed, + fmt.Sprintf("Failed to delete resources during cleanup: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if postgresCluster.GetDeletionTimestamp() != nil { + logger.Info("PostgresCluster is being deleted, cleanup complete") + return ctrl.Result{}, nil + } + + // Add finalizer if not present. + if !controllerutil.ContainsFinalizer(postgresCluster, PostgresClusterFinalizerName) { + controllerutil.AddFinalizer(postgresCluster, PostgresClusterFinalizerName) + if err := c.Update(ctx, postgresCluster); err != nil { + if apierrors.IsConflict(err) { + logger.Info("Conflict while adding finalizer, will retry on next reconcile") + return ctrl.Result{Requeue: true}, nil + } + logger.Error(err, "Failed to add finalizer to PostgresCluster") + return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) + } + logger.Info("Finalizer added successfully") + return ctrl.Result{}, nil + } + + // 2. Load the referenced PostgresClusterClass. + clusterClass := &enterprisev4.PostgresClusterClass{} + if err := c.Get(ctx, client.ObjectKey{Name: postgresCluster.Spec.Class}, clusterClass); err != nil { + logger.Error(err, "Unable to fetch referenced PostgresClusterClass", "className", postgresCluster.Spec.Class) + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterClassNotFound, + fmt.Sprintf("ClusterClass %s not found: %v", postgresCluster.Spec.Class, err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + + // 3. Merge PostgresClusterSpec on top of PostgresClusterClass defaults. + mergedConfig, err := getMergedConfig(clusterClass, postgresCluster) + if err != nil { + logger.Error(err, "Failed to merge PostgresCluster configuration") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonInvalidConfiguration, + fmt.Sprintf("Failed to merge configuration: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + + // 4. Resolve or derive the superuser secret name. + if postgresCluster.Status.Resources != nil && postgresCluster.Status.Resources.SuperUserSecretRef != nil { + postgresSecretName = postgresCluster.Status.Resources.SuperUserSecretRef.Name + logger.Info("Using existing secret from status", "name", postgresSecretName) + } else { + postgresSecretName = fmt.Sprintf("%s%s", postgresCluster.Name, defaultSecretSuffix) + logger.Info("Generating new secret name", "name", postgresSecretName) + } + + secretExists, secretErr := clusterSecretExists(ctx, c, postgresCluster.Namespace, postgresSecretName, secret) + if secretErr != nil { + logger.Error(secretErr, "Failed to check if PostgresCluster secret exists", "name", postgresSecretName) + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, + fmt.Sprintf("Failed to check secret existence: %v", secretErr), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, secretErr + } + if !secretExists { + logger.Info("Creating PostgresCluster secret", "name", postgresSecretName) + if err := ensureClusterSecret(ctx, c, scheme, postgresCluster, postgresSecretName, secret); err != nil { + logger.Error(err, "Failed to ensure PostgresCluster secret", "name", postgresSecretName) + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, + fmt.Sprintf("Failed to generate PostgresCluster secret: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if err := c.Status().Update(ctx, postgresCluster); err != nil { + if apierrors.IsConflict(err) { + logger.Info("Conflict after secret creation, will requeue") + return ctrl.Result{Requeue: true}, nil + } + logger.Error(err, "Failed to update status after secret creation") + return ctrl.Result{}, err + } + logger.Info("SuperUserSecretRef persisted to status") + } + + // Re-attach ownerRef if it was stripped (e.g. by a Retain-policy deletion of a previous cluster). + hasOwnerRef, ownerRefErr := controllerutil.HasOwnerReference(secret.GetOwnerReferences(), postgresCluster, scheme) + if ownerRefErr != nil { + logger.Error(ownerRefErr, "Failed to check owner reference on Secret") + return ctrl.Result{}, fmt.Errorf("failed to check owner reference on secret: %w", ownerRefErr) + } + if secretExists && !hasOwnerRef { + logger.Info("Connecting existing secret to PostgresCluster by adding owner reference", "name", postgresSecretName) + originalSecret := secret.DeepCopy() + if err := ctrl.SetControllerReference(postgresCluster, secret, scheme); err != nil { + return ctrl.Result{}, fmt.Errorf("failed to set controller reference on existing secret: %w", err) + } + if err := patchObject(ctx, c, originalSecret, secret, "Secret"); err != nil { + logger.Error(err, "Failed to patch existing secret with controller reference") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonSuperUserSecretFailed, + fmt.Sprintf("Failed to patch existing secret: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + logger.Info("Existing secret linked successfully") + } + + if postgresCluster.Status.Resources.SuperUserSecretRef == nil { + postgresCluster.Status.Resources.SuperUserSecretRef = &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: postgresSecretName}, + Key: secretKeyPassword, + } + } + + // 5. Build desired CNPG Cluster spec. + desiredSpec := buildCNPGClusterSpec(mergedConfig, postgresSecretName) + + // 6. Fetch existing CNPG Cluster or create it. + existingCNPG := &cnpgv1.Cluster{} + err = c.Get(ctx, types.NamespacedName{Name: postgresCluster.Name, Namespace: postgresCluster.Namespace}, existingCNPG) + switch { + case apierrors.IsNotFound(err): + logger.Info("CNPG Cluster not found, creating", "name", postgresCluster.Name) + newCluster := buildCNPGCluster(scheme, postgresCluster, mergedConfig, postgresSecretName) + if err := c.Create(ctx, newCluster); err != nil { + logger.Error(err, "Failed to create CNPG Cluster") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildFailed, + fmt.Sprintf("Failed to create CNPG Cluster: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, + "CNPG Cluster created", pendingClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + logger.Info("CNPG Cluster created successfully, requeueing for status update", "name", postgresCluster.Name) + return ctrl.Result{RequeueAfter: retryDelay}, nil + case err != nil: + logger.Error(err, "Failed to get CNPG Cluster") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterGetFailed, + fmt.Sprintf("Failed to get CNPG Cluster: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + + // 7. Patch CNPG Cluster spec if drift detected. + cnpgCluster = existingCNPG + currentNormalized := normalizeCNPGClusterSpec(cnpgCluster.Spec, mergedConfig.Spec.PostgreSQLConfig) + desiredNormalized := normalizeCNPGClusterSpec(desiredSpec, mergedConfig.Spec.PostgreSQLConfig) + + if !equality.Semantic.DeepEqual(currentNormalized, desiredNormalized) { + logger.Info("Detected drift in CNPG Cluster spec, patching", "name", cnpgCluster.Name) + originalCluster := cnpgCluster.DeepCopy() + cnpgCluster.Spec = desiredSpec + + switch patchErr := patchObject(ctx, c, originalCluster, cnpgCluster, "CNPGCluster"); { + case apierrors.IsConflict(patchErr): + logger.Info("Conflict occurred while updating CNPG Cluster, requeueing", "name", cnpgCluster.Name) + return ctrl.Result{Requeue: true}, nil + case patchErr != nil: + logger.Error(patchErr, "Failed to patch CNPG Cluster", "name", cnpgCluster.Name) + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterPatchFailed, + fmt.Sprintf("Failed to patch CNPG Cluster: %v", patchErr), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, patchErr + default: + logger.Info("CNPG Cluster patched successfully, requeueing for status update", "name", cnpgCluster.Name) + return ctrl.Result{RequeueAfter: retryDelay}, nil + } + } + + // 7a. Reconcile ManagedRoles. + if err := reconcileManagedRoles(ctx, c, postgresCluster, cnpgCluster); err != nil { + logger.Error(err, "Failed to reconcile managed roles") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonManagedRolesFailed, + fmt.Sprintf("Failed to reconcile managed roles: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + + // 7b. Reconcile Connection Pooler. + poolerEnabled = mergedConfig.Spec.ConnectionPoolerEnabled != nil && *mergedConfig.Spec.ConnectionPoolerEnabled + switch { + case !poolerEnabled: + if err := deleteConnectionPoolers(ctx, c, postgresCluster); err != nil { + logger.Error(err, "Failed to delete connection poolers") + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to delete connection poolers: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + postgresCluster.Status.ConnectionPoolerStatus = nil + meta.RemoveStatusCondition(&postgresCluster.Status.Conditions, string(poolerReady)) + + case !poolerExists(ctx, c, postgresCluster, readWriteEndpoint) || !poolerExists(ctx, c, postgresCluster, readOnlyEndpoint): + if mergedConfig.CNPG == nil || mergedConfig.CNPG.ConnectionPooler == nil { + logger.Info("Connection pooler enabled but no config found in class or cluster spec, skipping", + "class", postgresCluster.Spec.Class, "cluster", postgresCluster.Name) + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerConfigMissing, + fmt.Sprintf("Connection pooler is enabled but no config found in class %q or cluster %q", + postgresCluster.Spec.Class, postgresCluster.Name), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, nil + } + if cnpgCluster.Status.Phase != cnpgv1.PhaseHealthy { + logger.Info("CNPG Cluster not healthy yet, pending pooler creation", "clusterPhase", cnpgCluster.Status.Phase) + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonCNPGClusterNotHealthy, + "Waiting for CNPG cluster to become healthy before creating poolers", pendingClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + } + if err := createOrUpdateConnectionPoolers(ctx, c, scheme, postgresCluster, mergedConfig, cnpgCluster); err != nil { + logger.Error(err, "Failed to reconcile connection pooler") + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to reconcile connection pooler: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + logger.Info("Connection Poolers created, requeueing to check readiness") + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, + "Connection poolers are being provisioned", provisioningClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + + case !arePoolersReady(ctx, c, postgresCluster): + logger.Info("Connection Poolers are not ready yet, requeueing") + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, + "Connection poolers are being provisioned", pendingClusterPhase); statusErr != nil { + if apierrors.IsConflict(statusErr) { + logger.Info("Conflict updating pooler status, will requeue") + return ctrl.Result{Requeue: true}, nil + } + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + + default: + if err := syncPoolerStatus(ctx, c, postgresCluster); err != nil { + logger.Error(err, "Failed to sync pooler status") + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to sync pooler status: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + } + + // 8. Reconcile ConfigMap when CNPG cluster is healthy. + if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { + logger.Info("CNPG Cluster is ready, reconciling ConfigMap for connection details") + desiredCM, err := generateConfigMap(ctx, c, scheme, postgresCluster, cnpgCluster, postgresSecretName) + if err != nil { + logger.Error(err, "Failed to generate ConfigMap") + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, + fmt.Sprintf("Failed to generate ConfigMap: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + cm := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: desiredCM.Name, Namespace: desiredCM.Namespace}} + createOrUpdateResult, err := controllerutil.CreateOrUpdate(ctx, c, cm, func() error { + cm.Data = desiredCM.Data + cm.Annotations = desiredCM.Annotations + cm.Labels = desiredCM.Labels + if !metav1.IsControlledBy(cm, postgresCluster) { + if err := ctrl.SetControllerReference(postgresCluster, cm, scheme); err != nil { + return fmt.Errorf("set controller reference failed: %w", err) + } + } + return nil + }) + if err != nil { + logger.Error(err, "Failed to reconcile ConfigMap", "name", desiredCM.Name) + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, + fmt.Sprintf("Failed to reconcile ConfigMap: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + switch createOrUpdateResult { + case controllerutil.OperationResultCreated: + logger.Info("ConfigMap created", "name", desiredCM.Name) + case controllerutil.OperationResultUpdated: + logger.Info("ConfigMap updated", "name", desiredCM.Name) + default: + logger.Info("ConfigMap unchanged", "name", desiredCM.Name) + } + if postgresCluster.Status.Resources.ConfigMapRef == nil { + postgresCluster.Status.Resources.ConfigMapRef = &corev1.LocalObjectReference{Name: desiredCM.Name} + } + } + + // 9. Final status sync. + if err := syncStatus(ctx, c, postgresCluster, cnpgCluster); err != nil { + logger.Error(err, "Failed to sync status") + if apierrors.IsConflict(err) { + logger.Info("Conflict during status update, will requeue") + return ctrl.Result{Requeue: true}, nil + } + return ctrl.Result{}, fmt.Errorf("failed to sync status: %w", err) + } + if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy && arePoolersReady(ctx, c, postgresCluster) { + logger.Info("Poolers are ready, syncing pooler status") + _ = syncPoolerStatus(ctx, c, postgresCluster) + } + logger.Info("Reconciliation complete") + return ctrl.Result{}, nil +} + +// getMergedConfig overlays PostgresCluster spec on top of the class defaults. +// Class values are used only where the cluster spec is silent. +func getMergedConfig(class *enterprisev4.PostgresClusterClass, cluster *enterprisev4.PostgresCluster) (*MergedConfig, error) { + result := cluster.Spec.DeepCopy() + + // Config is optional on the class — apply defaults only when provided. + if defaults := class.Spec.Config; defaults != nil { + if result.Instances == nil { + result.Instances = defaults.Instances + } + if result.PostgresVersion == nil { + result.PostgresVersion = defaults.PostgresVersion + } + if result.Resources == nil { + result.Resources = defaults.Resources + } + if result.Storage == nil { + result.Storage = defaults.Storage + } + if len(result.PostgreSQLConfig) == 0 { + result.PostgreSQLConfig = defaults.PostgreSQLConfig + } + if len(result.PgHBA) == 0 { + result.PgHBA = defaults.PgHBA + } + } + + if result.Instances == nil || result.PostgresVersion == nil || result.Storage == nil { + return nil, fmt.Errorf("invalid configuration for class %s: instances, postgresVersion and storage are required", class.Name) + } + if result.PostgreSQLConfig == nil { + result.PostgreSQLConfig = make(map[string]string) + } + if result.PgHBA == nil { + result.PgHBA = make([]string, 0) + } + if result.Resources == nil { + result.Resources = &corev1.ResourceRequirements{} + } + + return &MergedConfig{Spec: result, CNPG: class.Spec.CNPG}, nil +} + +// buildCNPGClusterSpec builds the desired CNPG ClusterSpec. +// IMPORTANT: any field added here must also appear in normalizeCNPGClusterSpec, +// otherwise spec drift will be silently ignored. +func buildCNPGClusterSpec(cfg *MergedConfig, secretName string) cnpgv1.ClusterSpec { + return cnpgv1.ClusterSpec{ + ImageName: fmt.Sprintf("ghcr.io/cloudnative-pg/postgresql:%s", *cfg.Spec.PostgresVersion), + Instances: int(*cfg.Spec.Instances), + PostgresConfiguration: cnpgv1.PostgresConfiguration{ + Parameters: cfg.Spec.PostgreSQLConfig, + PgHBA: cfg.Spec.PgHBA, + }, + SuperuserSecret: &cnpgv1.LocalObjectReference{Name: secretName}, + EnableSuperuserAccess: ptr.To(true), + Bootstrap: &cnpgv1.BootstrapConfiguration{ + InitDB: &cnpgv1.BootstrapInitDB{ + Database: defaultDatabaseName, + Owner: superUsername, + Secret: &cnpgv1.LocalObjectReference{Name: secretName}, + }, + }, + StorageConfiguration: cnpgv1.StorageConfiguration{ + Size: cfg.Spec.Storage.String(), + }, + Resources: *cfg.Spec.Resources, + } +} + +func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string) *cnpgv1.Cluster { + cnpg := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{Name: cluster.Name, Namespace: cluster.Namespace}, + Spec: buildCNPGClusterSpec(cfg, secretName), + } + ctrl.SetControllerReference(cluster, cnpg, scheme) + return cnpg +} + +func normalizeCNPGClusterSpec(spec cnpgv1.ClusterSpec, customDefinedParameters map[string]string) normalizedCNPGClusterSpec { + normalized := normalizedCNPGClusterSpec{ + ImageName: spec.ImageName, + Instances: spec.Instances, + StorageSize: spec.StorageConfiguration.Size, + Resources: spec.Resources, + } + if len(customDefinedParameters) > 0 { + normalized.CustomDefinedParameters = make(map[string]string) + for k := range customDefinedParameters { + normalized.CustomDefinedParameters[k] = spec.PostgresConfiguration.Parameters[k] + } + } + if len(spec.PostgresConfiguration.PgHBA) > 0 { + normalized.PgHBA = spec.PostgresConfiguration.PgHBA + } + if spec.Bootstrap != nil && spec.Bootstrap.InitDB != nil { + normalized.DefaultDatabase = spec.Bootstrap.InitDB.Database + normalized.Owner = spec.Bootstrap.InitDB.Owner + } + return normalized +} + +// reconcileManagedRoles synchronizes ManagedRoles from PostgresCluster spec to CNPG Cluster managed.roles. +func reconcileManagedRoles(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster) error { + logger := log.FromContext(ctx) + + if len(cluster.Spec.ManagedRoles) == 0 { + logger.Info("No managed roles to reconcile") + return nil + } + + desiredRoles := make([]cnpgv1.RoleConfiguration, 0, len(cluster.Spec.ManagedRoles)) + for _, role := range cluster.Spec.ManagedRoles { + r := cnpgv1.RoleConfiguration{ + Name: role.Name, + Ensure: cnpgv1.EnsureAbsent, + } + // Exists bool replaces the old Ensure string enum ("present"/"absent"). + if role.Exists { + r.Ensure = cnpgv1.EnsurePresent + r.Login = true + } + if role.PasswordSecretRef != nil { + // Pass only the secret name to CNPG — CNPG always reads the "password" key. + r.PasswordSecret = &cnpgv1.LocalObjectReference{Name: role.PasswordSecretRef.LocalObjectReference.Name} + } + desiredRoles = append(desiredRoles, r) + } + + var currentRoles []cnpgv1.RoleConfiguration + if cnpgCluster.Spec.Managed != nil { + currentRoles = cnpgCluster.Spec.Managed.Roles + } + + if equality.Semantic.DeepEqual(currentRoles, desiredRoles) { + logger.Info("CNPG Cluster roles already match desired state, no update needed") + return nil + } + + logger.Info("CNPG Cluster roles differ from desired state, updating", + "currentCount", len(currentRoles), "desiredCount", len(desiredRoles)) + + originalCluster := cnpgCluster.DeepCopy() + if cnpgCluster.Spec.Managed == nil { + cnpgCluster.Spec.Managed = &cnpgv1.ManagedConfiguration{} + } + cnpgCluster.Spec.Managed.Roles = desiredRoles + + if err := c.Patch(ctx, cnpgCluster, client.MergeFrom(originalCluster)); err != nil { + return fmt.Errorf("failed to patch CNPG Cluster with managed roles: %w", err) + } + logger.Info("Successfully updated CNPG Cluster with managed roles", "roleCount", len(desiredRoles)) + return nil +} + +func poolerResourceName(clusterName, poolerType string) string { + return fmt.Sprintf("%s%s%s", clusterName, defaultPoolerSuffix, poolerType) +} + +func poolerExists(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, poolerType string) bool { + pooler := &cnpgv1.Pooler{} + err := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(cluster.Name, poolerType), + Namespace: cluster.Namespace, + }, pooler) + if apierrors.IsNotFound(err) { + return false + } + if err != nil { + log.FromContext(ctx).Error(err, "Failed to check pooler existence", "type", poolerType) + return false + } + return true +} + +func arePoolersReady(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster) bool { + rwPooler := &cnpgv1.Pooler{} + rwErr := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(cluster.Name, readWriteEndpoint), + Namespace: cluster.Namespace, + }, rwPooler) + + roPooler := &cnpgv1.Pooler{} + roErr := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(cluster.Name, readOnlyEndpoint), + Namespace: cluster.Namespace, + }, roPooler) + + return isPoolerReady(rwPooler, rwErr) && isPoolerReady(roPooler, roErr) +} + +// isPoolerReady checks if a pooler has all instances scheduled. +// CNPG PoolerStatus only tracks scheduled instances, not ready pods. +func isPoolerReady(pooler *cnpgv1.Pooler, err error) bool { + if err != nil { + return false + } + desired := int32(1) + if pooler.Spec.Instances != nil { + desired = *pooler.Spec.Instances + } + return pooler.Status.Instances >= desired +} + +func poolerInstanceCount(p *cnpgv1.Pooler) (desired, scheduled int32) { + desired = 1 + if p.Spec.Instances != nil { + desired = *p.Spec.Instances + } + return desired, p.Status.Instances +} + +// createOrUpdateConnectionPoolers creates RW and RO poolers if they don't exist. +func createOrUpdateConnectionPoolers(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster) error { + if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readWriteEndpoint); err != nil { + return fmt.Errorf("failed to reconcile RW pooler: %w", err) + } + if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readOnlyEndpoint); err != nil { + return fmt.Errorf("failed to reconcile RO pooler: %w", err) + } + return nil +} + +func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) error { + poolerName := poolerResourceName(cluster.Name, poolerType) + existing := &cnpgv1.Pooler{} + err := c.Get(ctx, types.NamespacedName{Name: poolerName, Namespace: cluster.Namespace}, existing) + if err == nil { + return nil // already exists + } + if !apierrors.IsNotFound(err) { + return err + } + log.FromContext(ctx).Info("Creating CNPG Pooler", "name", poolerName, "type", poolerType) + return c.Create(ctx, buildCNPGPooler(scheme, cluster, cfg, cnpgCluster, poolerType)) +} + +func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) *cnpgv1.Pooler { + pc := cfg.CNPG.ConnectionPooler + instances := *pc.Instances + mode := cnpgv1.PgBouncerPoolMode(*pc.Mode) + pooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{Name: poolerResourceName(cluster.Name, poolerType), Namespace: cluster.Namespace}, + Spec: cnpgv1.PoolerSpec{ + Cluster: cnpgv1.LocalObjectReference{Name: cnpgCluster.Name}, + Instances: &instances, + Type: cnpgv1.PoolerType(poolerType), + PgBouncer: &cnpgv1.PgBouncerSpec{ + PoolMode: mode, + Parameters: pc.Config, + }, + }, + } + ctrl.SetControllerReference(cluster, pooler, scheme) + return pooler +} + +// deleteConnectionPoolers removes RW and RO poolers if they exist. +func deleteConnectionPoolers(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster) error { + logger := log.FromContext(ctx) + for _, poolerType := range []string{readWriteEndpoint, readOnlyEndpoint} { + poolerName := poolerResourceName(cluster.Name, poolerType) + if !poolerExists(ctx, c, cluster, poolerType) { + continue + } + pooler := &cnpgv1.Pooler{} + if err := c.Get(ctx, types.NamespacedName{Name: poolerName, Namespace: cluster.Namespace}, pooler); err != nil { + if apierrors.IsNotFound(err) { + continue + } + return fmt.Errorf("failed to get pooler %s: %w", poolerName, err) + } + logger.Info("Deleting CNPG Pooler", "name", poolerName) + if err := c.Delete(ctx, pooler); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("failed to delete pooler %s: %w", poolerName, err) + } + } + return nil +} + +// syncPoolerStatus populates ConnectionPoolerStatus and the PoolerReady condition. +func syncPoolerStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster) error { + rwPooler := &cnpgv1.Pooler{} + if err := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(cluster.Name, readWriteEndpoint), + Namespace: cluster.Namespace, + }, rwPooler); err != nil { + return err + } + + roPooler := &cnpgv1.Pooler{} + if err := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(cluster.Name, readOnlyEndpoint), + Namespace: cluster.Namespace, + }, roPooler); err != nil { + return err + } + + cluster.Status.ConnectionPoolerStatus = &enterprisev4.ConnectionPoolerStatus{Enabled: true} + rwDesired, rwScheduled := poolerInstanceCount(rwPooler) + roDesired, roScheduled := poolerInstanceCount(roPooler) + + return setStatus(ctx, c, cluster, poolerReady, metav1.ConditionTrue, reasonAllInstancesReady, + fmt.Sprintf("%s: %d/%d, %s: %d/%d", readWriteEndpoint, rwScheduled, rwDesired, readOnlyEndpoint, roScheduled, roDesired), + readyClusterPhase) +} + +// syncStatus maps CNPG Cluster state to PostgresCluster status. +func syncStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster) error { + cluster.Status.ProvisionerRef = &corev1.ObjectReference{ + APIVersion: "postgresql.cnpg.io/v1", + Kind: "Cluster", + Namespace: cnpgCluster.Namespace, + Name: cnpgCluster.Name, + UID: cnpgCluster.UID, + } + + var phase reconcileClusterPhases + var condStatus metav1.ConditionStatus + var reason conditionReasons + var message string + + switch cnpgCluster.Status.Phase { + case cnpgv1.PhaseHealthy: + phase, condStatus, reason, message = readyClusterPhase, metav1.ConditionTrue, reasonCNPGClusterHealthy, "Cluster is up and running" + case cnpgv1.PhaseFirstPrimary, cnpgv1.PhaseCreatingReplica, cnpgv1.PhaseWaitingForInstancesToBeActive: + phase, condStatus, reason = provisioningClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioning + message = fmt.Sprintf("CNPG cluster provisioning: %s", cnpgCluster.Status.Phase) + case cnpgv1.PhaseSwitchover: + phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGSwitchover, "Cluster changing primary node" + case cnpgv1.PhaseFailOver: + phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGFailingOver, "Pod missing, need to change primary" + case cnpgv1.PhaseInplacePrimaryRestart, cnpgv1.PhaseInplaceDeletePrimaryRestart: + phase, condStatus, reason = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGRestarting + message = fmt.Sprintf("CNPG cluster restarting: %s", cnpgCluster.Status.Phase) + case cnpgv1.PhaseUpgrade, cnpgv1.PhaseMajorUpgrade, cnpgv1.PhaseUpgradeDelayed, cnpgv1.PhaseOnlineUpgrading: + phase, condStatus, reason = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGUpgrading + message = fmt.Sprintf("CNPG cluster upgrading: %s", cnpgCluster.Status.Phase) + case cnpgv1.PhaseApplyingConfiguration: + phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGApplyingConfig, "Configuration change is being applied" + case cnpgv1.PhaseReplicaClusterPromotion: + phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGPromoting, "Replica is being promoted to primary" + case cnpgv1.PhaseWaitingForUser: + phase, condStatus, reason, message = failedClusterPhase, metav1.ConditionFalse, reasonCNPGWaitingForUser, "Action from the user is required" + case cnpgv1.PhaseUnrecoverable: + phase, condStatus, reason, message = failedClusterPhase, metav1.ConditionFalse, reasonCNPGUnrecoverable, "Cluster failed, needs manual intervention" + case cnpgv1.PhaseCannotCreateClusterObjects: + phase, condStatus, reason, message = failedClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioningFailed, "Cluster resources cannot be created" + case cnpgv1.PhaseUnknownPlugin, cnpgv1.PhaseFailurePlugin: + phase, condStatus, reason = failedClusterPhase, metav1.ConditionFalse, reasonCNPGPluginError + message = fmt.Sprintf("CNPG plugin error: %s", cnpgCluster.Status.Phase) + case cnpgv1.PhaseImageCatalogError, cnpgv1.PhaseArchitectureBinaryMissing: + phase, condStatus, reason = failedClusterPhase, metav1.ConditionFalse, reasonCNPGImageError + message = fmt.Sprintf("CNPG image error: %s", cnpgCluster.Status.Phase) + case "": + phase, condStatus, reason, message = pendingClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioning, "CNPG cluster is pending creation" + default: + phase, condStatus, reason = provisioningClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioning + message = fmt.Sprintf("CNPG cluster phase: %s", cnpgCluster.Status.Phase) + } + + return setStatus(ctx, c, cluster, clusterReady, condStatus, reason, message, phase) +} + +// setStatus sets the phase, condition and persists the status. +func setStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { + p := string(phase) + cluster.Status.Phase = &p + meta.SetStatusCondition(&cluster.Status.Conditions, metav1.Condition{ + Type: string(condType), + Status: status, + Reason: string(reason), + Message: message, + ObservedGeneration: cluster.Generation, + }) + if err := c.Status().Update(ctx, cluster); err != nil { + return fmt.Errorf("failed to update PostgresCluster status: %w", err) + } + return nil +} + +// generateConfigMap builds a ConfigMap with connection details for the PostgresCluster. +func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster, secretName string) (*corev1.ConfigMap, error) { + cmName := fmt.Sprintf("%s%s", cluster.Name, defaultConfigMapSuffix) + if cluster.Status.Resources != nil && cluster.Status.Resources.ConfigMapRef != nil { + cmName = cluster.Status.Resources.ConfigMapRef.Name + } + + data := map[string]string{ + "CLUSTER_RW_ENDPOINT": fmt.Sprintf("%s-rw.%s", cnpgCluster.Name, cnpgCluster.Namespace), + "CLUSTER_RO_ENDPOINT": fmt.Sprintf("%s-ro.%s", cnpgCluster.Name, cnpgCluster.Namespace), + "CLUSTER_R_ENDPOINT": fmt.Sprintf("%s-r.%s", cnpgCluster.Name, cnpgCluster.Namespace), + "DEFAULT_CLUSTER_PORT": defaultPort, + "SUPER_USER_NAME": superUsername, + "SUPER_USER_SECRET_REF": secretName, + } + if poolerExists(ctx, c, cluster, readWriteEndpoint) && poolerExists(ctx, c, cluster, readOnlyEndpoint) { + data["CLUSTER_POOLER_RW_ENDPOINT"] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readWriteEndpoint), cnpgCluster.Namespace) + data["CLUSTER_POOLER_RO_ENDPOINT"] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readOnlyEndpoint), cnpgCluster.Namespace) + } + + cm := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: cmName, + Namespace: cluster.Namespace, + Labels: map[string]string{"app.kubernetes.io/managed-by": "postgrescluster-controller"}, + }, + Data: data, + } + if err := ctrl.SetControllerReference(cluster, cm, scheme); err != nil { + return nil, fmt.Errorf("failed to set controller reference: %w", err) + } + return cm, nil +} + +// ensureClusterSecret creates the superuser secret if it doesn't exist and persists the ref to status. +func ensureClusterSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, secretName string, secret *corev1.Secret) error { + err := c.Get(ctx, types.NamespacedName{Name: secretName, Namespace: cluster.Namespace}, secret) + if err != nil && !apierrors.IsNotFound(err) { + return err + } + if apierrors.IsNotFound(err) { + pw, err := generatePassword() + if err != nil { + return err + } + newSecret := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{Name: secretName, Namespace: cluster.Namespace}, + StringData: map[string]string{"username": superUsername, "password": pw}, + Type: corev1.SecretTypeOpaque, + } + if err := ctrl.SetControllerReference(cluster, newSecret, scheme); err != nil { + return err + } + if err := c.Create(ctx, newSecret); err != nil { + return err + } + } + if cluster.Status.Resources == nil { + cluster.Status.Resources = &enterprisev4.PostgresClusterResources{} + } + cluster.Status.Resources.SuperUserSecretRef = &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: secretName}, + Key: secretKeyPassword, + } + return nil +} + +func clusterSecretExists(ctx context.Context, c client.Client, namespace, name string, secret *corev1.Secret) (bool, error) { + err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, secret) + if apierrors.IsNotFound(err) { + return false, nil + } + return err == nil, err +} + +// deleteCNPGCluster deletes the CNPG Cluster if it exists. +func deleteCNPGCluster(ctx context.Context, c client.Client, cnpgCluster *cnpgv1.Cluster) error { + logger := log.FromContext(ctx) + if cnpgCluster == nil { + logger.Info("CNPG Cluster not found, skipping deletion") + return nil + } + logger.Info("Deleting CNPG Cluster", "name", cnpgCluster.Name) + if err := c.Delete(ctx, cnpgCluster); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("failed to delete CNPG Cluster: %w", err) + } + return nil +} + +// handleFinalizer processes deletion cleanup: removes poolers, then deletes or orphans the CNPG Cluster +// based on ClusterDeletionPolicy, then removes the finalizer. +func handleFinalizer(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, secret *corev1.Secret) error { + logger := log.FromContext(ctx) + if cluster.GetDeletionTimestamp() == nil { + logger.Info("PostgresCluster not marked for deletion, skipping finalizer logic") + return nil + } + if !controllerutil.ContainsFinalizer(cluster, PostgresClusterFinalizerName) { + logger.Info("Finalizer not present on PostgresCluster, skipping finalizer logic") + return nil + } + + cnpgCluster := &cnpgv1.Cluster{} + err := c.Get(ctx, types.NamespacedName{Name: cluster.Name, Namespace: cluster.Namespace}, cnpgCluster) + if err != nil { + if apierrors.IsNotFound(err) { + cnpgCluster = nil + logger.Info("CNPG cluster not found during cleanup") + } else { + return fmt.Errorf("failed to fetch CNPG cluster during cleanup: %w", err) + } + } + logger.Info("Processing finalizer cleanup for PostgresCluster") + + if err := deleteConnectionPoolers(ctx, c, cluster); err != nil { + logger.Error(err, "Failed to delete connection poolers during cleanup") + return fmt.Errorf("failed to delete connection poolers: %w", err) + } + + // Dereference *string — empty string falls through to default (unknown policy). + policy := "" + if cluster.Spec.ClusterDeletionPolicy != nil { + policy = *cluster.Spec.ClusterDeletionPolicy + } + + switch policy { + case clusterDeletionPolicyDelete: + logger.Info("ClusterDeletionPolicy is 'Delete', deleting CNPG Cluster and associated resources") + if cnpgCluster != nil { + if err := deleteCNPGCluster(ctx, c, cnpgCluster); err != nil { + logger.Error(err, "Failed to delete CNPG Cluster during finalizer cleanup") + return fmt.Errorf("failed to delete CNPG Cluster during finalizer cleanup: %w", err) + } + } else { + logger.Info("CNPG Cluster not found, skipping deletion") + } + + case clusterDeletionPolicyRetain: + logger.Info("ClusterDeletionPolicy is 'Retain', removing owner references to orphan CNPG Cluster") + if cnpgCluster != nil { + originalCNPG := cnpgCluster.DeepCopy() + refRemoved, err := removeOwnerRef(scheme, cluster, cnpgCluster) + if err != nil { + return fmt.Errorf("failed to remove owner reference from CNPG cluster: %w", err) + } + if !refRemoved { + logger.Info("Owner reference already removed from CNPG Cluster, skipping patch") + } + if err := patchObject(ctx, c, originalCNPG, cnpgCluster, "CNPGCluster"); err != nil { + return fmt.Errorf("failed to patch CNPG cluster after removing owner reference: %w", err) + } + logger.Info("Removed owner reference from CNPG Cluster") + } + + // Remove owner reference from the superuser Secret to prevent cascading deletion. + if cluster.Status.Resources != nil && cluster.Status.Resources.SuperUserSecretRef != nil { + secretName := cluster.Status.Resources.SuperUserSecretRef.Name + if err := c.Get(ctx, types.NamespacedName{Name: secretName, Namespace: cluster.Namespace}, secret); err != nil { + if !apierrors.IsNotFound(err) { + logger.Error(err, "Failed to fetch Secret during cleanup") + return fmt.Errorf("failed to fetch secret during cleanup: %w", err) + } + logger.Info("Secret not found, skipping owner reference removal", "secret", secretName) + } else { + originalSecret := secret.DeepCopy() + refRemoved, err := removeOwnerRef(scheme, cluster, secret) + if err != nil { + return fmt.Errorf("failed to remove owner reference from Secret: %w", err) + } + if refRemoved { + if err := patchObject(ctx, c, originalSecret, secret, "Secret"); err != nil { + return fmt.Errorf("failed to patch Secret after removing owner reference: %w", err) + } + } + logger.Info("Removed owner reference from Secret") + } + } + + default: + logger.Info("Unknown ClusterDeletionPolicy", "policy", policy) + } + + controllerutil.RemoveFinalizer(cluster, PostgresClusterFinalizerName) + if err := c.Update(ctx, cluster); err != nil { + if apierrors.IsNotFound(err) { + logger.Info("PostgresCluster already deleted, skipping finalizer update") + return nil + } + logger.Error(err, "Failed to remove finalizer from PostgresCluster") + return fmt.Errorf("failed to remove finalizer: %w", err) + } + logger.Info("Finalizer removed, cleanup complete") + return nil +} + +func removeOwnerRef(scheme *runtime.Scheme, owner, obj client.Object) (bool, error) { + hasRef, err := controllerutil.HasOwnerReference(obj.GetOwnerReferences(), owner, scheme) + if err != nil { + return false, fmt.Errorf("failed to check owner reference: %w", err) + } + if !hasRef { + return false, nil + } + if err := controllerutil.RemoveOwnerReference(owner, obj, scheme); err != nil { + return false, fmt.Errorf("failed to remove owner reference: %w", err) + } + return true, nil +} + +// patchObject patches obj from original; treats NotFound as a no-op. +func patchObject(ctx context.Context, c client.Client, original, obj client.Object, kind objectKind) error { + logger := log.FromContext(ctx) + if err := c.Patch(ctx, obj, client.MergeFrom(original)); err != nil { + if apierrors.IsNotFound(err) { + logger.Info("Object not found, skipping patch", "kind", kind, "name", obj.GetName()) + return nil + } + return fmt.Errorf("failed to patch %s object: %w", kind, err) + } + logger.Info("Patched object successfully", "kind", kind, "name", obj.GetName()) + return nil +} + +func generatePassword() (string, error) { + const ( + length = 32 + digits = 8 + symbols = 0 + ) + return password.Generate(length, digits, symbols, false, true) +} diff --git a/pkg/postgresql/cluster/core/types.go b/pkg/postgresql/cluster/core/types.go new file mode 100644 index 000000000..19886fd73 --- /dev/null +++ b/pkg/postgresql/cluster/core/types.go @@ -0,0 +1,102 @@ +package core + +import ( + "time" + + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + corev1 "k8s.io/api/core/v1" +) + +// normalizedCNPGClusterSpec is a subset of cnpgv1.ClusterSpec fields used for drift detection. +// Only fields we set in buildCNPGClusterSpec are included — CNPG-injected defaults are excluded +// to avoid false-positive drift on every reconcile. +type normalizedCNPGClusterSpec struct { + ImageName string + Instances int + CustomDefinedParameters map[string]string + PgHBA []string + DefaultDatabase string + Owner string + StorageSize string + Resources corev1.ResourceRequirements +} + +// MergedConfig is the resolved configuration after overlaying PostgresCluster on PostgresClusterClass defaults. +type MergedConfig struct { + Spec *enterprisev4.PostgresClusterSpec + CNPG *enterprisev4.CNPGConfig +} + +type reconcileClusterPhases string +type conditionTypes string +type conditionReasons string +type objectKind string + +const ( + retryDelay = time.Second * 15 + + readOnlyEndpoint string = "ro" + readWriteEndpoint string = "rw" + + defaultDatabaseName string = "postgres" + superUsername string = "postgres" + defaultPort string = "5432" + + secretKeyPassword string = "password" + defaultSecretSuffix string = "-secret" + defaultPoolerSuffix string = "-pooler-" + defaultConfigMapSuffix string = "-configmap" + + clusterDeletionPolicyDelete string = "Delete" + clusterDeletionPolicyRetain string = "Retain" + + // PostgresClusterFinalizerName is exported so the primary adapter (controller) can + // reference it in event predicates without duplicating the string. + PostgresClusterFinalizerName string = "postgresclusters.enterprise.splunk.com/finalizer" + + // cluster phases + readyClusterPhase reconcileClusterPhases = "Ready" + pendingClusterPhase reconcileClusterPhases = "Pending" + provisioningClusterPhase reconcileClusterPhases = "Provisioning" + configuringClusterPhase reconcileClusterPhases = "Configuring" + failedClusterPhase reconcileClusterPhases = "Failed" + + // condition types + clusterReady conditionTypes = "ClusterReady" + poolerReady conditionTypes = "PoolerReady" + + // condition reasons — clusterReady + reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" + reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" + reasonClusterBuildFailed conditionReasons = "ClusterBuildFailed" + reasonClusterBuildSucceeded conditionReasons = "ClusterBuildSucceeded" + reasonClusterGetFailed conditionReasons = "ClusterGetFailed" + reasonClusterPatchFailed conditionReasons = "ClusterPatchFailed" + reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" + reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" + reasonUserSecretFailed conditionReasons = "UserSecretReconciliationFailed" + reasonSuperUserSecretFailed conditionReasons = "SuperUserSecretFailed" + reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" + + // condition reasons — poolerReady + reasonPoolerReconciliationFailed conditionReasons = "PoolerReconciliationFailed" + reasonPoolerConfigMissing conditionReasons = "PoolerConfigMissing" + reasonPoolerCreating conditionReasons = "PoolerCreating" + reasonAllInstancesReady conditionReasons = "AllInstancesReady" + + // condition reasons — CNPG cluster phase mapping + reasonCNPGClusterNotHealthy conditionReasons = "CNPGClusterNotHealthy" + reasonCNPGClusterHealthy conditionReasons = "CNPGClusterHealthy" + reasonCNPGProvisioning conditionReasons = "CNPGClusterProvisioning" + reasonCNPGSwitchover conditionReasons = "CNPGSwitchover" + reasonCNPGFailingOver conditionReasons = "CNPGFailingOver" + reasonCNPGRestarting conditionReasons = "CNPGRestarting" + reasonCNPGUpgrading conditionReasons = "CNPGUpgrading" + reasonCNPGApplyingConfig conditionReasons = "CNPGApplyingConfiguration" + reasonCNPGPromoting conditionReasons = "CNPGPromoting" + reasonCNPGWaitingForUser conditionReasons = "CNPGWaitingForUser" + reasonCNPGUnrecoverable conditionReasons = "CNPGUnrecoverable" + reasonCNPGProvisioningFailed conditionReasons = "CNPGProvisioningFailed" + reasonCNPGPluginError conditionReasons = "CNPGPluginError" + reasonCNPGImageError conditionReasons = "CNPGImageError" +) diff --git a/pkg/postgresql/database/adapter/db_repository.go b/pkg/postgresql/database/adapter/db_repository.go new file mode 100644 index 000000000..0b23f685c --- /dev/null +++ b/pkg/postgresql/database/adapter/db_repository.go @@ -0,0 +1,80 @@ +// Package adapter contains driven adapters for the PostgresDatabase domain. +// Each adapter implements a port defined in core/ports.go. +package adapter + +import ( + "context" + "fmt" + "time" + + dbcore "github.com/splunk/splunk-operator/pkg/postgresql/database/core" + + "github.com/jackc/pgx/v5" +) + +const ( + superUsername = "postgres" + postgresPort = "5432" + dbConnectTimeout = 10 * time.Second +) + +// pgDBRepository is the pgx-backed adapter for the core.DBRepo port. +// It owns the full connection lifecycle: open on construction, close on ExecGrants return. +type pgDBRepository struct { + conn *pgx.Conn +} + +// ExecGrants applies all privilege grants needed for the RW role on a single database. +// GRANT ON ALL TABLES/SEQUENCES covers existing objects; ALTER DEFAULT PRIVILEGES covers +// future ones created by the admin role (e.g. via migrations). +func (r *pgDBRepository) ExecGrants(ctx context.Context, dbName string) error { + defer r.conn.Close(context.Background()) + + adminRole := dbName + "_admin" + rwRole := dbName + "_rw" + + tx, err := r.conn.Begin(ctx) + if err != nil { + return fmt.Errorf("beginning transaction: %w", err) + } + + // Identifiers cannot be parameterised in PostgreSQL — fmt.Sprintf is correct here. + // Role names are generated internally by our own functions, never from user input. + stmts := []string{ + fmt.Sprintf("GRANT CONNECT ON DATABASE %s TO %s", dbName, rwRole), + fmt.Sprintf("GRANT USAGE ON SCHEMA public TO %s", rwRole), + fmt.Sprintf("GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO %s", rwRole), + fmt.Sprintf("GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO %s", rwRole), + fmt.Sprintf("ALTER DEFAULT PRIVILEGES FOR ROLE %s IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO %s", adminRole, rwRole), + fmt.Sprintf("ALTER DEFAULT PRIVILEGES FOR ROLE %s IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO %s", adminRole, rwRole), + } + + for _, stmt := range stmts { + if _, err := tx.Exec(ctx, stmt); err != nil { + return fmt.Errorf("executing grant %q: %w", stmt, err) + } + } + + return tx.Commit(ctx) +} + +// NewDBRepository opens a direct superuser connection, bypassing any pooler. +// PgBouncer in transaction mode blocks DDL; password is set on the config +// struct to avoid URL-encoding issues with special characters. +func NewDBRepository(ctx context.Context, host, dbName, password string) (dbcore.DBRepo, error) { + cfg, err := pgx.ParseConfig(fmt.Sprintf( + "postgres://%s@%s:%s/%s?sslmode=require&connect_timeout=%d", + superUsername, host, postgresPort, dbName, + int(dbConnectTimeout.Seconds()), + )) + if err != nil { + return nil, fmt.Errorf("parsing connection config for %s/%s: %w", host, dbName, err) + } + cfg.Password = password + + conn, err := pgx.ConnectConfig(ctx, cfg) + if err != nil { + return nil, fmt.Errorf("connecting to %s/%s: %w", host, dbName, err) + } + return &pgDBRepository{conn: conn}, nil +} diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go new file mode 100644 index 000000000..1ae2227d7 --- /dev/null +++ b/pkg/postgresql/database/core/database.go @@ -0,0 +1,941 @@ +package core + +import ( + "context" + "encoding/json" + stderrors "errors" + "fmt" + "slices" + "strings" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + "github.com/sethvargo/go-password/password" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + "sigs.k8s.io/controller-runtime/pkg/log" +) + +// NewDBRepoFunc constructs a DBRepo adapter for the given host and database. +// Injected by the controller so the core never imports the pgx adapter directly. +type NewDBRepoFunc func(ctx context.Context, host, dbName, password string) (DBRepo, error) + +// PostgresDatabaseService is the application service entry point called by the primary adapter (reconciler). +// newDBRepo is injected to keep the core free of pgx imports. +func PostgresDatabaseService( + ctx context.Context, + c client.Client, + scheme *runtime.Scheme, + postgresDB *enterprisev4.PostgresDatabase, + newDBRepo NewDBRepoFunc, +) (ctrl.Result, error) { + logger := log.FromContext(ctx) + logger.Info("Reconciling PostgresDatabase", "name", postgresDB.Name, "namespace", postgresDB.Namespace) + + updateStatus := func(conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { + return setStatus(ctx, c, postgresDB, conditionType, conditionStatus, reason, message, phase) + } + + // Finalizer: cleanup on deletion, register on creation. + if postgresDB.GetDeletionTimestamp() != nil { + if err := handleDeletion(ctx, c, postgresDB); err != nil { + logger.Error(err, "Cleanup failed for PostgresDatabase") + return ctrl.Result{}, err + } + return ctrl.Result{}, nil + } + if !controllerutil.ContainsFinalizer(postgresDB, postgresDatabaseFinalizerName) { + controllerutil.AddFinalizer(postgresDB, postgresDatabaseFinalizerName) + if err := c.Update(ctx, postgresDB); err != nil { + logger.Error(err, "Failed to add finalizer to PostgresDatabase") + return ctrl.Result{}, err + } + return ctrl.Result{}, nil + } + + // ObservedGeneration equality means all phases completed on the current spec — nothing to do. + if postgresDB.Status.ObservedGeneration != nil && *postgresDB.Status.ObservedGeneration == postgresDB.Generation { + logger.Info("Spec unchanged and all phases complete, skipping") + return ctrl.Result{}, nil + } + + // Phase: ClusterValidation + cluster, clusterStatus, err := ensureClusterReady(ctx, c, postgresDB) + if err != nil { + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterInfoFetchFailed, + "Can't reach Cluster CR due to transient errors", pendingDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + logger.Info("Cluster validation done", "clusterName", postgresDB.Spec.ClusterRef.Name, "status", clusterStatus) + + switch clusterStatus { + case ClusterNotFound: + if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterNotFound, "Cluster CR not found", pendingDBPhase); err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{RequeueAfter: clusterNotFoundRetryDelay}, nil + + case ClusterNotReady, ClusterNoProvisionerRef: + if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterProvisioning, "Cluster is not in ready state yet", pendingDBPhase); err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + + case ClusterReady: + if err := updateStatus(clusterReady, metav1.ConditionTrue, reasonClusterAvailable, "Cluster is operational", provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + } + + // Phase: RoleConflictCheck — verify no other SSA field manager already owns our roles. + roleConflicts := getRoleConflicts(postgresDB, cluster) + if len(roleConflicts) > 0 { + conflictMsg := fmt.Sprintf("Role conflict: %s. "+ + "If you deleted a previous PostgresDatabase, recreate it with the original name to re-adopt the orphaned resources.", + strings.Join(roleConflicts, ", ")) + logger.Error(nil, conflictMsg) + if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRoleConflict, conflictMsg, failedDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, nil + } + + // We need the CNPG Cluster directly because PostgresCluster status does not yet + // surface managed role reconciliation state. + cnpgCluster := &cnpgv1.Cluster{} + if err := c.Get(ctx, types.NamespacedName{ + Name: cluster.Status.ProvisionerRef.Name, + Namespace: cluster.Status.ProvisionerRef.Namespace, + }, cnpgCluster); err != nil { + logger.Error(err, "Failed to fetch CNPG Cluster") + return ctrl.Result{}, err + } + + // Phase: CredentialProvisioning — secrets must exist before roles are patched. + // CNPG rejects a PasswordSecretRef pointing at a missing secret. + if err := reconcileUserSecrets(ctx, c, scheme, postgresDB); err != nil { + if statusErr := updateStatus(secretsReady, metav1.ConditionFalse, reasonSecretsCreationFailed, + fmt.Sprintf("Failed to reconcile user secrets: %v", err), provisioningDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if err := updateStatus(secretsReady, metav1.ConditionTrue, reasonSecretsCreated, + fmt.Sprintf("All secrets provisioned for %d databases", len(postgresDB.Spec.Databases)), provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + + // Phase: ConnectionMetadata — ConfigMaps carry connection info consumers need as soon + // as databases are ready, so they are created alongside secrets. + endpoints := resolveClusterEndpoints(cluster, cnpgCluster, postgresDB.Namespace) + if err := reconcileRoleConfigMaps(ctx, c, scheme, postgresDB, endpoints); err != nil { + if statusErr := updateStatus(configMapsReady, metav1.ConditionFalse, reasonConfigMapsCreationFailed, + fmt.Sprintf("Failed to reconcile ConfigMaps: %v", err), provisioningDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if err := updateStatus(configMapsReady, metav1.ConditionTrue, reasonConfigMapsCreated, + fmt.Sprintf("All ConfigMaps provisioned for %d databases", len(postgresDB.Spec.Databases)), provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + + // Phase: RoleProvisioning + desiredUsers := getDesiredUsers(postgresDB) + actualRoles := getUsersInClusterSpec(cluster) + var missing []string + for _, role := range desiredUsers { + if !slices.Contains(actualRoles, role) { + missing = append(missing, role) + } + } + + if len(missing) > 0 { + logger.Info("User spec changed, patching CNPG Cluster", "missing", missing) + if err := patchManagedRoles(ctx, c, postgresDB, cluster); err != nil { + logger.Error(err, "Failed to patch users in CNPG Cluster") + return ctrl.Result{}, err + } + if err := updateStatus(rolesReady, metav1.ConditionFalse, reasonWaitingForCNPG, + fmt.Sprintf("Waiting for %d roles to be reconciled", len(desiredUsers)), provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + } + + notReadyRoles, err := verifyRolesReady(ctx, desiredUsers, cnpgCluster) + if err != nil { + if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonUsersCreationFailed, + fmt.Sprintf("Role creation failed: %v", err), failedDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if len(notReadyRoles) > 0 { + if err := updateStatus(rolesReady, metav1.ConditionFalse, reasonWaitingForCNPG, + fmt.Sprintf("Waiting for roles to be reconciled: %v", notReadyRoles), provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + } + if err := updateStatus(rolesReady, metav1.ConditionTrue, reasonUsersAvailable, + fmt.Sprintf("All %d users in PostgreSQL", len(desiredUsers)), provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + + // Phase: DatabaseProvisioning + if err := reconcileCNPGDatabases(ctx, c, scheme, postgresDB, cluster); err != nil { + logger.Error(err, "Failed to reconcile CNPG Databases") + return ctrl.Result{}, err + } + + notReadyDBs, err := verifyDatabasesReady(ctx, c, postgresDB) + if err != nil { + logger.Error(err, "Failed to verify database status") + return ctrl.Result{}, err + } + if len(notReadyDBs) > 0 { + if err := updateStatus(databasesReady, metav1.ConditionFalse, reasonWaitingForCNPG, + fmt.Sprintf("Waiting for databases to be ready: %v", notReadyDBs), provisioningDBPhase); err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + } + if err := updateStatus(databasesReady, metav1.ConditionTrue, reasonDatabasesAvailable, + fmt.Sprintf("All %d databases ready", len(postgresDB.Spec.Databases)), readyDBPhase); err != nil { + return ctrl.Result{}, err + } + + // Phase: RWRolePrivileges + // Skipped when no new databases are detected — ALTER DEFAULT PRIVILEGES covers tables + // added by migrations on existing databases. Re-runs for all databases when a new one + // is added (idempotent for existing ones, required for the new one). + if hasNewDatabases(postgresDB) { + // Read from our own status — we created this secret and wrote the SecretKeySelector + // (name + key) when the cluster was provisioned. This avoids depending on CNPG's + // spec field and makes the key explicit. + if cluster.Status.Resources == nil || cluster.Status.Resources.SuperUserSecretRef == nil { + return ctrl.Result{}, fmt.Errorf("PostgresCluster %s has no superuser secret ref in status", cluster.Name) + } + superSecretRef := cluster.Status.Resources.SuperUserSecretRef + superSecret := &corev1.Secret{} + if err := c.Get(ctx, types.NamespacedName{ + Name: superSecretRef.Name, + Namespace: postgresDB.Namespace, + }, superSecret); err != nil { + return ctrl.Result{}, fmt.Errorf("fetching superuser secret %s: %w", superSecretRef.Name, err) + } + pw, ok := superSecret.Data[superSecretRef.Key] + if !ok { + return ctrl.Result{}, fmt.Errorf("superuser secret %s missing %q key", superSecretRef.Name, superSecretRef.Key) + } + + dbNames := make([]string, 0, len(postgresDB.Spec.Databases)) + for _, dbSpec := range postgresDB.Spec.Databases { + dbNames = append(dbNames, dbSpec.Name) + } + + if err := reconcileRWRolePrivileges(ctx, endpoints.RWHost, string(pw), dbNames, newDBRepo); err != nil { + if statusErr := updateStatus(privilegesReady, metav1.ConditionFalse, reasonPrivilegesGrantFailed, + fmt.Sprintf("Failed to grant RW role privileges: %v", err), provisioningDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } + return ctrl.Result{}, err + } + if err := updateStatus(privilegesReady, metav1.ConditionTrue, reasonPrivilegesGranted, + fmt.Sprintf("RW role privileges granted for all %d databases", len(postgresDB.Spec.Databases)), readyDBPhase); err != nil { + return ctrl.Result{}, err + } + } + + postgresDB.Status.Databases = populateDatabaseStatus(postgresDB) + postgresDB.Status.ObservedGeneration = &postgresDB.Generation + + if err := c.Status().Update(ctx, postgresDB); err != nil { + if errors.IsConflict(err) { + return ctrl.Result{Requeue: true}, nil + } + return ctrl.Result{}, fmt.Errorf("persisting final status: %w", err) + } + + logger.Info("All phases complete") + return ctrl.Result{}, nil +} + +// reconcileRWRolePrivileges calls the DBRepo port for each database. +// Errors are collected so all databases are attempted before returning. +func reconcileRWRolePrivileges( + ctx context.Context, + rwHost, superPassword string, + dbNames []string, + newDBRepo NewDBRepoFunc, +) error { + logger := log.FromContext(ctx) + var errs []error + for _, dbName := range dbNames { + repo, err := newDBRepo(ctx, rwHost, dbName, superPassword) + if err != nil { + logger.Error(err, "Failed to connect to database", "database", dbName) + errs = append(errs, fmt.Errorf("database %s: %w", dbName, err)) + continue + } + if err := repo.ExecGrants(ctx, dbName); err != nil { + logger.Error(err, "Failed to grant RW role privileges", "database", dbName) + errs = append(errs, fmt.Errorf("database %s: %w", dbName, err)) + continue + } + logger.Info("RW role privileges granted", "database", dbName, "rwRole", rwRoleName(dbName)) + } + return stderrors.Join(errs...) +} + +func ensureClusterReady(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) (*enterprisev4.PostgresCluster, clusterReadyStatus, error) { + logger := log.FromContext(ctx) + cluster := &enterprisev4.PostgresCluster{} + if err := c.Get(ctx, types.NamespacedName{Name: postgresDB.Spec.ClusterRef.Name, Namespace: postgresDB.Namespace}, cluster); err != nil { + if errors.IsNotFound(err) { + return nil, ClusterNotFound, nil + } + logger.Error(err, "Failed to fetch Cluster", "name", postgresDB.Spec.ClusterRef.Name) + return nil, ClusterNotReady, err + } + if cluster.Status.Phase == nil || *cluster.Status.Phase != string(ClusterReady) { + return cluster, ClusterNotReady, nil + } + if cluster.Status.ProvisionerRef == nil { + return cluster, ClusterNoProvisionerRef, nil + } + return cluster, ClusterReady, nil +} + +func getDesiredUsers(postgresDB *enterprisev4.PostgresDatabase) []string { + users := make([]string, 0, len(postgresDB.Spec.Databases)*2) + for _, dbSpec := range postgresDB.Spec.Databases { + users = append(users, adminRoleName(dbSpec.Name), rwRoleName(dbSpec.Name)) + } + return users +} + +func getUsersInClusterSpec(cluster *enterprisev4.PostgresCluster) []string { + users := make([]string, 0, len(cluster.Spec.ManagedRoles)) + for _, role := range cluster.Spec.ManagedRoles { + users = append(users, role.Name) + } + return users +} + +func getRoleConflicts(postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) []string { + myManager := fieldManagerName(postgresDB.Name) + desired := make(map[string]struct{}, len(postgresDB.Spec.Databases)*2) + for _, dbSpec := range postgresDB.Spec.Databases { + desired[adminRoleName(dbSpec.Name)] = struct{}{} + desired[rwRoleName(dbSpec.Name)] = struct{}{} + } + roleOwners := managedRoleOwners(cluster.ManagedFields) + var conflicts []string + for roleName := range desired { + if owner, exists := roleOwners[roleName]; exists && owner != myManager { + conflicts = append(conflicts, fmt.Sprintf("%s (owned by %s)", roleName, owner)) + } + } + return conflicts +} + +func managedRoleOwners(managedFields []metav1.ManagedFieldsEntry) map[string]string { + owners := make(map[string]string) + for _, mf := range managedFields { + if mf.FieldsV1 == nil { + continue + } + for _, name := range parseRoleNames(mf.FieldsV1.Raw) { + owners[name] = mf.Manager + } + } + return owners +} + +func parseRoleNames(raw []byte) []string { + var fields map[string]any + if err := json.Unmarshal(raw, &fields); err != nil { + return nil + } + spec, _ := fields["f:spec"].(map[string]any) + roles, _ := spec["f:managedRoles"].(map[string]any) + var names []string + for key := range roles { + var k struct{ Name string } + if err := json.Unmarshal([]byte(strings.TrimPrefix(key, "k:")), &k); err == nil && k.Name != "" { + names = append(names, k.Name) + } + } + return names +} + +func patchManagedRoles(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) error { + logger := log.FromContext(ctx) + allRoles := make([]enterprisev4.ManagedRole, 0, len(postgresDB.Spec.Databases)*2) + for _, dbSpec := range postgresDB.Spec.Databases { + allRoles = append(allRoles, + enterprisev4.ManagedRole{ + Name: adminRoleName(dbSpec.Name), + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleAdmin)}, + Key: secretKeyPassword}, + }, + enterprisev4.ManagedRole{ + Name: rwRoleName(dbSpec.Name), + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleRW)}, + Key: secretKeyPassword}, + }) + } + rolePatch := &unstructured.Unstructured{ + Object: map[string]any{ + "apiVersion": cluster.APIVersion, + "kind": cluster.Kind, + "metadata": map[string]any{"name": cluster.Name, "namespace": cluster.Namespace}, + "spec": map[string]any{"managedRoles": allRoles}, + }, + } + fieldManager := fieldManagerName(postgresDB.Name) + if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManager)); err != nil { + logger.Error(err, "Failed to add users to PostgresCluster", "postgresDatabase", postgresDB.Name) + return fmt.Errorf("patching managed roles for PostgresDatabase %s: %w", postgresDB.Name, err) + } + logger.Info("Users added to PostgresCluster via SSA", "postgresDatabase", postgresDB.Name, "roleCount", len(allRoles)) + return nil +} + +func verifyRolesReady(ctx context.Context, expectedUsers []string, cnpgCluster *cnpgv1.Cluster) ([]string, error) { + logger := log.FromContext(ctx) + if cnpgCluster.Status.ManagedRolesStatus.CannotReconcile != nil { + for _, userName := range expectedUsers { + if errs, exists := cnpgCluster.Status.ManagedRolesStatus.CannotReconcile[userName]; exists { + return nil, fmt.Errorf("user %s reconciliation failed: %v", userName, errs) + } + } + } + reconciled := cnpgCluster.Status.ManagedRolesStatus.ByStatus[cnpgv1.RoleStatusReconciled] + var notReady []string + for _, userName := range expectedUsers { + if !slices.Contains(reconciled, userName) { + notReady = append(notReady, userName) + } + } + if len(notReady) > 0 { + logger.Info("Users not reconciled yet", "pending", notReady) + } + return notReady, nil +} + +func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) error { + logger := log.FromContext(ctx) + for _, dbSpec := range postgresDB.Spec.Databases { + cnpgDBName := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) + reclaimPolicy := cnpgv1.DatabaseReclaimDelete + if dbSpec.DeletionPolicy == deletionPolicyRetain { + reclaimPolicy = cnpgv1.DatabaseReclaimRetain + } + cnpgDB := &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: cnpgDBName, Namespace: postgresDB.Namespace}, + } + _, err := controllerutil.CreateOrUpdate(ctx, c, cnpgDB, func() error { + cnpgDB.Spec = cnpgv1.DatabaseSpec{ + Name: dbSpec.Name, + Owner: adminRoleName(dbSpec.Name), + ClusterRef: corev1.LocalObjectReference{Name: cluster.Status.ProvisionerRef.Name}, + ReclaimPolicy: reclaimPolicy, + } + reAdopting := cnpgDB.Annotations[annotationRetainedFrom] == postgresDB.Name + if reAdopting { + logger.Info("Re-adopting orphaned CNPG Database", "name", cnpgDBName) + delete(cnpgDB.Annotations, annotationRetainedFrom) + } + if cnpgDB.CreationTimestamp.IsZero() || reAdopting { + return controllerutil.SetControllerReference(postgresDB, cnpgDB, scheme) + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling CNPG Database %s: %w", cnpgDBName, err) + } + } + return nil +} + +func verifyDatabasesReady(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) ([]string, error) { + var notReady []string + for _, dbSpec := range postgresDB.Spec.Databases { + cnpgDBName := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) + cnpgDB := &cnpgv1.Database{} + if err := c.Get(ctx, types.NamespacedName{Name: cnpgDBName, Namespace: postgresDB.Namespace}, cnpgDB); err != nil { + return nil, fmt.Errorf("getting CNPG Database %s: %w", cnpgDBName, err) + } + if cnpgDB.Status.Applied == nil || !*cnpgDB.Status.Applied { + notReady = append(notReady, dbSpec.Name) + } + } + return notReady, nil +} + +func setStatus(ctx context.Context, c client.Client, db *enterprisev4.PostgresDatabase, conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { + meta.SetStatusCondition(&db.Status.Conditions, metav1.Condition{ + Type: string(conditionType), + Status: conditionStatus, + Reason: string(reason), + Message: message, + ObservedGeneration: db.Generation, + }) + p := string(phase) + db.Status.Phase = &p + return c.Status().Update(ctx, db) +} + +func buildDeletionPlan(databases []enterprisev4.DatabaseDefinition) deletionPlan { + var plan deletionPlan + for _, db := range databases { + if db.DeletionPolicy == deletionPolicyRetain { + plan.retained = append(plan.retained, db) + } else { + plan.deleted = append(plan.deleted, db) + } + } + return plan +} + +func handleDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) error { + plan := buildDeletionPlan(postgresDB.Spec.Databases) + if err := orphanRetainedResources(ctx, c, postgresDB, plan.retained); err != nil { + return err + } + if err := deleteRemovedResources(ctx, c, postgresDB, plan.deleted); err != nil { + return err + } + if err := cleanupManagedRoles(ctx, c, postgresDB, plan); err != nil { + return err + } + controllerutil.RemoveFinalizer(postgresDB, postgresDatabaseFinalizerName) + if err := c.Update(ctx, postgresDB); err != nil { + if errors.IsNotFound(err) { + return nil + } + return fmt.Errorf("removing finalizer: %w", err) + } + log.FromContext(ctx).Info("Cleanup complete", "name", postgresDB.Name, "retained", len(plan.retained), "deleted", len(plan.deleted)) + return nil +} + +func orphanRetainedResources(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, retained []enterprisev4.DatabaseDefinition) error { + if err := orphanCNPGDatabases(ctx, c, postgresDB, retained); err != nil { + return err + } + if err := orphanConfigMaps(ctx, c, postgresDB, retained); err != nil { + return err + } + return orphanSecrets(ctx, c, postgresDB, retained) +} + +func deleteRemovedResources(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, deleted []enterprisev4.DatabaseDefinition) error { + if err := deleteCNPGDatabases(ctx, c, postgresDB, deleted); err != nil { + return err + } + if err := deleteConfigMaps(ctx, c, postgresDB, deleted); err != nil { + return err + } + return deleteSecrets(ctx, c, postgresDB, deleted) +} + +func cleanupManagedRoles(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, plan deletionPlan) error { + if len(plan.deleted) == 0 { + return nil + } + cluster := &enterprisev4.PostgresCluster{} + if err := c.Get(ctx, types.NamespacedName{Name: postgresDB.Spec.ClusterRef.Name, Namespace: postgresDB.Namespace}, cluster); err != nil { + if !errors.IsNotFound(err) { + return fmt.Errorf("getting PostgresCluster for role cleanup: %w", err) + } + log.FromContext(ctx).Info("PostgresCluster already deleted, skipping role cleanup") + return nil + } + return patchManagedRolesOnDeletion(ctx, c, postgresDB, cluster, plan.retained) +} + +func orphanCNPGDatabases(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) + for _, dbSpec := range databases { + name := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) + db := &cnpgv1.Database{} + if err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: postgresDB.Namespace}, db); err != nil { + if errors.IsNotFound(err) { + continue + } + return fmt.Errorf("getting CNPG Database %s for orphaning: %w", name, err) + } + if db.Annotations[annotationRetainedFrom] == postgresDB.Name { + continue + } + stripOwnerReference(db, postgresDB.UID) + if db.Annotations == nil { + db.Annotations = make(map[string]string) + } + db.Annotations[annotationRetainedFrom] = postgresDB.Name + if err := c.Update(ctx, db); err != nil { + return fmt.Errorf("orphaning CNPG Database %s: %w", name, err) + } + logger.Info("Orphaned CNPG Database CR", "name", name) + } + return nil +} + +func orphanConfigMaps(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) + for _, dbSpec := range databases { + name := configMapName(postgresDB.Name, dbSpec.Name) + cm := &corev1.ConfigMap{} + if err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: postgresDB.Namespace}, cm); err != nil { + if errors.IsNotFound(err) { + continue + } + return fmt.Errorf("getting ConfigMap %s for orphaning: %w", name, err) + } + if cm.Annotations[annotationRetainedFrom] == postgresDB.Name { + continue + } + stripOwnerReference(cm, postgresDB.UID) + if cm.Annotations == nil { + cm.Annotations = make(map[string]string) + } + cm.Annotations[annotationRetainedFrom] = postgresDB.Name + if err := c.Update(ctx, cm); err != nil { + return fmt.Errorf("orphaning ConfigMap %s: %w", name, err) + } + logger.Info("Orphaned ConfigMap", "name", name) + } + return nil +} + +func orphanSecrets(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) + for _, dbSpec := range databases { + for _, role := range []string{secretRoleAdmin, secretRoleRW} { + name := roleSecretName(postgresDB.Name, dbSpec.Name, role) + secret := &corev1.Secret{} + if err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: postgresDB.Namespace}, secret); err != nil { + if errors.IsNotFound(err) { + continue + } + return fmt.Errorf("getting Secret %s for orphaning: %w", name, err) + } + if secret.Annotations[annotationRetainedFrom] == postgresDB.Name { + continue + } + stripOwnerReference(secret, postgresDB.UID) + if secret.Annotations == nil { + secret.Annotations = make(map[string]string) + } + secret.Annotations[annotationRetainedFrom] = postgresDB.Name + if err := c.Update(ctx, secret); err != nil { + return fmt.Errorf("orphaning Secret %s: %w", name, err) + } + logger.Info("Orphaned Secret", "name", name) + } + } + return nil +} + +func deleteCNPGDatabases(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) + for _, dbSpec := range databases { + name := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) + db := &cnpgv1.Database{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: postgresDB.Namespace}} + if err := c.Delete(ctx, db); err != nil { + if errors.IsNotFound(err) { + continue + } + return fmt.Errorf("deleting CNPG Database %s: %w", name, err) + } + logger.Info("Deleted CNPG Database CR", "name", name) + } + return nil +} + +func deleteConfigMaps(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) + for _, dbSpec := range databases { + name := configMapName(postgresDB.Name, dbSpec.Name) + cm := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: postgresDB.Namespace}} + if err := c.Delete(ctx, cm); err != nil { + if errors.IsNotFound(err) { + continue + } + return fmt.Errorf("deleting ConfigMap %s: %w", name, err) + } + logger.Info("Deleted ConfigMap", "name", name) + } + return nil +} + +func deleteSecrets(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) + for _, dbSpec := range databases { + for _, role := range []string{secretRoleAdmin, secretRoleRW} { + name := roleSecretName(postgresDB.Name, dbSpec.Name, role) + secret := &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: postgresDB.Namespace}} + if err := c.Delete(ctx, secret); err != nil { + if errors.IsNotFound(err) { + continue + } + return fmt.Errorf("deleting Secret %s: %w", name, err) + } + logger.Info("Deleted Secret", "name", name) + } + } + return nil +} + +func buildRetainedRoles(postgresDBName string, retained []enterprisev4.DatabaseDefinition) []enterprisev4.ManagedRole { + roles := make([]enterprisev4.ManagedRole, 0, len(retained)*2) + for _, dbSpec := range retained { + roles = append(roles, + enterprisev4.ManagedRole{ + Name: adminRoleName(dbSpec.Name), + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDBName, dbSpec.Name, secretRoleAdmin)}, + Key: secretKeyPassword}, + }, + enterprisev4.ManagedRole{ + Name: rwRoleName(dbSpec.Name), + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDBName, dbSpec.Name, secretRoleRW)}, + Key: secretKeyPassword}, + }, + ) + } + return roles +} + +func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster, retained []enterprisev4.DatabaseDefinition) error { + roles := buildRetainedRoles(postgresDB.Name, retained) + rolePatch := &unstructured.Unstructured{ + Object: map[string]any{ + "apiVersion": cluster.APIVersion, + "kind": cluster.Kind, + "metadata": map[string]any{"name": cluster.Name, "namespace": cluster.Namespace}, + "spec": map[string]any{"managedRoles": roles}, + }, + } + if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManagerName(postgresDB.Name))); err != nil { + return fmt.Errorf("patching managed roles on deletion: %w", err) + } + log.FromContext(ctx).Info("Patched managed roles on deletion", "postgresDatabase", postgresDB.Name, "retainedRoles", len(roles)) + return nil +} + +func stripOwnerReference(obj metav1.Object, ownerUID types.UID) { + refs := obj.GetOwnerReferences() + filtered := make([]metav1.OwnerReference, 0, len(refs)) + for _, ref := range refs { + if ref.UID != ownerUID { + filtered = append(filtered, ref) + } + } + obj.SetOwnerReferences(filtered) +} + +func adoptResource(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, obj client.Object) error { + annotations := obj.GetAnnotations() + delete(annotations, annotationRetainedFrom) + obj.SetAnnotations(annotations) + if err := controllerutil.SetControllerReference(postgresDB, obj, scheme); err != nil { + return err + } + return c.Update(ctx, obj) +} + +func reconcileUserSecrets(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase) error { + for _, dbSpec := range postgresDB.Spec.Databases { + if err := ensureSecret(ctx, c, scheme, postgresDB, adminRoleName(dbSpec.Name), roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleAdmin)); err != nil { + return err + } + if err := ensureSecret(ctx, c, scheme, postgresDB, rwRoleName(dbSpec.Name), roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleRW)); err != nil { + return err + } + } + return nil +} + +func ensureSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string) error { + secret, err := getSecret(ctx, c, postgresDB.Namespace, secretName) + if err != nil { + return err + } + logger := log.FromContext(ctx) + switch { + case secret == nil: + logger.Info("Creating missing user secret", "name", secretName) + return createUserSecret(ctx, c, scheme, postgresDB, roleName, secretName) + case secret.Annotations[annotationRetainedFrom] == postgresDB.Name: + logger.Info("Re-adopting orphaned secret", "name", secretName) + return adoptResource(ctx, c, scheme, postgresDB, secret) + } + return nil +} + +func getSecret(ctx context.Context, c client.Client, namespace, name string) (*corev1.Secret, error) { + secret := &corev1.Secret{} + err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, secret) + if errors.IsNotFound(err) { + return nil, nil + } + if err != nil { + return nil, err + } + return secret, nil +} + +func createUserSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string) error { + pw, err := generatePassword() + if err != nil { + return err + } + secret := buildPasswordSecret(postgresDB, secretName, roleName, pw) + if err := controllerutil.SetControllerReference(postgresDB, secret, scheme); err != nil { + return fmt.Errorf("setting owner reference on Secret %s: %w", secretName, err) + } + if err := c.Create(ctx, secret); err != nil { + if errors.IsAlreadyExists(err) { + return nil + } + return err + } + return nil +} + +func buildPasswordSecret(postgresDB *enterprisev4.PostgresDatabase, secretName, roleName, pw string) *corev1.Secret { + return &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + Namespace: postgresDB.Namespace, + Labels: map[string]string{labelManagedBy: "splunk-operator", labelCNPGReload: "true"}, + }, + Data: map[string][]byte{"username": []byte(roleName), secretKeyPassword: []byte(pw)}, + } +} + +func reconcileRoleConfigMaps(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, endpoints clusterEndpoints) error { + logger := log.FromContext(ctx) + for _, dbSpec := range postgresDB.Spec.Databases { + cmName := configMapName(postgresDB.Name, dbSpec.Name) + cm := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: cmName, + Namespace: postgresDB.Namespace, + Labels: map[string]string{labelManagedBy: "splunk-operator"}, + }, + } + _, err := controllerutil.CreateOrUpdate(ctx, c, cm, func() error { + cm.Data = buildDatabaseConfigMapBody(dbSpec.Name, endpoints) + reAdopting := cm.Annotations[annotationRetainedFrom] == postgresDB.Name + if reAdopting { + logger.Info("Re-adopting orphaned ConfigMap", "name", cmName) + delete(cm.Annotations, annotationRetainedFrom) + } + if cm.CreationTimestamp.IsZero() || reAdopting { + return controllerutil.SetControllerReference(postgresDB, cm, scheme) + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling ConfigMap %s: %w", cmName, err) + } + } + return nil +} + +func buildDatabaseConfigMapBody(dbName string, endpoints clusterEndpoints) map[string]string { + data := map[string]string{ + "dbname": dbName, + "port": postgresPort, + "rw-host": endpoints.RWHost, + "ro-host": endpoints.ROHost, + "admin-user": adminRoleName(dbName), + "rw-user": rwRoleName(dbName), + } + if endpoints.PoolerRWHost != "" { + data["pooler-rw-host"] = endpoints.PoolerRWHost + } + if endpoints.PoolerROHost != "" { + data["pooler-ro-host"] = endpoints.PoolerROHost + } + return data +} + +func resolveClusterEndpoints(cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster, namespace string) clusterEndpoints { + // FQDN so consumers in other namespaces can resolve without extra config. + endpoints := clusterEndpoints{ + RWHost: fmt.Sprintf("%s.%s.svc.cluster.local", cnpgCluster.Status.WriteService, namespace), + ROHost: fmt.Sprintf("%s.%s.svc.cluster.local", cnpgCluster.Status.ReadService, namespace), + } + if cluster.Status.ConnectionPoolerStatus != nil && cluster.Status.ConnectionPoolerStatus.Enabled { + endpoints.PoolerRWHost = fmt.Sprintf("%s-pooler-%s.%s.svc.cluster.local", cnpgCluster.Name, readWriteEndpoint, namespace) + endpoints.PoolerROHost = fmt.Sprintf("%s-pooler-%s.%s.svc.cluster.local", cnpgCluster.Name, readOnlyEndpoint, namespace) + } + return endpoints +} + +func populateDatabaseStatus(postgresDB *enterprisev4.PostgresDatabase) []enterprisev4.DatabaseInfo { + databases := make([]enterprisev4.DatabaseInfo, 0, len(postgresDB.Spec.Databases)) + for _, dbSpec := range postgresDB.Spec.Databases { + databases = append(databases, enterprisev4.DatabaseInfo{ + Name: dbSpec.Name, + Ready: true, + AdminUserSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleAdmin)}, Key: secretKeyPassword}, + RWUserSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleRW)}, Key: secretKeyPassword}, + ConfigMapRef: &corev1.LocalObjectReference{Name: configMapName(postgresDB.Name, dbSpec.Name)}, + }) + } + return databases +} + +func hasNewDatabases(postgresDB *enterprisev4.PostgresDatabase) bool { + existing := make(map[string]bool, len(postgresDB.Status.Databases)) + for _, dbInfo := range postgresDB.Status.Databases { + existing[dbInfo.Name] = true + } + for _, dbSpec := range postgresDB.Spec.Databases { + if !existing[dbSpec.Name] { + return true + } + } + return false +} + +// Naming helpers — single source of truth shared by creation and status wiring. +func fieldManagerName(postgresDBName string) string { return fieldManagerPrefix + postgresDBName } +func adminRoleName(dbName string) string { return dbName + "_admin" } +func rwRoleName(dbName string) string { return dbName + "_rw" } +func cnpgDatabaseName(postgresDBName, dbName string) string { + return fmt.Sprintf("%s-%s", postgresDBName, dbName) +} +func roleSecretName(postgresDBName, dbName, role string) string { + return fmt.Sprintf("%s-%s-%s", postgresDBName, dbName, role) +} +func configMapName(postgresDBName, dbName string) string { + return fmt.Sprintf("%s-%s-config", postgresDBName, dbName) +} + +// generatePassword uses crypto/rand (via sethvargo/go-password) — predictable passwords +// are unacceptable for credentials that protect live database access. +func generatePassword() (string, error) { + return password.Generate(passwordLength, passwordDigits, passwordSymbols, false, true) +} diff --git a/pkg/postgresql/database/core/ports.go b/pkg/postgresql/database/core/ports.go new file mode 100644 index 000000000..0ee71bfe4 --- /dev/null +++ b/pkg/postgresql/database/core/ports.go @@ -0,0 +1,10 @@ +package core + +import "context" + +// DBRepo is the port for all direct database operations that require a +// superuser connection, bypassing any connection pooler. +// Adapters implementing this port live in adapter/. +type DBRepo interface { + ExecGrants(ctx context.Context, dbName string) error +} diff --git a/pkg/postgresql/database/core/types.go b/pkg/postgresql/database/core/types.go new file mode 100644 index 000000000..0d1fa116a --- /dev/null +++ b/pkg/postgresql/database/core/types.go @@ -0,0 +1,94 @@ +package core + +import ( + "time" + + enterprisev4 "github.com/splunk/splunk-operator/api/v4" +) + +type reconcileDBPhases string +type conditionTypes string +type conditionReasons string +type clusterReadyStatus string + +const ( + retryDelay = time.Second * 15 + clusterNotFoundRetryDelay = time.Second * 30 + + postgresPort string = "5432" + + readOnlyEndpoint string = "ro" + readWriteEndpoint string = "rw" + + deletionPolicyRetain string = "Retain" + + postgresDatabaseFinalizerName string = "postgresdatabases.enterprise.splunk.com/finalizer" + annotationRetainedFrom string = "enterprise.splunk.com/retained-from" + + fieldManagerPrefix string = "postgresdatabase-" + + secretRoleAdmin string = "admin" + secretRoleRW string = "rw" + secretKeyPassword string = "password" + + labelManagedBy string = "app.kubernetes.io/managed-by" + labelCNPGReload string = "cnpg.io/reload" + + // Password generation — no symbols for PostgreSQL connection string compatibility. + passwordLength = 32 + passwordDigits = 8 + passwordSymbols = 0 + + // DB reconcile phases + readyDBPhase reconcileDBPhases = "Ready" + pendingDBPhase reconcileDBPhases = "Pending" + provisioningDBPhase reconcileDBPhases = "Provisioning" + failedDBPhase reconcileDBPhases = "Failed" + + // condition types + clusterReady conditionTypes = "ClusterReady" + rolesReady conditionTypes = "RolesReady" + databasesReady conditionTypes = "DatabasesReady" + secretsReady conditionTypes = "SecretsReady" + configMapsReady conditionTypes = "ConfigMapsReady" + privilegesReady conditionTypes = "PrivilegesReady" + + // condition reasons + reasonClusterNotFound conditionReasons = "ClusterNotFound" + reasonClusterProvisioning conditionReasons = "ClusterProvisioning" + reasonClusterInfoFetchFailed conditionReasons = "ClusterInfoFetchNotPossible" + reasonClusterAvailable conditionReasons = "ClusterAvailable" + reasonDatabasesAvailable conditionReasons = "DatabasesAvailable" + reasonSecretsCreated conditionReasons = "SecretsCreated" + reasonSecretsCreationFailed conditionReasons = "SecretsCreationFailed" + reasonWaitingForCNPG conditionReasons = "WaitingForCNPG" + reasonUsersCreationFailed conditionReasons = "UsersCreationFailed" + reasonUsersAvailable conditionReasons = "UsersAvailable" + reasonRoleConflict conditionReasons = "RoleConflict" + reasonConfigMapsCreationFailed conditionReasons = "ConfigMapsCreationFailed" + reasonConfigMapsCreated conditionReasons = "ConfigMapsCreated" + reasonPrivilegesGranted conditionReasons = "PrivilegesGranted" + reasonPrivilegesGrantFailed conditionReasons = "PrivilegesGrantFailed" + + // ClusterReady sentinel values returned by ensureClusterReady. + // Exported so the controller adapter can switch on them if needed. + ClusterNotFound clusterReadyStatus = "NotFound" + ClusterNotReady clusterReadyStatus = "NotReady" + ClusterNoProvisionerRef clusterReadyStatus = "NoProvisionerRef" + ClusterReady clusterReadyStatus = "Ready" +) + +// clusterEndpoints holds fully-resolved connection hostnames for a cluster. +// PoolerRWHost and PoolerROHost are empty when connection pooling is disabled. +type clusterEndpoints struct { + RWHost string + ROHost string + PoolerRWHost string + PoolerROHost string +} + +// deletionPlan separates databases by their DeletionPolicy for the cleanup workflow. +type deletionPlan struct { + retained []enterprisev4.DatabaseDefinition + deleted []enterprisev4.DatabaseDefinition +} diff --git a/pkg/splunk/common/names.go b/pkg/splunk/common/names.go index cc70de668..7d1c5d4ca 100644 --- a/pkg/splunk/common/names.go +++ b/pkg/splunk/common/names.go @@ -108,6 +108,9 @@ const ( // MockClientInduceErrorDelete represents an error for delete Api MockClientInduceErrorDelete = "mockClientDeleteError" + // MockClientInduceErrorApply represents an error for apply Api (controller-runtime v0.22+ / k8s v0.34+) + MockClientInduceErrorApply = "mockClientApplyError" + // Rerr represents a random error strting Rerr = "randomError" ) diff --git a/pkg/splunk/test/controller.go b/pkg/splunk/test/controller.go index 6d43fa149..0274b63ad 100644 --- a/pkg/splunk/test/controller.go +++ b/pkg/splunk/test/controller.go @@ -504,6 +504,16 @@ func (c MockClient) Status() client.StatusWriter { return c.StatusWriter } +// Apply applies the given apply configuration to the mock client's state. +// Required by client.Client in controller-runtime v0.22+ (k8s v0.34+). +func (c MockClient) Apply(ctx context.Context, obj runtime.ApplyConfiguration, opts ...client.ApplyOption) error { + if value, ok := c.InduceErrorKind[splcommon.MockClientInduceErrorApply]; ok && value != nil { + return value + } + c.Calls["Apply"] = append(c.Calls["Apply"], MockFuncCall{CTX: ctx}) + return nil +} + // ResetCalls resets the function call tracker func (c *MockClient) ResetCalls() { c.Calls = make(map[string][]MockFuncCall) diff --git a/pkg/splunk/util/util.go b/pkg/splunk/util/util.go index df1252f25..5d6b4a214 100644 --- a/pkg/splunk/util/util.go +++ b/pkg/splunk/util/util.go @@ -211,7 +211,7 @@ func PodExecCommand(ctx context.Context, c splcommon.ControllerClient, podName s return "", "", err } } - restClient, err := podExecRESTClientForGVK(gvk, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) + restClient, err := podExecRESTClientForGVK(gvk, false, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) if err != nil { return "", "", err } diff --git a/pkg/splunk/util/util_test.go b/pkg/splunk/util/util_test.go index 19c4b27df..b42d9442d 100644 --- a/pkg/splunk/util/util_test.go +++ b/pkg/splunk/util/util_test.go @@ -48,7 +48,7 @@ var fakePodExecGetConfig = func() (*rest.Config, error) { } // Faking RESTClientForGVK -var fakePodExecRESTClientForGVK = func(gvk schema.GroupVersionKind, isUnstructured bool, baseConfig *rest.Config, codecs serializer.CodecFactory, client *http.Client) (rest.Interface, error) { +var fakePodExecRESTClientForGVK = func(gvk schema.GroupVersionKind, forceDisableProtoBuf bool, isUnstructured bool, baseConfig *rest.Config, codecs serializer.CodecFactory, client *http.Client) (rest.Interface, error) { return &fakeRestInterface{}, errors.New("fakeerror") } diff --git a/test/connect-to-postgres-cluster.sh b/test/connect-to-postgres-cluster.sh new file mode 100755 index 000000000..5f45e92d2 --- /dev/null +++ b/test/connect-to-postgres-cluster.sh @@ -0,0 +1,121 @@ +#!/bin/bash +# filepath: scripts/test-postgres-connection.sh + +set -e + +# Color output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Default values +NAMESPACE="${NAMESPACE:-default}" +POSTGRES_CLUSTER_NAME="${1:-}" + +if [ -z "$POSTGRES_CLUSTER_NAME" ]; then + echo -e "${RED}Error: PostgresCluster name is required${NC}" + echo "Usage: $0 [namespace]" + echo "Example: $0 my-postgres-cluster default" + exit 1 +fi + +if [ -n "$2" ]; then + NAMESPACE="$2" +fi + +echo -e "${YELLOW}Connecting to PostgresCluster: $POSTGRES_CLUSTER_NAME in namespace: $NAMESPACE${NC}" + +# Get ConfigMap name from PostgresCluster status +CONFIGMAP_NAME=$(kubectl get postgrescluster "$POSTGRES_CLUSTER_NAME" -n "$NAMESPACE" \ + -o jsonpath='{.status.resources.configMapRef.name}' 2>/dev/null) + +if [ -z "$CONFIGMAP_NAME" ]; then + echo -e "${RED}Error: ConfigMap reference not found in PostgresCluster status${NC}" + echo "Make sure the PostgresCluster is ready and the ConfigMap has been created" + exit 1 +fi + +# Get Secret name from PostgresCluster status +SECRET_NAME=$(kubectl get postgrescluster "$POSTGRES_CLUSTER_NAME" -n "$NAMESPACE" \ + -o jsonpath='{.status.resources.secretRef.name}' 2>/dev/null) + +if [ -z "$SECRET_NAME" ]; then + echo -e "${RED}Error: Secret reference not found in PostgresCluster status${NC}" + echo "Make sure the PostgresCluster is ready and the Secret has been created" + exit 1 +fi + +echo -e "${GREEN}Found ConfigMap: $CONFIGMAP_NAME${NC}" +echo -e "${GREEN}Found Secret: $SECRET_NAME${NC}" + +# Extract connection details from ConfigMap (using correct uppercase keys) +echo -e "\n${YELLOW}Extracting connection details...${NC}" +DB_PORT=$(kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" -o jsonpath='{.data.DEFAULT_CLUSTER_PORT}') +DB_USER=$(kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" -o jsonpath='{.data.SUPER_USER_NAME}') +RW_SERVICE_FQDN=$(kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" -o jsonpath='{.data.CLUSTER_RW_ENDPOINT}') +RO_SERVICE_FQDN=$(kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" -o jsonpath='{.data.CLUSTER_RO_ENDPOINT}') +R_SERVICE_FQDN=$(kubectl get configmap "$CONFIGMAP_NAME" -n "$NAMESPACE" -o jsonpath='{.data.CLUSTER_R_ENDPOINT}') + +# Extract just the service name (first part before the dot) +RW_SERVICE=$(echo "$RW_SERVICE_FQDN" | cut -d'.' -f1) +RO_SERVICE=$(echo "$RO_SERVICE_FQDN" | cut -d'.' -f1) +R_SERVICE=$(echo "$R_SERVICE_FQDN" | cut -d'.' -f1) + +# Extract password from Secret +DB_PASSWORD=$(kubectl get secret "$SECRET_NAME" -n "$NAMESPACE" -o jsonpath='{.data.password}' | base64 -d) + +# Get database name from CNPG cluster (assuming it matches the PostgresCluster name or is 'app') +DB_NAME=$(kubectl get cluster "$POSTGRES_CLUSTER_NAME" -n "$NAMESPACE" -o jsonpath='{.spec.bootstrap.initdb.database}' 2>/dev/null || echo "postgres") + +echo -e "${GREEN}Connection Details:${NC}" +echo " RW Service: $RW_SERVICE_FQDN" +echo " RO Service: $RO_SERVICE_FQDN" +echo " R Service: $R_SERVICE_FQDN" +echo " Port: $DB_PORT" +echo " Database: $DB_NAME" +echo " User: $DB_USER" + +# Check if psql is installed +if ! command -v psql &> /dev/null; then + echo -e "\n${YELLOW}psql client not found. Using kubectl run with postgres image...${NC}" + + echo -e "${YELLOW}Creating temporary pod for connection test...${NC}" + + kubectl run postgres-client-test \ + --rm -i --tty \ + --image=postgres:16 \ + --restart=Never \ + --namespace="$NAMESPACE" \ + --env="PGPASSWORD=$DB_PASSWORD" \ + -- psql -h "$RW_SERVICE_FQDN" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" +else + # Use port-forward for local connection + echo -e "\n${YELLOW}Setting up port-forward to PostgreSQL service...${NC}" + + # Kill any existing port-forward on 5432 + pkill -f "kubectl.*port-forward.*$RW_SERVICE" 2>/dev/null || true + + # Start port-forward in background (use service name only, not FQDN) + kubectl port-forward -n "$NAMESPACE" "service/$RW_SERVICE" 5432:$DB_PORT > /dev/null 2>&1 & + PORT_FORWARD_PID=$! + + # Cleanup function + cleanup() { + echo -e "\n${YELLOW}Cleaning up port-forward...${NC}" + kill $PORT_FORWARD_PID 2>/dev/null || true + } + trap cleanup EXIT + + # Wait for port-forward to be ready + echo -e "${YELLOW}Waiting for port-forward to be ready...${NC}" + sleep 3 + + echo -e "${GREEN}Connecting to PostgreSQL...${NC}" + echo -e "${YELLOW}Password: $DB_PASSWORD${NC}\n" + + # Use connection string format which is more reliable + # Disable GSSAPI and use password authentication only + PGPASSWORD="$DB_PASSWORD" psql "postgresql://$DB_USER@localhost:5432/$DB_NAME?gssencmode=disable" \ + || PGPASSWORD="$DB_PASSWORD" psql -h localhost -p 5432 -U "$DB_USER" -d "$DB_NAME" --no-psqlrc +fi \ No newline at end of file diff --git a/test/postgrescluster-retain-upgrade-flow.sh b/test/postgrescluster-retain-upgrade-flow.sh new file mode 100755 index 000000000..69124c536 --- /dev/null +++ b/test/postgrescluster-retain-upgrade-flow.sh @@ -0,0 +1,356 @@ +#!/usr/bin/env bash +# run make install make run in a separate terminal to have the operator running while this test executes +# this test verifies that when a PostgresCluster with clusterDeletionPolicy=Retain is deleted, the underlying CNPG Cluster and superuser Secret are not deleted and can be re-attached to a new PostgresCluster with the same name (simulating a major version upgrade flow where the cluster needs to be recreated). +# then, in a separate terminal, run: NAMESPACE=your-namespace UPGRADE_POSTGRES_VERSION=16 ./test/postgrescluster-retain-upgrade-flow.sh + + +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TEST_DIR="$ROOT_DIR/test" +SAMPLES_DIR="$ROOT_DIR/config/samples" + +CLUSTER_MANIFEST="${CLUSTER_MANIFEST:-$SAMPLES_DIR/enterprise_v4_postgrescluster_dev.yaml}" +DATABASE_MANIFEST="${DATABASE_MANIFEST:-$SAMPLES_DIR/enterprise_v4_postgresdatabase.yaml}" +CONNECT_SCRIPT="${CONNECT_SCRIPT:-$TEST_DIR/connect-to-postgres-cluster.sh}" +UPGRADE_POSTGRES_VERSION="${UPGRADE_POSTGRES_VERSION:-16}" +POLL_INTERVAL="${POLL_INTERVAL:-5}" +TIMEOUT_SECONDS="${TIMEOUT_SECONDS:-900}" +REQUIRE_POSTGRESDATABASE_READY="${REQUIRE_POSTGRESDATABASE_READY:-0}" + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +log() { + echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')] $*${NC}" +} + +pass() { + echo -e "${GREEN}[PASS] $*${NC}" +} + +fail() { + echo -e "${RED}[FAIL] $*${NC}" >&2 + exit 1 +} + +require_file() { + local path="$1" + [[ -f "$path" ]] || fail "Required file not found: $path" +} + +require_command() { + local cmd="$1" + command -v "$cmd" >/dev/null 2>&1 || fail "Required command not found: $cmd" +} + +current_namespace() { + local ns + ns="$(kubectl config view --minify --output 'jsonpath={..namespace}' 2>/dev/null || true)" + if [[ -z "$ns" ]]; then + ns="default" + fi + printf '%s' "$ns" +} + +preflight_namespace() { + local deletion_ts phase + deletion_ts="$(kubectl get ns "$NAMESPACE" -o jsonpath='{.metadata.deletionTimestamp}' 2>/dev/null || true)" + phase="$(kubectl get ns "$NAMESPACE" -o jsonpath='{.status.phase}' 2>/dev/null || true)" + if [[ -n "$deletion_ts" || "$phase" == "Terminating" ]]; then + fail "Namespace $NAMESPACE is terminating (deletionTimestamp=$deletion_ts phase=$phase). Use a non-terminating namespace." + fi +} + +preflight_cluster_dns() { + local host + host="${CLUSTER_NAME}-rw.${NAMESPACE}.svc.cluster.local" + if getent hosts "$host" >/dev/null 2>&1; then + return 0 + fi + + log "Cluster DNS name is not resolvable from this machine: $host" + log "This does not block local connection tests (we use kubectl port-forward), but it blocks PostgresDatabase DB-connection/privilege phases when the operator runs out-of-cluster (make run)." + log "Fix: run the operator in-cluster or use telepresence/kubefwd to get cluster DNS/networking on your machine." + + SKIP_POSTGRESDATABASE_READY_CHECK=1 + if [[ "$REQUIRE_POSTGRESDATABASE_READY" == "1" ]]; then + fail "PostgresDatabase readiness required (REQUIRE_POSTGRESDATABASE_READY=1) but cluster DNS is not available." + fi + + log "Continuing with degraded PostgresDatabase checks (readiness will not be required)." +} + +resource_exists() { + local resource="$1" + local name="$2" + kubectl get "$resource" "$name" -n "$NAMESPACE" >/dev/null 2>&1 +} + +jsonpath_value() { + local resource="$1" + local name="$2" + local jsonpath="$3" + kubectl get "$resource" "$name" -n "$NAMESPACE" -o "jsonpath=${jsonpath}" 2>/dev/null +} + +wait_for_jsonpath() { + local resource="$1" + local name="$2" + local jsonpath="$3" + local expected="$4" + local timeout="${5:-$TIMEOUT_SECONDS}" + local deadline=$((SECONDS + timeout)) + local value="" + + while (( SECONDS < deadline )); do + value="$(jsonpath_value "$resource" "$name" "$jsonpath" || true)" + if [[ "$value" == "$expected" ]]; then + pass "$resource/$name reached ${jsonpath}=${expected}" + return 0 + fi + sleep "$POLL_INTERVAL" + done + + fail "Timed out waiting for $resource/$name to reach ${jsonpath}=${expected}. Last value: ${value:-}" +} + +wait_for_contains() { + local resource="$1" + local name="$2" + local jsonpath="$3" + local expected_substring="$4" + local timeout="${5:-$TIMEOUT_SECONDS}" + local deadline=$((SECONDS + timeout)) + local value="" + + while (( SECONDS < deadline )); do + value="$(jsonpath_value "$resource" "$name" "$jsonpath" || true)" + if [[ "$value" == *"$expected_substring"* ]]; then + pass "$resource/$name contains ${expected_substring} in ${jsonpath}" + return 0 + fi + sleep "$POLL_INTERVAL" + done + + fail "Timed out waiting for $resource/$name to contain ${expected_substring} in ${jsonpath}. Last value: ${value:-}" +} + +wait_for_absence() { + local resource="$1" + local name="$2" + local timeout="${3:-$TIMEOUT_SECONDS}" + local deadline=$((SECONDS + timeout)) + + while (( SECONDS < deadline )); do + if ! resource_exists "$resource" "$name"; then + pass "$resource/$name is absent" + return 0 + fi + sleep "$POLL_INTERVAL" + done + + fail "Timed out waiting for $resource/$name to be deleted" +} + +wait_for_presence() { + local resource="$1" + local name="$2" + local timeout="${3:-$TIMEOUT_SECONDS}" + local deadline=$((SECONDS + timeout)) + + while (( SECONDS < deadline )); do + if resource_exists "$resource" "$name"; then + pass "$resource/$name exists" + return 0 + fi + sleep "$POLL_INTERVAL" + done + + fail "Timed out waiting for $resource/$name to exist" +} + +wait_for_owner_reference() { + local resource="$1" + local name="$2" + local owner_kind="$3" + local owner_name="$4" + local owner_uid="$5" + local timeout="${6:-$TIMEOUT_SECONDS}" + local deadline=$((SECONDS + timeout)) + local owners="" + local expected="${owner_kind}:${owner_name}:${owner_uid}" + + while (( SECONDS < deadline )); do + owners="$(jsonpath_value "$resource" "$name" '{range .metadata.ownerReferences[*]}{.kind}:{.name}:{.uid}{"\n"}{end}' || true)" + if [[ "$owners" == *"$expected"* ]]; then + pass "$resource/$name is owned by ${owner_kind}/${owner_name}" + return 0 + fi + sleep "$POLL_INTERVAL" + done + + fail "Timed out waiting for $resource/$name to be owned by ${owner_kind}/${owner_name}. Owners: ${owners:-}" +} + +run_connection_check() { + log "Checking superuser connection with $CONNECT_SCRIPT" + printf 'SELECT current_user;\n\\q\n' | bash "$CONNECT_SCRIPT" "$CLUSTER_NAME" "$NAMESPACE" + pass "Superuser connection succeeded" +} + +patch_cluster() { + local deletion_policy="$1" + local pooler_enabled="$2" + kubectl patch postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --type merge \ + -p "{\"spec\":{\"clusterDeletionPolicy\":\"${deletion_policy}\",\"connectionPoolerEnabled\":${pooler_enabled}}}" >/dev/null +} + +apply_upgraded_cluster_manifest() { + local tmp_manifest + tmp_manifest="$(mktemp)" + + sed \ + -e "s/^\([[:space:]]*clusterDeletionPolicy:\).*/\1 Retain/" \ + -e "s/^\([[:space:]]*postgresVersion:\).*/\1 \"${UPGRADE_POSTGRES_VERSION}\"/" \ + "$CLUSTER_MANIFEST" > "$tmp_manifest" + + kubectl apply -n "$NAMESPACE" -f "$tmp_manifest" >/dev/null + rm -f "$tmp_manifest" +} + +assert_cluster_ready() { + wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.phase}' 'Ready' + wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.conditions[?(@.type=="ClusterReady")].status}' 'True' + wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.conditions[?(@.type=="ConfigMapReady")].status}' 'True' +} + +assert_database_created() { + wait_for_presence postgresdatabase "$DATABASE_NAME" + for db in "${DATABASES[@]}"; do + wait_for_presence databases.postgresql.cnpg.io "${DATABASE_NAME}-${db}" + done + pass "PostgresDatabase CR exists and CNPG Database CRs are present" +} + +assert_database_ready() { + if [[ "${SKIP_POSTGRESDATABASE_READY_CHECK:-0}" == "1" ]]; then + assert_database_created + return 0 + fi + wait_for_jsonpath postgresdatabase "$DATABASE_NAME" '{.status.phase}' 'Ready' + wait_for_jsonpath postgresdatabase "$DATABASE_NAME" '{.status.observedGeneration}' \ + "$(jsonpath_value postgresdatabase "$DATABASE_NAME" '{.metadata.generation}')" +} + +record_cluster_artifacts() { + SUPERUSER_SECRET_NAME="$(jsonpath_value postgrescluster "$CLUSTER_NAME" '{.status.resources.secretRef.name}')" + CONFIGMAP_NAME="$(jsonpath_value postgrescluster "$CLUSTER_NAME" '{.status.resources.configMapRef.name}')" + + [[ -n "$SUPERUSER_SECRET_NAME" ]] || fail "PostgresCluster status.resources.secretRef.name is empty" + [[ -n "$CONFIGMAP_NAME" ]] || fail "PostgresCluster status.resources.configMapRef.name is empty" +} + +cleanup_database_cr() { + if resource_exists postgresdatabase "$DATABASE_NAME"; then + log "Deleting PostgresDatabase/$DATABASE_NAME to leave the namespace clean" + kubectl delete postgresdatabase "$DATABASE_NAME" -n "$NAMESPACE" --wait=false >/dev/null + wait_for_absence postgresdatabase "$DATABASE_NAME" + fi +} + +require_command kubectl +require_file "$CLUSTER_MANIFEST" +require_file "$DATABASE_MANIFEST" +require_file "$CONNECT_SCRIPT" + +NAMESPACE="${NAMESPACE:-$(current_namespace)}" +CLUSTER_NAME="${CLUSTER_NAME:-$(kubectl create --dry-run=client -f "$CLUSTER_MANIFEST" -o jsonpath='{.metadata.name}')}" +DATABASE_NAME="${DATABASE_NAME:-$(kubectl create --dry-run=client -f "$DATABASE_MANIFEST" -o jsonpath='{.metadata.name}')}" +DATABASES_STR="$(kubectl create --dry-run=client -f "$DATABASE_MANIFEST" -o jsonpath='{range .spec.databases[*]}{.name}{" "}{end}')" +read -r -a DATABASES <<< "${DATABASES_STR:-}" +RW_POOLER_NAME="${CLUSTER_NAME}-pooler-rw" +RO_POOLER_NAME="${CLUSTER_NAME}-pooler-ro" + +log "Using namespace: $NAMESPACE" +log "Cluster manifest: $CLUSTER_MANIFEST" +log "Database manifest: $DATABASE_MANIFEST" +log "Upgrade target postgresVersion: $UPGRADE_POSTGRES_VERSION" + +preflight_namespace +preflight_cluster_dns + +log "1. Creating PostgresCluster from sample manifest" +kubectl apply -n "$NAMESPACE" -f "$CLUSTER_MANIFEST" + +log "2. Creating PostgresDatabase from sample manifest" +kubectl apply -n "$NAMESPACE" -f "$DATABASE_MANIFEST" + +log "3. Waiting for PostgresCluster and PostgresDatabase to become ready" +assert_cluster_ready +assert_database_ready +record_cluster_artifacts +pass "PostgresCluster and PostgresDatabase were created successfully" + +log "4. Verifying superuser connection to PostgresCluster" +run_connection_check + +log "5. Setting clusterDeletionPolicy=Retain and connectionPoolerEnabled=false" +patch_cluster "Retain" "false" +wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.clusterDeletionPolicy}' 'Retain' +wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.connectionPoolerEnabled}' 'false' +wait_for_absence pooler.postgresql.cnpg.io "$RW_POOLER_NAME" +wait_for_absence pooler.postgresql.cnpg.io "$RO_POOLER_NAME" +assert_cluster_ready + +log "6. Setting connectionPoolerEnabled=true and waiting for poolers" +patch_cluster "Retain" "true" +wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.connectionPoolerEnabled}' 'true' +wait_for_presence pooler.postgresql.cnpg.io "$RW_POOLER_NAME" +wait_for_presence pooler.postgresql.cnpg.io "$RO_POOLER_NAME" +wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.conditions[?(@.type=="PoolerReady")].status}' 'True' +assert_cluster_ready + +log "7. Deleting PostgresCluster with retention enabled" +kubectl delete postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --wait=false >/dev/null +wait_for_absence postgrescluster "$CLUSTER_NAME" +wait_for_presence cluster.postgresql.cnpg.io "$CLUSTER_NAME" +wait_for_presence secret "$SUPERUSER_SECRET_NAME" +pass "CNPG cluster and superuser secret remained after PostgresCluster deletion" + +log "8. Recreating PostgresCluster with a major version upgrade" +apply_upgraded_cluster_manifest +wait_for_presence postgrescluster "$CLUSTER_NAME" +wait_for_contains cluster.postgresql.cnpg.io "$CLUSTER_NAME" '{.spec.imageName}' ":${UPGRADE_POSTGRES_VERSION}" +assert_cluster_ready +record_cluster_artifacts + +log "9. Checking that retained resources were re-attached to the recreated PostgresCluster" +POSTGRES_CLUSTER_UID="$(jsonpath_value postgrescluster "$CLUSTER_NAME" '{.metadata.uid}')" +wait_for_owner_reference cluster.postgresql.cnpg.io "$CLUSTER_NAME" "PostgresCluster" "$CLUSTER_NAME" "$POSTGRES_CLUSTER_UID" +wait_for_owner_reference secret "$SUPERUSER_SECRET_NAME" "PostgresCluster" "$CLUSTER_NAME" "$POSTGRES_CLUSTER_UID" + +log "10. Verifying superuser connection after recreate/upgrade" +run_connection_check + +log "11. Setting clusterDeletionPolicy=Delete" +kubectl patch postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --type merge \ + -p '{"spec":{"clusterDeletionPolicy":"Delete"}}' >/dev/null +wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.clusterDeletionPolicy}' 'Delete' + +log "12. Deleting the PostgresCluster" +kubectl delete postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --wait=false >/dev/null +wait_for_absence postgrescluster "$CLUSTER_NAME" + +log "13. Checking that no cluster leftovers remain" +cleanup_database_cr +wait_for_absence cluster.postgresql.cnpg.io "$CLUSTER_NAME" +wait_for_absence pooler.postgresql.cnpg.io "$RW_POOLER_NAME" +wait_for_absence pooler.postgresql.cnpg.io "$RO_POOLER_NAME" +wait_for_absence secret "$SUPERUSER_SECRET_NAME" +wait_for_absence configmap "$CONFIGMAP_NAME" +pass "No PostgresCluster leftovers remain in namespace $NAMESPACE" + +log "Flow finished successfully" diff --git a/test/testenv/deployment.go b/test/testenv/deployment.go index e639a9513..cb3624c99 100644 --- a/test/testenv/deployment.go +++ b/test/testenv/deployment.go @@ -217,7 +217,7 @@ func (d *Deployment) PodExecCommand(ctx context.Context, podName string, cmd []s return "", "", err } //FIXME - restClient, err := apiutil.RESTClientForGVK(gvk, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) + restClient, err := apiutil.RESTClientForGVK(gvk, false, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) if err != nil { return "", "", err } @@ -264,7 +264,7 @@ func (d *Deployment) OperatorPodExecCommand(ctx context.Context, podName string, return "", "", err } //FIXME - restClient, err := apiutil.RESTClientForGVK(gvk, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) + restClient, err := apiutil.RESTClientForGVK(gvk, false, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) if err != nil { return "", "", err } diff --git a/test/testenv/ingest_utils.go b/test/testenv/ingest_utils.go index 2c0403b1e..d4606ef31 100644 --- a/test/testenv/ingest_utils.go +++ b/test/testenv/ingest_utils.go @@ -187,7 +187,7 @@ func CopyFileToPod(ctx context.Context, podName string, srcPath string, destPath if err != nil { return "", "", err } - restClient, err := apiutil.RESTClientForGVK(gvk, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) + restClient, err := apiutil.RESTClientForGVK(gvk, false, false, restConfig, serializer.NewCodecFactory(scheme.Scheme), http.DefaultClient) if err != nil { return "", "", err } From f445129ac0982b636126fbe166e91616f0beb3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Wed, 25 Mar 2026 21:23:30 +0100 Subject: [PATCH 02/43] Refresh crds and bundles with new version of controller-gen --- .gitignore | 3 +- .tool-versions | 1 - CLAUDE.md | 26 - api/v4/common_types.go | 108 ++- bundle.Dockerfile | 7 +- ...enterprise.splunk.com_clustermanagers.yaml | 346 ++++++++- .../enterprise.splunk.com_clustermasters.yaml | 346 ++++++++- ...enterprise.splunk.com_indexerclusters.yaml | 433 +++++++++-- ...nterprise.splunk.com_ingestorclusters.yaml | 284 ++++++- ...enterprise.splunk.com_licensemanagers.yaml | 284 ++++++- .../enterprise.splunk.com_licensemasters.yaml | 284 ++++++- ...erprise.splunk.com_monitoringconsoles.yaml | 568 ++++++++++++-- ...ise.splunk.com_postgresclusterclasses.yaml | 2 + .../enterprise.splunk.com_queues.yaml | 30 +- ...erprise.splunk.com_searchheadclusters.yaml | 571 +++++++++++++-- .../enterprise.splunk.com_standalones.yaml | 693 ++++++++++++++++-- ...splunk-operator.clusterserviceversion.yaml | 161 +++- bundle/metadata/annotations.yaml | 7 +- ...enterprise.splunk.com_clustermanagers.yaml | 169 ++++- .../enterprise.splunk.com_clustermasters.yaml | 169 ++++- ...enterprise.splunk.com_indexerclusters.yaml | 338 ++++++++- ...nterprise.splunk.com_ingestorclusters.yaml | 169 ++++- ...enterprise.splunk.com_licensemanagers.yaml | 169 ++++- .../enterprise.splunk.com_licensemasters.yaml | 169 ++++- ...erprise.splunk.com_monitoringconsoles.yaml | 338 ++++++++- ...erprise.splunk.com_searchheadclusters.yaml | 340 ++++++++- .../enterprise.splunk.com_standalones.yaml | 338 ++++++++- ...splunk-operator.clusterserviceversion.yaml | 17 + config/rbac/postgrescluster_admin_role.yaml | 27 - .../rbac/postgresclusterclass_admin_role.yaml | 27 - config/rbac/postgresdatabase_admin_role.yaml | 27 - internal/controller/suite_test.go | 175 +++-- test/postgrescluster-retain-upgrade-flow.sh | 356 --------- 33 files changed, 5825 insertions(+), 1157 deletions(-) delete mode 100644 .tool-versions delete mode 100644 CLAUDE.md delete mode 100644 config/rbac/postgrescluster_admin_role.yaml delete mode 100644 config/rbac/postgresclusterclass_admin_role.yaml delete mode 100644 config/rbac/postgresdatabase_admin_role.yaml delete mode 100755 test/postgrescluster-retain-upgrade-flow.sh diff --git a/.gitignore b/.gitignore index 5de8f6d85..050b59d70 100644 --- a/.gitignore +++ b/.gitignore @@ -100,4 +100,5 @@ bundle_*/ test/secret/*.log kubeconfig .devcontainer/devcontainer.json -kuttl-artifacts/* \ No newline at end of file +kuttl-artifacts/* +.tool-versions \ No newline at end of file diff --git a/.tool-versions b/.tool-versions deleted file mode 100644 index 1527bb834..000000000 --- a/.tool-versions +++ /dev/null @@ -1 +0,0 @@ -golang 1.25.5 \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index de84839de..000000000 --- a/CLAUDE.md +++ /dev/null @@ -1,26 +0,0 @@ -# Claude Code – Project Ground Rules - -## Role & Expertise -- You are a **Go expert** and a **Kubernetes controller/operator expert**. -- You write **small, clean, unit-testable functions**. -- Comments explain **why**, not what. Avoid restating the code in prose. - -## Code Style -- Keep functions focused and short — each should do one thing. -- Prefer explicit error handling with descriptive context (e.g. `fmt.Errorf("reconciling roles: %w", err)`). -- Avoid deep nesting; use early returns. - -## Reconciler / Operator Design -- The **reconciler is the main orchestration flow**. All state modifications are coordinated here. -- We build state **incrementally**: each major step updates state and requeues (`ctrl.Result{RequeueAfter: ...}`). -- Every operation must be **idempotent** — safe to run multiple times with the same outcome. -- Follow **Kubernetes controller best practices**: - - Use `SSA` (Server-Side Apply) where appropriate. - - Emit `Events` for meaningful state transitions. - - Use `Status` conditions to reflect progress and errors. - - Respect finalizers for cleanup logic. - -## Testing -- New logic should be accompanied by unit tests. -- Prefer table-driven tests. -- Mock external dependencies (k8s client, DB connections) via interfaces. diff --git a/api/v4/common_types.go b/api/v4/common_types.go index 5bba9c0cd..e53317075 100644 --- a/api/v4/common_types.go +++ b/api/v4/common_types.go @@ -91,12 +91,15 @@ type Spec struct { // Image to use for Splunk pod containers (overrides RELATED_IMAGE_SPLUNK_ENTERPRISE environment variables) Image string `json:"image"` - // Sets pull policy for all images (either “Always” or the default: “IfNotPresent”) - // +kubebuilder:validation:Enum=Always;IfNotPresent - ImagePullPolicy string `json:"imagePullPolicy"` + // Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent") + // +kubebuilder:validation:Enum=Always;IfNotPresent;Never + // +kubebuilder:default=IfNotPresent + // +optional + ImagePullPolicy string `json:"imagePullPolicy,omitempty"` // Name of Scheduler to use for pod placement (defaults to “default-scheduler”) - SchedulerName string `json:"schedulerName"` + // +optional + SchedulerName string `json:"schedulerName,omitempty"` // Kubernetes Affinity rules that control how pods are assigned to particular nodes. Affinity corev1.Affinity `json:"affinity"` @@ -137,7 +140,7 @@ const ( // PhaseTerminating means a custom resource is in the process of being removed PhaseTerminating Phase = "Terminating" - // PhaseError means an error occured with custom resource management + // PhaseError means an error occurred with custom resource management PhaseError Phase = "Error" ) @@ -164,13 +167,16 @@ type CommonSplunkSpec struct { Spec `json:",inline"` // Storage configuration for /opt/splunk/etc volume - EtcVolumeStorageConfig StorageClassSpec `json:"etcVolumeStorageConfig"` + // +optional + EtcVolumeStorageConfig StorageClassSpec `json:"etcVolumeStorageConfig,omitempty"` // Storage configuration for /opt/splunk/var volume - VarVolumeStorageConfig StorageClassSpec `json:"varVolumeStorageConfig"` + // +optional + VarVolumeStorageConfig StorageClassSpec `json:"varVolumeStorageConfig,omitempty"` // List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ - Volumes []corev1.Volume `json:"volumes"` + // +optional + Volumes []corev1.Volume `json:"volumes,omitempty"` // Inline map of default.yml overrides used to initialize the environment Defaults string `json:"defaults"` @@ -210,10 +216,12 @@ type CommonSplunkSpec struct { // ServiceAccount is the service account used by the pods deployed by the CRD. // If not specified uses the default serviceAccount for the namespace as per // https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server - ServiceAccount string `json:"serviceAccount"` + // +optional + ServiceAccount string `json:"serviceAccount,omitempty"` // ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers // WARNING: Setting environment variables used by Splunk or Ansible will affect Splunk installation and operation + // +optional ExtraEnv []corev1.EnvVar `json:"extraEnv,omitempty"` // ReadinessInitialDelaySeconds defines initialDelaySeconds(See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes) for Readiness probe @@ -227,45 +235,64 @@ type CommonSplunkSpec struct { LivenessInitialDelaySeconds int32 `json:"livenessInitialDelaySeconds"` // LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command + // +optional + // +kubebuilder:default:={"initialDelaySeconds":30,"timeoutSeconds":30,"periodSeconds":30,"failureThreshold":3} LivenessProbe *Probe `json:"livenessProbe,omitempty"` // ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes + // +optional + // +kubebuilder:default:={"initialDelaySeconds":10,"timeoutSeconds":5,"periodSeconds":5,"failureThreshold":3} ReadinessProbe *Probe `json:"readinessProbe,omitempty"` // StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes + // +optional + // +kubebuilder:default:={"initialDelaySeconds":40,"timeoutSeconds":30,"periodSeconds":30,"failureThreshold":12} StartupProbe *Probe `json:"startupProbe,omitempty"` // Sets imagePullSecrets if image is being pulled from a private registry. // See https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + // +optional ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` } // StorageClassSpec defines storage class configuration +// +kubebuilder:validation:XValidation:rule="!(size(self.storageClassName) > 0 && self.ephemeralStorage == true)",message="storageClassName and ephemeralStorage are mutually exclusive" +// +kubebuilder:validation:XValidation:rule="!(size(self.storageCapacity) > 0 && self.ephemeralStorage == true)",message="storageCapacity and ephemeralStorage are mutually exclusive" type StorageClassSpec struct { // Name of StorageClass to use for persistent volume claims - StorageClassName string `json:"storageClassName"` + // +optional + StorageClassName string `json:"storageClassName,omitempty"` - // Storage capacity to request persistent volume claims (default=”10Gi” for etc and "100Gi" for var) - StorageCapacity string `json:"storageCapacity"` + // Storage capacity to request persistent volume claims (default="10Gi" for etc and "100Gi" for var) + // +optional + StorageCapacity string `json:"storageCapacity,omitempty"` // If true, ephemeral (emptyDir) storage will be used - // default false // +optional - EphemeralStorage bool `json:"ephemeralStorage"` + // +kubebuilder:default=false + EphemeralStorage bool `json:"ephemeralStorage,omitempty"` } // SmartStoreSpec defines Splunk indexes and remote storage volume configuration type SmartStoreSpec struct { // List of remote storage volumes + // +optional + // +listType=map + // +listMapKey=name VolList []VolumeSpec `json:"volumes,omitempty"` // List of Splunk indexes + // +optional + // +listType=map + // +listMapKey=name IndexList []IndexSpec `json:"indexes,omitempty"` // Default configuration for indexes + // +optional Defaults IndexConfDefaultsSpec `json:"defaults,omitempty"` // Defines Cache manager settings + // +optional CacheManagerConf CacheManagerSpec `json:"cacheManager,omitempty"` } @@ -274,18 +301,23 @@ type CacheManagerSpec struct { IndexAndCacheManagerCommonSpec `json:",inline"` // Eviction policy to use + // +optional EvictionPolicy string `json:"evictionPolicy,omitempty"` // Max cache size per partition + // +optional MaxCacheSizeMB uint `json:"maxCacheSize,omitempty"` // Additional size beyond 'minFreeSize' before eviction kicks in + // +optional EvictionPaddingSizeMB uint `json:"evictionPadding,omitempty"` // Maximum number of buckets that can be downloaded from remote storage in parallel + // +optional MaxConcurrentDownloads uint `json:"maxConcurrentDownloads,omitempty"` // Maximum number of buckets that can be uploaded to remote storage in parallel + // +optional MaxConcurrentUploads uint `json:"maxConcurrentUploads,omitempty"` } @@ -295,30 +327,42 @@ type IndexConfDefaultsSpec struct { } // VolumeSpec defines remote volume config +// +kubebuilder:validation:XValidation:rule="self.provider != 'aws' || size(self.region) > 0",message="region is required when provider is aws" type VolumeSpec struct { // Remote volume name + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Remote volume URI + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 Endpoint string `json:"endpoint"` // Remote volume path + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 Path string `json:"path"` // Secret object name - SecretRef string `json:"secretRef"` + // +optional + SecretRef string `json:"secretRef,omitempty"` // Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp. + // +kubebuilder:validation:Enum=s3;blob;gcs Type string `json:"storageType"` // App Package Remote Store provider. Supported values: aws, minio, azure, gcp. - Provider string `json:"provider"` + // +optional + // +kubebuilder:validation:Enum=aws;minio;azure;gcp + Provider string `json:"provider,omitempty"` - // Region of the remote storage volume where apps reside. Used for aws, if provided. Not used for minio and azure. - Region string `json:"region"` + // Region of the remote storage volume where apps reside. Required for aws, optional for azure and gcp. + // +optional + Region string `json:"region,omitempty"` } -// VolumeAndTypeSpec used to add any custom varaibles for volume implementation +// VolumeAndTypeSpec used to add any custom variables for volume implementation type VolumeAndTypeSpec struct { VolumeSpec `json:",inline"` } @@ -326,9 +370,12 @@ type VolumeAndTypeSpec struct { // IndexSpec defines Splunk index name and storage path type IndexSpec struct { // Splunk index name + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Index location relative to the remote volume path + // +optional RemotePath string `json:"remotePath,omitempty"` IndexAndCacheManagerCommonSpec `json:",inline"` @@ -340,21 +387,26 @@ type IndexSpec struct { type IndexAndGlobalCommonSpec struct { // Remote Volume name + // +optional VolName string `json:"volumeName,omitempty"` // MaxGlobalDataSizeMB defines the maximum amount of space for warm and cold buckets of an index + // +optional MaxGlobalDataSizeMB uint `json:"maxGlobalDataSizeMB,omitempty"` // MaxGlobalDataSizeMB defines the maximum amount of cumulative space for warm and cold buckets of an index + // +optional MaxGlobalRawDataSizeMB uint `json:"maxGlobalRawDataSizeMB,omitempty"` } // IndexAndCacheManagerCommonSpec defines configurations that can be configured at index level or at server level type IndexAndCacheManagerCommonSpec struct { // Time period relative to the bucket's age, during which the bucket is protected from cache eviction + // +optional HotlistRecencySecs uint `json:"hotlistRecencySecs,omitempty"` // Time period relative to the bucket's age, during which the bloom filter file is protected from cache eviction + // +optional HotlistBloomFilterRecencyHours uint `json:"hotlistBloomFilterRecencyHours,omitempty"` } @@ -375,8 +427,9 @@ type AppSourceDefaultSpec struct { // PremiumAppsProps represents properties for premium apps such as ES type PremiumAppsProps struct { - // Type: enterpriseSecurity for now, can accomodate itsi etc.. later + // Type: enterpriseSecurity for now, can accommodate itsi etc.. later // +optional + // +kubebuilder:validation:Enum=enterpriseSecurity Type string `json:"type,omitempty"` // Enterpreise Security App defaults @@ -403,9 +456,13 @@ type EsDefaults struct { // AppSourceSpec defines list of App package (*.spl, *.tgz) locations on remote volumes type AppSourceSpec struct { // Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 Name string `json:"name"` // Location relative to the volume path + // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 Location string `json:"location"` AppSourceDefaultSpec `json:",inline"` @@ -423,17 +480,18 @@ type AppFrameworkSpec struct { // 1. If no value or 0 is specified then it means periodic polling is disabled. // 2. If anything less than min is specified then we set it to 1 min. // 3. If anything more than the max value is specified then we set it to 1 day. + // +optional AppsRepoPollInterval int64 `json:"appsRepoPollIntervalSeconds,omitempty"` // App installation period within a reconcile. Apps will be installed during this period before the next reconcile is attempted. // Note: Do not change this setting unless instructed to do so by Splunk Support - // +kubebuilder:validation:Optional + // +optional // +kubebuilder:validation:Minimum:=30 // +kubebuilder:default:=90 SchedulerYieldInterval uint64 `json:"appInstallPeriodSeconds,omitempty"` // Maximum number of retries to install Apps - // +kubebuilder:validation:Optional + // +optional // +kubebuilder:validation:Minimum:=0 // +kubebuilder:default:=2 PhaseMaxRetries uint32 `json:"installMaxRetries,omitempty"` @@ -442,9 +500,13 @@ type AppFrameworkSpec struct { VolList []VolumeSpec `json:"volumes,omitempty"` // List of App sources on remote storage + // +optional + // +listType=map + // +listMapKey=name AppSources []AppSourceSpec `json:"appSources,omitempty"` // Maximum number of apps that can be downloaded at same time + // +optional MaxConcurrentAppDownloads uint64 `json:"maxConcurrentAppDownloads,omitempty"` } @@ -483,7 +545,7 @@ type AppSrcDeployInfo struct { type BundlePushStageType int const ( - // BundlePushUninitialized indicates bundle push never happend + // BundlePushUninitialized indicates bundle push never happened BundlePushUninitialized BundlePushStageType = iota // BundlePushPending waiting for all the apps to be copied to the Pod BundlePushPending diff --git a/bundle.Dockerfile b/bundle.Dockerfile index c16e98425..7a08487c3 100644 --- a/bundle.Dockerfile +++ b/bundle.Dockerfile @@ -5,11 +5,10 @@ LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ LABEL operators.operatorframework.io.bundle.package.v1=splunk-operator -LABEL operators.operatorframework.io.bundle.channels.v1=stable -LABEL operators.operatorframework.io.bundle.channel.default.v1: stable -LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.39.0 +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.42.0 LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 -LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3 +LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4 # Labels for testing. LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 diff --git a/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml b/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml index caf564122..4f191f44a 100644 --- a/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml +++ b/bundle/manifests/enterprise.splunk.com_clustermanagers.yaml @@ -651,8 +651,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1014,10 +1014,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1042,6 +1044,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1053,8 +1057,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1092,6 +1102,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1122,21 +1134,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1145,8 +1164,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1256,19 +1286,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1278,7 +1314,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1336,6 +1374,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1394,12 +1469,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1521,6 +1597,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1597,6 +1678,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1629,7 +1715,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2275,6 +2361,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -2283,8 +2370,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -2292,21 +2384,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -2315,11 +2414,30 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2561,19 +2679,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3248,15 +3372,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3438,12 +3560,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3522,7 +3642,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3942,6 +4062,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4076,7 +4301,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4386,11 +4610,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4416,6 +4642,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4427,8 +4655,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4467,6 +4701,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4497,21 +4733,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4521,8 +4765,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: @@ -4750,6 +5005,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -4758,8 +5014,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -4767,21 +5028,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -4790,9 +5058,23 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object telAppInstalled: description: Telemetry App installation flag diff --git a/bundle/manifests/enterprise.splunk.com_clustermasters.yaml b/bundle/manifests/enterprise.splunk.com_clustermasters.yaml index 24743e927..d4d231d0c 100644 --- a/bundle/manifests/enterprise.splunk.com_clustermasters.yaml +++ b/bundle/manifests/enterprise.splunk.com_clustermasters.yaml @@ -647,8 +647,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1010,10 +1010,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1038,6 +1040,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1049,8 +1053,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1088,6 +1098,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1118,21 +1130,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1141,8 +1160,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1252,19 +1282,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1274,7 +1310,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1332,6 +1370,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1390,12 +1465,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1517,6 +1593,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1593,6 +1674,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1625,7 +1711,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2271,6 +2357,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -2279,8 +2366,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -2288,21 +2380,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -2311,11 +2410,30 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2557,19 +2675,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3244,15 +3368,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3434,12 +3556,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3518,7 +3638,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3938,6 +4058,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4072,7 +4297,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4382,11 +4606,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4412,6 +4638,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4423,8 +4651,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4463,6 +4697,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4493,21 +4729,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4517,8 +4761,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: @@ -4743,6 +4998,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -4751,8 +5007,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -4760,21 +5021,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -4783,9 +5051,23 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object telAppInstalled: description: Telemetry App installation flag diff --git a/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml b/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml index 51682e450..86121b919 100644 --- a/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml +++ b/bundle/manifests/enterprise.splunk.com_indexerclusters.yaml @@ -654,8 +654,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1104,19 +1104,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1126,7 +1132,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1184,6 +1192,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1242,12 +1287,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1369,6 +1415,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1445,6 +1496,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1482,7 +1538,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2056,6 +2112,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2297,19 +2358,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -2984,15 +3051,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3174,12 +3239,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3258,7 +3321,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3678,6 +3741,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3812,7 +3980,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4840,8 +5007,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -5290,19 +5457,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -5312,7 +5485,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -5370,6 +5545,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -5428,12 +5640,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -5555,6 +5768,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -5717,6 +5935,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -5742,8 +5965,7 @@ spec: type: integer type: object replicas: - description: Number of search head pods; a search head cluster will - be created if > 1 + description: Number of indexer cluster peers format: int32 type: integer resources: @@ -5754,7 +5976,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -6328,6 +6550,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -6569,19 +6796,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -7256,15 +7489,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7446,12 +7677,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -7530,7 +7759,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -7950,6 +8179,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8084,7 +8418,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/bundle/manifests/enterprise.splunk.com_ingestorclusters.yaml b/bundle/manifests/enterprise.splunk.com_ingestorclusters.yaml index 0481e4a83..1e359a3ac 100644 --- a/bundle/manifests/enterprise.splunk.com_ingestorclusters.yaml +++ b/bundle/manifests/enterprise.splunk.com_ingestorclusters.yaml @@ -647,8 +647,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1010,10 +1010,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1038,6 +1040,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1049,8 +1053,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1088,6 +1098,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1118,21 +1130,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1141,8 +1160,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1252,19 +1282,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1274,7 +1310,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1332,6 +1370,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1390,12 +1465,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1517,6 +1593,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1679,6 +1760,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1717,7 +1803,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2291,6 +2377,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2532,19 +2623,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3219,15 +3316,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3409,12 +3504,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3493,7 +3586,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3913,6 +4006,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4047,7 +4245,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4366,11 +4563,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4396,6 +4595,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4407,8 +4608,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4447,6 +4654,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4477,21 +4686,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4501,8 +4718,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: diff --git a/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml b/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml index 25f8b3e1b..889c044b4 100644 --- a/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml +++ b/bundle/manifests/enterprise.splunk.com_licensemanagers.yaml @@ -641,8 +641,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1004,10 +1004,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1032,6 +1034,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1043,8 +1047,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1082,6 +1092,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1112,21 +1124,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1135,8 +1154,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1246,19 +1276,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1268,7 +1304,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1326,6 +1364,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1384,12 +1459,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1511,6 +1587,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1587,6 +1668,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1619,7 +1705,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2193,6 +2279,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2434,19 +2525,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3121,15 +3218,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3311,12 +3406,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3395,7 +3488,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3815,6 +3908,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3949,7 +4147,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4260,11 +4457,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4290,6 +4489,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4301,8 +4502,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4341,6 +4548,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4371,21 +4580,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4395,8 +4612,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: diff --git a/bundle/manifests/enterprise.splunk.com_licensemasters.yaml b/bundle/manifests/enterprise.splunk.com_licensemasters.yaml index 4687c7109..ab649b9d0 100644 --- a/bundle/manifests/enterprise.splunk.com_licensemasters.yaml +++ b/bundle/manifests/enterprise.splunk.com_licensemasters.yaml @@ -636,8 +636,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -999,10 +999,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1027,6 +1029,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1038,8 +1042,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1077,6 +1087,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1107,21 +1119,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1130,8 +1149,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1241,19 +1271,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1263,7 +1299,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1321,6 +1359,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1379,12 +1454,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1506,6 +1582,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1582,6 +1663,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1614,7 +1700,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2188,6 +2274,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2429,19 +2520,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3116,15 +3213,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3306,12 +3401,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3390,7 +3483,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3810,6 +3903,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3944,7 +4142,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4255,11 +4452,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4285,6 +4484,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4296,8 +4497,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4336,6 +4543,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4366,21 +4575,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4390,8 +4607,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: diff --git a/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml b/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml index c8954a274..7d5487622 100644 --- a/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml +++ b/bundle/manifests/enterprise.splunk.com_monitoringconsoles.yaml @@ -643,8 +643,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1006,10 +1006,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1034,6 +1036,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1045,8 +1049,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1084,6 +1094,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1114,21 +1126,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1137,8 +1156,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1248,19 +1278,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1270,7 +1306,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1328,6 +1366,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1386,12 +1461,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1513,6 +1589,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1589,6 +1670,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1621,7 +1707,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2195,6 +2281,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2436,19 +2527,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3123,15 +3220,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3313,12 +3408,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3397,7 +3490,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3817,6 +3910,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3951,7 +4149,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4261,11 +4458,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4291,6 +4490,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4302,8 +4503,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4342,6 +4549,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4372,21 +4581,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4396,8 +4613,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: @@ -5174,8 +5402,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -5537,10 +5765,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -5565,6 +5795,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -5576,8 +5808,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -5615,6 +5853,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -5645,21 +5885,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -5668,8 +5915,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -5779,19 +6037,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -5801,7 +6065,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -5859,6 +6125,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -5917,12 +6220,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -6044,6 +6348,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -6120,6 +6429,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -6152,7 +6466,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -6726,6 +7040,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -6967,19 +7286,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -7654,15 +7979,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7844,12 +8167,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -7928,7 +8249,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -8348,6 +8669,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8482,7 +8908,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -8792,11 +9217,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -8822,6 +9249,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -8833,8 +9262,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -8873,6 +9308,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -8903,21 +9340,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -8927,8 +9372,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: diff --git a/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml b/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml index b564ca757..9c9d19e35 100644 --- a/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml +++ b/bundle/manifests/enterprise.splunk.com_postgresclusterclasses.yaml @@ -240,6 +240,8 @@ spec: description: |- Provisioner identifies which database provisioner to use. Currently supported: "postgresql.cnpg.io" (CloudNativePG) + enum: + - postgresql.cnpg.io type: string required: - provisioner diff --git a/bundle/manifests/enterprise.splunk.com_queues.yaml b/bundle/manifests/enterprise.splunk.com_queues.yaml index 90dca1f99..8939f7d05 100644 --- a/bundle/manifests/enterprise.splunk.com_queues.yaml +++ b/bundle/manifests/enterprise.splunk.com_queues.yaml @@ -84,34 +84,20 @@ spec: volumes: description: List of remote storage volumes items: - description: VolumeSpec defines remote volume config + description: SQSVolumeSpec defines a volume reference for SQS + queue authentication properties: - endpoint: - description: Remote volume URI - type: string name: description: Remote volume name - type: string - path: - description: Remote volume path - type: string - provider: - description: 'App Package Remote Store provider. Supported - values: aws, minio, azure, gcp.' - type: string - region: - description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + minLength: 1 type: string secretRef: - description: Secret object name - type: string - storageType: - description: 'Remote Storage type. Supported values: s3, - blob, gcs. s3 works with aws or minio providers, whereas - blob works with azure provider, gcs works for gcp.' + description: Remote volume secret ref + minLength: 1 type: string + required: + - name + - secretRef type: object type: array required: diff --git a/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml b/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml index 4c9359abe..d87e80b39 100644 --- a/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml +++ b/bundle/manifests/enterprise.splunk.com_searchheadclusters.yaml @@ -649,8 +649,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1012,10 +1012,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1040,6 +1042,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1051,8 +1055,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1090,6 +1100,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1120,21 +1132,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1143,8 +1162,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1254,19 +1284,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1276,7 +1312,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1334,6 +1372,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1392,12 +1467,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1519,6 +1595,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1595,6 +1676,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1632,7 +1718,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2206,6 +2292,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2447,19 +2538,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3134,15 +3231,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3324,12 +3419,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3408,7 +3501,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3828,6 +3921,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3962,7 +4160,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4284,11 +4481,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4314,6 +4513,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4325,8 +4526,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4365,6 +4572,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4395,21 +4604,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4419,8 +4636,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: @@ -5267,8 +5495,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -5630,10 +5858,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -5658,6 +5888,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -5669,8 +5901,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -5708,6 +5946,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -5738,21 +5978,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -5761,8 +6008,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -6074,7 +6332,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -6129,19 +6387,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -6151,7 +6415,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -6209,6 +6475,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -6267,12 +6570,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -6394,6 +6698,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -6470,6 +6779,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -6495,6 +6809,7 @@ spec: type: integer type: object replicas: + default: 3 description: Number of search head pods; a search head cluster will be created if > 1 format: int32 @@ -6507,7 +6822,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -7081,6 +7396,11 @@ spec: type: object type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -7322,19 +7642,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -8009,15 +8335,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8199,12 +8523,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -8283,7 +8605,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -8703,6 +9025,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8837,7 +9264,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -9159,11 +9585,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -9189,6 +9617,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -9200,8 +9630,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -9240,6 +9676,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -9270,21 +9708,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -9294,8 +9740,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: diff --git a/bundle/manifests/enterprise.splunk.com_standalones.yaml b/bundle/manifests/enterprise.splunk.com_standalones.yaml index 60c549249..16457a549 100644 --- a/bundle/manifests/enterprise.splunk.com_standalones.yaml +++ b/bundle/manifests/enterprise.splunk.com_standalones.yaml @@ -644,8 +644,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1007,10 +1007,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -1035,6 +1037,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1046,8 +1050,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -1085,6 +1095,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -1115,21 +1127,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -1138,8 +1157,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -1249,19 +1279,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -1271,7 +1307,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1329,6 +1367,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1387,12 +1462,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -1514,6 +1590,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -1590,6 +1671,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -1626,7 +1712,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -2272,6 +2358,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -2280,8 +2367,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -2289,21 +2381,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -2312,11 +2411,30 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -2558,19 +2676,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -3245,15 +3369,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3435,12 +3557,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3519,7 +3639,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3939,6 +4059,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4073,7 +4298,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4384,11 +4608,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -4414,6 +4640,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4425,8 +4653,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -4465,6 +4699,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -4495,21 +4731,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -4519,8 +4763,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: @@ -4742,6 +4997,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -4750,8 +5006,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -4759,21 +5020,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -4782,9 +5050,23 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object telAppInstalled: description: Telemetry App installation flag @@ -5419,8 +5701,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -5782,10 +6064,12 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when scope @@ -5810,6 +6094,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -5821,8 +6107,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -5860,6 +6152,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -5890,21 +6184,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -5913,8 +6214,19 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object clusterManagerRef: @@ -6024,19 +6336,25 @@ spec: description: Storage configuration for /opt/splunk/etc volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' extraEnv: description: |- ExtraEnv refers to extra environment variables to be passed to the Splunk instance containers @@ -6046,7 +6364,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -6104,6 +6424,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -6162,12 +6519,13 @@ spec: environment variables) type: string imagePullPolicy: + default: IfNotPresent description: 'Sets pull policy for all images ("Always", "Never", or the default: "IfNotPresent")' enum: - Always - - Never - IfNotPresent + - Never type: string imagePullSecrets: description: |- @@ -6289,6 +6647,11 @@ spec: minimum: 0 type: integer livenessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 30 description: LivenessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-command properties: failureThreshold: @@ -6365,6 +6728,11 @@ spec: minimum: 0 type: integer readinessProbe: + default: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 5 description: ReadinessProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes properties: failureThreshold: @@ -6390,6 +6758,7 @@ spec: type: integer type: object replicas: + default: 1 description: Number of standalone pods format: int32 type: integer @@ -6401,7 +6770,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -7047,6 +7416,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -7055,8 +7425,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -7064,21 +7439,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -7087,11 +7469,30 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object startupProbe: + default: + failureThreshold: 12 + initialDelaySeconds: 40 + periodSeconds: 30 + timeoutSeconds: 30 description: StartupProbe as defined in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes properties: failureThreshold: @@ -7333,19 +7734,25 @@ spec: description: Storage configuration for /opt/splunk/var volume properties: ephemeralStorage: - description: |- - If true, ephemeral (emptyDir) storage will be used - default false + default: false + description: If true, ephemeral (emptyDir) storage will be used type: boolean storageCapacity: description: Storage capacity to request persistent volume claims - (default=”10Gi” for etc and "100Gi" for var) + (default="10Gi" for etc and "100Gi" for var) type: string storageClassName: description: Name of StorageClass to use for persistent volume claims type: string type: object + x-kubernetes-validations: + - message: storageClassName and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageClassName) > 0 && self.ephemeralStorage + == true)' + - message: storageCapacity and ephemeralStorage are mutually exclusive + rule: '!(size(self.storageCapacity) > 0 && self.ephemeralStorage + == true)' volumes: description: List of one or more Kubernetes volumes. These will be mounted in all pod containers as as /mnt/ @@ -8020,15 +8427,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8210,12 +8615,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -8294,7 +8697,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -8714,6 +9117,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8848,7 +9356,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -9159,11 +9666,13 @@ spec: properties: location: description: Location relative to the volume path + minLength: 1 type: string name: description: Logical name for the set of apps placed in this location. Logical name must be unique to the appRepo + minLength: 1 type: string premiumAppsProps: description: Properties for premium apps, fill in when @@ -9189,6 +9698,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -9200,8 +9711,14 @@ spec: volumeName: description: Remote Storage Volume name type: string + required: + - location + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map appsRepoPollIntervalSeconds: description: |- Interval in seconds to check the Remote Storage for App changes. @@ -9240,6 +9757,8 @@ spec: type: description: 'Type: enterpriseSecurity for now, can accommodate itsi etc.. later' + enum: + - enterpriseSecurity type: string type: object scope: @@ -9270,21 +9789,29 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where - apps reside. Used for aws, if provided. Not used for - minio and azure. + apps reside. Required for aws, optional for azure + and gcp. type: string secretRef: description: Secret object name @@ -9294,8 +9821,19 @@ spec: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array type: object appSrcDeployStatus: @@ -9520,6 +10058,7 @@ spec: type: integer name: description: Splunk index name + minLength: 1 type: string remotePath: description: Index location relative to the remote volume @@ -9528,8 +10067,13 @@ spec: volumeName: description: Remote Volume name type: string + required: + - name type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map volumes: description: List of remote storage volumes items: @@ -9537,21 +10081,28 @@ spec: properties: endpoint: description: Remote volume URI + minLength: 1 type: string name: description: Remote volume name + minLength: 1 type: string path: description: Remote volume path + minLength: 1 type: string provider: description: 'App Package Remote Store provider. Supported values: aws, minio, azure, gcp.' + enum: + - aws + - minio + - azure + - gcp type: string region: description: Region of the remote storage volume where apps - reside. Used for aws, if provided. Not used for minio - and azure. + reside. Required for aws, optional for azure and gcp. type: string secretRef: description: Secret object name @@ -9560,9 +10111,23 @@ spec: description: 'Remote Storage type. Supported values: s3, blob, gcs. s3 works with aws or minio providers, whereas blob works with azure provider, gcs works for gcp.' + enum: + - s3 + - blob + - gcs type: string + required: + - endpoint + - name + - path type: object + x-kubernetes-validations: + - message: region is required when provider is aws + rule: self.provider != 'aws' || size(self.region) > 0 type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map type: object telAppInstalled: description: Telemetry App installation flag diff --git a/bundle/manifests/splunk-operator.clusterserviceversion.yaml b/bundle/manifests/splunk-operator.clusterserviceversion.yaml index 113078cbc..841068555 100644 --- a/bundle/manifests/splunk-operator.clusterserviceversion.yaml +++ b/bundle/manifests/splunk-operator.clusterserviceversion.yaml @@ -69,7 +69,7 @@ metadata: "name": "clustermanager-sample", "namespace": "splunk-operator" }, - "spec": {} + "spec": null }, { "apiVersion": "enterprise.splunk.com/v4", @@ -130,7 +130,7 @@ metadata: "name": "monitoringconsole-sample", "namespace": "splunk-operator" }, - "spec": {} + "spec": null }, { "apiVersion": "enterprise.splunk.com/v4", @@ -141,7 +141,91 @@ metadata: ], "name": "objectstorage-sample" }, - "spec": {} + "spec": { + "provider": "s3", + "s3": { + "path": "bucket/path" + } + } + }, + { + "apiVersion": "enterprise.splunk.com/v4", + "kind": "PostgresCluster", + "metadata": { + "labels": { + "app.kubernetes.io/managed-by": "kustomize", + "app.kubernetes.io/name": "splunk-operator" + }, + "name": "postgresql-cluster-dev" + }, + "spec": { + "class": "postgresql-dev" + } + }, + { + "apiVersion": "enterprise.splunk.com/v4", + "kind": "PostgresClusterClass", + "metadata": { + "name": "postgresql-dev" + }, + "spec": { + "cnpg": { + "connectionPooler": { + "config": { + "max_client_conn": "100" + }, + "instances": 2, + "mode": "transaction" + }, + "primaryUpdateMethod": "restart" + }, + "config": { + "connectionPoolerEnabled": true, + "instances": 1, + "postgresVersion": "18", + "resources": { + "limits": { + "cpu": "1", + "memory": "2Gi" + }, + "requests": { + "cpu": "500m", + "memory": "1Gi" + } + }, + "storage": "10Gi" + }, + "provisioner": "postgresql.cnpg.io" + } + }, + { + "apiVersion": "enterprise.splunk.com/v4", + "kind": "PostgresDatabase", + "metadata": { + "name": "splunk-databases" + }, + "spec": { + "clusterRef": { + "name": "postgresql-cluster-dev" + }, + "databases": [ + { + "deletionPolicy": "Delete", + "extensions": [ + "pg_stat_statements", + "pgcrypto" + ], + "name": "kvstore" + }, + { + "deletionPolicy": "Delete", + "extensions": [ + "pg_trgm" + ], + "name": "analytics" + } + ] + } }, { "apiVersion": "enterprise.splunk.com/v4", @@ -152,7 +236,14 @@ metadata: ], "name": "queue-sample" }, - "spec": {} + "spec": { + "provider": "sqs", + "sqs": { + "authRegion": "us-west-2", + "dlq": "dlq", + "name": "queue" + } + } }, { "apiVersion": "enterprise.splunk.com/v4", @@ -180,13 +271,13 @@ metadata: "name": "standalone-sample", "namespace": "splunk-operator" }, - "spec": {} + "spec": null } ] capabilities: Seamless Upgrades categories: Big Data, Logging & Tracing, Monitoring, Security, AI/Machine Learning containerImage: splunk/splunk-operator@sha256:c4e0d314622699496f675760aad314520d050a66627fdf33e1e21fa28ca85d50 - createdAt: "2026-03-02T17:02:29Z" + createdAt: "2026-03-25T20:21:54Z" description: The Splunk Operator for Kubernetes enables you to quickly and easily deploy Splunk Enterprise on your choice of private or public cloud provider. The Operator simplifies scaling and management of Splunk Enterprise by automating @@ -269,6 +360,23 @@ spec: kind: ObjectStorage name: objectstorages.enterprise.splunk.com version: v4 + - description: |- + PostgresClusterClass is the Schema for the postgresclusterclasses API. + PostgresClusterClass defines a reusable template and policy for postgres cluster provisioning. + displayName: Postgres Cluster Class + kind: PostgresClusterClass + name: postgresclusterclasses.enterprise.splunk.com + version: v4 + - description: PostgresCluster is the Schema for the postgresclusters API. + displayName: Postgres Cluster + kind: PostgresCluster + name: postgresclusters.enterprise.splunk.com + version: v4 + - description: PostgresDatabase is the Schema for the postgresdatabases API. + displayName: Postgres Database + kind: PostgresDatabase + name: postgresdatabases.enterprise.splunk.com + version: v4 - description: Queue is the Schema for the queues API displayName: Queue kind: Queue @@ -371,6 +479,8 @@ spec: - licensemasters - monitoringconsoles - objectstorages + - postgresclusters + - postgresdatabases - queues - searchheadclusters - standalones @@ -393,6 +503,8 @@ spec: - licensemasters/finalizers - monitoringconsoles/finalizers - objectstorages/finalizers + - postgresclusters/finalizers + - postgresdatabases/finalizers - queues/finalizers - searchheadclusters/finalizers - standalones/finalizers @@ -409,6 +521,8 @@ spec: - licensemasters/status - monitoringconsoles/status - objectstorages/status + - postgresclusters/status + - postgresdatabases/status - queues/status - searchheadclusters/status - standalones/status @@ -416,6 +530,35 @@ spec: - get - patch - update + - apiGroups: + - enterprise.splunk.com + resources: + - postgresclusterclasses + verbs: + - get + - list + - watch + - apiGroups: + - postgresql.cnpg.io + resources: + - clusters + - databases + - poolers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - postgresql.cnpg.io + resources: + - clusters/status + - poolers/status + verbs: + - get - apiGroups: - authentication.k8s.io resources: @@ -465,7 +608,7 @@ spec: fieldRef: fieldPath: metadata.annotations['olm.targetNamespaces'] - name: RELATED_IMAGE_SPLUNK_ENTERPRISE - value: docker.io/splunk/splunk:10.2.0 + value: docker.io/splunk/splunk - name: OPERATOR_NAME value: splunk-operator - name: SPLUNK_GENERAL_TERMS @@ -474,7 +617,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: docker.io/splunk/splunk-operator:3.1.0 + image: controller:latest imagePullPolicy: Always livenessProbe: httpGet: @@ -587,7 +730,7 @@ spec: name: Splunk Inc. url: www.splunk.com relatedImages: - - image: docker.io/splunk/splunk:10.2.0 + - image: docker.io/splunk/splunk name: splunk-enterprise replaces: splunk-operator.v3.0.0 version: 3.1.0 diff --git a/bundle/metadata/annotations.yaml b/bundle/metadata/annotations.yaml index 890fd61c7..87b0891ef 100644 --- a/bundle/metadata/annotations.yaml +++ b/bundle/metadata/annotations.yaml @@ -4,11 +4,10 @@ annotations: operators.operatorframework.io.bundle.manifests.v1: manifests/ operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: splunk-operator - operators.operatorframework.io.bundle.channels.v1: stable - operators.operatorframework.io.bundle.channel.default.v1: stable - operators.operatorframework.io.metrics.builder: operator-sdk-v1.31.0 + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.metrics.builder: operator-sdk-v1.42.0 operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 - operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4 # Annotations for testing. operators.operatorframework.io.test.mediatype.v1: scorecard+v1 diff --git a/config/crd/bases/enterprise.splunk.com_clustermanagers.yaml b/config/crd/bases/enterprise.splunk.com_clustermanagers.yaml index a19a639ae..d6d40d56a 100644 --- a/config/crd/bases/enterprise.splunk.com_clustermanagers.yaml +++ b/config/crd/bases/enterprise.splunk.com_clustermanagers.yaml @@ -639,8 +639,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1302,7 +1302,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1360,6 +1362,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1664,7 +1703,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3321,15 +3360,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3511,12 +3548,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3595,7 +3630,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -4015,6 +4050,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4149,7 +4289,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_clustermasters.yaml b/config/crd/bases/enterprise.splunk.com_clustermasters.yaml index 77b835376..adc19b9d7 100644 --- a/config/crd/bases/enterprise.splunk.com_clustermasters.yaml +++ b/config/crd/bases/enterprise.splunk.com_clustermasters.yaml @@ -635,8 +635,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1298,7 +1298,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1356,6 +1358,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1660,7 +1699,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3317,15 +3356,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3507,12 +3544,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3591,7 +3626,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -4011,6 +4046,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4145,7 +4285,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_indexerclusters.yaml b/config/crd/bases/enterprise.splunk.com_indexerclusters.yaml index 8ae972d7c..bf9f312d1 100644 --- a/config/crd/bases/enterprise.splunk.com_indexerclusters.yaml +++ b/config/crd/bases/enterprise.splunk.com_indexerclusters.yaml @@ -642,8 +642,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1120,7 +1120,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1178,6 +1180,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1487,7 +1526,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3000,15 +3039,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3190,12 +3227,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3274,7 +3309,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3694,6 +3729,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3828,7 +3968,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -4856,8 +4995,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -5334,7 +5473,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -5392,6 +5533,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -5786,7 +5964,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -7299,15 +7477,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7489,12 +7665,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -7573,7 +7747,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -7993,6 +8167,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8127,7 +8406,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_ingestorclusters.yaml b/config/crd/bases/enterprise.splunk.com_ingestorclusters.yaml index 44238ca7a..a7d91abaa 100644 --- a/config/crd/bases/enterprise.splunk.com_ingestorclusters.yaml +++ b/config/crd/bases/enterprise.splunk.com_ingestorclusters.yaml @@ -635,8 +635,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1298,7 +1298,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1356,6 +1358,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1752,7 +1791,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3265,15 +3304,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3455,12 +3492,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3539,7 +3574,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3959,6 +3994,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4093,7 +4233,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_licensemanagers.yaml b/config/crd/bases/enterprise.splunk.com_licensemanagers.yaml index b65b6beaf..bedc18ed2 100644 --- a/config/crd/bases/enterprise.splunk.com_licensemanagers.yaml +++ b/config/crd/bases/enterprise.splunk.com_licensemanagers.yaml @@ -629,8 +629,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1292,7 +1292,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1350,6 +1352,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1654,7 +1693,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3167,15 +3206,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3357,12 +3394,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3441,7 +3476,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3861,6 +3896,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3995,7 +4135,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_licensemasters.yaml b/config/crd/bases/enterprise.splunk.com_licensemasters.yaml index c2a96b9e7..03563e31d 100644 --- a/config/crd/bases/enterprise.splunk.com_licensemasters.yaml +++ b/config/crd/bases/enterprise.splunk.com_licensemasters.yaml @@ -624,8 +624,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1287,7 +1287,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1345,6 +1347,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1649,7 +1688,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3162,15 +3201,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3352,12 +3389,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3436,7 +3471,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3856,6 +3891,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3990,7 +4130,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_monitoringconsoles.yaml b/config/crd/bases/enterprise.splunk.com_monitoringconsoles.yaml index f5142a14f..2a77ad99e 100644 --- a/config/crd/bases/enterprise.splunk.com_monitoringconsoles.yaml +++ b/config/crd/bases/enterprise.splunk.com_monitoringconsoles.yaml @@ -631,8 +631,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1294,7 +1294,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1352,6 +1354,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1656,7 +1695,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3169,15 +3208,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3359,12 +3396,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3443,7 +3478,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3863,6 +3898,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -3997,7 +4137,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -5251,8 +5390,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -5914,7 +6053,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -5972,6 +6113,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -6276,7 +6454,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -7789,15 +7967,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7979,12 +8155,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -8063,7 +8237,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -8483,6 +8657,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8617,7 +8896,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_searchheadclusters.yaml b/config/crd/bases/enterprise.splunk.com_searchheadclusters.yaml index 4f4674b32..2128ce7d6 100644 --- a/config/crd/bases/enterprise.splunk.com_searchheadclusters.yaml +++ b/config/crd/bases/enterprise.splunk.com_searchheadclusters.yaml @@ -637,8 +637,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1300,7 +1300,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1358,6 +1360,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1667,7 +1706,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3180,15 +3219,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3370,12 +3407,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3454,7 +3489,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -3874,6 +3909,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4008,7 +4148,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -5344,8 +5483,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -6181,7 +6320,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -6264,7 +6403,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -6322,6 +6463,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -6632,7 +6810,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -8145,15 +8323,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8335,12 +8511,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -8419,7 +8593,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -8839,6 +9013,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -8973,7 +9252,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/crd/bases/enterprise.splunk.com_standalones.yaml b/config/crd/bases/enterprise.splunk.com_standalones.yaml index 8c8c5035c..5f36c74d1 100644 --- a/config/crd/bases/enterprise.splunk.com_standalones.yaml +++ b/config/crd/bases/enterprise.splunk.com_standalones.yaml @@ -632,8 +632,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -1295,7 +1295,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -1353,6 +1355,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -1661,7 +1700,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -3318,15 +3357,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -3508,12 +3545,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -3592,7 +3627,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -4012,6 +4047,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -4146,7 +4286,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- @@ -5550,8 +5689,8 @@ spec: most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), - compute a sum by iterating through the elements of this field and adding - "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the + compute a sum by iterating through the elements of this field and subtracting + "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -6213,7 +6352,9 @@ spec: a Container. properties: name: - description: Name of the environment variable. Must be a C_IDENTIFIER. + description: |- + Name of the environment variable. + May consist of any printable ASCII characters except '='. type: string value: description: |- @@ -6271,6 +6412,43 @@ spec: - fieldPath type: object x-kubernetes-map-type: atomic + fileKeyRef: + description: |- + FileKeyRef selects a key of the env file. + Requires the EnvFiles feature gate to be enabled. + properties: + key: + description: |- + The key within the env file. An invalid key will prevent the pod from starting. + The keys defined within a source may consist of any printable ASCII characters except '='. + During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + type: string + optional: + default: false + description: |- + Specify whether the file or its key must be defined. If the file or key + does not exist, then the env var is not published. + If optional is set to true and the specified key does not exist, + the environment variable will not be set in the Pod's containers. + + If optional is set to false and the specified key does not exist, + an error will be returned during Pod creation. + type: boolean + path: + description: |- + The path within the volume from which to select the file. + Must be relative and may not contain the '..' path or start with '..'. + type: string + volumeName: + description: The name of the volume mount containing + the env file. + type: string + required: + - key + - path + - volumeName + type: object + x-kubernetes-map-type: atomic resourceFieldRef: description: |- Selects a resource of the container: only resources limits and requests @@ -6580,7 +6758,7 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the + This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. @@ -8237,15 +8415,13 @@ spec: volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. + it can be changed after the claim is created. An empty string or nil value indicates that no + VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, + this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -8427,12 +8603,10 @@ spec: description: |- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. - More info: https://examples.k8s.io/volumes/glusterfs/README.md properties: endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + description: endpoints is the endpoint name that details + Glusterfs topology. type: string path: description: |- @@ -8511,7 +8685,7 @@ spec: description: |- iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md + More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi properties: chapAuthDiscovery: description: chapAuthDiscovery defines whether support iSCSI @@ -8931,6 +9105,111 @@ spec: type: array x-kubernetes-list-type: atomic type: object + podCertificate: + description: |- + Projects an auto-rotating credential bundle (private key and certificate + chain) that the pod can use either as a TLS client or server. + + Kubelet generates a private key and uses it to send a + PodCertificateRequest to the named signer. Once the signer approves the + request and issues a certificate chain, Kubelet writes the key and + certificate chain to the pod filesystem. The pod does not start until + certificates have been issued for each podCertificate projected volume + source in its spec. + + Kubelet will begin trying to rotate the certificate at the time indicated + by the signer using the PodCertificateRequest.Status.BeginRefreshAt + timestamp. + + Kubelet can write a single file, indicated by the credentialBundlePath + field, or separate files, indicated by the keyPath and + certificateChainPath fields. + + The credential bundle is a single file in PEM format. The first PEM + entry is the private key (in PKCS#8 format), and the remaining PEM + entries are the certificate chain issued by the signer (typically, + signers will return their certificate chain in leaf-to-root order). + + Prefer using the credential bundle format, since your application code + can read it atomically. If you use keyPath and certificateChainPath, + your application must make two separate file reads. If these coincide + with a certificate rotation, it is possible that the private key and leaf + certificate you read may not correspond to each other. Your application + will need to check for this condition, and re-read until they are + consistent. + + The named signer controls chooses the format of the certificate it + issues; consult the signer implementation's documentation to learn how to + use the certificates it issues. + properties: + certificateChainPath: + description: |- + Write the certificate chain at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + credentialBundlePath: + description: |- + Write the credential bundle at this path in the projected volume. + + The credential bundle is a single file that contains multiple PEM blocks. + The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private + key. + + The remaining blocks are CERTIFICATE blocks, containing the issued + certificate chain from the signer (leaf and any intermediates). + + Using credentialBundlePath lets your Pod's application code make a single + atomic read that retrieves a consistent key and certificate chain. If you + project them to separate files, your application code will need to + additionally check that the leaf certificate was issued to the key. + type: string + keyPath: + description: |- + Write the key at this path in the projected volume. + + Most applications should use credentialBundlePath. When using keyPath + and certificateChainPath, your application needs to check that the key + and leaf certificate are consistent, because it is possible to read the + files mid-rotation. + type: string + keyType: + description: |- + The type of keypair Kubelet will generate for the pod. + + Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", + "ECDSAP521", and "ED25519". + type: string + maxExpirationSeconds: + description: |- + maxExpirationSeconds is the maximum lifetime permitted for the + certificate. + + Kubelet copies this value verbatim into the PodCertificateRequests it + generates for this projection. + + If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver + will reject values shorter than 3600 (1 hour). The maximum allowable + value is 7862400 (91 days). + + The signer implementation is then free to issue a certificate with any + lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 + seconds (1 hour). This constraint is enforced by kube-apiserver. + `kubernetes.io` signers will never issue certificates with a lifetime + longer than 24 hours. + format: int32 + type: integer + signerName: + description: Kubelet's generated CSRs will be + addressed to this signer. + type: string + required: + - keyType + - signerName + type: object secret: description: secret information about the secret data to project @@ -9065,7 +9344,6 @@ spec: description: |- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. - More info: https://examples.k8s.io/volumes/rbd/README.md properties: fsType: description: |- diff --git a/config/manifests/bases/splunk-operator.clusterserviceversion.yaml b/config/manifests/bases/splunk-operator.clusterserviceversion.yaml index 3fa109139..f96e1158b 100644 --- a/config/manifests/bases/splunk-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/splunk-operator.clusterserviceversion.yaml @@ -68,6 +68,23 @@ spec: kind: ObjectStorage name: objectstorages.enterprise.splunk.com version: v4 + - description: |- + PostgresClusterClass is the Schema for the postgresclusterclasses API. + PostgresClusterClass defines a reusable template and policy for postgres cluster provisioning. + displayName: Postgres Cluster Class + kind: PostgresClusterClass + name: postgresclusterclasses.enterprise.splunk.com + version: v4 + - description: PostgresCluster is the Schema for the postgresclusters API. + displayName: Postgres Cluster + kind: PostgresCluster + name: postgresclusters.enterprise.splunk.com + version: v4 + - description: PostgresDatabase is the Schema for the postgresdatabases API. + displayName: Postgres Database + kind: PostgresDatabase + name: postgresdatabases.enterprise.splunk.com + version: v4 - description: Queue is the Schema for the queues API displayName: Queue kind: Queue diff --git a/config/rbac/postgrescluster_admin_role.yaml b/config/rbac/postgrescluster_admin_role.yaml deleted file mode 100644 index bb3f2e06b..000000000 --- a/config/rbac/postgrescluster_admin_role.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# This rule is not used by the project splunk-operator itself. -# It is provided to allow the cluster admin to help manage permissions for users. -# -# Grants full permissions ('*') over enterprise.splunk.com. -# This role is intended for users authorized to modify roles and bindings within the cluster, -# enabling them to delegate specific permissions to other users or groups as needed. - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/name: splunk-operator - app.kubernetes.io/managed-by: kustomize - name: postgrescluster-admin-role -rules: -- apiGroups: - - enterprise.splunk.com - resources: - - postgresclusters - verbs: - - '*' -- apiGroups: - - enterprise.splunk.com - resources: - - postgresclusters/status - verbs: - - get diff --git a/config/rbac/postgresclusterclass_admin_role.yaml b/config/rbac/postgresclusterclass_admin_role.yaml deleted file mode 100644 index d16defdd6..000000000 --- a/config/rbac/postgresclusterclass_admin_role.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# This rule is not used by the project splunk-operator itself. -# It is provided to allow the cluster admin to help manage permissions for users. -# -# Grants full permissions ('*') over enterprise.splunk.com. -# This role is intended for users authorized to modify roles and bindings within the cluster, -# enabling them to delegate specific permissions to other users or groups as needed. - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/name: splunk-operator - app.kubernetes.io/managed-by: kustomize - name: postgresclusterclass-admin-role -rules: -- apiGroups: - - enterprise.splunk.com - resources: - - postgresclusterclasses - verbs: - - '*' -- apiGroups: - - enterprise.splunk.com - resources: - - postgresclusterclasses/status - verbs: - - get diff --git a/config/rbac/postgresdatabase_admin_role.yaml b/config/rbac/postgresdatabase_admin_role.yaml deleted file mode 100644 index b98548d5c..000000000 --- a/config/rbac/postgresdatabase_admin_role.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# This rule is not used by the project splunk-operator itself. -# It is provided to allow the cluster admin to help manage permissions for users. -# -# Grants full permissions ('*') over enterprise.splunk.com. -# This role is intended for users authorized to modify roles and bindings within the cluster, -# enabling them to delegate specific permissions to other users or groups as needed. - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/name: splunk-operator - app.kubernetes.io/managed-by: kustomize - name: postgresdatabase-admin-role -rules: -- apiGroups: - - enterprise.splunk.com - resources: - - postgresdatabases - verbs: - - '*' -- apiGroups: - - enterprise.splunk.com - resources: - - postgresdatabases/status - verbs: - - get diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 94db6a730..142a8720c 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -1,5 +1,5 @@ /* -Copyright 2026. +Copyright (c) 2018-2022 Splunk Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,99 +18,156 @@ package controller import ( "context" - "os" + "fmt" "path/filepath" "testing" + "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - - "k8s.io/client-go/kubernetes/scheme" + "go.uber.org/zap/zapcore" "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/envtest" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" - enterprisev4 "github.com/splunk/splunk-operator/api/v4" - // +kubebuilder:scaffold:imports -) - -// These tests use Ginkgo (BDD-style Go testing framework). Refer to -// http://onsi.github.io/ginkgo/ to learn more about Ginkgo. + clientgoscheme "k8s.io/client-go/kubernetes/scheme" + ctrl "sigs.k8s.io/controller-runtime" -var ( - ctx context.Context - cancel context.CancelFunc - testEnv *envtest.Environment - cfg *rest.Config - k8sClient client.Client + enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" + enterpriseApi "github.com/splunk/splunk-operator/api/v4" + //+kubebuilder:scaffold:imports ) -func TestControllers(t *testing.T) { +var cfg *rest.Config +var k8sClient client.Client +var testEnv *envtest.Environment +var k8sManager ctrl.Manager + +func TestAPIs(t *testing.T) { RegisterFailHandler(Fail) RunSpecs(t, "Controller Suite") } -var _ = BeforeSuite(func() { - logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) - - ctx, cancel = context.WithCancel(context.TODO()) - - var err error - err = enterprisev4.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - // +kubebuilder:scaffold:scheme +var _ = BeforeSuite(func(ctx context.Context) { + opts := zap.Options{ + Development: true, + TimeEncoder: zapcore.RFC3339NanoTimeEncoder, + } + logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true), zap.UseFlagOptions(&opts))) By("bootstrapping test environment") + testEnv = &envtest.Environment{ CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")}, ErrorIfCRDPathMissing: true, } - // Retrieve the first found binary directory to allow running tests from IDEs - if getFirstFoundEnvTestBinaryDir() != "" { - testEnv.BinaryAssetsDirectory = getFirstFoundEnvTestBinaryDir() - } + var err error // cfg is defined in this file globally. cfg, err = testEnv.Start() Expect(err).NotTo(HaveOccurred()) Expect(cfg).NotTo(BeNil()) - k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) - Expect(k8sClient).NotTo(BeNil()) -}) -var _ = AfterSuite(func() { - By("tearing down the test environment") - cancel() - err := testEnv.Stop() + err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) -}) -// getFirstFoundEnvTestBinaryDir locates the first binary in the specified path. -// ENVTEST-based tests depend on specific binaries, usually located in paths set by -// controller-runtime. When running tests directly (e.g., via an IDE) without using -// Makefile targets, the 'BinaryAssetsDirectory' must be explicitly configured. -// -// This function streamlines the process by finding the required binaries, similar to -// setting the 'KUBEBUILDER_ASSETS' environment variable. To ensure the binaries are -// properly set up, run 'make setup-envtest' beforehand. -func getFirstFoundEnvTestBinaryDir() string { - basePath := filepath.Join("..", "..", "bin", "k8s") - entries, err := os.ReadDir(basePath) - if err != nil { - logf.Log.Error(err, "Failed to read directory", "path", basePath) - return "" + err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + //+kubebuilder:scaffold:scheme + + // Create New Manager for controller + k8sManager, err = ctrl.NewManager(cfg, ctrl.Options{ + Scheme: clientgoscheme.Scheme, + }) + Expect(err).ToNot(HaveOccurred()) + if err := (&ClusterManagerReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - for _, entry := range entries { - if entry.IsDir() { - return filepath.Join(basePath, entry.Name()) - } + if err := (&ClusterMasterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - return "" -} + if err := (&IndexerClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&IngestorClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&LicenseManagerReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&LicenseMasterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&MonitoringConsoleReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&SearchHeadClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&StandaloneReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + + go func() { + err = k8sManager.Start(ctrl.SetupSignalHandler()) + fmt.Printf("error %v", err.Error()) + Expect(err).ToNot(HaveOccurred()) + }() + + Expect(err).ToNot(HaveOccurred()) + + k8sClient, err = client.New(cfg, client.Options{Scheme: clientgoscheme.Scheme}) + Expect(err).NotTo(HaveOccurred()) + Expect(k8sClient).NotTo(BeNil()) + +}, NodeTimeout(time.Second*500)) + +var _ = AfterSuite(func() { + By("tearing down the test environment") + testEnv.Stop() +}) diff --git a/test/postgrescluster-retain-upgrade-flow.sh b/test/postgrescluster-retain-upgrade-flow.sh deleted file mode 100755 index 69124c536..000000000 --- a/test/postgrescluster-retain-upgrade-flow.sh +++ /dev/null @@ -1,356 +0,0 @@ -#!/usr/bin/env bash -# run make install make run in a separate terminal to have the operator running while this test executes -# this test verifies that when a PostgresCluster with clusterDeletionPolicy=Retain is deleted, the underlying CNPG Cluster and superuser Secret are not deleted and can be re-attached to a new PostgresCluster with the same name (simulating a major version upgrade flow where the cluster needs to be recreated). -# then, in a separate terminal, run: NAMESPACE=your-namespace UPGRADE_POSTGRES_VERSION=16 ./test/postgrescluster-retain-upgrade-flow.sh - - -set -euo pipefail - -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -TEST_DIR="$ROOT_DIR/test" -SAMPLES_DIR="$ROOT_DIR/config/samples" - -CLUSTER_MANIFEST="${CLUSTER_MANIFEST:-$SAMPLES_DIR/enterprise_v4_postgrescluster_dev.yaml}" -DATABASE_MANIFEST="${DATABASE_MANIFEST:-$SAMPLES_DIR/enterprise_v4_postgresdatabase.yaml}" -CONNECT_SCRIPT="${CONNECT_SCRIPT:-$TEST_DIR/connect-to-postgres-cluster.sh}" -UPGRADE_POSTGRES_VERSION="${UPGRADE_POSTGRES_VERSION:-16}" -POLL_INTERVAL="${POLL_INTERVAL:-5}" -TIMEOUT_SECONDS="${TIMEOUT_SECONDS:-900}" -REQUIRE_POSTGRESDATABASE_READY="${REQUIRE_POSTGRESDATABASE_READY:-0}" - -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' - -log() { - echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')] $*${NC}" -} - -pass() { - echo -e "${GREEN}[PASS] $*${NC}" -} - -fail() { - echo -e "${RED}[FAIL] $*${NC}" >&2 - exit 1 -} - -require_file() { - local path="$1" - [[ -f "$path" ]] || fail "Required file not found: $path" -} - -require_command() { - local cmd="$1" - command -v "$cmd" >/dev/null 2>&1 || fail "Required command not found: $cmd" -} - -current_namespace() { - local ns - ns="$(kubectl config view --minify --output 'jsonpath={..namespace}' 2>/dev/null || true)" - if [[ -z "$ns" ]]; then - ns="default" - fi - printf '%s' "$ns" -} - -preflight_namespace() { - local deletion_ts phase - deletion_ts="$(kubectl get ns "$NAMESPACE" -o jsonpath='{.metadata.deletionTimestamp}' 2>/dev/null || true)" - phase="$(kubectl get ns "$NAMESPACE" -o jsonpath='{.status.phase}' 2>/dev/null || true)" - if [[ -n "$deletion_ts" || "$phase" == "Terminating" ]]; then - fail "Namespace $NAMESPACE is terminating (deletionTimestamp=$deletion_ts phase=$phase). Use a non-terminating namespace." - fi -} - -preflight_cluster_dns() { - local host - host="${CLUSTER_NAME}-rw.${NAMESPACE}.svc.cluster.local" - if getent hosts "$host" >/dev/null 2>&1; then - return 0 - fi - - log "Cluster DNS name is not resolvable from this machine: $host" - log "This does not block local connection tests (we use kubectl port-forward), but it blocks PostgresDatabase DB-connection/privilege phases when the operator runs out-of-cluster (make run)." - log "Fix: run the operator in-cluster or use telepresence/kubefwd to get cluster DNS/networking on your machine." - - SKIP_POSTGRESDATABASE_READY_CHECK=1 - if [[ "$REQUIRE_POSTGRESDATABASE_READY" == "1" ]]; then - fail "PostgresDatabase readiness required (REQUIRE_POSTGRESDATABASE_READY=1) but cluster DNS is not available." - fi - - log "Continuing with degraded PostgresDatabase checks (readiness will not be required)." -} - -resource_exists() { - local resource="$1" - local name="$2" - kubectl get "$resource" "$name" -n "$NAMESPACE" >/dev/null 2>&1 -} - -jsonpath_value() { - local resource="$1" - local name="$2" - local jsonpath="$3" - kubectl get "$resource" "$name" -n "$NAMESPACE" -o "jsonpath=${jsonpath}" 2>/dev/null -} - -wait_for_jsonpath() { - local resource="$1" - local name="$2" - local jsonpath="$3" - local expected="$4" - local timeout="${5:-$TIMEOUT_SECONDS}" - local deadline=$((SECONDS + timeout)) - local value="" - - while (( SECONDS < deadline )); do - value="$(jsonpath_value "$resource" "$name" "$jsonpath" || true)" - if [[ "$value" == "$expected" ]]; then - pass "$resource/$name reached ${jsonpath}=${expected}" - return 0 - fi - sleep "$POLL_INTERVAL" - done - - fail "Timed out waiting for $resource/$name to reach ${jsonpath}=${expected}. Last value: ${value:-}" -} - -wait_for_contains() { - local resource="$1" - local name="$2" - local jsonpath="$3" - local expected_substring="$4" - local timeout="${5:-$TIMEOUT_SECONDS}" - local deadline=$((SECONDS + timeout)) - local value="" - - while (( SECONDS < deadline )); do - value="$(jsonpath_value "$resource" "$name" "$jsonpath" || true)" - if [[ "$value" == *"$expected_substring"* ]]; then - pass "$resource/$name contains ${expected_substring} in ${jsonpath}" - return 0 - fi - sleep "$POLL_INTERVAL" - done - - fail "Timed out waiting for $resource/$name to contain ${expected_substring} in ${jsonpath}. Last value: ${value:-}" -} - -wait_for_absence() { - local resource="$1" - local name="$2" - local timeout="${3:-$TIMEOUT_SECONDS}" - local deadline=$((SECONDS + timeout)) - - while (( SECONDS < deadline )); do - if ! resource_exists "$resource" "$name"; then - pass "$resource/$name is absent" - return 0 - fi - sleep "$POLL_INTERVAL" - done - - fail "Timed out waiting for $resource/$name to be deleted" -} - -wait_for_presence() { - local resource="$1" - local name="$2" - local timeout="${3:-$TIMEOUT_SECONDS}" - local deadline=$((SECONDS + timeout)) - - while (( SECONDS < deadline )); do - if resource_exists "$resource" "$name"; then - pass "$resource/$name exists" - return 0 - fi - sleep "$POLL_INTERVAL" - done - - fail "Timed out waiting for $resource/$name to exist" -} - -wait_for_owner_reference() { - local resource="$1" - local name="$2" - local owner_kind="$3" - local owner_name="$4" - local owner_uid="$5" - local timeout="${6:-$TIMEOUT_SECONDS}" - local deadline=$((SECONDS + timeout)) - local owners="" - local expected="${owner_kind}:${owner_name}:${owner_uid}" - - while (( SECONDS < deadline )); do - owners="$(jsonpath_value "$resource" "$name" '{range .metadata.ownerReferences[*]}{.kind}:{.name}:{.uid}{"\n"}{end}' || true)" - if [[ "$owners" == *"$expected"* ]]; then - pass "$resource/$name is owned by ${owner_kind}/${owner_name}" - return 0 - fi - sleep "$POLL_INTERVAL" - done - - fail "Timed out waiting for $resource/$name to be owned by ${owner_kind}/${owner_name}. Owners: ${owners:-}" -} - -run_connection_check() { - log "Checking superuser connection with $CONNECT_SCRIPT" - printf 'SELECT current_user;\n\\q\n' | bash "$CONNECT_SCRIPT" "$CLUSTER_NAME" "$NAMESPACE" - pass "Superuser connection succeeded" -} - -patch_cluster() { - local deletion_policy="$1" - local pooler_enabled="$2" - kubectl patch postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --type merge \ - -p "{\"spec\":{\"clusterDeletionPolicy\":\"${deletion_policy}\",\"connectionPoolerEnabled\":${pooler_enabled}}}" >/dev/null -} - -apply_upgraded_cluster_manifest() { - local tmp_manifest - tmp_manifest="$(mktemp)" - - sed \ - -e "s/^\([[:space:]]*clusterDeletionPolicy:\).*/\1 Retain/" \ - -e "s/^\([[:space:]]*postgresVersion:\).*/\1 \"${UPGRADE_POSTGRES_VERSION}\"/" \ - "$CLUSTER_MANIFEST" > "$tmp_manifest" - - kubectl apply -n "$NAMESPACE" -f "$tmp_manifest" >/dev/null - rm -f "$tmp_manifest" -} - -assert_cluster_ready() { - wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.phase}' 'Ready' - wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.conditions[?(@.type=="ClusterReady")].status}' 'True' - wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.conditions[?(@.type=="ConfigMapReady")].status}' 'True' -} - -assert_database_created() { - wait_for_presence postgresdatabase "$DATABASE_NAME" - for db in "${DATABASES[@]}"; do - wait_for_presence databases.postgresql.cnpg.io "${DATABASE_NAME}-${db}" - done - pass "PostgresDatabase CR exists and CNPG Database CRs are present" -} - -assert_database_ready() { - if [[ "${SKIP_POSTGRESDATABASE_READY_CHECK:-0}" == "1" ]]; then - assert_database_created - return 0 - fi - wait_for_jsonpath postgresdatabase "$DATABASE_NAME" '{.status.phase}' 'Ready' - wait_for_jsonpath postgresdatabase "$DATABASE_NAME" '{.status.observedGeneration}' \ - "$(jsonpath_value postgresdatabase "$DATABASE_NAME" '{.metadata.generation}')" -} - -record_cluster_artifacts() { - SUPERUSER_SECRET_NAME="$(jsonpath_value postgrescluster "$CLUSTER_NAME" '{.status.resources.secretRef.name}')" - CONFIGMAP_NAME="$(jsonpath_value postgrescluster "$CLUSTER_NAME" '{.status.resources.configMapRef.name}')" - - [[ -n "$SUPERUSER_SECRET_NAME" ]] || fail "PostgresCluster status.resources.secretRef.name is empty" - [[ -n "$CONFIGMAP_NAME" ]] || fail "PostgresCluster status.resources.configMapRef.name is empty" -} - -cleanup_database_cr() { - if resource_exists postgresdatabase "$DATABASE_NAME"; then - log "Deleting PostgresDatabase/$DATABASE_NAME to leave the namespace clean" - kubectl delete postgresdatabase "$DATABASE_NAME" -n "$NAMESPACE" --wait=false >/dev/null - wait_for_absence postgresdatabase "$DATABASE_NAME" - fi -} - -require_command kubectl -require_file "$CLUSTER_MANIFEST" -require_file "$DATABASE_MANIFEST" -require_file "$CONNECT_SCRIPT" - -NAMESPACE="${NAMESPACE:-$(current_namespace)}" -CLUSTER_NAME="${CLUSTER_NAME:-$(kubectl create --dry-run=client -f "$CLUSTER_MANIFEST" -o jsonpath='{.metadata.name}')}" -DATABASE_NAME="${DATABASE_NAME:-$(kubectl create --dry-run=client -f "$DATABASE_MANIFEST" -o jsonpath='{.metadata.name}')}" -DATABASES_STR="$(kubectl create --dry-run=client -f "$DATABASE_MANIFEST" -o jsonpath='{range .spec.databases[*]}{.name}{" "}{end}')" -read -r -a DATABASES <<< "${DATABASES_STR:-}" -RW_POOLER_NAME="${CLUSTER_NAME}-pooler-rw" -RO_POOLER_NAME="${CLUSTER_NAME}-pooler-ro" - -log "Using namespace: $NAMESPACE" -log "Cluster manifest: $CLUSTER_MANIFEST" -log "Database manifest: $DATABASE_MANIFEST" -log "Upgrade target postgresVersion: $UPGRADE_POSTGRES_VERSION" - -preflight_namespace -preflight_cluster_dns - -log "1. Creating PostgresCluster from sample manifest" -kubectl apply -n "$NAMESPACE" -f "$CLUSTER_MANIFEST" - -log "2. Creating PostgresDatabase from sample manifest" -kubectl apply -n "$NAMESPACE" -f "$DATABASE_MANIFEST" - -log "3. Waiting for PostgresCluster and PostgresDatabase to become ready" -assert_cluster_ready -assert_database_ready -record_cluster_artifacts -pass "PostgresCluster and PostgresDatabase were created successfully" - -log "4. Verifying superuser connection to PostgresCluster" -run_connection_check - -log "5. Setting clusterDeletionPolicy=Retain and connectionPoolerEnabled=false" -patch_cluster "Retain" "false" -wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.clusterDeletionPolicy}' 'Retain' -wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.connectionPoolerEnabled}' 'false' -wait_for_absence pooler.postgresql.cnpg.io "$RW_POOLER_NAME" -wait_for_absence pooler.postgresql.cnpg.io "$RO_POOLER_NAME" -assert_cluster_ready - -log "6. Setting connectionPoolerEnabled=true and waiting for poolers" -patch_cluster "Retain" "true" -wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.connectionPoolerEnabled}' 'true' -wait_for_presence pooler.postgresql.cnpg.io "$RW_POOLER_NAME" -wait_for_presence pooler.postgresql.cnpg.io "$RO_POOLER_NAME" -wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.status.conditions[?(@.type=="PoolerReady")].status}' 'True' -assert_cluster_ready - -log "7. Deleting PostgresCluster with retention enabled" -kubectl delete postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --wait=false >/dev/null -wait_for_absence postgrescluster "$CLUSTER_NAME" -wait_for_presence cluster.postgresql.cnpg.io "$CLUSTER_NAME" -wait_for_presence secret "$SUPERUSER_SECRET_NAME" -pass "CNPG cluster and superuser secret remained after PostgresCluster deletion" - -log "8. Recreating PostgresCluster with a major version upgrade" -apply_upgraded_cluster_manifest -wait_for_presence postgrescluster "$CLUSTER_NAME" -wait_for_contains cluster.postgresql.cnpg.io "$CLUSTER_NAME" '{.spec.imageName}' ":${UPGRADE_POSTGRES_VERSION}" -assert_cluster_ready -record_cluster_artifacts - -log "9. Checking that retained resources were re-attached to the recreated PostgresCluster" -POSTGRES_CLUSTER_UID="$(jsonpath_value postgrescluster "$CLUSTER_NAME" '{.metadata.uid}')" -wait_for_owner_reference cluster.postgresql.cnpg.io "$CLUSTER_NAME" "PostgresCluster" "$CLUSTER_NAME" "$POSTGRES_CLUSTER_UID" -wait_for_owner_reference secret "$SUPERUSER_SECRET_NAME" "PostgresCluster" "$CLUSTER_NAME" "$POSTGRES_CLUSTER_UID" - -log "10. Verifying superuser connection after recreate/upgrade" -run_connection_check - -log "11. Setting clusterDeletionPolicy=Delete" -kubectl patch postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --type merge \ - -p '{"spec":{"clusterDeletionPolicy":"Delete"}}' >/dev/null -wait_for_jsonpath postgrescluster "$CLUSTER_NAME" '{.spec.clusterDeletionPolicy}' 'Delete' - -log "12. Deleting the PostgresCluster" -kubectl delete postgrescluster "$CLUSTER_NAME" -n "$NAMESPACE" --wait=false >/dev/null -wait_for_absence postgrescluster "$CLUSTER_NAME" - -log "13. Checking that no cluster leftovers remain" -cleanup_database_cr -wait_for_absence cluster.postgresql.cnpg.io "$CLUSTER_NAME" -wait_for_absence pooler.postgresql.cnpg.io "$RW_POOLER_NAME" -wait_for_absence pooler.postgresql.cnpg.io "$RO_POOLER_NAME" -wait_for_absence secret "$SUPERUSER_SECRET_NAME" -wait_for_absence configmap "$CONFIGMAP_NAME" -pass "No PostgresCluster leftovers remain in namespace $NAMESPACE" - -log "Flow finished successfully" From 53d78dd454b13258b9225caa4cbf451c4674e236 Mon Sep 17 00:00:00 2001 From: Kamil Ubych <56136249+limak9182@users.noreply.github.com> Date: Thu, 26 Mar 2026 10:15:47 +0100 Subject: [PATCH 03/43] unit tests for postgres cluster for helpers (#1789) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Database CR POC * Adjust packages and tests interfaces so tests pass with latest packages forced by cnpg * Reshape cluster class crd * Apply PR suggestions * Remove class controller * Configure database CRD * Change CR name. Apply PR suggestions * PostgresCluster controller with base functionality * Database connection pooler types (#1696) * addition of connection pooler types * moved ConnectionPooler to CNPGConfig * createdconnectionPoolerEnabled in cluster config * delete connectionpooler_types.go * fix validation logic for storage and postgresversion remove semver check, add messages extended description * Adding initial database creation * Add user create validation * Implement SSA on the postgres cluster CR level * fix infinite loop on reconciliation * Removed redundant comment. * Resolve merge conflicts * reconciliation logic for pgbouncer (#1713) * Add secrets management for roles and its use in cluster * Apply PR suggestions * postgres database finalizer (#1750) * Add configmaps and secret handling for PostgresCluster * Add finalizer support to PostgresCluster controller * Add Support for config map generation in database controller (#1759) * Add Support for config map generation * Simplify code and create-update pattern * database finalizer - leave resources aproach * fix comment * simplify classifyRoles * naming fix * comments fix * patchManagedRolesOnDeletion simplified * naming fix * simplify recinciling secfrets logic * config map simplification * simplify readopting logic * refacttor secrets reconciliation * refactor handleDeletion function * simplify patchManagedRolesOnDeletion * simplify configMap and Secret, fix finalizer logic * checking ssa conflicts in field manager * comment patchManagedRolesOnDeletion func * Add support to apply RW role privileges to the database * Use vendor to pass internal libs * unit tests for postgres cluster for helpers * Use pgx instead of internal lib * Fix reconciliation storm for postgresCluster * move to assert * arePoolersReady logic separation * test rename * moving the test file to pkg * AAA adjustments * polers simplificaton reversed --------- Co-authored-by: Michał Płoski Co-authored-by: dpishchenkov Co-authored-by: Dmytro Pishchenkov --- pkg/postgresql/cluster/core/cluster.go | 53 +- .../cluster/core/cluster_unit_test.go | 1139 +++++++++++++++++ 2 files changed, 1170 insertions(+), 22 deletions(-) create mode 100644 pkg/postgresql/cluster/core/cluster_unit_test.go diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 66622d8ad..3459101a4 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -308,7 +308,19 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } return ctrl.Result{RequeueAfter: retryDelay}, nil - case !arePoolersReady(ctx, c, postgresCluster): + case func() bool { + rwPooler := &cnpgv1.Pooler{} + rwErr := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(postgresCluster.Name, readWriteEndpoint), + Namespace: postgresCluster.Namespace, + }, rwPooler) + roPooler := &cnpgv1.Pooler{} + roErr := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(postgresCluster.Name, readOnlyEndpoint), + Namespace: postgresCluster.Namespace, + }, roPooler) + return rwErr != nil || roErr != nil || !arePoolersReady(rwPooler, roPooler) + }(): logger.Info("Connection Poolers are not ready yet, requeueing") if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, "Connection poolers are being provisioned", pendingClusterPhase); statusErr != nil { @@ -384,9 +396,21 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } return ctrl.Result{}, fmt.Errorf("failed to sync status: %w", err) } - if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy && arePoolersReady(ctx, c, postgresCluster) { - logger.Info("Poolers are ready, syncing pooler status") - _ = syncPoolerStatus(ctx, c, postgresCluster) + if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { + rwPooler := &cnpgv1.Pooler{} + rwErr := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(postgresCluster.Name, readWriteEndpoint), + Namespace: postgresCluster.Namespace, + }, rwPooler) + roPooler := &cnpgv1.Pooler{} + roErr := c.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(postgresCluster.Name, readOnlyEndpoint), + Namespace: postgresCluster.Namespace, + }, roPooler) + if rwErr == nil && roErr == nil && arePoolersReady(rwPooler, roPooler) { + logger.Info("Poolers are ready, syncing pooler status") + _ = syncPoolerStatus(ctx, c, postgresCluster) + } } logger.Info("Reconciliation complete") return ctrl.Result{}, nil @@ -567,28 +591,13 @@ func poolerExists(ctx context.Context, c client.Client, cluster *enterprisev4.Po return true } -func arePoolersReady(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster) bool { - rwPooler := &cnpgv1.Pooler{} - rwErr := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(cluster.Name, readWriteEndpoint), - Namespace: cluster.Namespace, - }, rwPooler) - - roPooler := &cnpgv1.Pooler{} - roErr := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(cluster.Name, readOnlyEndpoint), - Namespace: cluster.Namespace, - }, roPooler) - - return isPoolerReady(rwPooler, rwErr) && isPoolerReady(roPooler, roErr) +func arePoolersReady(rwPooler, roPooler *cnpgv1.Pooler) bool { + return isPoolerReady(rwPooler) && isPoolerReady(roPooler) } // isPoolerReady checks if a pooler has all instances scheduled. // CNPG PoolerStatus only tracks scheduled instances, not ready pods. -func isPoolerReady(pooler *cnpgv1.Pooler, err error) bool { - if err != nil { - return false - } +func isPoolerReady(pooler *cnpgv1.Pooler) bool { desired := int32(1) if pooler.Spec.Instances != nil { desired = *pooler.Spec.Instances diff --git a/pkg/postgresql/cluster/core/cluster_unit_test.go b/pkg/postgresql/cluster/core/cluster_unit_test.go new file mode 100644 index 000000000..e87173afb --- /dev/null +++ b/pkg/postgresql/cluster/core/cluster_unit_test.go @@ -0,0 +1,1139 @@ +package core + +import ( + "context" + "testing" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/utils/ptr" + client "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" +) + +func TestPoolerResourceName(t *testing.T) { + tests := []struct { + name string + clusterName string + poolerType string + expected string + }{ + { + name: "read-write pooler", + clusterName: "my-cluster", + poolerType: "rw", + expected: "my-cluster-pooler-rw", + }, + { + name: "cluster name with mixed case and alphanumeric suffix", + clusterName: "My-Cluster-12x2f", + poolerType: "rw", + expected: "My-Cluster-12x2f-pooler-rw", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := poolerResourceName(tt.clusterName, tt.poolerType) + + assert.Equal(t, tt.expected, got) + }) + } +} + +func TestIsPoolerReady(t *testing.T) { + tests := []struct { + name string + pooler *cnpgv1.Pooler + expected bool + }{ + { + name: "nil instances defaults desired to 1, zero scheduled means not ready", + pooler: &cnpgv1.Pooler{ + Status: cnpgv1.PoolerStatus{Instances: 0}, + }, + expected: false, + }, + { + name: "nil instances defaults desired to 1, one scheduled means ready", + pooler: &cnpgv1.Pooler{ + Status: cnpgv1.PoolerStatus{Instances: 1}, + }, + expected: true, + }, + { + name: "scheduled meets desired", + pooler: &cnpgv1.Pooler{ + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(3))}, + Status: cnpgv1.PoolerStatus{Instances: 3}, + }, + expected: true, + }, + { + name: "scheduled below desired", + pooler: &cnpgv1.Pooler{ + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(3))}, + Status: cnpgv1.PoolerStatus{Instances: 2}, + }, + expected: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := isPoolerReady(tt.pooler) + + assert.Equal(t, tt.expected, got) + }) + } +} + +func TestNormalizeCNPGClusterSpec(t *testing.T) { + tests := []struct { + name string + spec cnpgv1.ClusterSpec + customDefinedParameters map[string]string + expected normalizedCNPGClusterSpec + }{ + { + name: "basic fields are copied", + spec: cnpgv1.ClusterSpec{ + ImageName: "ghcr.io/cloudnative-pg/postgresql:18", + Instances: 3, + StorageConfiguration: cnpgv1.StorageConfiguration{Size: "10Gi"}, + }, + customDefinedParameters: nil, + expected: normalizedCNPGClusterSpec{ + ImageName: "ghcr.io/cloudnative-pg/postgresql:18", + Instances: 3, + StorageSize: "10Gi", + }, + }, + { + name: "CNPG-injected parameters are excluded from comparison", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + PostgresConfiguration: cnpgv1.PostgresConfiguration{ + Parameters: map[string]string{ + "shared_buffers": "256MB", + "max_connections": "200", + "cnpg_injected": "should-not-appear", + }, + }, + }, + customDefinedParameters: map[string]string{ + "shared_buffers": "256MB", + "max_connections": "200", + }, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + CustomDefinedParameters: map[string]string{ + "shared_buffers": "256MB", + "max_connections": "200", + }, + }, + }, + { + name: "empty custom params does not populate CustomDefinedParameters", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + PostgresConfiguration: cnpgv1.PostgresConfiguration{ + Parameters: map[string]string{"cnpg_injected": "val"}, + }, + }, + customDefinedParameters: map[string]string{}, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + }, + }, + { + name: "PgHBA included when non-empty", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + PostgresConfiguration: cnpgv1.PostgresConfiguration{ + PgHBA: []string{"hostssl all all 0.0.0.0/0 scram-sha-256"}, + }, + }, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + PgHBA: []string{"hostssl all all 0.0.0.0/0 scram-sha-256"}, + }, + }, + { + name: "empty PgHBA is excluded", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + PostgresConfiguration: cnpgv1.PostgresConfiguration{ + PgHBA: []string{}, + }, + }, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + }, + }, + { + name: "bootstrap populates database and owner", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + Bootstrap: &cnpgv1.BootstrapConfiguration{ + InitDB: &cnpgv1.BootstrapInitDB{ + Database: "mydb", + Owner: "admin", + }, + }, + }, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + DefaultDatabase: "mydb", + Owner: "admin", + }, + }, + { + name: "nil bootstrap leaves database and owner empty", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + }, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := normalizeCNPGClusterSpec(tt.spec, tt.customDefinedParameters) + + assert.Equal(t, tt.expected, got) + }) + } +} + +func TestGetMergedConfig(t *testing.T) { + classInstances := int32(1) + classVersion := "17" + classStorage := resource.MustParse("50Gi") + baseClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: "standard"}, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + Instances: &classInstances, + PostgresVersion: &classVersion, + Storage: &classStorage, + Resources: &corev1.ResourceRequirements{}, + PostgreSQLConfig: map[string]string{"shared_buffers": "128MB"}, + PgHBA: []string{"host all all 0.0.0.0/0 md5"}, + }, + CNPG: &enterprisev4.CNPGConfig{PrimaryUpdateMethod: ptr.To("switchover")}, + }, + } + + t.Run("cluster spec overrides class defaults", func(t *testing.T) { + overrideInstances := int32(5) + overrideVersion := "18" + overrideStorage := resource.MustParse("100Gi") + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + Instances: &overrideInstances, + PostgresVersion: &overrideVersion, + Storage: &overrideStorage, + PostgreSQLConfig: map[string]string{"max_connections": "200"}, + PgHBA: []string{"hostssl all all 0.0.0.0/0 scram-sha-256"}, + }, + } + + cfg, err := getMergedConfig(baseClass, cluster) + + require.NoError(t, err) + assert.Equal(t, int32(5), *cfg.Spec.Instances) + assert.Equal(t, "18", *cfg.Spec.PostgresVersion) + assert.Equal(t, "100Gi", cfg.Spec.Storage.String()) + assert.Equal(t, "200", cfg.Spec.PostgreSQLConfig["max_connections"]) + assert.Equal(t, "hostssl all all 0.0.0.0/0 scram-sha-256", cfg.Spec.PgHBA[0]) + }) + + t.Run("class defaults fill in nil cluster fields", func(t *testing.T) { + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{}, + } + + cfg, err := getMergedConfig(baseClass, cluster) + + require.NoError(t, err) + assert.Equal(t, int32(1), *cfg.Spec.Instances) + assert.Equal(t, "17", *cfg.Spec.PostgresVersion) + assert.Equal(t, "50Gi", cfg.Spec.Storage.String()) + assert.Equal(t, "128MB", cfg.Spec.PostgreSQLConfig["shared_buffers"]) + }) + + t.Run("returns error when required fields missing from both", func(t *testing.T) { + emptyClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: "empty"}, + Spec: enterprisev4.PostgresClusterClassSpec{}, + } + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{}, + } + + _, err := getMergedConfig(emptyClass, cluster) + + require.Error(t, err) + }) + + t.Run("CNPG config comes from class not cluster", func(t *testing.T) { + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{}, + } + + cfg, err := getMergedConfig(baseClass, cluster) + + require.NoError(t, err) + require.NotNil(t, cfg.CNPG) + assert.Equal(t, "switchover", *cfg.CNPG.PrimaryUpdateMethod) + }) + + t.Run("nil maps and slices initialized to safe zero values", func(t *testing.T) { + classWithNoMaps := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: "minimal"}, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + Instances: &classInstances, + PostgresVersion: &classVersion, + Storage: &classStorage, + }, + }, + } + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{}, + } + + cfg, err := getMergedConfig(classWithNoMaps, cluster) + + require.NoError(t, err) + assert.NotNil(t, cfg.Spec.PostgreSQLConfig) + assert.NotNil(t, cfg.Spec.PgHBA) + assert.NotNil(t, cfg.Spec.Resources) + }) +} + +func TestBuildCNPGClusterSpec(t *testing.T) { + version := "18" + instances := int32(3) + storage := resource.MustParse("50Gi") + cfg := &MergedConfig{ + Spec: &enterprisev4.PostgresClusterSpec{ + PostgresVersion: &version, + Instances: &instances, + Storage: &storage, + PostgreSQLConfig: map[string]string{ + "shared_buffers": "256MB", + "max_connections": "200", + }, + PgHBA: []string{ + "hostssl all all 0.0.0.0/0 scram-sha-256", + "host replication all 10.0.0.0/8 md5", + }, + Resources: &corev1.ResourceRequirements{}, + }, + } + + spec := buildCNPGClusterSpec(cfg, "my-secret") + + assert.Equal(t, "ghcr.io/cloudnative-pg/postgresql:18", spec.ImageName) + assert.Equal(t, 3, spec.Instances) + require.NotNil(t, spec.SuperuserSecret) + assert.Equal(t, "my-secret", spec.SuperuserSecret.Name) + assert.Equal(t, "my-secret", spec.Bootstrap.InitDB.Secret.Name) + require.NotNil(t, spec.EnableSuperuserAccess) + assert.True(t, *spec.EnableSuperuserAccess) + assert.Equal(t, "postgres", spec.Bootstrap.InitDB.Database) + assert.Equal(t, "postgres", spec.Bootstrap.InitDB.Owner) + assert.Equal(t, "50Gi", spec.StorageConfiguration.Size) + assert.Equal(t, "256MB", spec.PostgresConfiguration.Parameters["shared_buffers"]) + assert.Equal(t, "200", spec.PostgresConfiguration.Parameters["max_connections"]) + require.Len(t, spec.PostgresConfiguration.PgHBA, 2) + assert.Equal(t, "hostssl all all 0.0.0.0/0 scram-sha-256", spec.PostgresConfiguration.PgHBA[0]) + assert.Equal(t, "host replication all 10.0.0.0/8 md5", spec.PostgresConfiguration.PgHBA[1]) +} + +func TestBuildCNPGPooler(t *testing.T) { + scheme := runtime.NewScheme() + enterprisev4.AddToScheme(scheme) + cnpgv1.AddToScheme(scheme) + + poolerInstances := int32(3) + poolerMode := enterprisev4.ConnectionPoolerModeTransaction + postgresCluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "db-ns", + UID: "test-uid", + }, + } + cnpgCluster := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + }, + } + cfg := &MergedConfig{ + CNPG: &enterprisev4.CNPGConfig{ + ConnectionPooler: &enterprisev4.ConnectionPoolerConfig{ + Instances: &poolerInstances, + Mode: &poolerMode, + Config: map[string]string{"default_pool_size": "25"}, + }, + }, + } + + t.Run("rw pooler", func(t *testing.T) { + pooler := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "rw") + + assert.Equal(t, "my-cluster-pooler-rw", pooler.Name) + assert.Equal(t, "db-ns", pooler.Namespace) + assert.Equal(t, "my-cluster", pooler.Spec.Cluster.Name) + require.NotNil(t, pooler.Spec.Instances) + assert.Equal(t, int32(3), *pooler.Spec.Instances) + assert.Equal(t, cnpgv1.PoolerType("rw"), pooler.Spec.Type) + assert.Equal(t, cnpgv1.PgBouncerPoolMode("transaction"), pooler.Spec.PgBouncer.PoolMode) + assert.Equal(t, "25", pooler.Spec.PgBouncer.Parameters["default_pool_size"]) + require.Len(t, pooler.OwnerReferences, 1) + assert.Equal(t, "test-uid", string(pooler.OwnerReferences[0].UID)) + }) + + t.Run("ro pooler", func(t *testing.T) { + pooler := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "ro") + + assert.Equal(t, "my-cluster-pooler-ro", pooler.Name) + assert.Equal(t, cnpgv1.PoolerType("ro"), pooler.Spec.Type) + }) +} + +func TestBuildCNPGCluster(t *testing.T) { + scheme := runtime.NewScheme() + enterprisev4.AddToScheme(scheme) + cnpgv1.AddToScheme(scheme) + + instances := int32(3) + version := "18" + storage := resource.MustParse("50Gi") + postgresCluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "db-ns", + UID: "pg-uid", + }, + } + cfg := &MergedConfig{ + Spec: &enterprisev4.PostgresClusterSpec{ + Instances: &instances, + PostgresVersion: &version, + Storage: &storage, + PostgreSQLConfig: map[string]string{}, + PgHBA: []string{}, + Resources: &corev1.ResourceRequirements{}, + }, + } + + cluster := buildCNPGCluster(scheme, postgresCluster, cfg, "my-secret") + + assert.Equal(t, "my-cluster", cluster.Name) + assert.Equal(t, "db-ns", cluster.Namespace) + require.Len(t, cluster.OwnerReferences, 1) + assert.Equal(t, "pg-uid", string(cluster.OwnerReferences[0].UID)) + assert.Equal(t, 3, cluster.Spec.Instances) +} + +func TestClusterSecretExists(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + + tests := []struct { + name string + objects []client.Object + secretName string + expectedExists bool + }{ + { + name: "returns true when secret exists", + objects: []client.Object{ + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-secret", + Namespace: "default", + }, + }, + }, + secretName: "my-secret", + expectedExists: true, + }, + { + name: "returns false when secret not found", + objects: []client.Object{ + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "other-secret", + Namespace: "default", + }, + }, + }, + secretName: "missing-secret", + expectedExists: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.objects...).Build() + secret := &corev1.Secret{} + + exists, err := clusterSecretExists(context.Background(), c, "default", tt.secretName, secret) + + require.NoError(t, err) + assert.Equal(t, tt.expectedExists, exists) + }) + } +} + +func TestRemoveOwnerRef(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + owner := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + UID: "owner-uid", + }, + } + + otherOwnerRef := metav1.OwnerReference{ + APIVersion: "apps/v1", + Kind: "Deployment", + Name: "other-owner", + UID: "other-uid", + } + ourOwnerRef := metav1.OwnerReference{ + APIVersion: "enterprise.splunk.com/v4", + Kind: "PostgresCluster", + Name: "my-cluster", + UID: "owner-uid", + } + + tests := []struct { + name string + ownerRefs []metav1.OwnerReference + expectedRemoved bool + expectedRefsLen int + }{ + { + name: "returns false when owner ref not present", + ownerRefs: nil, + expectedRemoved: false, + expectedRefsLen: 0, + }, + { + name: "removes owner ref and returns true", + ownerRefs: []metav1.OwnerReference{ourOwnerRef}, + expectedRemoved: true, + expectedRefsLen: 0, + }, + { + name: "removes only our owner ref and keeps others", + ownerRefs: []metav1.OwnerReference{otherOwnerRef, ourOwnerRef}, + expectedRemoved: true, + expectedRefsLen: 1, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + secret := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-secret", + Namespace: "default", + OwnerReferences: tt.ownerRefs, + }, + } + + removed, err := removeOwnerRef(scheme, owner, secret) + + require.NoError(t, err) + assert.Equal(t, tt.expectedRemoved, removed) + assert.Len(t, secret.GetOwnerReferences(), tt.expectedRefsLen) + }) + } +} + +func TestPatchObject(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + + t.Run("patches object successfully", func(t *testing.T) { + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-secret", + Namespace: "default", + }, + Data: map[string][]byte{"key": []byte("old-value")}, + } + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(existing).Build() + original := existing.DeepCopy() + existing.Data["key"] = []byte("new-value") + + err := patchObject(context.Background(), c, original, existing, "Secret") + + require.NoError(t, err) + patched := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), client.ObjectKeyFromObject(existing), patched)) + assert.Equal(t, "new-value", string(patched.Data["key"])) + }) + + t.Run("returns nil when object not found", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + original := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "deleted-secret", + Namespace: "default", + }, + } + modified := original.DeepCopy() + modified.Data = map[string][]byte{"key": []byte("value")} + + err := patchObject(context.Background(), c, original, modified, "Secret") + + assert.NoError(t, err) + }) +} + +func TestDeleteCNPGCluster(t *testing.T) { + scheme := runtime.NewScheme() + cnpgv1.AddToScheme(scheme) + + tests := []struct { + name string + objects []client.Object + cluster *cnpgv1.Cluster + }{ + { + name: "deletes existing cluster", + objects: []client.Object{ + &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + }, + }, + cluster: &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + }, + }, + { + name: "already deleted cluster returns nil", + cluster: &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "gone-cluster", + Namespace: "default", + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.objects...).Build() + + err := deleteCNPGCluster(context.Background(), c, tt.cluster) + + require.NoError(t, err) + }) + } +} + +func TestPoolerExists(t *testing.T) { + scheme := runtime.NewScheme() + cnpgv1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + } + + tests := []struct { + name string + objects []client.Object + expected bool + }{ + { + name: "returns true when pooler exists", + objects: []client.Object{ + &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster-pooler-rw", + Namespace: "default", + }, + }, + }, + expected: true, + }, + { + name: "returns false when given pooler is not found", + objects: []client.Object{ + &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster-pooler-ro", + Namespace: "default", + }, + }, + }, + expected: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.objects...).Build() + + got := poolerExists(context.Background(), c, cluster, "rw") + + assert.Equal(t, tt.expected, got) + }) + } +} + +func TestDeleteConnectionPoolers(t *testing.T) { + scheme := runtime.NewScheme() + cnpgv1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + } + + rwPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster-pooler-rw", + Namespace: "default", + }, + } + roPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster-pooler-ro", + Namespace: "default", + }, + } + + t.Run("deletes both poolers when they exist", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(rwPooler.DeepCopy(), roPooler.DeepCopy()).Build() + + err := deleteConnectionPoolers(context.Background(), c, cluster) + + require.NoError(t, err) + assert.True(t, apierrors.IsNotFound(c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-rw", Namespace: "default"}, &cnpgv1.Pooler{}))) + assert.True(t, apierrors.IsNotFound(c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-ro", Namespace: "default"}, &cnpgv1.Pooler{}))) + }) + + t.Run("no-op when no poolers exist", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + + err := deleteConnectionPoolers(context.Background(), c, cluster) + + require.NoError(t, err) + }) +} + +func TestEnsureClusterSecret(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + t.Run("creates secret with credentials and owner reference", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + UID: "cluster-uid", + }, + } + + err := ensureClusterSecret(context.Background(), c, scheme, cluster, "my-secret", &corev1.Secret{}) + + require.NoError(t, err) + secret := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-secret", Namespace: "default"}, secret)) + assert.Equal(t, "my-secret", secret.Name) + assert.Equal(t, "default", secret.Namespace) + assert.Equal(t, corev1.SecretTypeOpaque, secret.Type) + require.Len(t, secret.OwnerReferences, 1) + assert.Equal(t, "cluster-uid", string(secret.OwnerReferences[0].UID)) + }) + + t.Run("no-op when secret already exists", func(t *testing.T) { + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-secret", + Namespace: "default", + }, + StringData: map[string]string{"username": "existing-user"}, + } + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(existing).Build() + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + UID: "cluster-uid", + }, + } + + err := ensureClusterSecret(context.Background(), c, scheme, cluster, "my-secret", &corev1.Secret{}) + + require.NoError(t, err) + }) +} + +func TestArePoolersReady(t *testing.T) { + makePooler := func(desired, actual int32) *cnpgv1.Pooler { + return &cnpgv1.Pooler{ + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(desired)}, + Status: cnpgv1.PoolerStatus{Instances: actual}, + } + } + + tests := []struct { + name string + rw *cnpgv1.Pooler + ro *cnpgv1.Pooler + expected bool + }{ + { + name: "returns true when both poolers are ready", + rw: makePooler(2, 2), + ro: makePooler(2, 2), + expected: true, + }, + { + name: "returns false when rw pooler not ready", + rw: makePooler(2, 0), + ro: makePooler(2, 2), + expected: false, + }, + { + name: "returns false when ro pooler not ready", + rw: makePooler(2, 2), + ro: makePooler(2, 1), + expected: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := arePoolersReady(tt.rw, tt.ro) + + assert.Equal(t, tt.expected, got) + }) + } +} + +func TestCreateConnectionPooler(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + cnpgv1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + poolerInstances := int32(2) + poolerMode := enterprisev4.ConnectionPoolerModeTransaction + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + UID: "cluster-uid", + }, + } + cnpg := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + } + cfg := &MergedConfig{ + CNPG: &enterprisev4.CNPGConfig{ + ConnectionPooler: &enterprisev4.ConnectionPoolerConfig{ + Instances: &poolerInstances, + Mode: &poolerMode, + Config: map[string]string{"default_pool_size": "25"}, + }, + }, + } + + tests := []struct { + name string + objects []client.Object + expectInstances int32 + }{ + { + name: "creates pooler when it does not exist", + objects: nil, + expectInstances: 2, + }, + { + name: "no-op when pooler already exists", + objects: []client.Object{ + &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster-pooler-rw", + Namespace: "default", + }, + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(1))}, + }, + }, + expectInstances: 1, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.objects...).Build() + + err := createConnectionPooler(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpg, "rw") + + require.NoError(t, err) + fetched := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-rw", Namespace: "default"}, fetched)) + require.NotNil(t, fetched.Spec.Instances) + assert.Equal(t, tt.expectInstances, *fetched.Spec.Instances) + }) + } +} + +func TestGenerateConfigMap(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + cnpgv1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + UID: "cluster-uid", + }, + } + cnpgCluster := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + } + + t.Run("base endpoints without poolers", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + cm, err := generateConfigMap(context.Background(), c, scheme, cluster.DeepCopy(), cnpgCluster, "my-secret") + + require.NoError(t, err) + assert.Equal(t, "my-cluster-configmap", cm.Name) + assert.Equal(t, "default", cm.Namespace) + assert.Equal(t, "my-cluster-rw.default", cm.Data["CLUSTER_RW_ENDPOINT"]) + assert.Equal(t, "my-cluster-ro.default", cm.Data["CLUSTER_RO_ENDPOINT"]) + assert.Equal(t, "my-cluster-r.default", cm.Data["CLUSTER_R_ENDPOINT"]) + assert.Equal(t, "5432", cm.Data["DEFAULT_CLUSTER_PORT"]) + assert.Equal(t, "postgres", cm.Data["SUPER_USER_NAME"]) + assert.Equal(t, "my-secret", cm.Data["SUPER_USER_SECRET_REF"]) + assert.NotContains(t, cm.Data, "CLUSTER_POOLER_RW_ENDPOINT") + require.Len(t, cm.OwnerReferences, 1) + assert.Equal(t, "cluster-uid", string(cm.OwnerReferences[0].UID)) + }) + + t.Run("includes pooler endpoints when poolers exist", func(t *testing.T) { + rwPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{Name: "my-cluster-pooler-rw", Namespace: "default"}, + } + roPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{Name: "my-cluster-pooler-ro", Namespace: "default"}, + } + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(rwPooler, roPooler).Build() + cm, err := generateConfigMap(context.Background(), c, scheme, cluster.DeepCopy(), cnpgCluster, "my-secret") + + require.NoError(t, err) + assert.Equal(t, "my-cluster-pooler-rw.default", cm.Data["CLUSTER_POOLER_RW_ENDPOINT"]) + assert.Equal(t, "my-cluster-pooler-ro.default", cm.Data["CLUSTER_POOLER_RO_ENDPOINT"]) + }) + + t.Run("uses existing configmap name from status", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + pg := cluster.DeepCopy() + pg.Status.Resources = &enterprisev4.PostgresClusterResources{ + ConfigMapRef: &corev1.LocalObjectReference{Name: "custom-configmap"}, + } + + cm, err := generateConfigMap(context.Background(), c, scheme, pg, cnpgCluster, "my-secret") + + require.NoError(t, err) + assert.Equal(t, "custom-configmap", cm.Name) + }) +} + +func TestPoolerInstanceCount(t *testing.T) { + tests := []struct { + name string + pooler *cnpgv1.Pooler + expectedDesired int32 + expectedScheduled int32 + }{ + { + name: "nil instances defaults desired to 1", + pooler: &cnpgv1.Pooler{ + Status: cnpgv1.PoolerStatus{Instances: 3}, + }, + expectedDesired: 1, + expectedScheduled: 3, + }, + { + name: "explicit instances returns spec value", + pooler: &cnpgv1.Pooler{ + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(5))}, + Status: cnpgv1.PoolerStatus{Instances: 2}, + }, + expectedDesired: 5, + expectedScheduled: 2, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + desired, scheduled := poolerInstanceCount(tt.pooler) + + assert.Equal(t, tt.expectedDesired, desired) + assert.Equal(t, tt.expectedScheduled, scheduled) + }) + } +} + +func TestGeneratePassword(t *testing.T) { + pw, err := generatePassword() + + require.NoError(t, err) + assert.Len(t, pw, 32) + + t.Run("generates unique passwords", func(t *testing.T) { + pw2, err := generatePassword() + + require.NoError(t, err) + assert.NotEqual(t, pw, pw2) + }) +} + +func TestCreateOrUpdateConnectionPoolers(t *testing.T) { + scheme := runtime.NewScheme() + corev1.AddToScheme(scheme) + cnpgv1.AddToScheme(scheme) + enterprisev4.AddToScheme(scheme) + + poolerInstances := int32(2) + poolerMode := enterprisev4.ConnectionPoolerModeTransaction + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + UID: "cluster-uid", + }, + } + cnpgCluster := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster", + Namespace: "default", + }, + } + cfg := &MergedConfig{ + CNPG: &enterprisev4.CNPGConfig{ + ConnectionPooler: &enterprisev4.ConnectionPoolerConfig{ + Instances: &poolerInstances, + Mode: &poolerMode, + Config: map[string]string{"default_pool_size": "25"}, + }, + }, + } + + expectedPoolerSpec := func(poolerType string) cnpgv1.PoolerSpec { + return cnpgv1.PoolerSpec{ + Cluster: cnpgv1.LocalObjectReference{Name: "my-cluster"}, + Instances: ptr.To(int32(2)), + Type: cnpgv1.PoolerType(poolerType), + PgBouncer: &cnpgv1.PgBouncerSpec{ + PoolMode: cnpgv1.PgBouncerPoolMode("transaction"), + Parameters: map[string]string{"default_pool_size": "25"}, + }, + } + } + + t.Run("creates both rw and ro poolers", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + + err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster) + + require.NoError(t, err) + + rw := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-rw", Namespace: "default"}, rw)) + assert.Equal(t, expectedPoolerSpec("rw"), rw.Spec) + require.Len(t, rw.OwnerReferences, 1) + assert.Equal(t, "cluster-uid", string(rw.OwnerReferences[0].UID)) + + ro := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-ro", Namespace: "default"}, ro)) + assert.Equal(t, expectedPoolerSpec("ro"), ro.Spec) + require.Len(t, ro.OwnerReferences, 1) + assert.Equal(t, "cluster-uid", string(ro.OwnerReferences[0].UID)) + }) + + t.Run("no-op when both poolers already exist", func(t *testing.T) { + existing := []client.Object{ + &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{Name: "my-cluster-pooler-rw", Namespace: "default"}, + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(1))}, + }, + &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{Name: "my-cluster-pooler-ro", Namespace: "default"}, + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(1))}, + }, + } + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(existing...).Build() + + err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster) + + require.NoError(t, err) + rw := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-rw", Namespace: "default"}, rw)) + assert.Equal(t, int32(1), *rw.Spec.Instances) + ro := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-ro", Namespace: "default"}, ro)) + assert.Equal(t, int32(1), *ro.Spec.Instances) + }) +} From 7ea2f8c750a3b6cfd52c63956290c5dee464762b Mon Sep 17 00:00:00 2001 From: Jakub Koterba Date: Wed, 25 Mar 2026 21:07:35 +0100 Subject: [PATCH 04/43] Added needed infra setup + pgcluster integration test base --- .../controller/postgrescluster_controller.go | 2 + .../postgrescluster_controller_test.go | 263 +++++++++++++++--- internal/controller/suite_test.go | 207 +++++++------- 3 files changed, 320 insertions(+), 152 deletions(-) diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index dfa1f7eaf..6a2181afc 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -142,6 +142,8 @@ func cnpgPoolerPredicator() predicate.Predicate { } // secretPredicator triggers only on owner reference changes. + +// secretPredicator filters Secret events to trigger reconciles on creation, deletion, or owner reference changes. func secretPredicator() predicate.Predicate { return predicate.Funcs{ CreateFunc: func(event.CreateEvent) bool { return true }, diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index c0f3493d9..0f690754b 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -18,67 +18,248 @@ package controller import ( "context" + "fmt" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/resource" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/reconcile" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" ) var _ = Describe("PostgresCluster Controller", func() { - Context("When reconciling a resource", func() { - const resourceName = "test-resource" - ctx := context.Background() + var ( + ctx context.Context + namespace string + clusterName string + className string + reconciler *PostgresClusterReconciler + req reconcile.Request + cnpg *cnpgv1.Cluster + ) + + BeforeEach(func() { + specLine := CurrentSpecReport().LeafNodeLocation.LineNumber + nameSuffix := fmt.Sprintf("%d-%d-%d", GinkgoParallelProcess(), GinkgoRandomSeed(), specLine) + + ctx = context.Background() + namespace = "default" + clusterName = "postgresql-cluster-dev-" + nameSuffix + className = "postgresql-dev-" + nameSuffix + cnpg = &cnpgv1.Cluster{} + + // Arrange: class defaults used by getMergedConfig() + postgresVersion := "15.10" + instances := int32(2) + storage := resource.MustParse("1Gi") + poolerEnabled := false + + class := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: className}, + Spec: enterprisev4.PostgresClusterClassSpec{ + Provisioner: "postgresql.cnpg.io", + Config: &enterprisev4.PostgresClusterClassConfig{ + Instances: &instances, + Storage: &storage, + PostgresVersion: &postgresVersion, + ConnectionPoolerEnabled: &poolerEnabled, + }, + }, + } + Expect(k8sClient.Create(ctx, class)).To(Succeed()) + + pc := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: clusterName, Namespace: namespace}, + Spec: enterprisev4.PostgresClusterSpec{ + Class: className, + ClusterDeletionPolicy: &[]string{"Delete"}[0], + }, + } + Expect(k8sClient.Create(ctx, pc)).To(Succeed()) + + reconciler = &PostgresClusterReconciler{ + Client: k8sClient, + Scheme: k8sClient.Scheme(), + } + req = reconcile.Request{NamespacedName: types.NamespacedName{Name: clusterName, Namespace: namespace}} + }) + + JustBeforeEach(func() { + By("Reconciling the created resource") + result, err := reconciler.Reconcile(ctx, req) + Expect(err).NotTo(HaveOccurred()) + Expect(result.RequeueAfter).To(BeZero()) + }) - typeNamespacedName := types.NamespacedName{ - Name: resourceName, - Namespace: "default", // TODO(user):Modify as needed + AfterEach(func() { + By("Deleting PostgresCluster and letting reconcile run finalizer cleanup") + key := types.NamespacedName{Name: clusterName, Namespace: namespace} + pc := &enterprisev4.PostgresCluster{} + + // Best-effort delete (object might already be gone in some specs) + err := k8sClient.Get(ctx, key, pc) + if err == nil { + Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) + } else { + Expect(apierrors.IsNotFound(err)).To(BeTrue()) } - postgresCluster := &enterprisev4.PostgresCluster{} - - BeforeEach(func() { - By("creating the custom resource for the Kind PostgresCluster") - err := k8sClient.Get(ctx, typeNamespacedName, postgresCluster) - if err != nil && errors.IsNotFound(err) { - resource := &enterprisev4.PostgresCluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: resourceName, - Namespace: "default", - }, - // TODO(user): Specify other spec details if needed. + + // Drive delete reconcile path until finalizer is removed and object disappears + Eventually(func() bool { + _, recErr := reconciler.Reconcile(ctx, req) + if recErr != nil { + // Some envtest runs may not have CNPG CRDs installed in the API server. + // In that case, remove finalizer directly so fixture teardown remains deterministic. + if meta.IsNoMatchError(recErr) { + current := &enterprisev4.PostgresCluster{} + getErr := k8sClient.Get(ctx, key, current) + if apierrors.IsNotFound(getErr) { + return true + } + if getErr != nil { + return false + } + controllerutil.RemoveFinalizer(current, core.PostgresClusterFinalizerName) + if err := k8sClient.Update(ctx, current); err != nil && !apierrors.IsNotFound(err) { + return false + } + if err := k8sClient.Delete(ctx, current); err != nil && !apierrors.IsNotFound(err) { + return false + } + } else { + return false } - Expect(k8sClient.Create(ctx, resource)).To(Succeed()) } - }) + getErr := k8sClient.Get(ctx, key, &enterprisev4.PostgresCluster{}) + return apierrors.IsNotFound(getErr) + }, "10s", "500ms").Should(BeTrue()) - AfterEach(func() { - // TODO(user): Cleanup logic after each test, like removing the resource instance. - resource := &enterprisev4.PostgresCluster{} - err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) + By("Cleaning up PostgresClusterClass fixture") + class := &enterprisev4.PostgresClusterClass{} + classKey := types.NamespacedName{Name: className} // cluster-scoped CR + err = k8sClient.Get(ctx, classKey, class) + if err == nil { + Expect(k8sClient.Delete(ctx, class)).To(Succeed()) + } else { + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + } + }) - By("Cleanup the specific resource instance PostgresCluster") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) - }) - It("should successfully reconcile the resource", func() { - By("Reconciling the created resource") - controllerReconciler := &PostgresClusterReconciler{ - Client: k8sClient, - Scheme: k8sClient.Scheme(), - } + Context("Happy path and convergence", func() { + pc := &enterprisev4.PostgresCluster{} + It("PC-01 creates managed resources and status refs", func() { + By("creating CNPG cluster via reconcile and avaiting healthy") + Eventually(func() error { + _, err := reconciler.Reconcile(ctx, req) + if err != nil { + return err + } + if err := k8sClient.Get(ctx, req.NamespacedName, cnpg); err != nil { + return err + } + cnpg.Status.Phase = cnpgv1.PhaseHealthy + return k8sClient.Status().Update(ctx, cnpg) + }, "10s", "250ms").Should(Succeed()) + + By("reconciling until managed resources are published in status") + Eventually(func() bool { + _, err := reconciler.Reconcile(ctx, req) + if err != nil { + return false + } + current := &enterprisev4.PostgresCluster{} + if err := k8sClient.Get(ctx, req.NamespacedName, current); err != nil { + return false + } + return current.Status.Resources != nil && + current.Status.Resources.SuperUserSecretRef != nil && + current.Status.Resources.ConfigMapRef != nil + }, "20s", "250ms").Should(BeTrue()) - _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ - NamespacedName: typeNamespacedName, - }) - Expect(err).NotTo(HaveOccurred()) - // TODO(user): Add more specific assertions depending on your controller's reconciliation logic. - // Example: If you expect a certain status condition after reconciliation, verify it here. + By("asserting finalizer contract") + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, req.NamespacedName, pc)).To(Succeed()) + Expect(controllerutil.ContainsFinalizer(pc, core.PostgresClusterFinalizerName)).To(BeTrue()) + + By("asserting status references are published") + Expect(pc.Status.Resources).NotTo(BeNil()) + Expect(pc.Status.Resources.SuperUserSecretRef).NotTo(BeNil()) + Expect(pc.Status.Resources.ConfigMapRef).NotTo(BeNil()) + + By("asserting Secret ownership and existence") + secret := &corev1.Secret{} + Expect(k8sClient.Get(ctx, types.NamespacedName{ + Name: pc.Status.Resources.SuperUserSecretRef.Name, Namespace: namespace, + }, secret)).To(Succeed()) + Expect(metav1.IsControlledBy(secret, pc)).To(BeTrue()) + + By("asserting CNPG Cluster projection and ownership") + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, req.NamespacedName, cnpg)).To(Succeed()) + Expect(metav1.IsControlledBy(cnpg, pc)).To(BeTrue()) + Expect(cnpg.Spec.Instances).To(Equal(2)) + Expect(cnpg.Spec.ImageName).To(ContainSubstring("postgresql:15.10")) + Expect(cnpg.Spec.StorageConfiguration.Size).To(Equal("1Gi")) + + By("asserting ConfigMap contract consumed by clients") + cm := &corev1.ConfigMap{} + Expect(k8sClient.Get(ctx, types.NamespacedName{ + Name: pc.Status.Resources.ConfigMapRef.Name, Namespace: namespace, + }, cm)).To(Succeed()) + Expect(metav1.IsControlledBy(cm, pc)).To(BeTrue()) + Expect(cm.Data).To(HaveKeyWithValue("DEFAULT_CLUSTER_PORT", "5432")) + Expect(cm.Data).To(HaveKey("SUPER_USER_SECRET_REF")) + Expect(cm.Data).To(HaveKey("CLUSTER_RW_ENDPOINT")) + }) + It("PC-02 adds finalizer on reconcile", func() { + Expect(k8sClient.Get(ctx, req.NamespacedName, pc)).To(Succeed()) + Expect(pc.ObjectMeta.Finalizers).To(ContainElement(core.PostgresClusterFinalizerName)) }) + It("PC-07 is idempotent across repeated reconciles", func() {}) }) + + Context("Deletion and finalizer", func() { + It("PC-03 Delete policy removes children and finalizer", func() {}) + It("PC-04 Retain policy preserves children and removes ownerRefs", func() {}) + }) + + Context("Failure and drift", func() { + It("PC-05 fails when PostgresClusterClass is missing", func() {}) + It("PC-06 restores drifted managed spec", func() {}) + }) + + Context("Predicates", func() { + It("PC-08 triggers on generation/finalizer/deletion changes", func() {}) + It("PC-09 ignores no-op updates", func() {}) + }) + + // Context("When reconciling a resource", func() { + + // It("should successfully reconcile the resource", func() { + // By("Reconciling the created resource") + // // controllerReconciler := &PostgresClusterReconciler{ + // // Client: k8sClient, + // // Scheme: k8sClient.Scheme(), + // // } + + // // _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ + // // NamespacedName: typeNamespacedName, + // // }) + // err := errors.New("test error") + // Expect(err).NotTo(HaveOccurred()) + + // }) + // }) }) diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 142a8720c..30cb99f64 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -1,5 +1,5 @@ /* -Copyright (c) 2018-2022 Splunk Inc. All rights reserved. +Copyright 2026. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,155 +19,140 @@ package controller import ( "context" "fmt" + "os" "path/filepath" + "sort" "testing" - "time" + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "go.uber.org/zap/zapcore" + + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/envtest" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" - clientgoscheme "k8s.io/client-go/kubernetes/scheme" - ctrl "sigs.k8s.io/controller-runtime" - - enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" - enterpriseApi "github.com/splunk/splunk-operator/api/v4" - //+kubebuilder:scaffold:imports + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + // +kubebuilder:scaffold:imports ) -var cfg *rest.Config -var k8sClient client.Client -var testEnv *envtest.Environment -var k8sManager ctrl.Manager +// These tests use Ginkgo (BDD-style Go testing framework). Refer to +// http://onsi.github.io/ginkgo/ to learn more about Ginkgo. -func TestAPIs(t *testing.T) { +var ( + ctx context.Context + cancel context.CancelFunc + testEnv *envtest.Environment + cfg *rest.Config + k8sClient client.Client +) + +func TestControllers(t *testing.T) { RegisterFailHandler(Fail) RunSpecs(t, "Controller Suite") } -var _ = BeforeSuite(func(ctx context.Context) { - opts := zap.Options{ - Development: true, - TimeEncoder: zapcore.RFC3339NanoTimeEncoder, - } - logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true), zap.UseFlagOptions(&opts))) +var _ = BeforeSuite(func() { + logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) - By("bootstrapping test environment") + ctx, cancel = context.WithCancel(context.TODO()) + + var err error + err = enterprisev4.AddToScheme(scheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + err = cnpgv1.AddToScheme(scheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + // +kubebuilder:scaffold:scheme + By("bootstrapping test environment") + cnpgCRDDirectory, err := getCNPGCRDDirectory() + Expect(err).NotTo(HaveOccurred()) testEnv = &envtest.Environment{ - CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")}, + CRDDirectoryPaths: []string{ + filepath.Join("..", "..", "config", "crd", "bases"), + cnpgCRDDirectory, + }, ErrorIfCRDPathMissing: true, } - var err error + // Retrieve the first found binary directory to allow running tests from IDEs + if getFirstFoundEnvTestBinaryDir() != "" { + testEnv.BinaryAssetsDirectory = getFirstFoundEnvTestBinaryDir() + } // cfg is defined in this file globally. cfg, err = testEnv.Start() Expect(err).NotTo(HaveOccurred()) Expect(cfg).NotTo(BeNil()) - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) + k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) Expect(err).NotTo(HaveOccurred()) + Expect(k8sClient).NotTo(BeNil()) +}) - err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) +var _ = AfterSuite(func() { + By("tearing down the test environment") + cancel() + err := testEnv.Stop() Expect(err).NotTo(HaveOccurred()) +}) - //+kubebuilder:scaffold:scheme - - // Create New Manager for controller - k8sManager, err = ctrl.NewManager(cfg, ctrl.Options{ - Scheme: clientgoscheme.Scheme, - }) - Expect(err).ToNot(HaveOccurred()) - if err := (&ClusterManagerReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) +// getFirstFoundEnvTestBinaryDir locates the first binary in the specified path. +// ENVTEST-based tests depend on specific binaries, usually located in paths set by +// controller-runtime. When running tests directly (e.g., via an IDE) without using +// Makefile targets, the 'BinaryAssetsDirectory' must be explicitly configured. +// +// This function streamlines the process by finding the required binaries, similar to +// setting the 'KUBEBUILDER_ASSETS' environment variable. To ensure the binaries are +// properly set up, run 'make setup-envtest' beforehand. +func getFirstFoundEnvTestBinaryDir() string { + basePath := filepath.Join("..", "..", "bin", "k8s") + entries, err := os.ReadDir(basePath) + if err != nil { + logf.Log.Error(err, "Failed to read directory", "path", basePath) + return "" } - if err := (&ClusterMasterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) + for _, entry := range entries { + if entry.IsDir() { + return filepath.Join(basePath, entry.Name()) + } } - if err := (&IndexerClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&IngestorClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&LicenseManagerReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } - if err := (&LicenseMasterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) + return "" +} + +func getCNPGCRDDirectory() (string, error) { + // Optional escape hatch for CI/local overrides. + if explicit := os.Getenv("CNPG_CRD_DIR"); explicit != "" { + return explicit, nil } - if err := (&MonitoringConsoleReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) + + moduleRoot := os.Getenv("GOMODCACHE") + if moduleRoot == "" { + gopath := os.Getenv("GOPATH") + if gopath == "" { + home, err := os.UserHomeDir() + if err != nil { + return "", err + } + gopath = filepath.Join(home, "go") + } + moduleRoot = filepath.Join(gopath, "pkg", "mod") } - if err := (&SearchHeadClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) + + pattern := filepath.Join(moduleRoot, "github.com", "cloudnative-pg", "cloudnative-pg@*", "config", "crd", "bases") + matches, err := filepath.Glob(pattern) + if err != nil { + return "", err } - if err := (&StandaloneReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) + if len(matches) == 0 { + return "", fmt.Errorf("CNPG CRD directory not found; set CNPG_CRD_DIR or download github.com/cloudnative-pg/cloudnative-pg module") } - go func() { - err = k8sManager.Start(ctrl.SetupSignalHandler()) - fmt.Printf("error %v", err.Error()) - Expect(err).ToNot(HaveOccurred()) - }() - - Expect(err).ToNot(HaveOccurred()) - - k8sClient, err = client.New(cfg, client.Options{Scheme: clientgoscheme.Scheme}) - Expect(err).NotTo(HaveOccurred()) - Expect(k8sClient).NotTo(BeNil()) - -}, NodeTimeout(time.Second*500)) - -var _ = AfterSuite(func() { - By("tearing down the test environment") - testEnv.Stop() -}) + sort.Strings(matches) + return matches[len(matches)-1], nil +} From 167c15b1bfedcf204454afe081db6278be3c2b0d Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Tue, 24 Mar 2026 18:09:32 +0100 Subject: [PATCH 05/43] unit tests for postgres database --- pkg/postgresql/database/core/database.go | 107 +- .../database/core/database_unit_test.go | 1641 +++++++++++++++++ 2 files changed, 1692 insertions(+), 56 deletions(-) create mode 100644 pkg/postgresql/database/core/database_unit_test.go diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 1ae2227d7..50c99beed 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -41,7 +41,7 @@ func PostgresDatabaseService( logger.Info("Reconciling PostgresDatabase", "name", postgresDB.Name, "namespace", postgresDB.Namespace) updateStatus := func(conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { - return setStatus(ctx, c, postgresDB, conditionType, conditionStatus, reason, message, phase) + return persistStatus(ctx, c, postgresDB, conditionType, conditionStatus, reason, message, phase) } // Finalizer: cleanup on deletion, register on creation. @@ -68,23 +68,24 @@ func PostgresDatabaseService( } // Phase: ClusterValidation - cluster, clusterStatus, err := ensureClusterReady(ctx, c, postgresDB) + cluster, err := fetchCluster(ctx, c, postgresDB) if err != nil { + if errors.IsNotFound(err) { + if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterNotFound, "Cluster CR not found", pendingDBPhase); err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{RequeueAfter: clusterNotFoundRetryDelay}, nil + } if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterInfoFetchFailed, "Can't reach Cluster CR due to transient errors", pendingDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + clusterStatus := getClusterReadyStatus(cluster) logger.Info("Cluster validation done", "clusterName", postgresDB.Spec.ClusterRef.Name, "status", clusterStatus) switch clusterStatus { - case ClusterNotFound: - if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterNotFound, "Cluster CR not found", pendingDBPhase); err != nil { - return ctrl.Result{}, err - } - return ctrl.Result{RequeueAfter: clusterNotFoundRetryDelay}, nil - case ClusterNotReady, ClusterNoProvisionerRef: if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterProvisioning, "Cluster is not in ready state yet", pendingDBPhase); err != nil { return ctrl.Result{}, err @@ -299,23 +300,27 @@ func reconcileRWRolePrivileges( return stderrors.Join(errs...) } -func ensureClusterReady(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) (*enterprisev4.PostgresCluster, clusterReadyStatus, error) { +func fetchCluster(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) (*enterprisev4.PostgresCluster, error) { logger := log.FromContext(ctx) cluster := &enterprisev4.PostgresCluster{} if err := c.Get(ctx, types.NamespacedName{Name: postgresDB.Spec.ClusterRef.Name, Namespace: postgresDB.Namespace}, cluster); err != nil { if errors.IsNotFound(err) { - return nil, ClusterNotFound, nil + return nil, err } logger.Error(err, "Failed to fetch Cluster", "name", postgresDB.Spec.ClusterRef.Name) - return nil, ClusterNotReady, err + return nil, err } + return cluster, nil +} + +func getClusterReadyStatus(cluster *enterprisev4.PostgresCluster) clusterReadyStatus { if cluster.Status.Phase == nil || *cluster.Status.Phase != string(ClusterReady) { - return cluster, ClusterNotReady, nil + return ClusterNotReady } if cluster.Status.ProvisionerRef == nil { - return cluster, ClusterNoProvisionerRef, nil + return ClusterNoProvisionerRef } - return cluster, ClusterReady, nil + return ClusterReady } func getDesiredUsers(postgresDB *enterprisev4.PostgresDatabase) []string { @@ -383,30 +388,8 @@ func parseRoleNames(raw []byte) []string { func patchManagedRoles(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) error { logger := log.FromContext(ctx) - allRoles := make([]enterprisev4.ManagedRole, 0, len(postgresDB.Spec.Databases)*2) - for _, dbSpec := range postgresDB.Spec.Databases { - allRoles = append(allRoles, - enterprisev4.ManagedRole{ - Name: adminRoleName(dbSpec.Name), - Exists: true, - PasswordSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleAdmin)}, - Key: secretKeyPassword}, - }, - enterprisev4.ManagedRole{ - Name: rwRoleName(dbSpec.Name), - Exists: true, - PasswordSecretRef: &corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleRW)}, - Key: secretKeyPassword}, - }) - } - rolePatch := &unstructured.Unstructured{ - Object: map[string]any{ - "apiVersion": cluster.APIVersion, - "kind": cluster.Kind, - "metadata": map[string]any{"name": cluster.Name, "namespace": cluster.Namespace}, - "spec": map[string]any{"managedRoles": allRoles}, - }, - } + allRoles := buildManagedRoles(postgresDB.Name, postgresDB.Spec.Databases) + rolePatch := buildManagedRolesPatch(cluster, allRoles) fieldManager := fieldManagerName(postgresDB.Name) if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManager)); err != nil { logger.Error(err, "Failed to add users to PostgresCluster", "postgresDatabase", postgresDB.Name) @@ -442,20 +425,11 @@ func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtim logger := log.FromContext(ctx) for _, dbSpec := range postgresDB.Spec.Databases { cnpgDBName := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) - reclaimPolicy := cnpgv1.DatabaseReclaimDelete - if dbSpec.DeletionPolicy == deletionPolicyRetain { - reclaimPolicy = cnpgv1.DatabaseReclaimRetain - } cnpgDB := &cnpgv1.Database{ ObjectMeta: metav1.ObjectMeta{Name: cnpgDBName, Namespace: postgresDB.Namespace}, } _, err := controllerutil.CreateOrUpdate(ctx, c, cnpgDB, func() error { - cnpgDB.Spec = cnpgv1.DatabaseSpec{ - Name: dbSpec.Name, - Owner: adminRoleName(dbSpec.Name), - ClusterRef: corev1.LocalObjectReference{Name: cluster.Status.ProvisionerRef.Name}, - ReclaimPolicy: reclaimPolicy, - } + cnpgDB.Spec = buildCNPGDatabaseSpec(cluster.Status.ProvisionerRef.Name, dbSpec) reAdopting := cnpgDB.Annotations[annotationRetainedFrom] == postgresDB.Name if reAdopting { logger.Info("Re-adopting orphaned CNPG Database", "name", cnpgDBName) @@ -488,7 +462,12 @@ func verifyDatabasesReady(ctx context.Context, c client.Client, postgresDB *ente return notReady, nil } -func setStatus(ctx context.Context, c client.Client, db *enterprisev4.PostgresDatabase, conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { +func persistStatus(ctx context.Context, c client.Client, db *enterprisev4.PostgresDatabase, conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { + applyStatus(db, conditionType, conditionStatus, reason, message, phase) + return c.Status().Update(ctx, db) +} + +func applyStatus(db *enterprisev4.PostgresDatabase, conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) { meta.SetStatusCondition(&db.Status.Conditions, metav1.Condition{ Type: string(conditionType), Status: conditionStatus, @@ -498,7 +477,6 @@ func setStatus(ctx context.Context, c client.Client, db *enterprisev4.PostgresDa }) p := string(phase) db.Status.Phase = &p - return c.Status().Update(ctx, db) } func buildDeletionPlan(databases []enterprisev4.DatabaseDefinition) deletionPlan { @@ -703,9 +681,9 @@ func deleteSecrets(ctx context.Context, c client.Client, postgresDB *enterprisev return nil } -func buildRetainedRoles(postgresDBName string, retained []enterprisev4.DatabaseDefinition) []enterprisev4.ManagedRole { - roles := make([]enterprisev4.ManagedRole, 0, len(retained)*2) - for _, dbSpec := range retained { +func buildManagedRoles(postgresDBName string, databases []enterprisev4.DatabaseDefinition) []enterprisev4.ManagedRole { + roles := make([]enterprisev4.ManagedRole, 0, len(databases)*2) + for _, dbSpec := range databases { roles = append(roles, enterprisev4.ManagedRole{ Name: adminRoleName(dbSpec.Name), @@ -724,9 +702,8 @@ func buildRetainedRoles(postgresDBName string, retained []enterprisev4.DatabaseD return roles } -func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster, retained []enterprisev4.DatabaseDefinition) error { - roles := buildRetainedRoles(postgresDB.Name, retained) - rolePatch := &unstructured.Unstructured{ +func buildManagedRolesPatch(cluster *enterprisev4.PostgresCluster, roles []enterprisev4.ManagedRole) *unstructured.Unstructured { + return &unstructured.Unstructured{ Object: map[string]any{ "apiVersion": cluster.APIVersion, "kind": cluster.Kind, @@ -734,6 +711,11 @@ func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresD "spec": map[string]any{"managedRoles": roles}, }, } +} + +func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster, retained []enterprisev4.DatabaseDefinition) error { + roles := buildManagedRoles(postgresDB.Name, retained) + rolePatch := buildManagedRolesPatch(cluster, roles) if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManagerName(postgresDB.Name))); err != nil { return fmt.Errorf("patching managed roles on deletion: %w", err) } @@ -832,6 +814,19 @@ func buildPasswordSecret(postgresDB *enterprisev4.PostgresDatabase, secretName, } } +func buildCNPGDatabaseSpec(clusterName string, dbSpec enterprisev4.DatabaseDefinition) cnpgv1.DatabaseSpec { + reclaimPolicy := cnpgv1.DatabaseReclaimDelete + if dbSpec.DeletionPolicy == deletionPolicyRetain { + reclaimPolicy = cnpgv1.DatabaseReclaimRetain + } + return cnpgv1.DatabaseSpec{ + Name: dbSpec.Name, + Owner: adminRoleName(dbSpec.Name), + ClusterRef: corev1.LocalObjectReference{Name: clusterName}, + ReclaimPolicy: reclaimPolicy, + } +} + func reconcileRoleConfigMaps(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, endpoints clusterEndpoints) error { logger := log.FromContext(ctx) for _, dbSpec := range postgresDB.Spec.Databases { diff --git a/pkg/postgresql/database/core/database_unit_test.go b/pkg/postgresql/database/core/database_unit_test.go new file mode 100644 index 000000000..0bde24a16 --- /dev/null +++ b/pkg/postgresql/database/core/database_unit_test.go @@ -0,0 +1,1641 @@ +package core + +// The following functions are intentionally not tested directly here. +// Their business logic is covered by narrower helper tests where practical, +// and the remaining behavior is mostly controller-runtime orchestration: +// - PostgresDatabaseService +// - patchManagedRoles +// - reconcileCNPGDatabases +// - handleDeletion +// - orphanRetainedResources +// - deleteRemovedResources +// - cleanupManagedRoles + +import ( + "context" + "encoding/json" + "errors" + "testing" + "unicode" + + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + clientgoscheme "k8s.io/client-go/kubernetes/scheme" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" + "sigs.k8s.io/controller-runtime/pkg/client/interceptor" +) + +// managedRolesFieldsRaw is a helper to construct the raw managed fields JSON for testing parseRoleNames and related functions. +func managedRolesFieldsRaw(t *testing.T, keys ...string) []byte { + t.Helper() + + managedRoles := make(map[string]any, len(keys)) + for _, key := range keys { + managedRoles[key] = map[string]any{} + } + + raw, err := json.Marshal(map[string]any{ + "f:spec": map[string]any{ + "f:managedRoles": managedRoles, + }, + }) + require.NoError(t, err) + + return raw +} + +type stubDBRepo struct { + execErr error + calls []string +} + +// ExecGrants is a stub implementation of the DBRepo interface that records calls and returns a predefined error. +func (r *stubDBRepo) ExecGrants(_ context.Context, dbName string) error { + r.calls = append(r.calls, dbName) + return r.execErr +} + +// boolPtr is a helper to get a pointer to a bool value, used for testing conditions with pointer fields. +func boolPtr(v bool) *bool { + return &v +} + +// strPtr is a helper to get a pointer to a string value, used for testing pointer string fields. +func strPtr(s string) *string { + return &s +} + +func databaseNames(defs []enterprisev4.DatabaseDefinition) []string { + names := make([]string, 0, len(defs)) + for _, def := range defs { + names = append(names, def.Name) + } + return names +} + +func assertGeneratedPassword(t *testing.T, got string, wantLength, wantDigits int) { + t.Helper() + + digitCount := 0 + for _, r := range got { + if unicode.IsDigit(r) { + digitCount++ + continue + } + + assert.Truef(t, unicode.IsLetter(r), "password contains unsupported rune %q", r) + } + + assert.Len(t, got, wantLength) + assert.Equal(t, wantDigits, digitCount) +} + +// testScheme constructs a runtime.Scheme with the necessary API types registered for testing. +func testScheme(t *testing.T) *runtime.Scheme { + t.Helper() + + scheme := runtime.NewScheme() + utilruntime.Must(clientgoscheme.AddToScheme(scheme)) + utilruntime.Must(enterprisev4.AddToScheme(scheme)) + utilruntime.Must(cnpgv1.AddToScheme(scheme)) + + return scheme +} + +// testClient constructs a fake client with the given scheme and initial objects for testing. +func testClient(t *testing.T, scheme *runtime.Scheme, objs ...client.Object) client.Client { + t.Helper() + + builder := fake.NewClientBuilder(). + WithScheme(scheme). + WithStatusSubresource(&enterprisev4.PostgresDatabase{}). + WithObjects(objs...) + + return builder.Build() +} + +func TestGetDesiredUsers(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "main_db"}, + {Name: "secondary_db"}, + }, + }, + } + want := []string{ + "main_db_admin", + "main_db_rw", + "secondary_db_admin", + "secondary_db_rw", + } + + got := getDesiredUsers(postgresDB) + + assert.Equal(t, want, got) +} + +func TestGetUsersInClusterSpec(t *testing.T) { + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ManagedRoles: []enterprisev4.ManagedRole{ + {Name: "main_db_admin"}, + {Name: "main_db_rw"}, + }, + }, + } + want := []string{"main_db_admin", "main_db_rw"} + + got := getUsersInClusterSpec(cluster) + + assert.Equal(t, want, got) +} + +func TestParseRoleNames(t *testing.T) { + validKey, err := json.Marshal(map[string]string{"name": "main_db_admin"}) + require.NoError(t, err) + ignoredKey, err := json.Marshal(map[string]string{"other": "value"}) + require.NoError(t, err) + + tests := []struct { + name string + raw []byte + want []string + }{ + { + name: "extracts role names from managed roles fields", + raw: managedRolesFieldsRaw( + t, + "k:"+string(validKey), + "k:"+string(ignoredKey), + "plain-key", + ), + want: []string{"main_db_admin"}, + }, + { + name: "returns nil on invalid json", + raw: []byte(`{"f:spec"`), + want: nil, + }, + { + name: "returns empty when managed roles missing", + raw: []byte(`{"f:spec":{}}`), + want: nil, + }, + { + name: "returns empty when spec field is missing entirely", + raw: []byte(`{"f:metadata":{}}`), + want: nil, + }, + } + + for _, tst := range tests { + + t.Run(tst.name, func(t *testing.T) { + got := parseRoleNames(tst.raw) + + assert.ElementsMatch(t, tst.want, got) + }) + } +} + +func TestManagedRoleOwners(t *testing.T) { + roleKey, err := json.Marshal(map[string]string{"name": "main_db_admin"}) + require.NoError(t, err) + secondRoleKey, err := json.Marshal(map[string]string{"name": "main_db_rw"}) + require.NoError(t, err) + + managedFields := []metav1.ManagedFieldsEntry{ + {Manager: "ignored"}, + { + Manager: "postgresdatabase-other", + FieldsV1: &metav1.FieldsV1{ + Raw: managedRolesFieldsRaw( + t, + "k:"+string(roleKey), + "k:"+string(secondRoleKey), + ), + }, + }, + { + Manager: "postgresdatabase-newer", + FieldsV1: &metav1.FieldsV1{ + Raw: managedRolesFieldsRaw(t, "k:"+string(roleKey)), + }, + }, + } + want := map[string]string{ + "main_db_admin": "postgresdatabase-newer", + "main_db_rw": "postgresdatabase-other", + } + + got := managedRoleOwners(managedFields) + + assert.Equal(t, want, got) +} + +func TestGetRoleConflicts(t *testing.T) { + roleKey, err := json.Marshal(map[string]string{"name": "main_db_admin"}) + require.NoError(t, err) + sameOwnerKey, err := json.Marshal(map[string]string{"name": "main_db_rw"}) + require.NoError(t, err) + unrelatedKey, err := json.Marshal(map[string]string{"name": "audit_admin"}) + require.NoError(t, err) + + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{Name: "primary"}, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{{Name: "main_db"}}, + }, + } + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + ManagedFields: []metav1.ManagedFieldsEntry{ + { + Manager: "postgresdatabase-legacy", + FieldsV1: &metav1.FieldsV1{ + Raw: managedRolesFieldsRaw( + t, + "k:"+string(roleKey), + "k:"+string(unrelatedKey), + ), + }, + }, + { + Manager: fieldManagerName(postgresDB.Name), + FieldsV1: &metav1.FieldsV1{ + Raw: managedRolesFieldsRaw(t, "k:"+string(sameOwnerKey)), + }, + }, + }, + }, + } + want := []string{"main_db_admin (owned by postgresdatabase-legacy)"} + + got := getRoleConflicts(postgresDB, cluster) + + assert.ElementsMatch(t, want, got) +} + +func TestVerifyRolesReady(t *testing.T) { + tests := []struct { + name string + expectedUsers []string + cluster *cnpgv1.Cluster + wantNotReady []string + wantErr string + }{ + { + name: "returns error when a role cannot reconcile", + expectedUsers: []string{"main_db_admin", "main_db_rw"}, + cluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + ManagedRolesStatus: cnpgv1.ManagedRoles{ + CannotReconcile: map[string][]string{ + "main_db_rw": {"reserved role"}, + }, + }, + }, + }, + wantErr: "user main_db_rw reconciliation failed: [reserved role]", + }, + { + name: "returns missing roles that are not reconciled yet", + expectedUsers: []string{"main_db_admin", "main_db_rw", "analytics_admin"}, + cluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + ManagedRolesStatus: cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"main_db_admin", "analytics_admin"}, + }, + }, + }, + }, + wantNotReady: []string{"main_db_rw"}, + }, + { + name: "returns pending reconciliation roles as not ready", + expectedUsers: []string{"main_db_admin", "main_db_rw"}, + cluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + ManagedRolesStatus: cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"main_db_admin"}, + cnpgv1.RoleStatusPendingReconciliation: {"main_db_rw"}, + }, + }, + }, + }, + wantNotReady: []string{"main_db_rw"}, + }, + { + name: "returns empty when all roles are reconciled", + expectedUsers: []string{"main_db_admin"}, + cluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + ManagedRolesStatus: cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"main_db_admin"}, + }, + }, + }, + }, + wantNotReady: nil, + }, + } + + for _, tst := range tests { + + t.Run(tst.name, func(t *testing.T) { + gotNotReady, err := verifyRolesReady(context.Background(), tst.expectedUsers, tst.cluster) + if tst.wantErr != "" { + require.Error(t, err) + assert.Equal(t, tst.wantErr, err.Error()) + return + } + require.NoError(t, err) + assert.Equal(t, tst.wantNotReady, gotNotReady) + }) + } +} + +func TestReconcileRWRolePrivileges(t *testing.T) { + tests := []struct { + name string + dbNames []string + newRepoErrs map[string]error + execErrs map[string]error + wantRepoCalls []string + wantExecCalls map[string][]string + wantErrContains []string + }{ + { + name: "returns nil when all databases succeed", + dbNames: []string{"payments", "analytics"}, + wantRepoCalls: []string{"payments", "analytics"}, + wantExecCalls: map[string][]string{ + "payments": {"payments"}, + "analytics": {"analytics"}, + }, + }, + { + name: "continues after repo creation and exec errors", + dbNames: []string{"payments", "analytics", "audit"}, + newRepoErrs: map[string]error{"payments": errors.New("connect failed")}, + execErrs: map[string]error{"analytics": errors.New("grant failed")}, + wantRepoCalls: []string{"payments", "analytics", "audit"}, + wantExecCalls: map[string][]string{ + "analytics": {"analytics"}, + "audit": {"audit"}, + }, + wantErrContains: []string{ + "database payments: connect failed", + "database analytics: grant failed", + }, + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + repos := make(map[string]*stubDBRepo, len(tst.dbNames)) + repoCalls := make([]string, 0, len(tst.dbNames)) + + for _, dbName := range tst.dbNames { + repos[dbName] = &stubDBRepo{execErr: tst.execErrs[dbName]} + } + + newDBRepo := func(_ context.Context, host, dbName, password string) (DBRepo, error) { + repoCalls = append(repoCalls, dbName) + if err := tst.newRepoErrs[dbName]; err != nil { + return nil, err + } + + return repos[dbName], nil + } + + err := reconcileRWRolePrivileges(context.Background(), "rw.example.internal", "supersecret", tst.dbNames, newDBRepo) + + assert.Equal(t, tst.wantRepoCalls, repoCalls) + for dbName, wantCalls := range tst.wantExecCalls { + assert.Equal(t, wantCalls, repos[dbName].calls) + } + + if len(tst.wantErrContains) == 0 { + assert.NoError(t, err) + return + } + + require.Error(t, err) + for _, wantMsg := range tst.wantErrContains { + assert.ErrorContains(t, err, wantMsg) + } + }) + } +} + +func TestGetClusterReadyStatus(t *testing.T) { + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + wantStatus clusterReadyStatus + }{ + { + name: "returns not ready when phase is nil", + cluster: &enterprisev4.PostgresCluster{}, + wantStatus: ClusterNotReady, + }, + { + name: "returns not ready when phase is not ready", + cluster: &enterprisev4.PostgresCluster{ + Status: enterprisev4.PostgresClusterStatus{ + Phase: strPtr("Provisioning"), + }, + }, + wantStatus: ClusterNotReady, + }, + { + name: "returns no provisioner ref when phase is ready but ref is missing", + cluster: &enterprisev4.PostgresCluster{ + Status: enterprisev4.PostgresClusterStatus{ + Phase: strPtr(string(ClusterReady)), + }, + }, + wantStatus: ClusterNoProvisionerRef, + }, + { + name: "returns ready when phase and provisioner ref are present", + cluster: &enterprisev4.PostgresCluster{ + Status: enterprisev4.PostgresClusterStatus{ + Phase: strPtr(string(ClusterReady)), + ProvisionerRef: &corev1.ObjectReference{Name: "cnpg-primary", Namespace: "dbs"}, + }, + }, + wantStatus: ClusterReady, + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + assert.Equal(t, tst.wantStatus, getClusterReadyStatus(tst.cluster)) + }) + } +} + +// Uses a fake client because fetching the referenced Cluster depends on API reads. +func TestFetchCluster(t *testing.T) { + scheme := testScheme(t) + + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + wantName string + wantErr string + wantAbsent bool + }{ + { + name: "returns not found when cluster is absent", + wantAbsent: true, + }, + { + name: "returns referenced cluster when present", + cluster: &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: "primary", Namespace: "dbs"}, + }, + wantName: "primary", + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{Name: "db", Namespace: "dbs"}, + Spec: enterprisev4.PostgresDatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: "primary"}, + }, + } + + var objs []client.Object + if tst.cluster != nil { + objs = append(objs, tst.cluster) + } + + c := testClient(t, scheme, objs...) + cluster, err := fetchCluster(context.Background(), c, postgresDB) + + if tst.wantAbsent { + require.Error(t, err) + assert.True(t, apierrors.IsNotFound(err)) + assert.Nil(t, cluster) + return + } + + if tst.wantErr != "" { + require.Error(t, err) + assert.ErrorContains(t, err, tst.wantErr) + return + } + + require.NoError(t, err) + require.NotNil(t, cluster) + assert.Equal(t, tst.wantName, cluster.Name) + }) + } + + t.Run("returns error on client failure", func(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{Name: "db", Namespace: "dbs"}, + Spec: enterprisev4.PostgresDatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: "primary"}, + }, + } + c := fake.NewClientBuilder(). + WithScheme(scheme). + WithInterceptorFuncs(interceptor.Funcs{ + Get: func(_ context.Context, _ client.WithWatch, _ client.ObjectKey, _ client.Object, _ ...client.GetOption) error { + return errors.New("api unavailable") + }, + }). + Build() + + cluster, err := fetchCluster(context.Background(), c, postgresDB) + + require.Error(t, err) + assert.Nil(t, cluster) + assert.ErrorContains(t, err, "api unavailable") + }) +} + +// Uses a fake client because the helper mutates status in-memory and persists it through the status subresource. +func TestSetStatus(t *testing.T) { + scheme := testScheme(t) + existing := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + Generation: 7, + }, + } + c := testClient(t, scheme, existing) + postgresDB := &enterprisev4.PostgresDatabase{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: existing.Name, Namespace: existing.Namespace}, postgresDB)) + + err := persistStatus( + context.Background(), + c, + postgresDB, + clusterReady, + metav1.ConditionTrue, + reasonClusterAvailable, + "Cluster is operational", + provisioningDBPhase, + ) + + require.NoError(t, err) + require.NotNil(t, postgresDB.Status.Phase) + assert.Equal(t, string(provisioningDBPhase), *postgresDB.Status.Phase) + require.Len(t, postgresDB.Status.Conditions, 1) + assert.Equal(t, string(clusterReady), postgresDB.Status.Conditions[0].Type) + assert.Equal(t, metav1.ConditionTrue, postgresDB.Status.Conditions[0].Status) + assert.Equal(t, string(reasonClusterAvailable), postgresDB.Status.Conditions[0].Reason) + assert.Equal(t, "Cluster is operational", postgresDB.Status.Conditions[0].Message) + assert.Equal(t, postgresDB.Generation, postgresDB.Status.Conditions[0].ObservedGeneration) + + got := &enterprisev4.PostgresDatabase{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: postgresDB.Name, Namespace: postgresDB.Namespace}, got)) + require.NotNil(t, got.Status.Phase) + assert.Equal(t, *postgresDB.Status.Phase, *got.Status.Phase) + require.Len(t, got.Status.Conditions, 1) + assert.Equal(t, postgresDB.Status.Conditions[0], got.Status.Conditions[0]) +} + +// Uses a fake client because readiness is determined from CNPG Database objects in the API. +func TestVerifyDatabasesReady(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{Name: "primary", Namespace: "dbs"}, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + {Name: "analytics"}, + }, + }, + } + + tests := []struct { + name string + objects []client.Object + wantNotReady []string + wantErr string + }{ + { + name: "returns empty when all databases are applied", + objects: []client.Object{ + &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: "primary-payments", Namespace: "dbs"}, + Status: cnpgv1.DatabaseStatus{Applied: boolPtr(true)}, + }, + &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: "primary-analytics", Namespace: "dbs"}, + Status: cnpgv1.DatabaseStatus{Applied: boolPtr(true)}, + }, + }, + wantNotReady: nil, + }, + { + name: "returns names for databases that are not applied", + objects: []client.Object{ + &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: "primary-payments", Namespace: "dbs"}, + Status: cnpgv1.DatabaseStatus{Applied: boolPtr(false)}, + }, + &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: "primary-analytics", Namespace: "dbs"}, + }, + }, + wantNotReady: []string{"payments", "analytics"}, + }, + { + name: "returns error when a database is missing", + objects: []client.Object{ + &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: "primary-payments", Namespace: "dbs"}, + Status: cnpgv1.DatabaseStatus{Applied: boolPtr(true)}, + }, + }, + wantErr: "getting CNPG Database primary-analytics", + }, + } + + for _, tst := range tests { + + t.Run(tst.name, func(t *testing.T) { + c := testClient(t, scheme, tst.objects...) + + got, err := verifyDatabasesReady(context.Background(), c, postgresDB) + + if tst.wantErr != "" { + require.Error(t, err) + assert.ErrorContains(t, err, tst.wantErr) + return + } + + require.NoError(t, err) + assert.Equal(t, tst.wantNotReady, got) + }) + } +} + +// Uses a fake client because the helper wraps Kubernetes get/not-found behavior. +func TestGetSecret(t *testing.T) { + scheme := testScheme(t) + + t.Run("returns secret when found", func(t *testing.T) { + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{Name: "db-secret", Namespace: "dbs"}, + Data: map[string][]byte{secretKeyPassword: []byte("value")}, + } + c := testClient(t, scheme, existing) + + secret, err := getSecret(context.Background(), c, "dbs", "db-secret") + + require.NoError(t, err) + require.NotNil(t, secret) + assert.Equal(t, existing.Name, secret.Name) + assert.Equal(t, "value", string(secret.Data[secretKeyPassword])) + }) + + t.Run("returns nil nil when secret is absent", func(t *testing.T) { + c := testClient(t, scheme) + + secret, err := getSecret(context.Background(), c, "dbs", "missing") + + require.NoError(t, err) + assert.Nil(t, secret) + }) +} + +// Uses a fake client because adoption updates object metadata and persists it through the client. +func TestAdoptResource(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + } + configMap := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary-payments-config", + Namespace: "dbs", + Annotations: map[string]string{annotationRetainedFrom: "primary", "keep": "true"}, + }, + } + c := testClient(t, scheme, postgresDB, configMap) + + err := adoptResource(context.Background(), c, scheme, postgresDB, configMap) + + require.NoError(t, err) + + updated := &corev1.ConfigMap{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace}, updated)) + assert.Equal(t, "true", updated.Annotations["keep"]) + _, exists := updated.Annotations[annotationRetainedFrom] + assert.False(t, exists) + require.Len(t, updated.OwnerReferences, 1) + assert.Equal(t, postgresDB.UID, updated.OwnerReferences[0].UID) +} + +// Uses a fake client because these helpers mutate existing API objects during orphaning. +func TestOrphanResourceHelpers(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + } + databases := []enterprisev4.DatabaseDefinition{{Name: "payments"}} + + t.Run("orphanCNPGDatabases strips owner and adds retain annotation", func(t *testing.T) { + db := &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary-payments", + Namespace: "dbs", + OwnerReferences: []metav1.OwnerReference{ + {UID: postgresDB.UID, Name: postgresDB.Name}, + {UID: types.UID("other"), Name: "other"}, + }, + }, + } + c := testClient(t, scheme, db) + + require.NoError(t, orphanCNPGDatabases(context.Background(), c, postgresDB, databases)) + + updated := &cnpgv1.Database{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: db.Name, Namespace: db.Namespace}, updated)) + assert.Equal(t, postgresDB.Name, updated.Annotations[annotationRetainedFrom]) + require.Len(t, updated.OwnerReferences, 1) + assert.Equal(t, types.UID("other"), updated.OwnerReferences[0].UID) + }) + + t.Run("orphanConfigMaps skips not found", func(t *testing.T) { + c := testClient(t, scheme) + require.NoError(t, orphanConfigMaps(context.Background(), c, postgresDB, databases)) + }) + + t.Run("orphanSecrets skips already retained secret", func(t *testing.T) { + secret := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary-payments-admin", + Namespace: "dbs", + Annotations: map[string]string{annotationRetainedFrom: postgresDB.Name}, + }, + } + c := testClient(t, scheme, secret) + + require.NoError(t, orphanSecrets(context.Background(), c, postgresDB, databases)) + + updated := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secret.Name, Namespace: secret.Namespace}, updated)) + assert.Equal(t, postgresDB.Name, updated.Annotations[annotationRetainedFrom]) + assert.Empty(t, updated.OwnerReferences) + assert.Equal(t, secret, updated) + }) +} + +// Uses a fake client because these helpers delete Kubernetes resources and must verify API state. +func TestDeleteResourceHelpers(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{Name: "primary", Namespace: "dbs"}, + } + databases := []enterprisev4.DatabaseDefinition{{Name: "payments"}} + + t.Run("deleteCNPGDatabases removes existing object", func(t *testing.T) { + db := &cnpgv1.Database{ObjectMeta: metav1.ObjectMeta{Name: "primary-payments", Namespace: "dbs"}} + c := testClient(t, scheme, db) + require.NoError(t, deleteCNPGDatabases(context.Background(), c, postgresDB, databases)) + }) + + t.Run("deleteConfigMaps ignores missing objects", func(t *testing.T) { + c := testClient(t, scheme) + require.NoError(t, deleteConfigMaps(context.Background(), c, postgresDB, databases)) + }) + + t.Run("deleteSecrets deletes admin and rw secrets", func(t *testing.T) { + admin := &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "primary-payments-admin", Namespace: "dbs"}} + rw := &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "primary-payments-rw", Namespace: "dbs"}} + c := testClient(t, scheme, admin, rw) + require.NoError(t, deleteSecrets(context.Background(), c, postgresDB, databases)) + }) +} + +func TestGeneratePassword(t *testing.T) { + wantLength := passwordLength + wantDigits := passwordDigits + + got, err := generatePassword() + + require.NoError(t, err) + assertGeneratedPassword(t, got, wantLength, wantDigits) +} + +// Uses a fake client because the helper creates Secret objects and persists owner references through the Kubernetes API. +func TestCreateUserSecret(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + } + + t.Run("creates secret with generated credentials", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + wantManagedBy := "splunk-operator" + wantReload := "true" + wantUsername := roleName + wantOwnerUID := postgresDB.UID + wantPasswordLength := passwordLength + wantPasswordDigits := passwordDigits + c := testClient(t, scheme) + + err := createUserSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, secretName, got.Name) + assert.Equal(t, postgresDB.Namespace, got.Namespace) + assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) + assert.Equal(t, wantReload, got.Labels[labelCNPGReload]) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assertGeneratedPassword(t, string(got.Data[secretKeyPassword]), wantPasswordLength, wantPasswordDigits) + require.Len(t, got.OwnerReferences, 1) + assert.Equal(t, wantOwnerUID, got.OwnerReferences[0].UID) + }) + + t.Run("returns nil when secret already exists", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + wantUsername := roleName + wantPassword := "existing-password" + existing := buildPasswordSecret(postgresDB, secretName, wantUsername, wantPassword) + c := testClient(t, scheme, existing) + + err := createUserSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) + assert.Empty(t, got.OwnerReferences) + }) +} + +// Uses a fake client because the helper decides between get/create/adopt behavior based on Secret state in the API. +func TestEnsureSecret(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + } + + t.Run("creates missing secret", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + wantManagedBy := "splunk-operator" + wantReload := "true" + wantUsername := roleName + wantOwnerUID := postgresDB.UID + wantPasswordLength := passwordLength + wantPasswordDigits := passwordDigits + c := testClient(t, scheme) + + err := ensureSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) + assert.Equal(t, wantReload, got.Labels[labelCNPGReload]) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assertGeneratedPassword(t, string(got.Data[secretKeyPassword]), wantPasswordLength, wantPasswordDigits) + require.Len(t, got.OwnerReferences, 1) + assert.Equal(t, wantOwnerUID, got.OwnerReferences[0].UID) + }) + + t.Run("re-adopts retained secret", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + wantUsername := roleName + wantPassword := "existing-password" + wantOwnerUID := postgresDB.UID + wantKeep := "true" + retained := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + Namespace: postgresDB.Namespace, + Annotations: map[string]string{ + annotationRetainedFrom: postgresDB.Name, + "keep": wantKeep, + }, + OwnerReferences: []metav1.OwnerReference{ + {UID: types.UID("old-owner"), Name: "old-owner"}, + }, + }, + Data: map[string][]byte{ + "username": []byte(wantUsername), + secretKeyPassword: []byte(wantPassword), + }, + } + c := testClient(t, scheme, retained) + + err := ensureSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, wantKeep, got.Annotations["keep"]) + _, hasRetainedAnnotation := got.Annotations[annotationRetainedFrom] + assert.False(t, hasRetainedAnnotation) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) + assert.Contains(t, got.OwnerReferences, metav1.OwnerReference{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + Name: postgresDB.Name, + UID: wantOwnerUID, + Controller: boolPtr(true), + BlockOwnerDeletion: boolPtr(true), + }) + }) + + t.Run("does nothing for existing managed secret", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + wantUsername := roleName + wantPassword := "existing-password" + wantKeep := "true" + wantOwnerUID := postgresDB.UID + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + Namespace: postgresDB.Namespace, + Annotations: map[string]string{ + "keep": wantKeep, + }, + OwnerReferences: []metav1.OwnerReference{ + {UID: wantOwnerUID, Name: postgresDB.Name}, + }, + }, + Data: map[string][]byte{ + "username": []byte(wantUsername), + secretKeyPassword: []byte(wantPassword), + }, + } + c := testClient(t, scheme, existing) + + err := ensureSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, wantKeep, got.Annotations["keep"]) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) + require.Len(t, got.OwnerReferences, 1) + assert.Equal(t, wantOwnerUID, got.OwnerReferences[0].UID) + }) +} + +// Uses a fake client because the helper reconciles multiple Secret objects through the Kubernetes API. +func TestReconcileUserSecrets(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + {Name: "analytics"}, + }, + }, + } + + t.Run("creates secrets for each database role", func(t *testing.T) { + c := testClient(t, scheme) + wantSecrets := []struct { + name string + username string + }{ + {name: "primary-payments-admin", username: "payments_admin"}, + {name: "primary-payments-rw", username: "payments_rw"}, + {name: "primary-analytics-admin", username: "analytics_admin"}, + {name: "primary-analytics-rw", username: "analytics_rw"}, + } + + err := reconcileUserSecrets(context.Background(), c, scheme, postgresDB) + + require.NoError(t, err) + for _, want := range wantSecrets { + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: want.name, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, want.username, string(got.Data["username"])) + assertGeneratedPassword(t, string(got.Data[secretKeyPassword]), passwordLength, passwordDigits) + require.Len(t, got.OwnerReferences, 1) + assert.Equal(t, postgresDB.UID, got.OwnerReferences[0].UID) + } + }) + + t.Run("is idempotent when secrets already exist", func(t *testing.T) { + c := testClient(t, scheme) + + require.NoError(t, reconcileUserSecrets(context.Background(), c, scheme, postgresDB)) + + before := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: "primary-payments-admin", Namespace: postgresDB.Namespace}, before)) + beforePassword := append([]byte(nil), before.Data[secretKeyPassword]...) + + err := reconcileUserSecrets(context.Background(), c, scheme, postgresDB) + + require.NoError(t, err) + + after := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: "primary-payments-admin", Namespace: postgresDB.Namespace}, after)) + assert.Equal(t, beforePassword, after.Data[secretKeyPassword]) + require.Len(t, after.OwnerReferences, 1) + assert.Equal(t, postgresDB.UID, after.OwnerReferences[0].UID) + }) +} + +// Uses a fake client because the helper reconciles ConfigMaps through CreateOrUpdate and persists re-adoption metadata. +func TestReconcileRoleConfigMaps(t *testing.T) { + scheme := testScheme(t) + endpoints := clusterEndpoints{ + RWHost: "rw.default.svc.cluster.local", + ROHost: "ro.default.svc.cluster.local", + PoolerRWHost: "pooler-rw.default.svc.cluster.local", + PoolerROHost: "pooler-ro.default.svc.cluster.local", + } + + t.Run("creates configmaps for all databases", func(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + {Name: "analytics"}, + }, + }, + } + wantManagedBy := "splunk-operator" + wantOwnerUID := postgresDB.UID + wantPaymentsName := "primary-payments-config" + wantAnalyticsName := "primary-analytics-config" + wantPaymentsData := buildDatabaseConfigMapBody("payments", endpoints) + wantAnalyticsData := buildDatabaseConfigMapBody("analytics", endpoints) + c := testClient(t, scheme) + + err := reconcileRoleConfigMaps(context.Background(), c, scheme, postgresDB, endpoints) + + require.NoError(t, err) + + gotPayments := &corev1.ConfigMap{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: wantPaymentsName, Namespace: postgresDB.Namespace}, gotPayments)) + assert.Equal(t, wantManagedBy, gotPayments.Labels[labelManagedBy]) + assert.Equal(t, wantPaymentsData, gotPayments.Data) + require.Len(t, gotPayments.OwnerReferences, 1) + assert.Equal(t, wantOwnerUID, gotPayments.OwnerReferences[0].UID) + + gotAnalytics := &corev1.ConfigMap{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: wantAnalyticsName, Namespace: postgresDB.Namespace}, gotAnalytics)) + assert.Equal(t, wantManagedBy, gotAnalytics.Labels[labelManagedBy]) + assert.Equal(t, wantAnalyticsData, gotAnalytics.Data) + require.Len(t, gotAnalytics.OwnerReferences, 1) + assert.Equal(t, wantOwnerUID, gotAnalytics.OwnerReferences[0].UID) + }) + + t.Run("re-adopts retained configmap", func(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + }, + }, + } + cmName := "primary-payments-config" + wantManagedBy := "splunk-operator" + wantOwnerUID := postgresDB.UID + wantKeep := "true" + wantData := buildDatabaseConfigMapBody("payments", endpoints) + retained := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: cmName, + Namespace: postgresDB.Namespace, + Labels: map[string]string{labelManagedBy: wantManagedBy}, + Annotations: map[string]string{ + annotationRetainedFrom: postgresDB.Name, + "keep": wantKeep, + }, + OwnerReferences: []metav1.OwnerReference{ + {UID: types.UID("old-owner"), Name: "old-owner"}, + }, + }, + Data: map[string]string{ + "dbname": "stale", + }, + } + c := testClient(t, scheme, retained) + + err := reconcileRoleConfigMaps(context.Background(), c, scheme, postgresDB, endpoints) + + require.NoError(t, err) + + got := &corev1.ConfigMap{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: cmName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) + assert.Equal(t, wantKeep, got.Annotations["keep"]) + _, hasRetainedAnnotation := got.Annotations[annotationRetainedFrom] + assert.False(t, hasRetainedAnnotation) + assert.Equal(t, wantData, got.Data) + assert.Contains(t, got.OwnerReferences, metav1.OwnerReference{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + Name: postgresDB.Name, + UID: wantOwnerUID, + Controller: boolPtr(true), + BlockOwnerDeletion: boolPtr(true), + }) + }) +} + +func TestBuildDeletionPlan(t *testing.T) { + databases := []enterprisev4.DatabaseDefinition{ + {Name: "payments", DeletionPolicy: deletionPolicyRetain}, + {Name: "analytics"}, + {Name: "audit", DeletionPolicy: deletionPolicyRetain}, + } + wantRetainedNames := []string{"payments", "audit"} + wantDeletedNames := []string{"analytics"} + + got := buildDeletionPlan(databases) + + assert.ElementsMatch(t, wantRetainedNames, databaseNames(got.retained)) + assert.ElementsMatch(t, wantDeletedNames, databaseNames(got.deleted)) +} + +func TestBuildManagedRoles(t *testing.T) { + databases := []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + {Name: "analytics"}, + } + want := []enterprisev4.ManagedRole{ + { + Name: "payments_admin", + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-payments-admin"}, + Key: secretKeyPassword, + }, + }, + { + Name: "payments_rw", + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-payments-rw"}, + Key: secretKeyPassword, + }, + }, + { + Name: "analytics_admin", + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-analytics-admin"}, + Key: secretKeyPassword, + }, + }, + { + Name: "analytics_rw", + Exists: true, + PasswordSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-analytics-rw"}, + Key: secretKeyPassword, + }, + }, + } + + got := buildManagedRoles("primary", databases) + + assert.Equal(t, want, got) +} + +func TestBuildManagedRolesPatch(t *testing.T) { + cluster := &enterprisev4.PostgresCluster{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresCluster", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + }, + } + roles := buildManagedRoles("primary", []enterprisev4.DatabaseDefinition{{Name: "payments"}}) + + got := buildManagedRolesPatch(cluster, roles) + + assert.Equal(t, cluster.APIVersion, got.Object["apiVersion"]) + assert.Equal(t, cluster.Kind, got.Object["kind"]) + assert.Equal(t, map[string]any{"name": cluster.Name, "namespace": cluster.Namespace}, got.Object["metadata"]) + assert.Equal(t, map[string]any{"managedRoles": roles}, got.Object["spec"]) +} + +func TestPatchManagedRolesOnDeletion(t *testing.T) { + scheme := testScheme(t) + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + }, + } + cluster := &enterprisev4.PostgresCluster{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresCluster", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + }, + } + retained := []enterprisev4.DatabaseDefinition{{Name: "payments"}} + want := buildManagedRoles(postgresDB.Name, retained) + c := testClient(t, scheme, cluster) + + err := patchManagedRolesOnDeletion(context.Background(), c, postgresDB, cluster, retained) + + require.NoError(t, err) + + got := &enterprisev4.PostgresCluster{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: cluster.Name, Namespace: cluster.Namespace}, got)) + assert.Equal(t, want, got.Spec.ManagedRoles) +} + +func TestStripOwnerReference(t *testing.T) { + obj := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + OwnerReferences: []metav1.OwnerReference{ + {UID: types.UID("remove-me"), Name: "db"}, + {UID: types.UID("keep-me"), Name: "cluster"}, + }, + }, + } + + stripOwnerReference(obj, types.UID("remove-me")) + + require.Len(t, obj.OwnerReferences, 1) + assert.Equal(t, types.UID("keep-me"), obj.OwnerReferences[0].UID) +} + +func TestBuildPasswordSecret(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + }, + } + wantName := "primary-payments-admin" + wantNamespace := "dbs" + wantManagedBy := "splunk-operator" + wantReload := "true" + wantUsername := "payments_admin" + wantPassword := "topsecret" + + got := buildPasswordSecret(postgresDB, wantName, wantUsername, wantPassword) + + assert.Equal(t, wantName, got.Name) + assert.Equal(t, wantNamespace, got.Namespace) + assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) + assert.Equal(t, wantReload, got.Labels[labelCNPGReload]) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) +} + +func TestBuildCNPGDatabaseSpec(t *testing.T) { + tests := []struct { + name string + db enterprisev4.DatabaseDefinition + want cnpgv1.DatabaseSpec + }{ + { + name: "uses delete reclaim policy by default", + db: enterprisev4.DatabaseDefinition{Name: "payments"}, + want: cnpgv1.DatabaseSpec{ + Name: "payments", + Owner: "payments_admin", + ClusterRef: corev1.LocalObjectReference{Name: "cnpg-primary"}, + ReclaimPolicy: cnpgv1.DatabaseReclaimDelete, + }, + }, + { + name: "uses retain reclaim policy when deletion policy is retain", + db: enterprisev4.DatabaseDefinition{Name: "analytics", DeletionPolicy: deletionPolicyRetain}, + want: cnpgv1.DatabaseSpec{ + Name: "analytics", + Owner: "analytics_admin", + ClusterRef: corev1.LocalObjectReference{Name: "cnpg-primary"}, + ReclaimPolicy: cnpgv1.DatabaseReclaimRetain, + }, + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + got := buildCNPGDatabaseSpec("cnpg-primary", tst.db) + assert.Equal(t, tst.want, got) + }) + } +} + +func TestBuildDatabaseConfigMapBody(t *testing.T) { + tests := []struct { + name string + endpoints clusterEndpoints + want map[string]string + }{ + { + name: "without pooler endpoints", + endpoints: clusterEndpoints{ + RWHost: "rw.default.svc.cluster.local", + ROHost: "ro.default.svc.cluster.local", + }, + want: map[string]string{ + "dbname": "payments", + "port": postgresPort, + "rw-host": "rw.default.svc.cluster.local", + "ro-host": "ro.default.svc.cluster.local", + "admin-user": "payments_admin", + "rw-user": "payments_rw", + }, + }, + { + name: "includes pooler endpoints when available", + endpoints: clusterEndpoints{ + RWHost: "rw.default.svc.cluster.local", + ROHost: "ro.default.svc.cluster.local", + PoolerRWHost: "pooler-rw.default.svc.cluster.local", + PoolerROHost: "pooler-ro.default.svc.cluster.local", + }, + want: map[string]string{ + "dbname": "payments", + "port": postgresPort, + "rw-host": "rw.default.svc.cluster.local", + "ro-host": "ro.default.svc.cluster.local", + "admin-user": "payments_admin", + "rw-user": "payments_rw", + "pooler-rw-host": "pooler-rw.default.svc.cluster.local", + "pooler-ro-host": "pooler-ro.default.svc.cluster.local", + }, + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + got := buildDatabaseConfigMapBody("payments", tst.endpoints) + assert.Equal(t, tst.want, got) + }) + } +} + +func TestResolveClusterEndpoints(t *testing.T) { + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + cnpg *cnpgv1.Cluster + namespace string + want clusterEndpoints + }{ + { + name: "without connection pooler", + cluster: &enterprisev4.PostgresCluster{}, + cnpg: &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{Name: "cnpg-primary"}, + Status: cnpgv1.ClusterStatus{ + WriteService: "primary-rw", + ReadService: "primary-ro", + }, + }, + namespace: "dbs", + want: clusterEndpoints{ + RWHost: "primary-rw.dbs.svc.cluster.local", + ROHost: "primary-ro.dbs.svc.cluster.local", + }, + }, + { + name: "with connection pooler", + cluster: &enterprisev4.PostgresCluster{ + Status: enterprisev4.PostgresClusterStatus{ + ConnectionPoolerStatus: &enterprisev4.ConnectionPoolerStatus{Enabled: true}, + }, + }, + cnpg: &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{Name: "cnpg-primary"}, + Status: cnpgv1.ClusterStatus{ + WriteService: "primary-rw", + ReadService: "primary-ro", + }, + }, + namespace: "dbs", + want: clusterEndpoints{ + RWHost: "primary-rw.dbs.svc.cluster.local", + ROHost: "primary-ro.dbs.svc.cluster.local", + PoolerRWHost: "cnpg-primary-pooler-rw.dbs.svc.cluster.local", + PoolerROHost: "cnpg-primary-pooler-ro.dbs.svc.cluster.local", + }, + }, + } + + for _, tst := range tests { + + t.Run(tst.name, func(t *testing.T) { + got := resolveClusterEndpoints(tst.cluster, tst.cnpg, tst.namespace) + assert.Equal(t, tst.want, got) + }) + } +} + +func TestPopulateDatabaseStatus(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{Name: "primary"}, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + {Name: "analytics"}, + }, + }, + } + want := []enterprisev4.DatabaseInfo{ + { + Name: "payments", + Ready: true, + AdminUserSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-payments-admin"}, + Key: secretKeyPassword, + }, + RWUserSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-payments-rw"}, + Key: secretKeyPassword, + }, + ConfigMapRef: &corev1.LocalObjectReference{Name: "primary-payments-config"}, + }, + { + Name: "analytics", + Ready: true, + AdminUserSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-analytics-admin"}, + Key: secretKeyPassword, + }, + RWUserSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "primary-analytics-rw"}, + Key: secretKeyPassword, + }, + ConfigMapRef: &corev1.LocalObjectReference{Name: "primary-analytics-config"}, + }, + } + + got := populateDatabaseStatus(postgresDB) + + assert.Equal(t, want, got) +} + +func TestHasNewDatabases(t *testing.T) { + tests := []struct { + name string + postgresDB *enterprisev4.PostgresDatabase + want bool + }{ + { + name: "returns true when spec contains a new database", + postgresDB: &enterprisev4.PostgresDatabase{ + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + {Name: "analytics"}, + }, + }, + Status: enterprisev4.PostgresDatabaseStatus{ + Databases: []enterprisev4.DatabaseInfo{ + {Name: "payments"}, + }, + }, + }, + want: true, + }, + { + name: "returns false when all spec databases already exist in status", + postgresDB: &enterprisev4.PostgresDatabase{ + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + }, + }, + Status: enterprisev4.PostgresDatabaseStatus{ + Databases: []enterprisev4.DatabaseInfo{ + {Name: "payments"}, + {Name: "legacy-extra"}, + }, + }, + }, + want: false, + }, + } + + for _, tst := range tests { + + t.Run(tst.name, func(t *testing.T) { + got := hasNewDatabases(tst.postgresDB) + assert.Equal(t, tst.want, got) + }) + } +} + +func TestNamingHelpers(t *testing.T) { + tests := []struct { + name string + got string + want string + }{ + {name: "field manager", got: fieldManagerName("primary"), want: "postgresdatabase-primary"}, + {name: "admin role", got: adminRoleName("payments"), want: "payments_admin"}, + {name: "rw role", got: rwRoleName("payments"), want: "payments_rw"}, + {name: "cnpg database", got: cnpgDatabaseName("primary", "payments"), want: "primary-payments"}, + {name: "role secret", got: roleSecretName("primary", "payments", "admin"), want: "primary-payments-admin"}, + {name: "config map", got: configMapName("primary", "payments"), want: "primary-payments-config"}, + } + + for _, tst := range tests { + + t.Run(tst.name, func(t *testing.T) { + assert.Equal(t, tst.want, tst.got) + }) + } +} From ad02ceb2dbea4dd0cef3750556f0cb8a17b39b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Wed, 25 Mar 2026 17:44:13 +0100 Subject: [PATCH 06/43] Simplify events filtering logic, small tweaks --- .../controller/postgrescluster_controller.go | 124 +++++++----------- pkg/postgresql/cluster/core/cluster.go | 29 ++-- pkg/postgresql/database/core/database.go | 4 +- 3 files changed, 63 insertions(+), 94 deletions(-) diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index dfa1f7eaf..163a07f9d 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -30,7 +30,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/predicate" ) @@ -61,6 +60,7 @@ func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ // SetupWithManager registers the controller and owned resource watches. func (r *PostgresClusterReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). + WithEventFilter(predicate.Funcs{GenericFunc: func(event.GenericEvent) bool { return false }}). For(&enterprisev4.PostgresCluster{}, builder.WithPredicates(postgresClusterPredicator())). Owns(&cnpgv1.Cluster{}, builder.WithPredicates(cnpgClusterPredicator())). Owns(&cnpgv1.Pooler{}, builder.WithPredicates(cnpgPoolerPredicator())). @@ -73,107 +73,71 @@ func (r *PostgresClusterReconciler) SetupWithManager(mgr ctrl.Manager) error { Complete(r) } -func deletionTimestampChanged(oldObj, newObj metav1.Object) bool { - return !equality.Semantic.DeepEqual(oldObj.GetDeletionTimestamp(), newObj.GetDeletionTimestamp()) -} - func ownerReferencesChanged(oldObj, newObj metav1.Object) bool { return !equality.Semantic.DeepEqual(oldObj.GetOwnerReferences(), newObj.GetOwnerReferences()) } -// postgresClusterPredicator triggers on generation changes, deletion, and finalizer transitions. +// postgresClusterPredicator triggers on spec changes, deletion, and finalizer transitions. func postgresClusterPredicator() predicate.Predicate { - return predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return true }, - DeleteFunc: func(event.DeleteEvent) bool { return true }, - UpdateFunc: func(e event.UpdateEvent) bool { - oldObj, oldOK := e.ObjectOld.(*enterprisev4.PostgresCluster) - newObj, newOK := e.ObjectNew.(*enterprisev4.PostgresCluster) - if !oldOK || !newOK { - return true - } - if oldObj.Generation != newObj.Generation { - return true - } - if deletionTimestampChanged(oldObj, newObj) { - return true - } - // Finalizer changes indicate registration or deletion  always reconcile. - return controllerutil.ContainsFinalizer(oldObj, clustercore.PostgresClusterFinalizerName) != - controllerutil.ContainsFinalizer(newObj, clustercore.PostgresClusterFinalizerName) + return predicate.Or( + predicate.GenerationChangedPredicate{}, + predicate.Funcs{ + UpdateFunc: func(e event.UpdateEvent) bool { + // DeletionTimestamp set means the object entered the deletion phase. + if !equality.Semantic.DeepEqual(e.ObjectOld.GetDeletionTimestamp(), e.ObjectNew.GetDeletionTimestamp()) { + return true + } + // Finalizer list change signals a cleanup lifecycle transition. + return !equality.Semantic.DeepEqual(e.ObjectOld.GetFinalizers(), e.ObjectNew.GetFinalizers()) + }, }, - GenericFunc: func(event.GenericEvent) bool { return false }, - } + ) } -// cnpgClusterPredicator triggers only on phase changes or owner reference changes. +// cnpgClusterPredicator triggers on spec changes, phase changes, or owner reference changes. +// Generation catches spec drift before CNPG reflects it in status. func cnpgClusterPredicator() predicate.Predicate { - return predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return true }, - DeleteFunc: func(event.DeleteEvent) bool { return true }, - UpdateFunc: func(e event.UpdateEvent) bool { - oldObj, oldOK := e.ObjectOld.(*cnpgv1.Cluster) - newObj, newOK := e.ObjectNew.(*cnpgv1.Cluster) - if !oldOK || !newOK { - return true - } - return oldObj.Status.Phase != newObj.Status.Phase || - ownerReferencesChanged(oldObj, newObj) + return predicate.Or( + predicate.GenerationChangedPredicate{}, + predicate.Funcs{ + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj := e.ObjectOld.(*cnpgv1.Cluster) + newObj := e.ObjectNew.(*cnpgv1.Cluster) + return oldObj.Status.Phase != newObj.Status.Phase || + ownerReferencesChanged(oldObj, newObj) + }, }, - GenericFunc: func(event.GenericEvent) bool { return false }, - } + ) } -// cnpgPoolerPredicator triggers only on instance count changes. +// cnpgPoolerPredicator triggers on spec changes or instance count changes. +// Generation catches spec drift before CNPG reflects it in instance status. func cnpgPoolerPredicator() predicate.Predicate { - return predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return true }, - DeleteFunc: func(event.DeleteEvent) bool { return true }, - UpdateFunc: func(e event.UpdateEvent) bool { - oldObj, oldOK := e.ObjectOld.(*cnpgv1.Pooler) - newObj, newOK := e.ObjectNew.(*cnpgv1.Pooler) - if !oldOK || !newOK { - return true - } - return oldObj.Status.Instances != newObj.Status.Instances + return predicate.Or( + predicate.GenerationChangedPredicate{}, + predicate.Funcs{ + UpdateFunc: func(e event.UpdateEvent) bool { + oldObj := e.ObjectOld.(*cnpgv1.Pooler) + newObj := e.ObjectNew.(*cnpgv1.Pooler) + return oldObj.Status.Instances != newObj.Status.Instances + }, }, - GenericFunc: func(event.GenericEvent) bool { return false }, - } + ) } -// secretPredicator triggers only on owner reference changes. +// secretPredicator triggers only when ownership changes. +// In retain-state mode we release ownership (remove ownerRef) without deleting the Secret, +// so this transition must trigger reconciliation to update our tracking state. func secretPredicator() predicate.Predicate { return predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return true }, - DeleteFunc: func(event.DeleteEvent) bool { return true }, UpdateFunc: func(e event.UpdateEvent) bool { - oldObj, oldOK := e.ObjectOld.(*corev1.Secret) - newObj, newOK := e.ObjectNew.(*corev1.Secret) - if !oldOK || !newOK { - return true - } - return ownerReferencesChanged(oldObj, newObj) + return ownerReferencesChanged(e.ObjectOld, e.ObjectNew) }, - GenericFunc: func(event.GenericEvent) bool { return false }, } } -// configMapPredicator triggers on data, label, annotation, or owner reference changes. +// configMapPredicator triggers on any content change. +// ConfigMap has no status subresource, so every resourceVersion bump is a real change. func configMapPredicator() predicate.Predicate { - return predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return true }, - DeleteFunc: func(event.DeleteEvent) bool { return true }, - UpdateFunc: func(e event.UpdateEvent) bool { - oldObj, oldOK := e.ObjectOld.(*corev1.ConfigMap) - newObj, newOK := e.ObjectNew.(*corev1.ConfigMap) - if !oldOK || !newOK { - return true - } - return !equality.Semantic.DeepEqual(oldObj.Data, newObj.Data) || - !equality.Semantic.DeepEqual(oldObj.Labels, newObj.Labels) || - !equality.Semantic.DeepEqual(oldObj.Annotations, newObj.Annotations) || - ownerReferencesChanged(oldObj, newObj) - }, - GenericFunc: func(event.GenericEvent) bool { return false }, - } + return predicate.ResourceVersionChangedPredicate{} } diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 3459101a4..0b6bb5670 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -18,6 +18,7 @@ package core import ( "context" + "errors" "fmt" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" @@ -72,11 +73,13 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{}, nil } logger.Error(err, "Failed to handle finalizer") + errs := []error{err} if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterDeleteFailed, fmt.Sprintf("Failed to delete resources during cleanup: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") + errs = append(errs, statusErr) } - return ctrl.Result{}, err + return ctrl.Result{}, errors.Join(errs...) } if postgresCluster.GetDeletionTimestamp() != nil { logger.Info("PostgresCluster is being deleted, cleanup complete") @@ -88,8 +91,8 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim controllerutil.AddFinalizer(postgresCluster, PostgresClusterFinalizerName) if err := c.Update(ctx, postgresCluster); err != nil { if apierrors.IsConflict(err) { - logger.Info("Conflict while adding finalizer, will retry on next reconcile") - return ctrl.Result{Requeue: true}, nil + logger.Error(err, "Conflict while adding finalizer. Retrying...") + return ctrl.Result{}, fmt.Errorf("conflict while adding finalizer: %w", err) } logger.Error(err, "Failed to add finalizer to PostgresCluster") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) @@ -98,7 +101,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{}, nil } - // 2. Load the referenced PostgresClusterClass. + // Load the referenced PostgresClusterClass. clusterClass := &enterprisev4.PostgresClusterClass{} if err := c.Get(ctx, client.ObjectKey{Name: postgresCluster.Spec.Class}, clusterClass); err != nil { logger.Error(err, "Unable to fetch referenced PostgresClusterClass", "className", postgresCluster.Spec.Class) @@ -109,7 +112,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{}, err } - // 3. Merge PostgresClusterSpec on top of PostgresClusterClass defaults. + // Merge PostgresClusterSpec on top of PostgresClusterClass defaults. mergedConfig, err := getMergedConfig(clusterClass, postgresCluster) if err != nil { logger.Error(err, "Failed to merge PostgresCluster configuration") @@ -120,7 +123,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{}, err } - // 4. Resolve or derive the superuser secret name. + // Resolve or derive the superuser secret name. if postgresCluster.Status.Resources != nil && postgresCluster.Status.Resources.SuperUserSecretRef != nil { postgresSecretName = postgresCluster.Status.Resources.SuperUserSecretRef.Name logger.Info("Using existing secret from status", "name", postgresSecretName) @@ -189,10 +192,10 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } } - // 5. Build desired CNPG Cluster spec. + // Build desired CNPG Cluster spec. desiredSpec := buildCNPGClusterSpec(mergedConfig, postgresSecretName) - // 6. Fetch existing CNPG Cluster or create it. + // Fetch existing CNPG Cluster or create it. existingCNPG := &cnpgv1.Cluster{} err = c.Get(ctx, types.NamespacedName{Name: postgresCluster.Name, Namespace: postgresCluster.Namespace}, existingCNPG) switch { @@ -222,7 +225,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{}, err } - // 7. Patch CNPG Cluster spec if drift detected. + // Patch CNPG Cluster spec if drift detected. cnpgCluster = existingCNPG currentNormalized := normalizeCNPGClusterSpec(cnpgCluster.Spec, mergedConfig.Spec.PostgreSQLConfig) desiredNormalized := normalizeCNPGClusterSpec(desiredSpec, mergedConfig.Spec.PostgreSQLConfig) @@ -249,7 +252,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } } - // 7a. Reconcile ManagedRoles. + // Reconcile ManagedRoles. if err := reconcileManagedRoles(ctx, c, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to reconcile managed roles") if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonManagedRolesFailed, @@ -259,7 +262,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{}, err } - // 7b. Reconcile Connection Pooler. + // Reconcile Connection Pooler. poolerEnabled = mergedConfig.Spec.ConnectionPoolerEnabled != nil && *mergedConfig.Spec.ConnectionPoolerEnabled switch { case !poolerEnabled: @@ -342,7 +345,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } } - // 8. Reconcile ConfigMap when CNPG cluster is healthy. + // Reconcile ConfigMap when CNPG cluster is healthy. if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { logger.Info("CNPG Cluster is ready, reconciling ConfigMap for connection details") desiredCM, err := generateConfigMap(ctx, c, scheme, postgresCluster, cnpgCluster, postgresSecretName) @@ -387,7 +390,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } } - // 9. Final status sync. + // Final status sync. if err := syncStatus(ctx, c, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to sync status") if apierrors.IsConflict(err) { diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 50c99beed..dadd1fbbd 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -105,10 +105,12 @@ func PostgresDatabaseService( "If you deleted a previous PostgresDatabase, recreate it with the original name to re-adopt the orphaned resources.", strings.Join(roleConflicts, ", ")) logger.Error(nil, conflictMsg) + errs := []error{fmt.Errorf("role conflict detected: %s", strings.Join(roleConflicts, ", "))} if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRoleConflict, conflictMsg, failedDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") + errs = append(errs, fmt.Errorf("failed to update status: %w", statusErr)) } - return ctrl.Result{}, nil + return ctrl.Result{}, stderrors.Join(errs...) } // We need the CNPG Cluster directly because PostgresCluster status does not yet From 0936891f76a30c652f9b5b4c81961df119415f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Thu, 26 Mar 2026 17:53:26 +0100 Subject: [PATCH 07/43] Apply PR suggestions and fixes --- api/v4/postgrescluster_types.go | 8 +-- api/v4/postgresclusterclass_types.go | 8 ++- api/v4/postgresdatabase_types.go | 6 +- api/v4/zz_generated.deepcopy.go | 5 -- ...ise.splunk.com_postgresclusterclasses.yaml | 11 ++-- ...nterprise.splunk.com_postgresclusters.yaml | 39 ++--------- ...terprise.splunk.com_postgresdatabases.yaml | 10 ++- .../patch_preserve_unknown_fields.yaml | 26 +++++++- pkg/postgresql/cluster/core/cluster.go | 66 ++++++++++++++++--- pkg/postgresql/database/core/database.go | 8 ++- 10 files changed, 119 insertions(+), 68 deletions(-) diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 6ddb14c9d..3e3dd0da7 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -44,7 +44,7 @@ type ManagedRole struct { // Validation rules ensure immutability of Class, and that Storage and PostgresVersion can only be set once and cannot be removed or downgraded. // +kubebuilder:validation:XValidation:rule="!has(oldSelf.postgresVersion) || (has(self.postgresVersion) && int(self.postgresVersion.split('.')[0]) >= int(oldSelf.postgresVersion.split('.')[0]))",messageExpression="!has(self.postgresVersion) ? 'postgresVersion cannot be removed once set (was: ' + oldSelf.postgresVersion + ')' : 'postgresVersion major version cannot be downgraded (from: ' + oldSelf.postgresVersion + ', to: ' + self.postgresVersion + ')'" // +kubebuilder:validation:XValidation:rule="!has(oldSelf.storage) || (has(self.storage) && quantity(self.storage).compareTo(quantity(oldSelf.storage)) >= 0)",messageExpression="!has(self.storage) ? 'storage cannot be removed once set (was: ' + string(oldSelf.storage) + ')' : 'storage size cannot be decreased (from: ' + string(oldSelf.storage) + ', to: ' + string(self.storage) + ')'" -// +kubebuilder:validation:XValidation:rule="!has(self.connectionPoolerConfig)",message="connectionPoolerConfig cannot be overridden on PostgresCluster" + type PostgresClusterSpec struct { // This field is IMMUTABLE after creation. // +kubebuilder:validation:Required @@ -92,14 +92,9 @@ type PostgresClusterSpec struct { // ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed for this cluster. // When set, takes precedence over the class-level connectionPoolerEnabled value. - // +kubebuilder:default=false // +optional ConnectionPoolerEnabled *bool `json:"connectionPoolerEnabled,omitempty"` - // Only takes effect when connection pooling is enabled. - // +optional - ConnectionPoolerConfig *ConnectionPoolerConfig `json:"connectionPoolerConfig,omitempty"` - // ManagedRoles contains PostgreSQL roles that should be created in the cluster. // This field supports Server-Side Apply with per-role granularity, allowing // multiple PostgresDatabase controllers to manage different roles independently. @@ -185,6 +180,7 @@ type ConnectionPoolerStatus struct { // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // PostgresCluster is the Schema for the postgresclusters API. +// +kubebuilder:validation:XValidation:rule="size(self.metadata.name) <= 50",message="name must be 50 characters or fewer to accommodate derived resource names" type PostgresCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/api/v4/postgresclusterclass_types.go b/api/v4/postgresclusterclass_types.go index 9945ec669..7f02e5633 100644 --- a/api/v4/postgresclusterclass_types.go +++ b/api/v4/postgresclusterclass_types.go @@ -24,8 +24,10 @@ import ( // +kubebuilder:validation:XValidation:rule="!has(self.cnpg) || self.provisioner == 'postgresql.cnpg.io'",message="cnpg config can only be set when provisioner is postgresql.cnpg.io" // +kubebuilder:validation:XValidation:rule="!has(self.config) || !has(self.config.connectionPoolerEnabled) || !self.config.connectionPoolerEnabled || (has(self.cnpg) && has(self.cnpg.connectionPooler))",message="cnpg.connectionPooler must be set when config.connectionPoolerEnabled is true" +// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="PostgresClusterClass is immutable after creation" // PostgresClusterClassSpec defines the desired state of PostgresClusterClass. // PostgresClusterClass is immutable after creation - it serves as a template for Cluster CRs. + type PostgresClusterClassSpec struct { // Provisioner identifies which database provisioner to use. // Currently supported: "postgresql.cnpg.io" (CloudNativePG) @@ -174,9 +176,9 @@ type PostgresClusterClassStatus struct { // +kubebuilder:subresource:status // +kubebuilder:resource:scope=Cluster // +kubebuilder:printcolumn:name="Provisioner",type=string,JSONPath=`.spec.provisioner` -// +kubebuilder:printcolumn:name="Instances",type=integer,JSONPath=`.spec.postgresClusterConfig.instances` -// +kubebuilder:printcolumn:name="Storage",type=string,JSONPath=`.spec.postgresClusterConfig.storage` -// +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.spec.postgresClusterConfig.postgresVersion` +// +kubebuilder:printcolumn:name="Instances",type=integer,JSONPath=`.spec.config.instances` +// +kubebuilder:printcolumn:name="Storage",type=string,JSONPath=`.spec.config.storage` +// +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.spec.config.postgresVersion` // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` diff --git a/api/v4/postgresdatabase_types.go b/api/v4/postgresdatabase_types.go index edab619b0..f89b7229a 100644 --- a/api/v4/postgresdatabase_types.go +++ b/api/v4/postgresdatabase_types.go @@ -23,6 +23,7 @@ import ( // PostgresDatabaseSpec defines the desired state of PostgresDatabase. // +kubebuilder:validation:XValidation:rule="self.clusterRef == oldSelf.clusterRef",message="clusterRef is immutable" +// +kubebuilder:validation:XValidation:rule="self.clusterRef.name != ''",message="clusterRef.name must not be empty" type PostgresDatabaseSpec struct { // Reference to Postgres Cluster managed by postgresCluster controller // +kubebuilder:validation:Required @@ -37,7 +38,9 @@ type PostgresDatabaseSpec struct { type DatabaseDefinition struct { // +kubebuilder:validation:Required + // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=30 + // +kubebuilder:validation:Pattern=`^[a-z_][a-z0-9_]*$` Name string `json:"name"` Extensions []string `json:"extensions,omitempty"` // +kubebuilder:validation:Enum=Delete;Retain @@ -51,7 +54,7 @@ type DatabaseInfo struct { DatabaseRef *corev1.LocalObjectReference `json:"databaseRef,omitempty"` AdminUserSecretRef *corev1.SecretKeySelector `json:"adminUserSecretRef,omitempty"` RWUserSecretRef *corev1.SecretKeySelector `json:"rwUserSecretRef,omitempty"` - ConfigMapRef *corev1.LocalObjectReference `json:"configMap,omitempty"` + ConfigMapRef *corev1.LocalObjectReference `json:"configMapRef,omitempty"` } // PostgresDatabaseStatus defines the observed state of PostgresDatabase. @@ -74,6 +77,7 @@ type PostgresDatabaseStatus struct { // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` // PostgresDatabase is the Schema for the postgresdatabases API. +// +kubebuilder:validation:XValidation:rule="size(self.metadata.name) <= 50",message="name must be 50 characters or fewer to accommodate derived resource names" type PostgresDatabase struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/api/v4/zz_generated.deepcopy.go b/api/v4/zz_generated.deepcopy.go index d9535fb93..c698411c7 100644 --- a/api/v4/zz_generated.deepcopy.go +++ b/api/v4/zz_generated.deepcopy.go @@ -1413,11 +1413,6 @@ func (in *PostgresClusterSpec) DeepCopyInto(out *PostgresClusterSpec) { *out = new(bool) **out = **in } - if in.ConnectionPoolerConfig != nil { - in, out := &in.ConnectionPoolerConfig, &out.ConnectionPoolerConfig - *out = new(ConnectionPoolerConfig) - (*in).DeepCopyInto(*out) - } if in.ManagedRoles != nil { in, out := &in.ManagedRoles, &out.ManagedRoles *out = make([]ManagedRole, len(*in)) diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml index 70ef3536b..cd3d7ab7a 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml @@ -18,13 +18,13 @@ spec: - jsonPath: .spec.provisioner name: Provisioner type: string - - jsonPath: .spec.postgresClusterConfig.instances + - jsonPath: .spec.config.instances name: Instances type: integer - - jsonPath: .spec.postgresClusterConfig.storage + - jsonPath: .spec.config.storage name: Storage type: string - - jsonPath: .spec.postgresClusterConfig.postgresVersion + - jsonPath: .spec.config.postgresVersion name: Version type: string - jsonPath: .status.phase @@ -58,9 +58,6 @@ spec: metadata: type: object spec: - description: |- - PostgresClusterClassSpec defines the desired state of PostgresClusterClass. - PostgresClusterClass is immutable after creation - it serves as a template for Cluster CRs. properties: cnpg: description: |- @@ -251,6 +248,8 @@ spec: is true rule: '!has(self.config) || !has(self.config.connectionPoolerEnabled) || !self.config.connectionPoolerEnabled || (has(self.cnpg) && has(self.cnpg.connectionPooler))' + - message: PostgresClusterClass is immutable after creation + rule: self == oldSelf status: description: PostgresClusterClassStatus defines the observed state of PostgresClusterClass. diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml index 14ba142d6..09c7de13c 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml @@ -47,9 +47,6 @@ spec: metadata: type: object spec: - description: |- - PostgresClusterSpec defines the desired state of PostgresCluster. - Validation rules ensure immutability of Class, and that Storage and PostgresVersion can only be set once and cannot be removed or downgraded. properties: class: description: This field is IMMUTABLE after creation. @@ -66,37 +63,7 @@ spec: - Delete - Retain type: string - connectionPoolerConfig: - description: Only takes effect when connection pooling is enabled. - properties: - config: - additionalProperties: - type: string - description: |- - Config contains PgBouncer configuration parameters. - Passed directly to CNPG Pooler spec.pgbouncer.parameters. - See: https://cloudnative-pg.io/docs/1.28/connection_pooling/#pgbouncer-configuration-options - type: object - instances: - default: 3 - description: |- - Instances is the number of PgBouncer pod replicas. - Higher values provide better availability and load distribution. - format: int32 - maximum: 10 - minimum: 1 - type: integer - mode: - default: transaction - description: Mode defines the connection pooling strategy. - enum: - - session - - transaction - - statement - type: string - type: object connectionPoolerEnabled: - default: false description: |- ConnectionPoolerEnabled controls whether PgBouncer connection pooling is deployed for this cluster. When set, takes precedence over the class-level connectionPoolerEnabled value. @@ -270,8 +237,6 @@ spec: '' + string(self.storage) + '')''' rule: '!has(oldSelf.storage) || (has(self.storage) && quantity(self.storage).compareTo(quantity(oldSelf.storage)) >= 0)' - - message: connectionPoolerConfig cannot be overridden on PostgresCluster - rule: '!has(self.connectionPoolerConfig)' status: description: PostgresClusterStatus defines the observed state of PostgresCluster. properties: @@ -463,6 +428,10 @@ spec: type: object type: object type: object + x-kubernetes-validations: + - message: name must be 50 characters or fewer to accommodate derived resource + names + rule: size(self.metadata.name) <= 50 served: true storage: true subresources: diff --git a/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml b/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml index d8df534d3..dbe0fef64 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml @@ -79,6 +79,8 @@ spec: type: array name: maxLength: 30 + minLength: 1 + pattern: ^[a-z_][a-z0-9_]*$ type: string required: - name @@ -96,6 +98,8 @@ spec: x-kubernetes-validations: - message: clusterRef is immutable rule: self.clusterRef == oldSelf.clusterRef + - message: clusterRef.name must not be empty + rule: self.clusterRef.name != '' status: description: PostgresDatabaseStatus defines the observed state of PostgresDatabase. properties: @@ -182,7 +186,7 @@ spec: - key type: object x-kubernetes-map-type: atomic - configMap: + configMapRef: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. @@ -253,6 +257,10 @@ spec: type: string type: object type: object + x-kubernetes-validations: + - message: name must be 50 characters or fewer to accommodate derived resource + names + rule: size(self.metadata.name) <= 50 served: true storage: true subresources: diff --git a/config/crd/patches/patch_preserve_unknown_fields.yaml b/config/crd/patches/patch_preserve_unknown_fields.yaml index 1eacab2e3..b614d4518 100644 --- a/config/crd/patches/patch_preserve_unknown_fields.yaml +++ b/config/crd/patches/patch_preserve_unknown_fields.yaml @@ -47,10 +47,34 @@ metadata: spec: preserveUnknownFields: false ---- +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: searchheadclusters.enterprise.splunk.com +spec: + preserveUnknownFields: false + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: postgresclusters.enterprise.splunk.com +spec: + preserveUnknownFields: false + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: postgresclusterclasses.enterprise.splunk.com +spec: + preserveUnknownFields: false + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: postgresdatabases.enterprise.splunk.com spec: preserveUnknownFields: false \ No newline at end of file diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 0b6bb5670..d073b79cf 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -91,8 +91,8 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim controllerutil.AddFinalizer(postgresCluster, PostgresClusterFinalizerName) if err := c.Update(ctx, postgresCluster); err != nil { if apierrors.IsConflict(err) { - logger.Error(err, "Conflict while adding finalizer. Retrying...") - return ctrl.Result{}, fmt.Errorf("conflict while adding finalizer: %w", err) + logger.Info("Conflict while adding finalizer, will requeue") + return ctrl.Result{Requeue: true}, nil } logger.Error(err, "Failed to add finalizer to PostgresCluster") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) @@ -264,6 +264,30 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim // Reconcile Connection Pooler. poolerEnabled = mergedConfig.Spec.ConnectionPoolerEnabled != nil && *mergedConfig.Spec.ConnectionPoolerEnabled + + rwPoolerExists, err := poolerExists(ctx, c, postgresCluster, readWriteEndpoint) + if err != nil { + logger.Error(err, "Failed to check RW pooler existence") + errs := []error{err} + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + errs = append(errs, statusErr) + } + return ctrl.Result{}, errors.Join(errs...) + } + roPoolerExists, err := poolerExists(ctx, c, postgresCluster, readOnlyEndpoint) + if err != nil { + logger.Error(err, "Failed to check RO pooler existence") + errs := []error{err} + if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + errs = append(errs, statusErr) + } + return ctrl.Result{}, errors.Join(errs...) + } + switch { case !poolerEnabled: if err := deleteConnectionPoolers(ctx, c, postgresCluster); err != nil { @@ -277,7 +301,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim postgresCluster.Status.ConnectionPoolerStatus = nil meta.RemoveStatusCondition(&postgresCluster.Status.Conditions, string(poolerReady)) - case !poolerExists(ctx, c, postgresCluster, readWriteEndpoint) || !poolerExists(ctx, c, postgresCluster, readOnlyEndpoint): + case !rwPoolerExists || !roPoolerExists: if mergedConfig.CNPG == nil || mergedConfig.CNPG.ConnectionPooler == nil { logger.Info("Connection pooler enabled but no config found in class or cluster spec, skipping", "class", postgresCluster.Spec.Class, "cluster", postgresCluster.Name) @@ -444,6 +468,9 @@ func getMergedConfig(class *enterprisev4.PostgresClusterClass, cluster *enterpri if len(result.PgHBA) == 0 { result.PgHBA = defaults.PgHBA } + if result.ConnectionPoolerEnabled == nil { + result.ConnectionPoolerEnabled = defaults.ConnectionPoolerEnabled + } } if result.Instances == nil || result.PostgresVersion == nil || result.Storage == nil { @@ -578,20 +605,20 @@ func poolerResourceName(clusterName, poolerType string) string { return fmt.Sprintf("%s%s%s", clusterName, defaultPoolerSuffix, poolerType) } -func poolerExists(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, poolerType string) bool { +func poolerExists(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, poolerType string) (bool, error) { pooler := &cnpgv1.Pooler{} err := c.Get(ctx, types.NamespacedName{ Name: poolerResourceName(cluster.Name, poolerType), Namespace: cluster.Namespace, }, pooler) if apierrors.IsNotFound(err) { - return false + return false, nil } if err != nil { log.FromContext(ctx).Error(err, "Failed to check pooler existence", "type", poolerType) - return false + return false, err } - return true + return true, nil } func arePoolersReady(rwPooler, roPooler *cnpgv1.Pooler) bool { @@ -666,7 +693,11 @@ func deleteConnectionPoolers(ctx context.Context, c client.Client, cluster *ente logger := log.FromContext(ctx) for _, poolerType := range []string{readWriteEndpoint, readOnlyEndpoint} { poolerName := poolerResourceName(cluster.Name, poolerType) - if !poolerExists(ctx, c, cluster, poolerType) { + exist, err := poolerExists(ctx, c, cluster, poolerType) + if err != nil { + return fmt.Errorf("Can't check the pooler exist due to transient error %w", err) + } + if !exist { continue } pooler := &cnpgv1.Pooler{} @@ -769,7 +800,11 @@ func syncStatus(ctx context.Context, c client.Client, cluster *enterprisev4.Post } // setStatus sets the phase, condition and persists the status. +// It skips the API write when the resulting status is identical to the current +// state, avoiding unnecessary etcd churn and ResourceVersion bumps on stable clusters. func setStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { + before := cluster.Status.DeepCopy() + p := string(phase) cluster.Status.Phase = &p meta.SetStatusCondition(&cluster.Status.Conditions, metav1.Condition{ @@ -779,6 +814,11 @@ func setStatus(ctx context.Context, c client.Client, cluster *enterprisev4.Postg Message: message, ObservedGeneration: cluster.Generation, }) + + if equality.Semantic.DeepEqual(*before, cluster.Status) { + return nil + } + if err := c.Status().Update(ctx, cluster); err != nil { return fmt.Errorf("failed to update PostgresCluster status: %w", err) } @@ -800,7 +840,15 @@ func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Sch "SUPER_USER_NAME": superUsername, "SUPER_USER_SECRET_REF": secretName, } - if poolerExists(ctx, c, cluster, readWriteEndpoint) && poolerExists(ctx, c, cluster, readOnlyEndpoint) { + rwExists, err := poolerExists(ctx, c, cluster, readWriteEndpoint) + if err != nil { + return nil, fmt.Errorf("failed to check RW pooler existence: %w", err) + } + roExists, err := poolerExists(ctx, c, cluster, readOnlyEndpoint) + if err != nil { + return nil, fmt.Errorf("failed to check RO pooler existence: %w", err) + } + if rwExists && roExists { data["CLUSTER_POOLER_RW_ENDPOINT"] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readWriteEndpoint), cnpgCluster.Namespace) data["CLUSTER_POOLER_RO_ENDPOINT"] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readOnlyEndpoint), cnpgCluster.Namespace) } diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index dadd1fbbd..483076774 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -52,12 +52,18 @@ func PostgresDatabaseService( } return ctrl.Result{}, nil } + // Add finalizer if not present. if !controllerutil.ContainsFinalizer(postgresDB, postgresDatabaseFinalizerName) { controllerutil.AddFinalizer(postgresDB, postgresDatabaseFinalizerName) if err := c.Update(ctx, postgresDB); err != nil { + if errors.IsConflict(err) { + logger.Info("Conflict while adding finalizer, will requeue") + return ctrl.Result{Requeue: true}, nil + } logger.Error(err, "Failed to add finalizer to PostgresDatabase") - return ctrl.Result{}, err + return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) } + logger.Info("Finalizer added successfully") return ctrl.Result{}, nil } From 1920b63aae100c5d66aa7f73cea0aa45946e758d Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Thu, 26 Mar 2026 18:36:46 +0100 Subject: [PATCH 08/43] add integration tests for database reconcilier --- .../postgresdatabase_controller_test.go | 564 ++++++++++++++++-- internal/controller/suite_test.go | 21 +- .../cluster/core/cluster_unit_test.go | 5 +- pkg/postgresql/database/core/database.go | 24 +- .../database/core/database_unit_test.go | 5 +- 5 files changed, 561 insertions(+), 58 deletions(-) diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go index 4e0589cad..614efc49b 100644 --- a/internal/controller/postgresdatabase_controller_test.go +++ b/internal/controller/postgresdatabase_controller_test.go @@ -18,67 +18,539 @@ package controller import ( "context" + "fmt" + "slices" + "time" + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "k8s.io/apimachinery/pkg/api/errors" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/types" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/reconcile" +) - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +const postgresDatabaseFinalizer = "postgresdatabases.enterprise.splunk.com/finalizer" - enterprisev4 "github.com/splunk/splunk-operator/api/v4" -) +func reconcilePostgresDatabase(ctx context.Context, nn types.NamespacedName) (ctrl.Result, error) { + reconciler := &PostgresDatabaseReconciler{ + Client: k8sClient, + Scheme: k8sClient.Scheme(), + } + return reconciler.Reconcile(ctx, reconcile.Request{NamespacedName: nn}) +} -var _ = Describe("Database Controller", func() { - Context("When reconciling a resource", func() { - const resourceName = "test-resource" - - ctx := context.Background() - - typeNamespacedName := types.NamespacedName{ - Name: resourceName, - Namespace: "default", // TODO(user):Modify as needed - } - database := &enterprisev4.PostgresDatabase{} - - BeforeEach(func() { - By("creating the custom resource for the Kind Database") - err := k8sClient.Get(ctx, typeNamespacedName, database) - if err != nil && errors.IsNotFound(err) { - resource := &enterprisev4.PostgresDatabase{ - ObjectMeta: metav1.ObjectMeta{ - Name: resourceName, - Namespace: "default", - }, - // TODO(user): Specify other spec details if needed. - } - Expect(k8sClient.Create(ctx, resource)).To(Succeed()) - } +func managedRoleNames(roles []enterprisev4.ManagedRole) []string { + names := make([]string, 0, len(roles)) + for _, role := range roles { + names = append(names, role.Name) + } + return names +} + +func adminRoleNameForTest(dbName string) string { + return dbName + "_admin" +} + +func rwRoleNameForTest(dbName string) string { + return dbName + "_rw" +} + +func ownedByPostgresDatabase(postgresDB *enterprisev4.PostgresDatabase) []metav1.OwnerReference { + controller := true + blockOwnerDeletion := true + return []metav1.OwnerReference{{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + Name: postgresDB.Name, + UID: postgresDB.UID, + Controller: &controller, + BlockOwnerDeletion: &blockOwnerDeletion, + }} +} + +func createPostgresDatabaseResource(ctx context.Context, namespace, resourceName, clusterName string, databases []enterprisev4.DatabaseDefinition, finalizers ...string) *enterprisev4.PostgresDatabase { + postgresDB := &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: resourceName, + Namespace: namespace, + Finalizers: finalizers, + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: clusterName}, + Databases: databases, + }, + } + Expect(k8sClient.Create(ctx, postgresDB)).To(Succeed()) + return postgresDB +} + +func createPostgresClusterResource(ctx context.Context, namespace, clusterName string) *enterprisev4.PostgresCluster { + postgresCluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: clusterName, + Namespace: namespace, + }, + Spec: enterprisev4.PostgresClusterSpec{ + Class: "dev", + }, + } + Expect(k8sClient.Create(ctx, postgresCluster)).To(Succeed()) + return postgresCluster +} + +func markPostgresClusterReady(ctx context.Context, postgresCluster *enterprisev4.PostgresCluster, cnpgClusterName, namespace string, poolerEnabled bool) { + clusterPhase := "Ready" + postgresCluster.Status.Phase = &clusterPhase + postgresCluster.Status.ProvisionerRef = &corev1.ObjectReference{ + APIVersion: cnpgv1.SchemeGroupVersion.String(), + Kind: "Cluster", + Name: cnpgClusterName, + Namespace: namespace, + } + if poolerEnabled { + postgresCluster.Status.ConnectionPoolerStatus = &enterprisev4.ConnectionPoolerStatus{Enabled: true} + } + Expect(k8sClient.Status().Update(ctx, postgresCluster)).To(Succeed()) +} + +func createCNPGClusterResource(ctx context.Context, namespace, cnpgClusterName string) *cnpgv1.Cluster { + cnpgCluster := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: cnpgClusterName, + Namespace: namespace, + }, + Spec: cnpgv1.ClusterSpec{ + Instances: 1, + StorageConfiguration: cnpgv1.StorageConfiguration{ + Size: "1Gi", + }, + }, + } + Expect(k8sClient.Create(ctx, cnpgCluster)).To(Succeed()) + return cnpgCluster +} + +func markCNPGClusterReady(ctx context.Context, cnpgCluster *cnpgv1.Cluster, reconciledRoles []string, writeService, readService string) { + cnpgCluster.Status.ManagedRolesStatus = cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: reconciledRoles, + }, + } + cnpgCluster.Status.WriteService = writeService + cnpgCluster.Status.ReadService = readService + Expect(k8sClient.Status().Update(ctx, cnpgCluster)).To(Succeed()) +} + +type readyClusterScenario struct { + namespace string + resourceName string + clusterName string + cnpgClusterName string + dbName string + requestName types.NamespacedName +} + +func newReadyClusterScenario(namespace, resourceName, clusterName, cnpgClusterName, dbName string) readyClusterScenario { + return readyClusterScenario{ + namespace: namespace, + resourceName: resourceName, + clusterName: clusterName, + cnpgClusterName: cnpgClusterName, + dbName: dbName, + requestName: types.NamespacedName{Name: resourceName, Namespace: namespace}, + } +} + +func seedReadyClusterScenario(ctx context.Context, scenario readyClusterScenario, poolerEnabled bool) { + createPostgresDatabaseResource(ctx, scenario.namespace, scenario.resourceName, scenario.clusterName, []enterprisev4.DatabaseDefinition{{Name: scenario.dbName}}) + postgresCluster := createPostgresClusterResource(ctx, scenario.namespace, scenario.clusterName) + markPostgresClusterReady(ctx, postgresCluster, scenario.cnpgClusterName, scenario.namespace, poolerEnabled) + cnpgCluster := createCNPGClusterResource(ctx, scenario.namespace, scenario.cnpgClusterName) + markCNPGClusterReady(ctx, cnpgCluster, []string{adminRoleNameForTest(scenario.dbName), rwRoleNameForTest(scenario.dbName)}, "tenant-rw", "tenant-ro") +} + +func expectReconcileResult(result ctrl.Result, err error, requeueAfter time.Duration) { + Expect(err).NotTo(HaveOccurred()) + Expect(result.RequeueAfter).To(Equal(requeueAfter)) +} + +func expectEmptyReconcileResult(result ctrl.Result, err error) { + Expect(err).NotTo(HaveOccurred()) + Expect(result).To(Equal(ctrl.Result{})) +} + +func fetchPostgresDatabase(ctx context.Context, requestName types.NamespacedName) *enterprisev4.PostgresDatabase { + current := &enterprisev4.PostgresDatabase{} + Expect(k8sClient.Get(ctx, requestName, current)).To(Succeed()) + return current +} + +func expectFinalizerAdded(ctx context.Context, requestName types.NamespacedName) *enterprisev4.PostgresDatabase { + current := fetchPostgresDatabase(ctx, requestName) + Expect(current.Finalizers).To(ContainElement(postgresDatabaseFinalizer)) + return current +} + +func seedExistingDatabaseStatus(ctx context.Context, current *enterprisev4.PostgresDatabase, dbName string) { + current.Status.Databases = []enterprisev4.DatabaseInfo{{Name: dbName}} + Expect(k8sClient.Status().Update(ctx, current)).To(Succeed()) +} + +func expectProvisionedArtifacts(ctx context.Context, scenario readyClusterScenario, owner *enterprisev4.PostgresDatabase) { + adminSecret := &corev1.Secret{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-admin", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, adminSecret)).To(Succeed()) + Expect(adminSecret.Data).To(HaveKey("password")) + Expect(metav1.IsControlledBy(adminSecret, owner)).To(BeTrue()) + + rwSecret := &corev1.Secret{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-rw", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, rwSecret)).To(Succeed()) + Expect(rwSecret.Data).To(HaveKey("password")) + Expect(metav1.IsControlledBy(rwSecret, owner)).To(BeTrue()) + + configMap := &corev1.ConfigMap{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-config", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) + Expect(configMap.Data).To(HaveKeyWithValue("rw-host", "tenant-rw."+scenario.namespace+".svc.cluster.local")) + Expect(configMap.Data).To(HaveKeyWithValue("ro-host", "tenant-ro."+scenario.namespace+".svc.cluster.local")) + Expect(configMap.Data).To(HaveKeyWithValue("admin-user", adminRoleNameForTest(scenario.dbName))) + Expect(configMap.Data).To(HaveKeyWithValue("rw-user", rwRoleNameForTest(scenario.dbName))) + Expect(metav1.IsControlledBy(configMap, owner)).To(BeTrue()) +} + +func expectManagedRolesPatched(ctx context.Context, scenario readyClusterScenario) { + updatedCluster := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: scenario.clusterName, Namespace: scenario.namespace}, updatedCluster)).To(Succeed()) + Expect(managedRoleNames(updatedCluster.Spec.ManagedRoles)).To(ConsistOf(adminRoleNameForTest(scenario.dbName), rwRoleNameForTest(scenario.dbName))) +} + +func expectCNPGDatabaseCreated(ctx context.Context, scenario readyClusterScenario, owner *enterprisev4.PostgresDatabase) *cnpgv1.Database { + cnpgDatabase := &cnpgv1.Database{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, cnpgDatabase)).To(Succeed()) + Expect(cnpgDatabase.Spec.Name).To(Equal(scenario.dbName)) + Expect(cnpgDatabase.Spec.Owner).To(Equal(adminRoleNameForTest(scenario.dbName))) + Expect(cnpgDatabase.Spec.ClusterRef.Name).To(Equal(scenario.cnpgClusterName)) + Expect(metav1.IsControlledBy(cnpgDatabase, owner)).To(BeTrue()) + return cnpgDatabase +} + +func markCNPGDatabaseApplied(ctx context.Context, cnpgDatabase *cnpgv1.Database) { + applied := true + cnpgDatabase.Status.Applied = &applied + Expect(k8sClient.Status().Update(ctx, cnpgDatabase)).To(Succeed()) +} + +func expectPoolerConfigMap(ctx context.Context, scenario readyClusterScenario) { + configMap := &corev1.ConfigMap{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-config", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) + Expect(configMap.Data).To(HaveKeyWithValue("pooler-rw-host", scenario.cnpgClusterName+"-pooler-rw."+scenario.namespace+".svc.cluster.local")) + Expect(configMap.Data).To(HaveKeyWithValue("pooler-ro-host", scenario.cnpgClusterName+"-pooler-ro."+scenario.namespace+".svc.cluster.local")) +} + +func seedMissingClusterScenario(ctx context.Context, namespace, resourceName string, finalizers ...string) types.NamespacedName { + createPostgresDatabaseResource(ctx, namespace, resourceName, "absent-cluster", []enterprisev4.DatabaseDefinition{{Name: "appdb"}}, finalizers...) + return types.NamespacedName{Name: resourceName, Namespace: namespace} +} + +func seedConflictScenario(ctx context.Context, namespace, resourceName, clusterName string) types.NamespacedName { + createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{{Name: "appdb"}}, postgresDatabaseFinalizer) + postgresCluster := createPostgresClusterResource(ctx, namespace, clusterName) + markPostgresClusterReady(ctx, postgresCluster, "unused-cnpg", namespace, false) + return types.NamespacedName{Name: resourceName, Namespace: namespace} +} + +func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, clusterName string, postgresDB *enterprisev4.PostgresDatabase, dbNames ...string) { + ownerReferences := ownedByPostgresDatabase(postgresDB) + for _, dbName := range dbNames { + Expect(k8sClient.Create(ctx, &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-%s-admin", resourceName, dbName), + Namespace: namespace, + OwnerReferences: ownerReferences, + }, + })).To(Succeed()) + + Expect(k8sClient.Create(ctx, &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-%s-rw", resourceName, dbName), + Namespace: namespace, + OwnerReferences: ownerReferences, + }, + })).To(Succeed()) + + Expect(k8sClient.Create(ctx, &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-%s-config", resourceName, dbName), + Namespace: namespace, + OwnerReferences: ownerReferences, + }, + })).To(Succeed()) + + Expect(k8sClient.Create(ctx, &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-%s", resourceName, dbName), + Namespace: namespace, + OwnerReferences: ownerReferences, + }, + Spec: cnpgv1.DatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: clusterName}, + Name: dbName, + Owner: adminRoleNameForTest(dbName), + }, + })).To(Succeed()) + } +} + +func expectRetainedArtifact(ctx context.Context, name, namespace, resourceName string, obj client.Object) { + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, obj)).To(Succeed()) + Expect(obj.GetAnnotations()).To(HaveKeyWithValue("enterprise.splunk.com/retained-from", resourceName)) + Expect(obj.GetOwnerReferences()).To(BeEmpty()) +} + +func expectDeletedArtifact(ctx context.Context, name, namespace string, obj client.Object) { + err := k8sClient.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, obj) + Expect(apierrors.IsNotFound(err)).To(BeTrue(), "expected %s to be deleted", name) +} + +func expectStatusPhase(current *enterprisev4.PostgresDatabase, expectedPhase string) { + Expect(current.Status.Phase).NotTo(BeNil()) + Expect(*current.Status.Phase).To(Equal(expectedPhase)) +} + +func expectStatusCondition(current *enterprisev4.PostgresDatabase, conditionType string, expectedStatus metav1.ConditionStatus, expectedReason string) { + condition := meta.FindStatusCondition(current.Status.Conditions, conditionType) + Expect(condition).NotTo(BeNil(), "missing status condition %s", conditionType) + Expect(condition.Status).To(Equal(expectedStatus), "unexpected status for %s", conditionType) + Expect(condition.Reason).To(Equal(expectedReason), "unexpected reason for %s", conditionType) +} + +func expectReadyStatus(current *enterprisev4.PostgresDatabase, generation int64, expectedDatabase enterprisev4.DatabaseInfo) { + expectStatusPhase(current, "Ready") + Expect(current.Status.ObservedGeneration).NotTo(BeNil()) + Expect(*current.Status.ObservedGeneration).To(Equal(generation)) + Expect(current.Status.Databases).To(HaveLen(1)) + Expect(current.Status.Databases[0].Name).To(Equal(expectedDatabase.Name)) + Expect(current.Status.Databases[0].Ready).To(Equal(expectedDatabase.Ready)) + Expect(current.Status.Databases[0].AdminUserSecretRef).NotTo(BeNil()) + Expect(current.Status.Databases[0].RWUserSecretRef).NotTo(BeNil()) + Expect(current.Status.Databases[0].ConfigMapRef).NotTo(BeNil()) +} + +var _ = Describe("PostgresDatabase Controller", func() { + var ( + ctx context.Context + namespace string + ) + + BeforeEach(func() { + ctx = context.Background() + namespace = fmt.Sprintf("postgresdatabase-%d", time.Now().UnixNano()) + Expect(k8sClient.Create(ctx, &corev1.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: namespace}, + })).To(Succeed()) + }) + + AfterEach(func() { + ns := &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespace}} + Expect(k8sClient.Delete(ctx, ns)).To(Succeed()) + }) + + When("the referenced PostgresCluster is missing", func() { + Context("on the first reconcile", func() { + It("adds the finalizer", func() { + requestName := seedMissingClusterScenario(ctx, namespace, "missing-cluster") + + result, err := reconcilePostgresDatabase(ctx, requestName) + expectEmptyReconcileResult(result, err) + + current := fetchPostgresDatabase(ctx, requestName) + Expect(current.Finalizers).To(ContainElement(postgresDatabaseFinalizer)) + }) + }) + + Context("after the finalizer is already present", func() { + It("reports ClusterNotFound and requeues", func() { + requestName := seedMissingClusterScenario(ctx, namespace, "missing-cluster-with-finalizer", postgresDatabaseFinalizer) + + result, err := reconcilePostgresDatabase(ctx, requestName) + expectReconcileResult(result, err, 30*time.Second) + + current := fetchPostgresDatabase(ctx, requestName) + expectStatusPhase(current, "Pending") + expectStatusCondition(current, "ClusterReady", metav1.ConditionFalse, "ClusterNotFound") + clusterReady := meta.FindStatusCondition(current.Status.Conditions, "ClusterReady") + Expect(clusterReady.ObservedGeneration).To(Equal(current.Generation)) + }) + }) + }) + + When("the referenced PostgresCluster is ready", func() { + Context("and live grants are not invoked", func() { + It("reconciles secrets, configmaps, roles, and CNPG databases", func() { + scenario := newReadyClusterScenario(namespace, "ready-cluster", "tenant-cluster", "tenant-cnpg", "appdb") + seedReadyClusterScenario(ctx, scenario, false) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current := expectFinalizerAdded(ctx, scenario.requestName) + seedExistingDatabaseStatus(ctx, current, scenario.dbName) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectProvisionedArtifacts(ctx, scenario, current) + expectManagedRolesPatched(ctx, scenario) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + cnpgDatabase := expectCNPGDatabaseCreated(ctx, scenario, current) + markCNPGDatabaseApplied(ctx, cnpgDatabase) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current = fetchPostgresDatabase(ctx, scenario.requestName) + expectReadyStatus(current, current.Generation, enterprisev4.DatabaseInfo{Name: scenario.dbName, Ready: true}) + expectStatusCondition(current, "ClusterReady", metav1.ConditionTrue, "ClusterAvailable") + expectStatusCondition(current, "SecretsReady", metav1.ConditionTrue, "SecretsCreated") + expectStatusCondition(current, "ConfigMapsReady", metav1.ConditionTrue, "ConfigMapsCreated") + expectStatusCondition(current, "RolesReady", metav1.ConditionTrue, "UsersAvailable") + expectStatusCondition(current, "DatabasesReady", metav1.ConditionTrue, "DatabasesAvailable") + Expect(meta.FindStatusCondition(current.Status.Conditions, "PrivilegesReady")).To(BeNil()) + }) }) - AfterEach(func() { - // TODO(user): Cleanup logic after each test, like removing the resource instance. - resource := &enterprisev4.PostgresDatabase{} - err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) + Context("and connection pooling is enabled", func() { + It("adds pooler endpoints to the generated ConfigMap", func() { + scenario := newReadyClusterScenario(namespace, "pooler-cluster", "pooler-postgres", "pooler-cnpg", "appdb") + seedReadyClusterScenario(ctx, scenario, true) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) - By("Cleanup the specific resource instance Database") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + current := fetchPostgresDatabase(ctx, scenario.requestName) + seedExistingDatabaseStatus(ctx, current, scenario.dbName) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectPoolerConfigMap(ctx, scenario) + }) }) - It("should successfully reconcile the resource", func() { - By("Reconciling the created resource") - controllerReconciler := &PostgresDatabaseReconciler{ - Client: k8sClient, - Scheme: k8sClient.Scheme(), + }) + + When("role ownership conflicts exist", func() { + It("marks the resource failed and stops provisioning dependent resources", func() { + resourceName := "conflict-cluster" + clusterName := "conflict-postgres" + requestName := seedConflictScenario(ctx, namespace, resourceName, clusterName) + + conflictPatch := &unstructured.Unstructured{ + Object: map[string]any{ + "apiVersion": enterprisev4.GroupVersion.String(), + "kind": "PostgresCluster", + "metadata": map[string]any{ + "name": clusterName, + "namespace": namespace, + }, + "spec": map[string]any{ + "managedRoles": []map[string]any{ + {"name": "appdb_admin", "exists": true}, + {"name": "appdb_rw", "exists": true}, + }, + }, + }, } + Expect(k8sClient.Patch(ctx, conflictPatch, client.Apply, client.FieldOwner("postgresdatabase-legacy"))).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, requestName) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("role conflict detected")) + Expect(result).To(Equal(ctrl.Result{})) + + current := fetchPostgresDatabase(ctx, requestName) + expectStatusPhase(current, "Failed") + expectStatusCondition(current, "RolesReady", metav1.ConditionFalse, "RoleConflict") + + rolesReady := meta.FindStatusCondition(current.Status.Conditions, "RolesReady") + Expect(rolesReady.Message).To(ContainSubstring("appdb_admin")) + Expect(rolesReady.Message).To(ContainSubstring("postgresdatabase-legacy")) + + configMap := &corev1.ConfigMap{} + err = k8sClient.Get(ctx, types.NamespacedName{Name: "conflict-cluster-appdb-config", Namespace: namespace}, configMap) + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + + cnpgDatabase := &cnpgv1.Database{} + err = k8sClient.Get(ctx, types.NamespacedName{Name: "conflict-cluster-appdb", Namespace: namespace}, cnpgDatabase) + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + }) + }) + + When("the PostgresDatabase is being deleted", func() { + Context("with retained and deleted databases", func() { + It("orphans retained resources, removes deleted resources, and patches managed roles", func() { + resourceName := "delete-cluster" + clusterName := "delete-postgres" + requestName := types.NamespacedName{Name: resourceName, Namespace: namespace} + + postgresDB := createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{ + {Name: "keepdb", DeletionPolicy: "Retain"}, + {Name: "dropdb"}, + }, postgresDatabaseFinalizer) + Expect(k8sClient.Get(ctx, requestName, postgresDB)).To(Succeed()) + + createPostgresClusterResource(ctx, namespace, clusterName) + + initialRolesPatch := &unstructured.Unstructured{ + Object: map[string]any{ + "apiVersion": enterprisev4.GroupVersion.String(), + "kind": "PostgresCluster", + "metadata": map[string]any{ + "name": clusterName, + "namespace": namespace, + }, + "spec": map[string]any{ + "managedRoles": []map[string]any{ + {"name": "keepdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-keepdb-admin", "key": "password"}}, + {"name": "keepdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-keepdb-rw", "key": "password"}}, + {"name": "dropdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-dropdb-admin", "key": "password"}}, + {"name": "dropdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-dropdb-rw", "key": "password"}}, + }, + }, + }, + } + Expect(k8sClient.Patch(ctx, initialRolesPatch, client.Apply, client.FieldOwner("postgresdatabase-delete-cluster"))).To(Succeed()) + + seedOwnedDatabaseArtifacts(ctx, namespace, resourceName, clusterName, postgresDB, "keepdb", "dropdb") + + Expect(k8sClient.Delete(ctx, postgresDB)).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, requestName) + expectEmptyReconcileResult(result, err) + + expectRetainedArtifact(ctx, "delete-cluster-keepdb-config", namespace, resourceName, &corev1.ConfigMap{}) + expectRetainedArtifact(ctx, "delete-cluster-keepdb-admin", namespace, resourceName, &corev1.Secret{}) + expectRetainedArtifact(ctx, "delete-cluster-keepdb-rw", namespace, resourceName, &corev1.Secret{}) + expectRetainedArtifact(ctx, "delete-cluster-keepdb", namespace, resourceName, &cnpgv1.Database{}) + + expectDeletedArtifact(ctx, "delete-cluster-dropdb-config", namespace, &corev1.ConfigMap{}) + expectDeletedArtifact(ctx, "delete-cluster-dropdb-admin", namespace, &corev1.Secret{}) + expectDeletedArtifact(ctx, "delete-cluster-dropdb-rw", namespace, &corev1.Secret{}) + expectDeletedArtifact(ctx, "delete-cluster-dropdb", namespace, &cnpgv1.Database{}) + + updatedCluster := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: clusterName, Namespace: namespace}, updatedCluster)).To(Succeed()) + Expect(managedRoleNames(updatedCluster.Spec.ManagedRoles)).To(ConsistOf("keepdb_admin", "keepdb_rw")) - _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ - NamespacedName: typeNamespacedName, + current := &enterprisev4.PostgresDatabase{} + err = k8sClient.Get(ctx, requestName, current) + Expect(apierrors.IsNotFound(err) || !slices.Contains(current.Finalizers, postgresDatabaseFinalizer)).To(BeTrue()) }) - Expect(err).NotTo(HaveOccurred()) - // TODO(user): Add more specific assertions depending on your controller's reconciliation logic. - // Example: If you expect a certain status condition after reconciliation, verify it here. }) }) }) diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 142a8720c..9356a011f 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -19,10 +19,13 @@ package controller import ( "context" "fmt" + "os/exec" "path/filepath" + "strings" "testing" "time" + cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" "go.uber.org/zap/zapcore" @@ -46,6 +49,14 @@ var k8sClient client.Client var testEnv *envtest.Environment var k8sManager ctrl.Manager +func resolveCNPGModuleDir() string { + cmd := exec.Command("go", "list", "-f", "{{.Dir}}", "-m", "github.com/cloudnative-pg/cloudnative-pg") + output, err := cmd.Output() + Expect(err).NotTo(HaveOccurred()) + + return strings.TrimSpace(string(output)) +} + func TestAPIs(t *testing.T) { RegisterFailHandler(Fail) @@ -61,8 +72,12 @@ var _ = BeforeSuite(func(ctx context.Context) { By("bootstrapping test environment") + cnpgModuleDir := resolveCNPGModuleDir() testEnv = &envtest.Environment{ - CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")}, + CRDDirectoryPaths: []string{ + filepath.Join("..", "..", "config", "crd", "bases"), + filepath.Join(cnpgModuleDir, "config", "crd", "bases"), + }, ErrorIfCRDPathMissing: true, } @@ -76,6 +91,9 @@ var _ = BeforeSuite(func(ctx context.Context) { err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) + err = cnpgv1.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) @@ -152,7 +170,6 @@ var _ = BeforeSuite(func(ctx context.Context) { }).SetupWithManager(k8sManager); err != nil { Expect(err).NotTo(HaveOccurred()) } - go func() { err = k8sManager.Start(ctrl.SetupSignalHandler()) fmt.Printf("error %v", err.Error()) diff --git a/pkg/postgresql/cluster/core/cluster_unit_test.go b/pkg/postgresql/cluster/core/cluster_unit_test.go index e87173afb..e2466f54b 100644 --- a/pkg/postgresql/cluster/core/cluster_unit_test.go +++ b/pkg/postgresql/cluster/core/cluster_unit_test.go @@ -717,9 +717,8 @@ func TestPoolerExists(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.objects...).Build() - - got := poolerExists(context.Background(), c, cluster, "rw") - + got, err := poolerExists(context.Background(), c, cluster, "rw") + assert.NoError(t, err) assert.Equal(t, tt.expected, got) }) } diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 483076774..9ad701b01 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -20,6 +20,7 @@ import ( "k8s.io/apimachinery/pkg/types" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/apiutil" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/log" ) @@ -397,7 +398,11 @@ func parseRoleNames(raw []byte) []string { func patchManagedRoles(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) error { logger := log.FromContext(ctx) allRoles := buildManagedRoles(postgresDB.Name, postgresDB.Spec.Databases) - rolePatch := buildManagedRolesPatch(cluster, allRoles) + rolePatch, err := buildManagedRolesPatch(cluster, allRoles, c.Scheme()) + if err != nil { + logger.Error(err, "Failed to build managed roles patch", "postgresDatabase", postgresDB.Name) + return fmt.Errorf("building managed roles patch for PostgresDatabase %s: %w", postgresDB.Name, err) + } fieldManager := fieldManagerName(postgresDB.Name) if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManager)); err != nil { logger.Error(err, "Failed to add users to PostgresCluster", "postgresDatabase", postgresDB.Name) @@ -710,20 +715,27 @@ func buildManagedRoles(postgresDBName string, databases []enterprisev4.DatabaseD return roles } -func buildManagedRolesPatch(cluster *enterprisev4.PostgresCluster, roles []enterprisev4.ManagedRole) *unstructured.Unstructured { +func buildManagedRolesPatch(cluster *enterprisev4.PostgresCluster, roles []enterprisev4.ManagedRole, scheme *runtime.Scheme) (*unstructured.Unstructured, error) { + gvk, err := apiutil.GVKForObject(cluster, scheme) + if err != nil { + return nil, fmt.Errorf("failed to get GVK for Cluster: %w", err) + } return &unstructured.Unstructured{ Object: map[string]any{ - "apiVersion": cluster.APIVersion, - "kind": cluster.Kind, + "apiVersion": gvk.GroupVersion().String(), + "kind": gvk.Kind, "metadata": map[string]any{"name": cluster.Name, "namespace": cluster.Namespace}, "spec": map[string]any{"managedRoles": roles}, }, - } + }, nil } func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster, retained []enterprisev4.DatabaseDefinition) error { roles := buildManagedRoles(postgresDB.Name, retained) - rolePatch := buildManagedRolesPatch(cluster, roles) + rolePatch, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) + if err != nil { + return fmt.Errorf("building managed roles patch: %w", err) + } if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManagerName(postgresDB.Name))); err != nil { return fmt.Errorf("patching managed roles on deletion: %w", err) } diff --git a/pkg/postgresql/database/core/database_unit_test.go b/pkg/postgresql/database/core/database_unit_test.go index 0bde24a16..8d4da6c52 100644 --- a/pkg/postgresql/database/core/database_unit_test.go +++ b/pkg/postgresql/database/core/database_unit_test.go @@ -1289,6 +1289,7 @@ func TestBuildManagedRoles(t *testing.T) { } func TestBuildManagedRolesPatch(t *testing.T) { + scheme := testScheme(t) cluster := &enterprisev4.PostgresCluster{ TypeMeta: metav1.TypeMeta{ APIVersion: enterprisev4.GroupVersion.String(), @@ -1300,8 +1301,10 @@ func TestBuildManagedRolesPatch(t *testing.T) { }, } roles := buildManagedRoles("primary", []enterprisev4.DatabaseDefinition{{Name: "payments"}}) + c := testClient(t, scheme, cluster) - got := buildManagedRolesPatch(cluster, roles) + got, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) + require.NoError(t, err) assert.Equal(t, cluster.APIVersion, got.Object["apiVersion"]) assert.Equal(t, cluster.Kind, got.Object["kind"]) From b96a4ebdce4afdd70d626aaf0ad6f52ef5c32806 Mon Sep 17 00:00:00 2001 From: Kamil Ubych <56136249+limak9182@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:49:47 +0200 Subject: [PATCH 09/43] PostgresCluster and PostgresDatabase events emitting (#1798) * events emitting * emmiting events for secrets and configmaps * predicates change for database storming * revert to use emitOnConditionTransition * filter out only create events * comments cleanup * events parity (started&finished) with requeue --- cmd/main.go | 10 ++- .../controller/postgrescluster_controller.go | 8 +- .../controller/postgresdatabase_controller.go | 20 +++-- pkg/postgresql/cluster/core/cluster.go | 75 +++++++++++++++---- pkg/postgresql/cluster/core/events.go | 62 +++++++++++++++ pkg/postgresql/cluster/core/types.go | 12 +++ pkg/postgresql/database/core/database.go | 47 +++++++++--- pkg/postgresql/database/core/events.go | 58 ++++++++++++++ pkg/postgresql/database/core/types.go | 10 +++ 9 files changed, 265 insertions(+), 37 deletions(-) create mode 100644 pkg/postgresql/cluster/core/events.go create mode 100644 pkg/postgresql/database/core/events.go diff --git a/cmd/main.go b/cmd/main.go index 9b960c2bc..332623f0d 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -283,15 +283,17 @@ func main() { os.Exit(1) } if err := (&controller.PostgresDatabaseReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + Recorder: mgr.GetEventRecorderFor("postgresdatabase-controller"), }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "PostgresDatabase") os.Exit(1) } if err := (&controller.PostgresClusterReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + Recorder: mgr.GetEventRecorderFor("postgrescluster-controller"), }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "PostgresCluster") os.Exit(1) diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 163a07f9d..70b11c9e6 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/record" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" @@ -41,7 +42,8 @@ const ( // PostgresClusterReconciler reconciles PostgresCluster resources. type PostgresClusterReconciler struct { client.Client - Scheme *runtime.Scheme + Scheme *runtime.Scheme + Recorder record.EventRecorder } // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters,verbs=get;list;watch;create;update;patch;delete @@ -52,9 +54,11 @@ type PostgresClusterReconciler struct { // +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=clusters/status,verbs=get // +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=poolers,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=postgresql.cnpg.io,resources=poolers/status,verbs=get +// +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - return clustercore.PostgresClusterService(ctx, r.Client, r.Scheme, req) + rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder} + return clustercore.PostgresClusterService(ctx, rc, req) } // SetupWithManager registers the controller and owned resource watches. diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go index 40faa3eb3..0c6db9628 100644 --- a/internal/controller/postgresdatabase_controller.go +++ b/internal/controller/postgresdatabase_controller.go @@ -29,6 +29,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/record" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" @@ -41,7 +42,8 @@ import ( // PostgresDatabaseReconciler reconciles a PostgresDatabase object. type PostgresDatabaseReconciler struct { client.Client - Scheme *runtime.Scheme + Scheme *runtime.Scheme + Recorder record.EventRecorder } const ( @@ -56,6 +58,7 @@ const ( //+kubebuilder:rbac:groups=postgresql.cnpg.io,resources=databases,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups=core,resources=secrets,verbs=get;list;watch;create;update;delete //+kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;list;watch;create;update;delete +//+kubebuilder:rbac:groups=core,resources=events,verbs=create;patch func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { logger := log.FromContext(ctx) @@ -68,7 +71,8 @@ func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Req } return ctrl.Result{}, err } - return dbcore.PostgresDatabaseService(ctx, r.Client, r.Scheme, postgresDB, dbadapter.NewDBRepository) + rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder} + return dbcore.PostgresDatabaseService(ctx, rc, postgresDB, dbadapter.NewDBRepository) } // SetupWithManager sets up the controller with the Manager. @@ -104,9 +108,15 @@ func (r *PostgresDatabaseReconciler) SetupWithManager(mgr ctrl.Manager) error { }, ), )). - Owns(&cnpgv1.Database{}). - Owns(&corev1.Secret{}). - Owns(&corev1.ConfigMap{}). + Owns(&cnpgv1.Database{}, builder.WithPredicates(predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return false }, + })). + Owns(&corev1.Secret{}, builder.WithPredicates(predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return false }, + })). + Owns(&corev1.ConfigMap{}, builder.WithPredicates(predicate.Funcs{ + CreateFunc: func(event.CreateEvent) bool { return false }, + })). Named("postgresdatabase"). WithOptions(controller.Options{ MaxConcurrentReconciles: DatabaseTotalWorker, diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index d073b79cf..8642362fe 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -39,7 +39,8 @@ import ( ) // PostgresClusterService is the application service entry point called by the primary adapter (reconciler). -func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtime.Scheme, req ctrl.Request) (ctrl.Result, error) { +func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl.Request) (ctrl.Result, error) { + c := rc.Client logger := log.FromContext(ctx) logger.Info("Reconciling PostgresCluster", "name", req.Name, "namespace", req.Namespace) @@ -67,12 +68,13 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } // Finalizer handling must come before any other processing. - if err := handleFinalizer(ctx, c, scheme, postgresCluster, secret); err != nil { + if err := handleFinalizer(ctx, rc, postgresCluster, secret); err != nil { if apierrors.IsNotFound(err) { logger.Info("PostgresCluster already deleted, skipping finalizer update") return ctrl.Result{}, nil } logger.Error(err, "Failed to handle finalizer") + rc.emitWarning(postgresCluster, EventCleanupFailed, fmt.Sprintf("Cleanup failed: %v", err)) errs := []error{err} if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterDeleteFailed, fmt.Sprintf("Failed to delete resources during cleanup: %v", err), failedClusterPhase); statusErr != nil { @@ -105,6 +107,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim clusterClass := &enterprisev4.PostgresClusterClass{} if err := c.Get(ctx, client.ObjectKey{Name: postgresCluster.Spec.Class}, clusterClass); err != nil { logger.Error(err, "Unable to fetch referenced PostgresClusterClass", "className", postgresCluster.Spec.Class) + rc.emitWarning(postgresCluster, EventClusterClassNotFound, fmt.Sprintf("ClusterClass %s not found", postgresCluster.Spec.Class)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterClassNotFound, fmt.Sprintf("ClusterClass %s not found: %v", postgresCluster.Spec.Class, err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -116,6 +119,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim mergedConfig, err := getMergedConfig(clusterClass, postgresCluster) if err != nil { logger.Error(err, "Failed to merge PostgresCluster configuration") + rc.emitWarning(postgresCluster, EventConfigMergeFailed, fmt.Sprintf("Failed to merge configuration: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonInvalidConfiguration, fmt.Sprintf("Failed to merge configuration: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -135,6 +139,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim secretExists, secretErr := clusterSecretExists(ctx, c, postgresCluster.Namespace, postgresSecretName, secret) if secretErr != nil { logger.Error(secretErr, "Failed to check if PostgresCluster secret exists", "name", postgresSecretName) + rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to check secret existence: %v", secretErr)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, fmt.Sprintf("Failed to check secret existence: %v", secretErr), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -143,8 +148,9 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } if !secretExists { logger.Info("Creating PostgresCluster secret", "name", postgresSecretName) - if err := ensureClusterSecret(ctx, c, scheme, postgresCluster, postgresSecretName, secret); err != nil { + if err := ensureClusterSecret(ctx, c, rc.Scheme, postgresCluster, postgresSecretName, secret); err != nil { logger.Error(err, "Failed to ensure PostgresCluster secret", "name", postgresSecretName) + rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to generate cluster secret: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, fmt.Sprintf("Failed to generate PostgresCluster secret: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -159,23 +165,26 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim logger.Error(err, "Failed to update status after secret creation") return ctrl.Result{}, err } + rc.emitNormal(postgresCluster, EventSecretReady, fmt.Sprintf("Superuser secret %s created", postgresSecretName)) logger.Info("SuperUserSecretRef persisted to status") } // Re-attach ownerRef if it was stripped (e.g. by a Retain-policy deletion of a previous cluster). - hasOwnerRef, ownerRefErr := controllerutil.HasOwnerReference(secret.GetOwnerReferences(), postgresCluster, scheme) + hasOwnerRef, ownerRefErr := controllerutil.HasOwnerReference(secret.GetOwnerReferences(), postgresCluster, rc.Scheme) if ownerRefErr != nil { logger.Error(ownerRefErr, "Failed to check owner reference on Secret") return ctrl.Result{}, fmt.Errorf("failed to check owner reference on secret: %w", ownerRefErr) } if secretExists && !hasOwnerRef { logger.Info("Connecting existing secret to PostgresCluster by adding owner reference", "name", postgresSecretName) + rc.emitNormal(postgresCluster, EventClusterAdopted, fmt.Sprintf("Adopted existing CNPG cluster and secret %s", postgresSecretName)) originalSecret := secret.DeepCopy() - if err := ctrl.SetControllerReference(postgresCluster, secret, scheme); err != nil { + if err := ctrl.SetControllerReference(postgresCluster, secret, rc.Scheme); err != nil { return ctrl.Result{}, fmt.Errorf("failed to set controller reference on existing secret: %w", err) } if err := patchObject(ctx, c, originalSecret, secret, "Secret"); err != nil { logger.Error(err, "Failed to patch existing secret with controller reference") + rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to patch existing secret: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonSuperUserSecretFailed, fmt.Sprintf("Failed to patch existing secret: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -201,15 +210,17 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim switch { case apierrors.IsNotFound(err): logger.Info("CNPG Cluster not found, creating", "name", postgresCluster.Name) - newCluster := buildCNPGCluster(scheme, postgresCluster, mergedConfig, postgresSecretName) + newCluster := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName) if err := c.Create(ctx, newCluster); err != nil { logger.Error(err, "Failed to create CNPG Cluster") + rc.emitWarning(postgresCluster, EventClusterCreateFailed, fmt.Sprintf("Failed to create CNPG cluster: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildFailed, fmt.Sprintf("Failed to create CNPG Cluster: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + rc.emitNormal(postgresCluster, EventClusterCreationStarted, "CNPG cluster created, waiting for healthy state") if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, "CNPG Cluster created", pendingClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -241,12 +252,19 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{Requeue: true}, nil case patchErr != nil: logger.Error(patchErr, "Failed to patch CNPG Cluster", "name", cnpgCluster.Name) + rc.emitWarning(postgresCluster, EventClusterUpdateFailed, fmt.Sprintf("Failed to patch CNPG cluster: %v", patchErr)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterPatchFailed, fmt.Sprintf("Failed to patch CNPG Cluster: %v", patchErr), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, patchErr default: + if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, + "CNPG Cluster spec updated, waiting for healthy state", provisioningClusterPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status after patch") + return ctrl.Result{Requeue: true}, nil + } + rc.emitNormal(postgresCluster, EventClusterUpdateStarted, "CNPG cluster spec updated, waiting for healthy state") logger.Info("CNPG Cluster patched successfully, requeueing for status update", "name", cnpgCluster.Name) return ctrl.Result{RequeueAfter: retryDelay}, nil } @@ -255,6 +273,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim // Reconcile ManagedRoles. if err := reconcileManagedRoles(ctx, c, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to reconcile managed roles") + rc.emitWarning(postgresCluster, EventManagedRolesFailed, fmt.Sprintf("Failed to reconcile managed roles: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonManagedRolesFailed, fmt.Sprintf("Failed to reconcile managed roles: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -320,14 +339,16 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } return ctrl.Result{RequeueAfter: retryDelay}, nil } - if err := createOrUpdateConnectionPoolers(ctx, c, scheme, postgresCluster, mergedConfig, cnpgCluster); err != nil { + if err := createOrUpdateConnectionPoolers(ctx, c, rc.Scheme, postgresCluster, mergedConfig, cnpgCluster); err != nil { logger.Error(err, "Failed to reconcile connection pooler") + rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to reconcile connection pooler: %v", err)) if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, fmt.Sprintf("Failed to reconcile connection pooler: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + rc.emitNormal(postgresCluster, EventPoolerCreationStarted, "Connection poolers created, waiting for readiness") logger.Info("Connection Poolers created, requeueing to check readiness") if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, "Connection poolers are being provisioned", provisioningClusterPhase); statusErr != nil { @@ -359,22 +380,27 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim return ctrl.Result{RequeueAfter: retryDelay}, nil default: + oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) + copy(oldConditions, postgresCluster.Status.Conditions) if err := syncPoolerStatus(ctx, c, postgresCluster); err != nil { logger.Error(err, "Failed to sync pooler status") + rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to sync pooler status: %v", err)) if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, fmt.Sprintf("Failed to sync pooler status: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + rc.emitPoolerReadyTransition(postgresCluster, oldConditions) } // Reconcile ConfigMap when CNPG cluster is healthy. if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { logger.Info("CNPG Cluster is ready, reconciling ConfigMap for connection details") - desiredCM, err := generateConfigMap(ctx, c, scheme, postgresCluster, cnpgCluster, postgresSecretName) + desiredCM, err := generateConfigMap(ctx, c, rc.Scheme, postgresCluster, cnpgCluster, postgresSecretName) if err != nil { logger.Error(err, "Failed to generate ConfigMap") + rc.emitWarning(postgresCluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, fmt.Sprintf("Failed to generate ConfigMap: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -387,7 +413,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim cm.Annotations = desiredCM.Annotations cm.Labels = desiredCM.Labels if !metav1.IsControlledBy(cm, postgresCluster) { - if err := ctrl.SetControllerReference(postgresCluster, cm, scheme); err != nil { + if err := ctrl.SetControllerReference(postgresCluster, cm, rc.Scheme); err != nil { return fmt.Errorf("set controller reference failed: %w", err) } } @@ -395,6 +421,7 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim }) if err != nil { logger.Error(err, "Failed to reconcile ConfigMap", "name", desiredCM.Name) + rc.emitWarning(postgresCluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err), failedClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -403,8 +430,10 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } switch createOrUpdateResult { case controllerutil.OperationResultCreated: + rc.emitNormal(postgresCluster, EventConfigMapReady, fmt.Sprintf("ConfigMap %s created", desiredCM.Name)) logger.Info("ConfigMap created", "name", desiredCM.Name) case controllerutil.OperationResultUpdated: + rc.emitNormal(postgresCluster, EventConfigMapReady, fmt.Sprintf("ConfigMap %s updated", desiredCM.Name)) logger.Info("ConfigMap updated", "name", desiredCM.Name) default: logger.Info("ConfigMap unchanged", "name", desiredCM.Name) @@ -415,6 +444,10 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } // Final status sync. + var oldPhase string + if postgresCluster.Status.Phase != nil { + oldPhase = *postgresCluster.Status.Phase + } if err := syncStatus(ctx, c, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to sync status") if apierrors.IsConflict(err) { @@ -423,6 +456,11 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim } return ctrl.Result{}, fmt.Errorf("failed to sync status: %w", err) } + var newPhase string + if postgresCluster.Status.Phase != nil { + newPhase = *postgresCluster.Status.Phase + } + rc.emitClusterPhaseTransition(postgresCluster, oldPhase, newPhase) if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { rwPooler := &cnpgv1.Pooler{} rwErr := c.Get(ctx, types.NamespacedName{ @@ -436,7 +474,10 @@ func PostgresClusterService(ctx context.Context, c client.Client, scheme *runtim }, roPooler) if rwErr == nil && roErr == nil && arePoolersReady(rwPooler, roPooler) { logger.Info("Poolers are ready, syncing pooler status") + poolerOldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) + copy(poolerOldConditions, postgresCluster.Status.Conditions) _ = syncPoolerStatus(ctx, c, postgresCluster) + rc.emitPoolerReadyTransition(postgresCluster, poolerOldConditions) } } logger.Info("Reconciliation complete") @@ -924,7 +965,9 @@ func deleteCNPGCluster(ctx context.Context, c client.Client, cnpgCluster *cnpgv1 // handleFinalizer processes deletion cleanup: removes poolers, then deletes or orphans the CNPG Cluster // based on ClusterDeletionPolicy, then removes the finalizer. -func handleFinalizer(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, secret *corev1.Secret) error { +func handleFinalizer(ctx context.Context, rc *ReconcileContext, cluster *enterprisev4.PostgresCluster, secret *corev1.Secret) error { + c := rc.Client + scheme := rc.Scheme logger := log.FromContext(ctx) if cluster.GetDeletionTimestamp() == nil { logger.Info("PostgresCluster not marked for deletion, skipping finalizer logic") @@ -947,17 +990,16 @@ func handleFinalizer(ctx context.Context, c client.Client, scheme *runtime.Schem } logger.Info("Processing finalizer cleanup for PostgresCluster") - if err := deleteConnectionPoolers(ctx, c, cluster); err != nil { - logger.Error(err, "Failed to delete connection poolers during cleanup") - return fmt.Errorf("failed to delete connection poolers: %w", err) - } - - // Dereference *string — empty string falls through to default (unknown policy). policy := "" if cluster.Spec.ClusterDeletionPolicy != nil { policy = *cluster.Spec.ClusterDeletionPolicy } + if err := deleteConnectionPoolers(ctx, c, cluster); err != nil { + logger.Error(err, "Failed to delete connection poolers during cleanup") + return fmt.Errorf("failed to delete connection poolers: %w", err) + } + switch policy { case clusterDeletionPolicyDelete: logger.Info("ClusterDeletionPolicy is 'Delete', deleting CNPG Cluster and associated resources") @@ -1024,6 +1066,7 @@ func handleFinalizer(ctx context.Context, c client.Client, scheme *runtime.Schem logger.Error(err, "Failed to remove finalizer from PostgresCluster") return fmt.Errorf("failed to remove finalizer: %w", err) } + rc.emitNormal(cluster, EventCleanupComplete, fmt.Sprintf("Cleanup complete (policy: %s)", policy)) logger.Info("Finalizer removed, cleanup complete") return nil } diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go new file mode 100644 index 000000000..afcfd768e --- /dev/null +++ b/pkg/postgresql/cluster/core/events.go @@ -0,0 +1,62 @@ +package core + +import ( + "fmt" + + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + EventSecretReady = "SecretReady" + EventConfigMapReady = "ConfigMapReady" + EventClusterAdopted = "ClusterAdopted" + EventClusterCreationStarted = "ClusterCreationStarted" + EventClusterUpdateStarted = "ClusterUpdateStarted" + EventClusterReady = "ClusterReady" + EventPoolerCreationStarted = "PoolerCreationStarted" + EventPoolerReady = "PoolerReady" + EventCleanupComplete = "CleanupComplete" + EventClusterClassNotFound = "ClusterClassNotFound" + EventConfigMergeFailed = "ConfigMergeFailed" + EventSecretReconcileFailed = "SecretReconcileFailed" + EventClusterCreateFailed = "ClusterCreateFailed" + EventClusterUpdateFailed = "ClusterUpdateFailed" + EventManagedRolesFailed = "ManagedRolesFailed" + EventPoolerReconcileFailed = "PoolerReconcileFailed" + EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" + EventClusterDegraded = "ClusterDegraded" + EventCleanupFailed = "CleanupFailed" +) + +func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { + rc.Recorder.Event(obj, corev1.EventTypeNormal, reason, message) +} + +func (rc *ReconcileContext) emitWarning(obj client.Object, reason, message string) { + rc.Recorder.Event(obj, corev1.EventTypeWarning, reason, message) +} + +// emitClusterPhaseTransition emits ClusterReady or ClusterDegraded only on +// actual phase transitions. Provisioning and Configuring are expected phases +// after our own create/update operations, so they don't emit ClusterDegraded. +func (rc *ReconcileContext) emitClusterPhaseTransition(obj client.Object, oldPhase, newPhase string) { + switch { + case oldPhase != string(readyClusterPhase) && newPhase == string(readyClusterPhase): + rc.emitNormal(obj, EventClusterReady, "Cluster is up and running") + // only when cluster degraded from ready but not to provisioning or configuring + case oldPhase == string(readyClusterPhase) && newPhase != string(readyClusterPhase) && + newPhase != string(provisioningClusterPhase) && newPhase != string(configuringClusterPhase): + rc.emitWarning(obj, EventClusterDegraded, fmt.Sprintf("Cluster entered phase: %s", newPhase)) + } +} + +// emitPoolerReadyTransition emits PoolerReady only when the condition was not +// previously True — prevents re-emission on every reconcile while already ready. +func (rc *ReconcileContext) emitPoolerReadyTransition(obj client.Object, conditions []metav1.Condition) { + if !meta.IsStatusConditionTrue(conditions, string(poolerReady)) { + rc.emitNormal(obj, EventPoolerReady, "Connection poolers are ready") + } +} diff --git a/pkg/postgresql/cluster/core/types.go b/pkg/postgresql/cluster/core/types.go index 19886fd73..042a5ae82 100644 --- a/pkg/postgresql/cluster/core/types.go +++ b/pkg/postgresql/cluster/core/types.go @@ -5,8 +5,20 @@ import ( enterprisev4 "github.com/splunk/splunk-operator/api/v4" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/record" + "sigs.k8s.io/controller-runtime/pkg/client" ) +// ReconcileContext bundles infrastructure dependencies injected by the controller +// shell (primary adapter). The service layer declares what it needs via this struct +// rather than reaching into context — keeping ports explicit and testable. +type ReconcileContext struct { + Client client.Client + Scheme *runtime.Scheme + Recorder record.EventRecorder +} + // normalizedCNPGClusterSpec is a subset of cnpgv1.ClusterSpec fields used for drift detection. // Only fields we set in buildCNPGClusterSpec are included — CNPG-injected defaults are excluded // to avoid false-positive drift on every reconcile. diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 483076774..19f9b7ced 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -32,11 +32,11 @@ type NewDBRepoFunc func(ctx context.Context, host, dbName, password string) (DBR // newDBRepo is injected to keep the core free of pgx imports. func PostgresDatabaseService( ctx context.Context, - c client.Client, - scheme *runtime.Scheme, + rc *ReconcileContext, postgresDB *enterprisev4.PostgresDatabase, newDBRepo NewDBRepoFunc, ) (ctrl.Result, error) { + c := rc.Client logger := log.FromContext(ctx) logger.Info("Reconciling PostgresDatabase", "name", postgresDB.Name, "namespace", postgresDB.Namespace) @@ -46,8 +46,9 @@ func PostgresDatabaseService( // Finalizer: cleanup on deletion, register on creation. if postgresDB.GetDeletionTimestamp() != nil { - if err := handleDeletion(ctx, c, postgresDB); err != nil { + if err := handleDeletion(ctx, rc, postgresDB); err != nil { logger.Error(err, "Cleanup failed for PostgresDatabase") + rc.emitWarning(postgresDB, EventCleanupFailed, fmt.Sprintf("Cleanup failed: %v", err)) return ctrl.Result{}, err } return ctrl.Result{}, nil @@ -77,6 +78,7 @@ func PostgresDatabaseService( cluster, err := fetchCluster(ctx, c, postgresDB) if err != nil { if errors.IsNotFound(err) { + rc.emitWarning(postgresDB, EventClusterNotFound, fmt.Sprintf("PostgresCluster %s not found", postgresDB.Spec.ClusterRef.Name)) if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterNotFound, "Cluster CR not found", pendingDBPhase); err != nil { return ctrl.Result{}, err } @@ -93,12 +95,14 @@ func PostgresDatabaseService( switch clusterStatus { case ClusterNotReady, ClusterNoProvisionerRef: + rc.emitWarning(postgresDB, EventClusterNotReady, "Referenced PostgresCluster is not ready yet") if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterProvisioning, "Cluster is not in ready state yet", pendingDBPhase); err != nil { return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil case ClusterReady: + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, clusterReady, EventClusterValidated, "Referenced PostgresCluster is ready") if err := updateStatus(clusterReady, metav1.ConditionTrue, reasonClusterAvailable, "Cluster is operational", provisioningDBPhase); err != nil { return ctrl.Result{}, err } @@ -111,6 +115,7 @@ func PostgresDatabaseService( "If you deleted a previous PostgresDatabase, recreate it with the original name to re-adopt the orphaned resources.", strings.Join(roleConflicts, ", ")) logger.Error(nil, conflictMsg) + rc.emitWarning(postgresDB, EventRoleConflict, conflictMsg) errs := []error{fmt.Errorf("role conflict detected: %s", strings.Join(roleConflicts, ", "))} if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRoleConflict, conflictMsg, failedDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -132,13 +137,15 @@ func PostgresDatabaseService( // Phase: CredentialProvisioning — secrets must exist before roles are patched. // CNPG rejects a PasswordSecretRef pointing at a missing secret. - if err := reconcileUserSecrets(ctx, c, scheme, postgresDB); err != nil { + if err := reconcileUserSecrets(ctx, c, rc.Scheme, postgresDB); err != nil { + rc.emitWarning(postgresDB, EventUserSecretsFailed, fmt.Sprintf("Failed to reconcile user secrets: %v", err)) if statusErr := updateStatus(secretsReady, metav1.ConditionFalse, reasonSecretsCreationFailed, fmt.Sprintf("Failed to reconcile user secrets: %v", err), provisioningDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, secretsReady, EventSecretsReady, fmt.Sprintf("All secrets provisioned for %d databases", len(postgresDB.Spec.Databases))) if err := updateStatus(secretsReady, metav1.ConditionTrue, reasonSecretsCreated, fmt.Sprintf("All secrets provisioned for %d databases", len(postgresDB.Spec.Databases)), provisioningDBPhase); err != nil { return ctrl.Result{}, err @@ -147,13 +154,15 @@ func PostgresDatabaseService( // Phase: ConnectionMetadata — ConfigMaps carry connection info consumers need as soon // as databases are ready, so they are created alongside secrets. endpoints := resolveClusterEndpoints(cluster, cnpgCluster, postgresDB.Namespace) - if err := reconcileRoleConfigMaps(ctx, c, scheme, postgresDB, endpoints); err != nil { + if err := reconcileRoleConfigMaps(ctx, c, rc.Scheme, postgresDB, endpoints); err != nil { + rc.emitWarning(postgresDB, EventAccessConfigFailed, fmt.Sprintf("Failed to reconcile ConfigMaps: %v", err)) if statusErr := updateStatus(configMapsReady, metav1.ConditionFalse, reasonConfigMapsCreationFailed, fmt.Sprintf("Failed to reconcile ConfigMaps: %v", err), provisioningDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, configMapsReady, EventConfigMapsReady, fmt.Sprintf("All ConfigMaps provisioned for %d databases", len(postgresDB.Spec.Databases))) if err := updateStatus(configMapsReady, metav1.ConditionTrue, reasonConfigMapsCreated, fmt.Sprintf("All ConfigMaps provisioned for %d databases", len(postgresDB.Spec.Databases)), provisioningDBPhase); err != nil { return ctrl.Result{}, err @@ -173,8 +182,10 @@ func PostgresDatabaseService( logger.Info("User spec changed, patching CNPG Cluster", "missing", missing) if err := patchManagedRoles(ctx, c, postgresDB, cluster); err != nil { logger.Error(err, "Failed to patch users in CNPG Cluster") + rc.emitWarning(postgresDB, EventManagedRolesPatchFailed, fmt.Sprintf("Failed to patch managed roles: %v", err)) return ctrl.Result{}, err } + rc.emitNormal(postgresDB, EventRoleReconciliationStarted, fmt.Sprintf("Patched managed roles, waiting for %d roles to reconcile", len(desiredUsers))) if err := updateStatus(rolesReady, metav1.ConditionFalse, reasonWaitingForCNPG, fmt.Sprintf("Waiting for %d roles to be reconciled", len(desiredUsers)), provisioningDBPhase); err != nil { return ctrl.Result{}, err @@ -184,6 +195,7 @@ func PostgresDatabaseService( notReadyRoles, err := verifyRolesReady(ctx, desiredUsers, cnpgCluster) if err != nil { + rc.emitWarning(postgresDB, EventRoleFailed, fmt.Sprintf("Role reconciliation failed: %v", err)) if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonUsersCreationFailed, fmt.Sprintf("Role creation failed: %v", err), failedDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -197,16 +209,22 @@ func PostgresDatabaseService( } return ctrl.Result{RequeueAfter: retryDelay}, nil } + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, rolesReady, EventRolesReady, fmt.Sprintf("All %d roles reconciled", len(desiredUsers))) if err := updateStatus(rolesReady, metav1.ConditionTrue, reasonUsersAvailable, fmt.Sprintf("All %d users in PostgreSQL", len(desiredUsers)), provisioningDBPhase); err != nil { return ctrl.Result{}, err } // Phase: DatabaseProvisioning - if err := reconcileCNPGDatabases(ctx, c, scheme, postgresDB, cluster); err != nil { + adopted, err := reconcileCNPGDatabases(ctx, c, rc.Scheme, postgresDB, cluster) + if err != nil { logger.Error(err, "Failed to reconcile CNPG Databases") + rc.emitWarning(postgresDB, EventDatabasesReconcileFailed, fmt.Sprintf("Failed to reconcile databases: %v", err)) return ctrl.Result{}, err } + if len(adopted) > 0 { + rc.emitNormal(postgresDB, EventResourcesAdopted, fmt.Sprintf("Adopted retained databases: %v", adopted)) + } notReadyDBs, err := verifyDatabasesReady(ctx, c, postgresDB) if err != nil { @@ -214,12 +232,14 @@ func PostgresDatabaseService( return ctrl.Result{}, err } if len(notReadyDBs) > 0 { + rc.emitOnceBeforeWait(postgresDB, postgresDB.Status.Conditions, databasesReady, EventDatabaseReconciliationStarted, fmt.Sprintf("Reconciling %d databases, waiting for readiness", len(postgresDB.Spec.Databases))) if err := updateStatus(databasesReady, metav1.ConditionFalse, reasonWaitingForCNPG, fmt.Sprintf("Waiting for databases to be ready: %v", notReadyDBs), provisioningDBPhase); err != nil { return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil } + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, databasesReady, EventDatabasesReady, fmt.Sprintf("All %d databases ready", len(postgresDB.Spec.Databases))) if err := updateStatus(databasesReady, metav1.ConditionTrue, reasonDatabasesAvailable, fmt.Sprintf("All %d databases ready", len(postgresDB.Spec.Databases)), readyDBPhase); err != nil { return ctrl.Result{}, err @@ -255,18 +275,21 @@ func PostgresDatabaseService( } if err := reconcileRWRolePrivileges(ctx, endpoints.RWHost, string(pw), dbNames, newDBRepo); err != nil { + rc.emitWarning(postgresDB, EventPrivilegesGrantFailed, fmt.Sprintf("Failed to grant RW role privileges: %v", err)) if statusErr := updateStatus(privilegesReady, metav1.ConditionFalse, reasonPrivilegesGrantFailed, fmt.Sprintf("Failed to grant RW role privileges: %v", err), provisioningDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } return ctrl.Result{}, err } + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, privilegesReady, EventPrivilegesReady, fmt.Sprintf("RW role privileges granted for all %d databases", len(postgresDB.Spec.Databases))) if err := updateStatus(privilegesReady, metav1.ConditionTrue, reasonPrivilegesGranted, fmt.Sprintf("RW role privileges granted for all %d databases", len(postgresDB.Spec.Databases)), readyDBPhase); err != nil { return ctrl.Result{}, err } } + rc.emitNormal(postgresDB, EventPostgresDatabaseReady, fmt.Sprintf("PostgresDatabase %s is ready", postgresDB.Name)) postgresDB.Status.Databases = populateDatabaseStatus(postgresDB) postgresDB.Status.ObservedGeneration = &postgresDB.Generation @@ -429,8 +452,9 @@ func verifyRolesReady(ctx context.Context, expectedUsers []string, cnpgCluster * return notReady, nil } -func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) error { +func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) ([]string, error) { logger := log.FromContext(ctx) + var adopted []string for _, dbSpec := range postgresDB.Spec.Databases { cnpgDBName := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) cnpgDB := &cnpgv1.Database{ @@ -442,6 +466,7 @@ func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtim if reAdopting { logger.Info("Re-adopting orphaned CNPG Database", "name", cnpgDBName) delete(cnpgDB.Annotations, annotationRetainedFrom) + adopted = append(adopted, dbSpec.Name) } if cnpgDB.CreationTimestamp.IsZero() || reAdopting { return controllerutil.SetControllerReference(postgresDB, cnpgDB, scheme) @@ -449,10 +474,10 @@ func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtim return nil }) if err != nil { - return fmt.Errorf("reconciling CNPG Database %s: %w", cnpgDBName, err) + return adopted, fmt.Errorf("reconciling CNPG Database %s: %w", cnpgDBName, err) } } - return nil + return adopted, nil } func verifyDatabasesReady(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) ([]string, error) { @@ -499,7 +524,8 @@ func buildDeletionPlan(databases []enterprisev4.DatabaseDefinition) deletionPlan return plan } -func handleDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) error { +func handleDeletion(ctx context.Context, rc *ReconcileContext, postgresDB *enterprisev4.PostgresDatabase) error { + c := rc.Client plan := buildDeletionPlan(postgresDB.Spec.Databases) if err := orphanRetainedResources(ctx, c, postgresDB, plan.retained); err != nil { return err @@ -517,6 +543,7 @@ func handleDeletion(ctx context.Context, c client.Client, postgresDB *enterprise } return fmt.Errorf("removing finalizer: %w", err) } + rc.emitNormal(postgresDB, EventCleanupComplete, fmt.Sprintf("Cleanup complete (%d retained, %d deleted)", len(plan.retained), len(plan.deleted))) log.FromContext(ctx).Info("Cleanup complete", "name", postgresDB.Name, "retained", len(plan.retained), "deleted", len(plan.deleted)) return nil } diff --git a/pkg/postgresql/database/core/events.go b/pkg/postgresql/database/core/events.go new file mode 100644 index 000000000..987b8bbfb --- /dev/null +++ b/pkg/postgresql/database/core/events.go @@ -0,0 +1,58 @@ +package core + +import ( + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + EventPostgresDatabaseReady = "PostgresDatabaseReady" + EventResourcesAdopted = "ResourcesAdopted" + EventClusterValidated = "ClusterValidated" + EventSecretsReady = "SecretsReady" + EventConfigMapsReady = "ConfigMapsReady" + EventRoleReconciliationStarted = "RoleReconciliationStarted" + EventRolesReady = "RolesReady" + EventDatabaseReconciliationStarted = "DatabaseReconciliationStarted" + EventDatabasesReady = "DatabasesReady" + EventPrivilegesReady = "PrivilegesReady" + EventCleanupComplete = "CleanupComplete" + EventClusterNotFound = "ClusterNotFound" + EventClusterNotReady = "ClusterNotReady" + EventRoleConflict = "RoleConflict" + EventUserSecretsFailed = "UserSecretsFailed" + EventAccessConfigFailed = "AccessConfigFailed" + EventManagedRolesPatchFailed = "ManagedRolesPatchFailed" + EventRoleFailed = "RoleFailed" + EventDatabasesReconcileFailed = "DatabasesReconcileFailed" + EventPrivilegesGrantFailed = "PrivilegesGrantFailed" + EventCleanupFailed = "CleanupFailed" +) + +func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { + rc.Recorder.Event(obj, corev1.EventTypeNormal, reason, message) +} + +func (rc *ReconcileContext) emitWarning(obj client.Object, reason, message string) { + rc.Recorder.Event(obj, corev1.EventTypeWarning, reason, message) +} + +// emitOnConditionTransition emits a Normal event only when the condition is not +// already True — prevents duplicate events on repeated reconciles. +func (rc *ReconcileContext) emitOnConditionTransition(obj client.Object, conditions []metav1.Condition, condType conditionTypes, reason, message string) { + if !meta.IsStatusConditionTrue(conditions, string(condType)) { + rc.emitNormal(obj, reason, message) + } +} + +// emitOnceBeforeWait emits a Normal event when the condition is either absent +// or currently True — i.e. the first time we enter a wait cycle. On subsequent +// requeue polls the condition is already False, so no duplicate is emitted. +func (rc *ReconcileContext) emitOnceBeforeWait(obj client.Object, conditions []metav1.Condition, condType conditionTypes, reason, message string) { + cond := meta.FindStatusCondition(conditions, string(condType)) + if cond == nil || cond.Status == metav1.ConditionTrue { + rc.emitNormal(obj, reason, message) + } +} diff --git a/pkg/postgresql/database/core/types.go b/pkg/postgresql/database/core/types.go index 0d1fa116a..bf07fd19f 100644 --- a/pkg/postgresql/database/core/types.go +++ b/pkg/postgresql/database/core/types.go @@ -4,8 +4,18 @@ import ( "time" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/record" + "sigs.k8s.io/controller-runtime/pkg/client" ) +// ReconcileContext bundles infrastructure dependencies injected by the controller +type ReconcileContext struct { + Client client.Client + Scheme *runtime.Scheme + Recorder record.EventRecorder +} + type reconcileDBPhases string type conditionTypes string type conditionReasons string From b5bed4daea749397f4df0a31371d81fd8faec46e Mon Sep 17 00:00:00 2001 From: Jakub Koterba Date: Mon, 30 Mar 2026 20:19:44 +0200 Subject: [PATCH 10/43] suite_test revert and simplify, cover more reconcile cases --- .../controller/postgrescluster_controller.go | 2 - .../postgrescluster_controller_test.go | 382 +++++++++++------- internal/controller/suite_test.go | 223 +++++----- 3 files changed, 368 insertions(+), 239 deletions(-) diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 6a2181afc..dfa1f7eaf 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -142,8 +142,6 @@ func cnpgPoolerPredicator() predicate.Predicate { } // secretPredicator triggers only on owner reference changes. - -// secretPredicator filters Secret events to trigger reconciles on creation, deletion, or owner reference changes. func secretPredicator() predicate.Predicate { return predicate.Funcs{ CreateFunc: func(event.CreateEvent) bool { return true }, diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 0f690754b..d405a35bf 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -19,8 +19,9 @@ package controller import ( "context" "fmt" + "strconv" + "time" - corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" @@ -38,56 +39,81 @@ import ( "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" ) +/* +* Test cases: +* PC-01 creates managed resources and status refs +* PC-02 adds finalizer on reconcile +* PC-07 is idempotent across repeated reconciles +* PC-03 Delete policy removes children and finalizer +* PC-04 Retain policy preserves children and removes ownerRefs +* PC-05 fails when PostgresClusterClass is missing +* PC-06 restores drifted managed spec +* PC-08 triggers on generation/finalizer/deletion changes +* PC-09 ignores no-op updates + */ + var _ = Describe("PostgresCluster Controller", func() { + const ( + postgresVersion = "15.10" + clusterMemberCount = int32(2) + storageAmount = "1Gi" + poolerEnabled = false + deletePolicy = "Delete" + retainPolicy = "Retain" + namespace = "default" + classNamePrefix = "postgresql-dev-" + clusterNamePrefix = "postgresql-cluster-dev-" + provisioner = "postgresql.cnpg.io" + ) + var ( - ctx context.Context - namespace string - clusterName string - className string - reconciler *PostgresClusterReconciler - req reconcile.Request - cnpg *cnpgv1.Cluster + ctx context.Context + clusterName string + className string + pgCluster *enterprisev4.PostgresCluster + pgClusterClass *enterprisev4.PostgresClusterClass + pgClusterKey types.NamespacedName + pgClusterClassKey types.NamespacedName + reconciler *PostgresClusterReconciler + req reconcile.Request ) BeforeEach(func() { - specLine := CurrentSpecReport().LeafNodeLocation.LineNumber - nameSuffix := fmt.Sprintf("%d-%d-%d", GinkgoParallelProcess(), GinkgoRandomSeed(), specLine) + nameSuffix := fmt.Sprintf("%d-%d-%d", + GinkgoParallelProcess(), + GinkgoRandomSeed(), + CurrentSpecReport().LeafNodeLocation.LineNumber, + ) ctx = context.Background() - namespace = "default" - clusterName = "postgresql-cluster-dev-" + nameSuffix - className = "postgresql-dev-" + nameSuffix - cnpg = &cnpgv1.Cluster{} - - // Arrange: class defaults used by getMergedConfig() - postgresVersion := "15.10" - instances := int32(2) - storage := resource.MustParse("1Gi") - poolerEnabled := false - - class := &enterprisev4.PostgresClusterClass{ + clusterName = clusterNamePrefix + nameSuffix + className = classNamePrefix + nameSuffix + pgClusterKey = types.NamespacedName{Name: clusterName, Namespace: namespace} + pgClusterClassKey = types.NamespacedName{Name: className, Namespace: namespace} + + pgClusterClass = &enterprisev4.PostgresClusterClass{ ObjectMeta: metav1.ObjectMeta{Name: className}, Spec: enterprisev4.PostgresClusterClassSpec{ - Provisioner: "postgresql.cnpg.io", + Provisioner: provisioner, Config: &enterprisev4.PostgresClusterClassConfig{ - Instances: &instances, - Storage: &storage, - PostgresVersion: &postgresVersion, - ConnectionPoolerEnabled: &poolerEnabled, + Instances: &[]int32{clusterMemberCount}[0], + Storage: &[]resource.Quantity{resource.MustParse(storageAmount)}[0], + PostgresVersion: &[]string{postgresVersion}[0], + ConnectionPoolerEnabled: &[]bool{poolerEnabled}[0], }, }, } - Expect(k8sClient.Create(ctx, class)).To(Succeed()) - pc := &enterprisev4.PostgresCluster{ + Expect(k8sClient.Create(ctx, pgClusterClass)).To(Succeed()) + + pgCluster = &enterprisev4.PostgresCluster{ ObjectMeta: metav1.ObjectMeta{Name: clusterName, Namespace: namespace}, Spec: enterprisev4.PostgresClusterSpec{ Class: className, - ClusterDeletionPolicy: &[]string{"Delete"}[0], + ClusterDeletionPolicy: &[]string{deletePolicy}[0], }, } - Expect(k8sClient.Create(ctx, pc)).To(Succeed()) reconciler = &PostgresClusterReconciler{ Client: k8sClient, @@ -96,22 +122,13 @@ var _ = Describe("PostgresCluster Controller", func() { req = reconcile.Request{NamespacedName: types.NamespacedName{Name: clusterName, Namespace: namespace}} }) - JustBeforeEach(func() { - By("Reconciling the created resource") - result, err := reconciler.Reconcile(ctx, req) - Expect(err).NotTo(HaveOccurred()) - Expect(result.RequeueAfter).To(BeZero()) - }) - AfterEach(func() { By("Deleting PostgresCluster and letting reconcile run finalizer cleanup") - key := types.NamespacedName{Name: clusterName, Namespace: namespace} - pc := &enterprisev4.PostgresCluster{} // Best-effort delete (object might already be gone in some specs) - err := k8sClient.Get(ctx, key, pc) + err := k8sClient.Get(ctx, pgClusterKey, pgCluster) if err == nil { - Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) + Expect(k8sClient.Delete(ctx, pgCluster)).To(Succeed()) } else { Expect(apierrors.IsNotFound(err)).To(BeTrue()) } @@ -124,7 +141,7 @@ var _ = Describe("PostgresCluster Controller", func() { // In that case, remove finalizer directly so fixture teardown remains deterministic. if meta.IsNoMatchError(recErr) { current := &enterprisev4.PostgresCluster{} - getErr := k8sClient.Get(ctx, key, current) + getErr := k8sClient.Get(ctx, pgClusterKey, current) if apierrors.IsNotFound(getErr) { return true } @@ -142,124 +159,203 @@ var _ = Describe("PostgresCluster Controller", func() { return false } } - getErr := k8sClient.Get(ctx, key, &enterprisev4.PostgresCluster{}) + getErr := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) return apierrors.IsNotFound(getErr) }, "10s", "500ms").Should(BeTrue()) By("Cleaning up PostgresClusterClass fixture") - class := &enterprisev4.PostgresClusterClass{} - classKey := types.NamespacedName{Name: className} // cluster-scoped CR - err = k8sClient.Get(ctx, classKey, class) + err = k8sClient.Get(ctx, pgClusterClassKey, pgClusterClass) if err == nil { - Expect(k8sClient.Delete(ctx, class)).To(Succeed()) + Expect(k8sClient.Delete(ctx, pgClusterClass)).To(Succeed()) } else { Expect(apierrors.IsNotFound(err)).To(BeTrue()) } }) - Context("Happy path and convergence", func() { - pc := &enterprisev4.PostgresCluster{} - It("PC-01 creates managed resources and status refs", func() { - By("creating CNPG cluster via reconcile and avaiting healthy") - Eventually(func() error { - _, err := reconciler.Reconcile(ctx, req) - if err != nil { - return err - } - if err := k8sClient.Get(ctx, req.NamespacedName, cnpg); err != nil { - return err - } - cnpg.Status.Phase = cnpgv1.PhaseHealthy - return k8sClient.Status().Update(ctx, cnpg) - }, "10s", "250ms").Should(Succeed()) - - By("reconciling until managed resources are published in status") - Eventually(func() bool { - _, err := reconciler.Reconcile(ctx, req) - if err != nil { - return false - } - current := &enterprisev4.PostgresCluster{} - if err := k8sClient.Get(ctx, req.NamespacedName, current); err != nil { - return false - } - return current.Status.Resources != nil && - current.Status.Resources.SuperUserSecretRef != nil && - current.Status.Resources.ConfigMapRef != nil - }, "20s", "250ms").Should(BeTrue()) - - By("asserting finalizer contract") - pc := &enterprisev4.PostgresCluster{} - Expect(k8sClient.Get(ctx, req.NamespacedName, pc)).To(Succeed()) - Expect(controllerutil.ContainsFinalizer(pc, core.PostgresClusterFinalizerName)).To(BeTrue()) - - By("asserting status references are published") - Expect(pc.Status.Resources).NotTo(BeNil()) - Expect(pc.Status.Resources.SuperUserSecretRef).NotTo(BeNil()) - Expect(pc.Status.Resources.ConfigMapRef).NotTo(BeNil()) - - By("asserting Secret ownership and existence") - secret := &corev1.Secret{} - Expect(k8sClient.Get(ctx, types.NamespacedName{ - Name: pc.Status.Resources.SuperUserSecretRef.Name, Namespace: namespace, - }, secret)).To(Succeed()) - Expect(metav1.IsControlledBy(secret, pc)).To(BeTrue()) - - By("asserting CNPG Cluster projection and ownership") - cnpg := &cnpgv1.Cluster{} - Expect(k8sClient.Get(ctx, req.NamespacedName, cnpg)).To(Succeed()) - Expect(metav1.IsControlledBy(cnpg, pc)).To(BeTrue()) - Expect(cnpg.Spec.Instances).To(Equal(2)) - Expect(cnpg.Spec.ImageName).To(ContainSubstring("postgresql:15.10")) - Expect(cnpg.Spec.StorageConfiguration.Size).To(Equal("1Gi")) - - By("asserting ConfigMap contract consumed by clients") - cm := &corev1.ConfigMap{} - Expect(k8sClient.Get(ctx, types.NamespacedName{ - Name: pc.Status.Resources.ConfigMapRef.Name, Namespace: namespace, - }, cm)).To(Succeed()) - Expect(metav1.IsControlledBy(cm, pc)).To(BeTrue()) - Expect(cm.Data).To(HaveKeyWithValue("DEFAULT_CLUSTER_PORT", "5432")) - Expect(cm.Data).To(HaveKey("SUPER_USER_SECRET_REF")) - Expect(cm.Data).To(HaveKey("CLUSTER_RW_ENDPOINT")) - }) - It("PC-02 adds finalizer on reconcile", func() { - Expect(k8sClient.Get(ctx, req.NamespacedName, pc)).To(Succeed()) - Expect(pc.ObjectMeta.Finalizers).To(ContainElement(core.PostgresClusterFinalizerName)) + When("under typical usage and expecting healthy PostgresCluster state", func() { + Context("when reconciling", func() { + // PC-02 + It("adds finalizer on reconcile", func() { + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + + Eventually(func() bool { + pc := &enterprisev4.PostgresCluster{} + if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { + return false + } + return controllerutil.ContainsFinalizer(pc, core.PostgresClusterFinalizerName) + }, "10s", "250ms").Should(BeTrue()) + }) + + // PC-01 + It("creates managed resources and status refs", func() { + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + + Eventually(func(g Gomega) { + pc := &enterprisev4.PostgresCluster{} + g.Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + + cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") + g.Expect(cond).NotTo(BeNil()) + g.Expect(cond.Status).To(Equal(metav1.ConditionFalse)) + g.Expect(cond.Reason).To(Equal("CNPGClusterProvisioning")) + }, "20s", "250ms").Should(Succeed()) + + // Simulate external CNPG controller status progression. + Eventually(func() error { + cnpg := &cnpgv1.Cluster{} + if err := k8sClient.Get(ctx, pgClusterKey, cnpg); err != nil { + return err + } + cnpg.Status.Phase = cnpgv1.PhaseHealthy + return k8sClient.Status().Update(ctx, cnpg) // update event + }, "10s", "250ms").Should(Succeed()) + + // Expect cnpg status progression propagation + Eventually(func(g Gomega) { + pc := &enterprisev4.PostgresCluster{} + g.Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + + cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") + g.Expect(cond).NotTo(BeNil()) + g.Expect(cond.Status).To(Equal(metav1.ConditionTrue)) + g.Expect(cond.Reason).To(Equal("CNPGClusterHealthy")) + }, "20s", "250ms").Should(Succeed()) + + Eventually(func(g Gomega) { + pc := &enterprisev4.PostgresCluster{} + g.Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + g.Expect(pc.Status.Resources).NotTo(BeNil()) + g.Expect(pc.Status.Resources.SuperUserSecretRef).NotTo(BeNil()) + g.Expect(pc.Status.Resources.ConfigMapRef).NotTo(BeNil()) + }, "20s", "250ms").Should(Succeed()) + }) + + // PC-07 + It("is idempotent across repeated reconciles", func() { + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + + // Trigger extra update events that should not change desired state semantics. + Eventually(func() error { + pc := &enterprisev4.PostgresCluster{} + if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { + return err + } + if pc.Annotations == nil { + pc.Annotations = map[string]string{} + } + pc.Annotations["test.bump"] = strconv.FormatInt(time.Now().UnixNano(), 10) + return k8sClient.Update(ctx, pc) // update event + }, "10s", "250ms").Should(Succeed()) + + Eventually(func(g Gomega) { + cnpg := &cnpgv1.Cluster{} + g.Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + g.Expect(cnpg.Spec.Instances).To(Equal(int(clusterMemberCount))) + }, "20s", "250ms").Should(Succeed()) + }) }) - It("PC-07 is idempotent across repeated reconciles", func() {}) }) - Context("Deletion and finalizer", func() { - It("PC-03 Delete policy removes children and finalizer", func() {}) - It("PC-04 Retain policy preserves children and removes ownerRefs", func() {}) - }) + When("deleting a PostgresCluster", func() { + // PC-03 + Context("and clusterDeletionPolicy is set to Delete", func() { + It("removes children and finalizer", func() { + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) // delete event + + Eventually(func() bool { + err := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) + return apierrors.IsNotFound(err) + }, "30s", "250ms").Should(BeTrue()) + }) + }) - Context("Failure and drift", func() { - It("PC-05 fails when PostgresClusterClass is missing", func() {}) - It("PC-06 restores drifted managed spec", func() {}) - }) + // PC-04 + Context("when clusterDeletionPolicy is set to Retain", func() { + It("preserves retained resources and removes owner refs", func() { + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + + // Trigger update event: switch policy to Retain before delete. + Eventually(func() error { + pc := &enterprisev4.PostgresCluster{} + if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { + return err + } + pc.Spec.ClusterDeletionPolicy = &[]string{retainPolicy}[0] + return k8sClient.Update(ctx, pc) + }, "10s", "250ms").Should(Succeed()) + + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) // delete event - Context("Predicates", func() { - It("PC-08 triggers on generation/finalizer/deletion changes", func() {}) - It("PC-09 ignores no-op updates", func() {}) + Eventually(func() bool { + err := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) + return apierrors.IsNotFound(err) + }, "30s", "250ms").Should(BeTrue()) + + }) + }) }) - // Context("When reconciling a resource", func() { + When("reconciling with invalid or drifted dependencies", func() { + // PC-05 + Context("when referenced class does not exist", func() { + It("fails with class-not-found condition", func() { + clusterName = "bad-" + clusterName + className = "missing-class" - // It("should successfully reconcile the resource", func() { - // By("Reconciling the created resource") - // // controllerReconciler := &PostgresClusterReconciler{ - // // Client: k8sClient, - // // Scheme: k8sClient.Scheme(), - // // } + bad := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: clusterName, Namespace: namespace}, + Spec: enterprisev4.PostgresClusterSpec{Class: className}, + } + Expect(k8sClient.Create(ctx, bad)).To(Succeed()) // create event - // // _, err := controllerReconciler.Reconcile(ctx, reconcile.Request{ - // // NamespacedName: typeNamespacedName, - // // }) - // err := errors.New("test error") - // Expect(err).NotTo(HaveOccurred()) + Eventually(func() bool { + current := &enterprisev4.PostgresCluster{} + if err := k8sClient.Get(ctx, types.NamespacedName{Name: bad.Name, Namespace: namespace}, current); err != nil { + return false + } + cond := meta.FindStatusCondition(current.Status.Conditions, "ClusterReady") + return cond != nil && cond.Reason == "ClusterClassNotFound" + }, "20s", "250ms").Should(BeTrue()) + }) + }) + + // PC-06 + Context("when managed child spec drifts from desired state", func() { + It("restores drifted managed spec", func() { + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) - // }) - // }) + Eventually(func() error { + return k8sClient.Get(ctx, pgClusterKey, &cnpgv1.Cluster{}) + }, "20s", "250ms").Should(Succeed()) + + Eventually(func() error { + pc := &enterprisev4.PostgresCluster{} + if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { + return err + } + if pc.Annotations == nil { + pc.Annotations = map[string]string{} + } + pc.Annotations["drift-trigger"] = strconv.FormatInt(time.Now().UnixNano(), 10) + pc.Spec.Instances = &[]int32{8}[0] + return k8sClient.Update(ctx, pc) + }, "10s", "250ms").Should(Succeed()) + + Eventually(func() bool { + cnpg := &cnpgv1.Cluster{} + if err := k8sClient.Get(ctx, pgClusterKey, cnpg); err != nil { + return false + } + return cnpg.Spec.Instances == int(clusterMemberCount) + }, "20s", "250ms").Should(BeTrue()) + }) + }) + }) }) diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 30cb99f64..d614aa7f5 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -1,5 +1,5 @@ /* -Copyright 2026. +Copyright (c) 2018-2022 Splunk Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,138 +21,173 @@ import ( "fmt" "os" "path/filepath" - "sort" "testing" + "time" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - - "k8s.io/client-go/kubernetes/scheme" + "go.uber.org/zap/zapcore" "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/envtest" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" - enterprisev4 "github.com/splunk/splunk-operator/api/v4" - // +kubebuilder:scaffold:imports -) - -// These tests use Ginkgo (BDD-style Go testing framework). Refer to -// http://onsi.github.io/ginkgo/ to learn more about Ginkgo. + clientgoscheme "k8s.io/client-go/kubernetes/scheme" + ctrl "sigs.k8s.io/controller-runtime" -var ( - ctx context.Context - cancel context.CancelFunc - testEnv *envtest.Environment - cfg *rest.Config - k8sClient client.Client + enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" + enterpriseApi "github.com/splunk/splunk-operator/api/v4" + //+kubebuilder:scaffold:imports ) -func TestControllers(t *testing.T) { +var cfg *rest.Config +var k8sClient client.Client +var testEnv *envtest.Environment +var k8sManager ctrl.Manager + +func TestAPIs(t *testing.T) { RegisterFailHandler(Fail) RunSpecs(t, "Controller Suite") } -var _ = BeforeSuite(func() { - logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) - - ctx, cancel = context.WithCancel(context.TODO()) - - var err error - err = enterprisev4.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - err = cnpgv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - // +kubebuilder:scaffold:scheme +var _ = BeforeSuite(func(ctx context.Context) { + opts := zap.Options{ + Development: true, + TimeEncoder: zapcore.RFC3339NanoTimeEncoder, + } + logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true), zap.UseFlagOptions(&opts))) By("bootstrapping test environment") - cnpgCRDDirectory, err := getCNPGCRDDirectory() - Expect(err).NotTo(HaveOccurred()) + testEnv = &envtest.Environment{ - CRDDirectoryPaths: []string{ - filepath.Join("..", "..", "config", "crd", "bases"), - cnpgCRDDirectory, - }, + CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")}, ErrorIfCRDPathMissing: true, } - - // Retrieve the first found binary directory to allow running tests from IDEs - if getFirstFoundEnvTestBinaryDir() != "" { - testEnv.BinaryAssetsDirectory = getFirstFoundEnvTestBinaryDir() + cnpgCRDDir := os.Getenv("CNPG_CRD_DIR") + if cnpgCRDDir == "" { + homeDir, err := os.UserHomeDir() + Expect(err).NotTo(HaveOccurred()) + matches, err := filepath.Glob(filepath.Join(homeDir, "go", "pkg", "mod", "github.com", "cloudnative-pg", "cloudnative-pg@*", "config", "crd", "bases")) + Expect(err).NotTo(HaveOccurred()) + Expect(matches).NotTo(BeEmpty(), "CNPG CRD directory not found; set CNPG_CRD_DIR if module cache is custom") + cnpgCRDDir = matches[len(matches)-1] } + testEnv.CRDDirectoryPaths = append(testEnv.CRDDirectoryPaths, cnpgCRDDir) + + var err error // cfg is defined in this file globally. cfg, err = testEnv.Start() Expect(err).NotTo(HaveOccurred()) Expect(cfg).NotTo(BeNil()) - k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + err = cnpgv1.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) - Expect(k8sClient).NotTo(BeNil()) -}) -var _ = AfterSuite(func() { - By("tearing down the test environment") - cancel() - err := testEnv.Stop() + err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) -}) -// getFirstFoundEnvTestBinaryDir locates the first binary in the specified path. -// ENVTEST-based tests depend on specific binaries, usually located in paths set by -// controller-runtime. When running tests directly (e.g., via an IDE) without using -// Makefile targets, the 'BinaryAssetsDirectory' must be explicitly configured. -// -// This function streamlines the process by finding the required binaries, similar to -// setting the 'KUBEBUILDER_ASSETS' environment variable. To ensure the binaries are -// properly set up, run 'make setup-envtest' beforehand. -func getFirstFoundEnvTestBinaryDir() string { - basePath := filepath.Join("..", "..", "bin", "k8s") - entries, err := os.ReadDir(basePath) - if err != nil { - logf.Log.Error(err, "Failed to read directory", "path", basePath) - return "" + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + err = enterpriseApiV3.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + + //+kubebuilder:scaffold:scheme + + // Create New Manager for controller + k8sManager, err = ctrl.NewManager(cfg, ctrl.Options{ + Scheme: clientgoscheme.Scheme, + }) + Expect(err).ToNot(HaveOccurred()) + if err := (&ClusterManagerReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - for _, entry := range entries { - if entry.IsDir() { - return filepath.Join(basePath, entry.Name()) - } + if err := (&ClusterMasterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - return "" -} - -func getCNPGCRDDirectory() (string, error) { - // Optional escape hatch for CI/local overrides. - if explicit := os.Getenv("CNPG_CRD_DIR"); explicit != "" { - return explicit, nil + if err := (&IndexerClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - - moduleRoot := os.Getenv("GOMODCACHE") - if moduleRoot == "" { - gopath := os.Getenv("GOPATH") - if gopath == "" { - home, err := os.UserHomeDir() - if err != nil { - return "", err - } - gopath = filepath.Join(home, "go") - } - moduleRoot = filepath.Join(gopath, "pkg", "mod") + if err := (&IngestorClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - - pattern := filepath.Join(moduleRoot, "github.com", "cloudnative-pg", "cloudnative-pg@*", "config", "crd", "bases") - matches, err := filepath.Glob(pattern) - if err != nil { - return "", err + if err := (&LicenseManagerReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&LicenseMasterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&MonitoringConsoleReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - if len(matches) == 0 { - return "", fmt.Errorf("CNPG CRD directory not found; set CNPG_CRD_DIR or download github.com/cloudnative-pg/cloudnative-pg module") + if err := (&SearchHeadClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&StandaloneReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) + } + if err := (&PostgresClusterReconciler{ + Client: k8sManager.GetClient(), + Scheme: k8sManager.GetScheme(), + }).SetupWithManager(k8sManager); err != nil { + Expect(err).NotTo(HaveOccurred()) } - sort.Strings(matches) - return matches[len(matches)-1], nil -} + go func() { + err = k8sManager.Start(ctrl.SetupSignalHandler()) + fmt.Printf("error %v", err.Error()) + Expect(err).ToNot(HaveOccurred()) + }() + + Expect(err).ToNot(HaveOccurred()) + + k8sClient, err = client.New(cfg, client.Options{Scheme: clientgoscheme.Scheme}) + Expect(err).NotTo(HaveOccurred()) + Expect(k8sClient).NotTo(BeNil()) + +}, NodeTimeout(time.Second*500)) + +var _ = AfterSuite(func() { + By("tearing down the test environment") + testEnv.Stop() +}) From 80a4e6e22d7d2fb2f5dd1e2db98c33ea270acf34 Mon Sep 17 00:00:00 2001 From: Jakub Koterba Date: Tue, 31 Mar 2026 10:59:45 +0200 Subject: [PATCH 11/43] synchronous postgres cluster tests --- .../postgrescluster_controller_test.go | 187 ++++++++---------- internal/controller/suite_test.go | 6 - 2 files changed, 80 insertions(+), 113 deletions(-) diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index d405a35bf..4619c9ac8 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -19,8 +19,6 @@ package controller import ( "context" "fmt" - "strconv" - "time" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -79,6 +77,13 @@ var _ = Describe("PostgresCluster Controller", func() { req reconcile.Request ) + reconcileNTimes := func(times int) { + for i := 0; i < times; i++ { + _, err := reconciler.Reconcile(ctx, req) + Expect(err).NotTo(HaveOccurred()) + } + } + BeforeEach(func() { nameSuffix := fmt.Sprintf("%d-%d-%d", GinkgoParallelProcess(), @@ -177,82 +182,59 @@ var _ = Describe("PostgresCluster Controller", func() { // PC-02 It("adds finalizer on reconcile", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(1) - Eventually(func() bool { - pc := &enterprisev4.PostgresCluster{} - if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { - return false - } - return controllerutil.ContainsFinalizer(pc, core.PostgresClusterFinalizerName) - }, "10s", "250ms").Should(BeTrue()) + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + Expect(controllerutil.ContainsFinalizer(pc, core.PostgresClusterFinalizerName)).To(BeTrue()) }) // PC-01 It("creates managed resources and status refs", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + // pass 1: add finalizer; pass 2: create CNPG cluster/secret/status. + reconcileNTimes(2) - Eventually(func(g Gomega) { - pc := &enterprisev4.PostgresCluster{} - g.Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) - - cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") - g.Expect(cond).NotTo(BeNil()) - g.Expect(cond.Status).To(Equal(metav1.ConditionFalse)) - g.Expect(cond.Reason).To(Equal("CNPGClusterProvisioning")) - }, "20s", "250ms").Should(Succeed()) + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") + Expect(cond).NotTo(BeNil()) + Expect(cond.Status).To(Equal(metav1.ConditionFalse)) + Expect(cond.Reason).To(Equal("ClusterBuildSucceeded")) // Simulate external CNPG controller status progression. - Eventually(func() error { - cnpg := &cnpgv1.Cluster{} - if err := k8sClient.Get(ctx, pgClusterKey, cnpg); err != nil { - return err - } - cnpg.Status.Phase = cnpgv1.PhaseHealthy - return k8sClient.Status().Update(ctx, cnpg) // update event - }, "10s", "250ms").Should(Succeed()) + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + cnpg.Status.Phase = cnpgv1.PhaseHealthy + Expect(k8sClient.Status().Update(ctx, cnpg)).To(Succeed()) + reconcileNTimes(1) // Expect cnpg status progression propagation - Eventually(func(g Gomega) { - pc := &enterprisev4.PostgresCluster{} - g.Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) - - cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") - g.Expect(cond).NotTo(BeNil()) - g.Expect(cond.Status).To(Equal(metav1.ConditionTrue)) - g.Expect(cond.Reason).To(Equal("CNPGClusterHealthy")) - }, "20s", "250ms").Should(Succeed()) - - Eventually(func(g Gomega) { - pc := &enterprisev4.PostgresCluster{} - g.Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) - g.Expect(pc.Status.Resources).NotTo(BeNil()) - g.Expect(pc.Status.Resources.SuperUserSecretRef).NotTo(BeNil()) - g.Expect(pc.Status.Resources.ConfigMapRef).NotTo(BeNil()) - }, "20s", "250ms").Should(Succeed()) + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + cond = meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") + Expect(cond).NotTo(BeNil()) + Expect(cond.Status).To(Equal(metav1.ConditionTrue)) + Expect(cond.Reason).To(Equal("CNPGClusterHealthy")) + Expect(pc.Status.Resources).NotTo(BeNil()) + Expect(pc.Status.Resources.SuperUserSecretRef).NotTo(BeNil()) + Expect(pc.Status.Resources.ConfigMapRef).NotTo(BeNil()) }) // PC-07 It("is idempotent across repeated reconciles", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(2) + reconcileNTimes(3) - // Trigger extra update events that should not change desired state semantics. - Eventually(func() error { - pc := &enterprisev4.PostgresCluster{} - if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { - return err - } - if pc.Annotations == nil { - pc.Annotations = map[string]string{} - } - pc.Annotations["test.bump"] = strconv.FormatInt(time.Now().UnixNano(), 10) - return k8sClient.Update(ctx, pc) // update event - }, "10s", "250ms").Should(Succeed()) - - Eventually(func(g Gomega) { - cnpg := &cnpgv1.Cluster{} - g.Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) - g.Expect(cnpg.Spec.Instances).To(Equal(int(clusterMemberCount))) - }, "20s", "250ms").Should(Succeed()) + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + Expect(cnpg.Spec.Instances).To(Equal(int(clusterMemberCount))) + + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") + Expect(cond).NotTo(BeNil()) + Expect(cond.ObservedGeneration).To(Equal(pc.Generation)) }) }) }) @@ -262,14 +244,19 @@ var _ = Describe("PostgresCluster Controller", func() { Context("and clusterDeletionPolicy is set to Delete", func() { It("removes children and finalizer", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(2) pc := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) - Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) // delete event + Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) Eventually(func() bool { - err := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) - return apierrors.IsNotFound(err) + _, err := reconciler.Reconcile(ctx, req) + if err != nil { + return false + } + getErr := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) + return apierrors.IsNotFound(getErr) }, "30s", "250ms").Should(BeTrue()) }) }) @@ -278,26 +265,20 @@ var _ = Describe("PostgresCluster Controller", func() { Context("when clusterDeletionPolicy is set to Retain", func() { It("preserves retained resources and removes owner refs", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) - - // Trigger update event: switch policy to Retain before delete. - Eventually(func() error { - pc := &enterprisev4.PostgresCluster{} - if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { - return err - } - pc.Spec.ClusterDeletionPolicy = &[]string{retainPolicy}[0] - return k8sClient.Update(ctx, pc) - }, "10s", "250ms").Should(Succeed()) + reconcileNTimes(2) pc := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) - Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) // delete event + Expect(k8sClient.Delete(ctx, pc)).To(Succeed()) Eventually(func() bool { - err := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) - return apierrors.IsNotFound(err) + _, err := reconciler.Reconcile(ctx, req) + if err != nil { + return false + } + getErr := k8sClient.Get(ctx, pgClusterKey, &enterprisev4.PostgresCluster{}) + return apierrors.IsNotFound(getErr) }, "30s", "250ms").Should(BeTrue()) - }) }) }) @@ -306,18 +287,25 @@ var _ = Describe("PostgresCluster Controller", func() { // PC-05 Context("when referenced class does not exist", func() { It("fails with class-not-found condition", func() { - clusterName = "bad-" + clusterName - className = "missing-class" + badName := "bad-" + clusterName + badKey := types.NamespacedName{Name: badName, Namespace: namespace} bad := &enterprisev4.PostgresCluster{ - ObjectMeta: metav1.ObjectMeta{Name: clusterName, Namespace: namespace}, - Spec: enterprisev4.PostgresClusterSpec{Class: className}, + ObjectMeta: metav1.ObjectMeta{Name: badName, Namespace: namespace}, + Spec: enterprisev4.PostgresClusterSpec{Class: "missing-class"}, } - Expect(k8sClient.Create(ctx, bad)).To(Succeed()) // create event + Expect(k8sClient.Create(ctx, bad)).To(Succeed()) + DeferCleanup(func() { _ = k8sClient.Delete(ctx, bad) }) + + // pass 1 adds finalizer, pass 2 reaches class lookup and sets failure condition. + _, err := reconciler.Reconcile(ctx, reconcile.Request{NamespacedName: badKey}) + Expect(err).NotTo(HaveOccurred()) + _, err = reconciler.Reconcile(ctx, reconcile.Request{NamespacedName: badKey}) + Expect(err).To(HaveOccurred()) Eventually(func() bool { current := &enterprisev4.PostgresCluster{} - if err := k8sClient.Get(ctx, types.NamespacedName{Name: bad.Name, Namespace: namespace}, current); err != nil { + if err := k8sClient.Get(ctx, badKey, current); err != nil { return false } cond := meta.FindStatusCondition(current.Status.Conditions, "ClusterReady") @@ -330,31 +318,16 @@ var _ = Describe("PostgresCluster Controller", func() { Context("when managed child spec drifts from desired state", func() { It("restores drifted managed spec", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(2) - Eventually(func() error { - return k8sClient.Get(ctx, pgClusterKey, &cnpgv1.Cluster{}) - }, "20s", "250ms").Should(Succeed()) - - Eventually(func() error { - pc := &enterprisev4.PostgresCluster{} - if err := k8sClient.Get(ctx, pgClusterKey, pc); err != nil { - return err - } - if pc.Annotations == nil { - pc.Annotations = map[string]string{} - } - pc.Annotations["drift-trigger"] = strconv.FormatInt(time.Now().UnixNano(), 10) - pc.Spec.Instances = &[]int32{8}[0] - return k8sClient.Update(ctx, pc) - }, "10s", "250ms").Should(Succeed()) + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + cnpg.Spec.Instances = 8 + Expect(k8sClient.Update(ctx, cnpg)).To(Succeed()) - Eventually(func() bool { - cnpg := &cnpgv1.Cluster{} - if err := k8sClient.Get(ctx, pgClusterKey, cnpg); err != nil { - return false - } - return cnpg.Spec.Instances == int(clusterMemberCount) - }, "20s", "250ms").Should(BeTrue()) + reconcileNTimes(2) + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + Expect(cnpg.Spec.Instances).To(Equal(int(clusterMemberCount))) }) }) }) diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index d614aa7f5..3805a28b8 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -166,12 +166,6 @@ var _ = BeforeSuite(func(ctx context.Context) { }).SetupWithManager(k8sManager); err != nil { Expect(err).NotTo(HaveOccurred()) } - if err := (&PostgresClusterReconciler{ - Client: k8sManager.GetClient(), - Scheme: k8sManager.GetScheme(), - }).SetupWithManager(k8sManager); err != nil { - Expect(err).NotTo(HaveOccurred()) - } go func() { err = k8sManager.Start(ctrl.SetupSignalHandler()) From 66157f82c74a1364265dd0a9471f731ff0afaae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Tue, 31 Mar 2026 13:50:51 +0200 Subject: [PATCH 12/43] Cleanup our logging approach --- api/v4/postgresdatabase_types.go | 2 +- ...terprise.splunk.com_postgresdatabases.yaml | 2 +- pkg/postgresql/cluster/core/cluster.go | 107 +++++++++--------- pkg/postgresql/database/core/database.go | 60 +++++----- 4 files changed, 81 insertions(+), 90 deletions(-) diff --git a/api/v4/postgresdatabase_types.go b/api/v4/postgresdatabase_types.go index f89b7229a..02e8ca0b8 100644 --- a/api/v4/postgresdatabase_types.go +++ b/api/v4/postgresdatabase_types.go @@ -23,7 +23,7 @@ import ( // PostgresDatabaseSpec defines the desired state of PostgresDatabase. // +kubebuilder:validation:XValidation:rule="self.clusterRef == oldSelf.clusterRef",message="clusterRef is immutable" -// +kubebuilder:validation:XValidation:rule="self.clusterRef.name != ''",message="clusterRef.name must not be empty" +// +kubebuilder:validation:XValidation:rule="self.clusterRef.name.size() > 0",message="clusterRef.name must not be empty" type PostgresDatabaseSpec struct { // Reference to Postgres Cluster managed by postgresCluster controller // +kubebuilder:validation:Required diff --git a/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml b/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml index dbe0fef64..b134d5738 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresdatabases.yaml @@ -99,7 +99,7 @@ spec: - message: clusterRef is immutable rule: self.clusterRef == oldSelf.clusterRef - message: clusterRef.name must not be empty - rule: self.clusterRef.name != '' + rule: self.clusterRef.name.size() > 0 status: description: PostgresDatabaseStatus defines the observed state of PostgresDatabase. properties: diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 8642362fe..3334011c6 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -42,7 +42,7 @@ import ( func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl.Request) (ctrl.Result, error) { c := rc.Client logger := log.FromContext(ctx) - logger.Info("Reconciling PostgresCluster", "name", req.Name, "namespace", req.Namespace) + logger.Info("Reconciling PostgresCluster") var cnpgCluster *cnpgv1.Cluster var poolerEnabled bool @@ -56,13 +56,16 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. logger.Info("PostgresCluster deleted, skipping reconciliation") return ctrl.Result{}, nil } - logger.Error(err, "Unable to fetch PostgresCluster") + logger.Error(err, "Failed to fetch PostgresCluster") return ctrl.Result{}, err } if postgresCluster.Status.Resources == nil { postgresCluster.Status.Resources = &enterprisev4.PostgresClusterResources{} } + logger = logger.WithValues("postgresCluster", postgresCluster.Name) + ctx = log.IntoContext(ctx, logger) + updateStatus := func(conditionType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { return setStatus(ctx, c, postgresCluster, conditionType, status, reason, message, phase) } @@ -84,7 +87,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, errors.Join(errs...) } if postgresCluster.GetDeletionTimestamp() != nil { - logger.Info("PostgresCluster is being deleted, cleanup complete") + logger.Info("Deletion cleanup complete, finalizer removed") return ctrl.Result{}, nil } @@ -99,14 +102,14 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. logger.Error(err, "Failed to add finalizer to PostgresCluster") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) } - logger.Info("Finalizer added successfully") + logger.Info("Finalizer added") return ctrl.Result{}, nil } // Load the referenced PostgresClusterClass. clusterClass := &enterprisev4.PostgresClusterClass{} if err := c.Get(ctx, client.ObjectKey{Name: postgresCluster.Spec.Class}, clusterClass); err != nil { - logger.Error(err, "Unable to fetch referenced PostgresClusterClass", "className", postgresCluster.Spec.Class) + logger.Error(err, "Failed to fetch PostgresClusterClass", "className", postgresCluster.Spec.Class) rc.emitWarning(postgresCluster, EventClusterClassNotFound, fmt.Sprintf("ClusterClass %s not found", postgresCluster.Spec.Class)) if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterClassNotFound, fmt.Sprintf("ClusterClass %s not found: %v", postgresCluster.Spec.Class, err), failedClusterPhase); statusErr != nil { @@ -130,10 +133,10 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. // Resolve or derive the superuser secret name. if postgresCluster.Status.Resources != nil && postgresCluster.Status.Resources.SuperUserSecretRef != nil { postgresSecretName = postgresCluster.Status.Resources.SuperUserSecretRef.Name - logger.Info("Using existing secret from status", "name", postgresSecretName) + logger.Info("Superuser secret resolved from status", "name", postgresSecretName) } else { postgresSecretName = fmt.Sprintf("%s%s", postgresCluster.Name, defaultSecretSuffix) - logger.Info("Generating new secret name", "name", postgresSecretName) + logger.Info("Superuser secret name derived", "name", postgresSecretName) } secretExists, secretErr := clusterSecretExists(ctx, c, postgresCluster.Namespace, postgresSecretName, secret) @@ -147,7 +150,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, secretErr } if !secretExists { - logger.Info("Creating PostgresCluster secret", "name", postgresSecretName) + logger.Info("Superuser secret creation started", "name", postgresSecretName) if err := ensureClusterSecret(ctx, c, rc.Scheme, postgresCluster, postgresSecretName, secret); err != nil { logger.Error(err, "Failed to ensure PostgresCluster secret", "name", postgresSecretName) rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to generate cluster secret: %v", err)) @@ -166,7 +169,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, err } rc.emitNormal(postgresCluster, EventSecretReady, fmt.Sprintf("Superuser secret %s created", postgresSecretName)) - logger.Info("SuperUserSecretRef persisted to status") + logger.Info("Superuser secret ref persisted to status") } // Re-attach ownerRef if it was stripped (e.g. by a Retain-policy deletion of a previous cluster). @@ -176,7 +179,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, fmt.Errorf("failed to check owner reference on secret: %w", ownerRefErr) } if secretExists && !hasOwnerRef { - logger.Info("Connecting existing secret to PostgresCluster by adding owner reference", "name", postgresSecretName) + logger.Info("Existing secret linked to PostgresCluster", "name", postgresSecretName) rc.emitNormal(postgresCluster, EventClusterAdopted, fmt.Sprintf("Adopted existing CNPG cluster and secret %s", postgresSecretName)) originalSecret := secret.DeepCopy() if err := ctrl.SetControllerReference(postgresCluster, secret, rc.Scheme); err != nil { @@ -191,7 +194,6 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. } return ctrl.Result{}, err } - logger.Info("Existing secret linked successfully") } if postgresCluster.Status.Resources.SuperUserSecretRef == nil { @@ -209,7 +211,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. err = c.Get(ctx, types.NamespacedName{Name: postgresCluster.Name, Namespace: postgresCluster.Namespace}, existingCNPG) switch { case apierrors.IsNotFound(err): - logger.Info("CNPG Cluster not found, creating", "name", postgresCluster.Name) + logger.Info("CNPG Cluster creation started", "name", postgresCluster.Name) newCluster := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName) if err := c.Create(ctx, newCluster); err != nil { logger.Error(err, "Failed to create CNPG Cluster") @@ -225,7 +227,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. "CNPG Cluster created", pendingClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") } - logger.Info("CNPG Cluster created successfully, requeueing for status update", "name", postgresCluster.Name) + logger.Info("CNPG Cluster created, requeueing for status update", "name", postgresCluster.Name) return ctrl.Result{RequeueAfter: retryDelay}, nil case err != nil: logger.Error(err, "Failed to get CNPG Cluster") @@ -242,7 +244,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. desiredNormalized := normalizeCNPGClusterSpec(desiredSpec, mergedConfig.Spec.PostgreSQLConfig) if !equality.Semantic.DeepEqual(currentNormalized, desiredNormalized) { - logger.Info("Detected drift in CNPG Cluster spec, patching", "name", cnpgCluster.Name) + logger.Info("CNPG Cluster spec drift detected, patch started", "name", cnpgCluster.Name) originalCluster := cnpgCluster.DeepCopy() cnpgCluster.Spec = desiredSpec @@ -265,7 +267,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{Requeue: true}, nil } rc.emitNormal(postgresCluster, EventClusterUpdateStarted, "CNPG cluster spec updated, waiting for healthy state") - logger.Info("CNPG Cluster patched successfully, requeueing for status update", "name", cnpgCluster.Name) + logger.Info("CNPG Cluster patched, requeueing for status update", "name", cnpgCluster.Name) return ctrl.Result{RequeueAfter: retryDelay}, nil } } @@ -349,7 +351,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, err } rc.emitNormal(postgresCluster, EventPoolerCreationStarted, "Connection poolers created, waiting for readiness") - logger.Info("Connection Poolers created, requeueing to check readiness") + logger.Info("Connection pooler creation started, requeueing") if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, "Connection poolers are being provisioned", provisioningClusterPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") @@ -396,7 +398,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. // Reconcile ConfigMap when CNPG cluster is healthy. if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { - logger.Info("CNPG Cluster is ready, reconciling ConfigMap for connection details") + logger.Info("CNPG Cluster healthy, reconciling ConfigMap") desiredCM, err := generateConfigMap(ctx, c, rc.Scheme, postgresCluster, cnpgCluster, postgresSecretName) if err != nil { logger.Error(err, "Failed to generate ConfigMap") @@ -414,7 +416,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. cm.Labels = desiredCM.Labels if !metav1.IsControlledBy(cm, postgresCluster) { if err := ctrl.SetControllerReference(postgresCluster, cm, rc.Scheme); err != nil { - return fmt.Errorf("set controller reference failed: %w", err) + return fmt.Errorf("setting controller reference: %w", err) } } return nil @@ -473,7 +475,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. Namespace: postgresCluster.Namespace, }, roPooler) if rwErr == nil && roErr == nil && arePoolersReady(rwPooler, roPooler) { - logger.Info("Poolers are ready, syncing pooler status") + logger.Info("Poolers ready, syncing status") poolerOldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) copy(poolerOldConditions, postgresCluster.Status.Conditions) _ = syncPoolerStatus(ctx, c, postgresCluster) @@ -626,7 +628,7 @@ func reconcileManagedRoles(ctx context.Context, c client.Client, cluster *enterp return nil } - logger.Info("CNPG Cluster roles differ from desired state, updating", + logger.Info("CNPG Cluster roles drift detected, update started", "currentCount", len(currentRoles), "desiredCount", len(desiredRoles)) originalCluster := cnpgCluster.DeepCopy() @@ -636,9 +638,9 @@ func reconcileManagedRoles(ctx context.Context, c client.Client, cluster *enterp cnpgCluster.Spec.Managed.Roles = desiredRoles if err := c.Patch(ctx, cnpgCluster, client.MergeFrom(originalCluster)); err != nil { - return fmt.Errorf("failed to patch CNPG Cluster with managed roles: %w", err) + return fmt.Errorf("patching CNPG Cluster managed roles: %w", err) } - logger.Info("Successfully updated CNPG Cluster with managed roles", "roleCount", len(desiredRoles)) + logger.Info("CNPG Cluster managed roles updated", "roleCount", len(desiredRoles)) return nil } @@ -655,11 +657,7 @@ func poolerExists(ctx context.Context, c client.Client, cluster *enterprisev4.Po if apierrors.IsNotFound(err) { return false, nil } - if err != nil { - log.FromContext(ctx).Error(err, "Failed to check pooler existence", "type", poolerType) - return false, err - } - return true, nil + return err == nil, err } func arePoolersReady(rwPooler, roPooler *cnpgv1.Pooler) bool { @@ -687,15 +685,16 @@ func poolerInstanceCount(p *cnpgv1.Pooler) (desired, scheduled int32) { // createOrUpdateConnectionPoolers creates RW and RO poolers if they don't exist. func createOrUpdateConnectionPoolers(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster) error { if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readWriteEndpoint); err != nil { - return fmt.Errorf("failed to reconcile RW pooler: %w", err) + return fmt.Errorf("reconciling RW pooler: %w", err) } if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readOnlyEndpoint); err != nil { - return fmt.Errorf("failed to reconcile RO pooler: %w", err) + return fmt.Errorf("reconciling RO pooler: %w", err) } return nil } func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) error { + logger := log.FromContext(ctx) poolerName := poolerResourceName(cluster.Name, poolerType) existing := &cnpgv1.Pooler{} err := c.Get(ctx, types.NamespacedName{Name: poolerName, Namespace: cluster.Namespace}, existing) @@ -705,7 +704,7 @@ func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtim if !apierrors.IsNotFound(err) { return err } - log.FromContext(ctx).Info("Creating CNPG Pooler", "name", poolerName, "type", poolerType) + logger.Info("CNPG Pooler creation started", "name", poolerName, "type", poolerType) return c.Create(ctx, buildCNPGPooler(scheme, cluster, cfg, cnpgCluster, poolerType)) } @@ -736,7 +735,7 @@ func deleteConnectionPoolers(ctx context.Context, c client.Client, cluster *ente poolerName := poolerResourceName(cluster.Name, poolerType) exist, err := poolerExists(ctx, c, cluster, poolerType) if err != nil { - return fmt.Errorf("Can't check the pooler exist due to transient error %w", err) + return fmt.Errorf("checking pooler existence: %w", err) } if !exist { continue @@ -746,11 +745,11 @@ func deleteConnectionPoolers(ctx context.Context, c client.Client, cluster *ente if apierrors.IsNotFound(err) { continue } - return fmt.Errorf("failed to get pooler %s: %w", poolerName, err) + return fmt.Errorf("getting pooler %s: %w", poolerName, err) } - logger.Info("Deleting CNPG Pooler", "name", poolerName) + logger.Info("CNPG Pooler deletion started", "name", poolerName) if err := c.Delete(ctx, pooler); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("failed to delete pooler %s: %w", poolerName, err) + return fmt.Errorf("deleting pooler %s: %w", poolerName, err) } } return nil @@ -956,9 +955,9 @@ func deleteCNPGCluster(ctx context.Context, c client.Client, cnpgCluster *cnpgv1 logger.Info("CNPG Cluster not found, skipping deletion") return nil } - logger.Info("Deleting CNPG Cluster", "name", cnpgCluster.Name) + logger.Info("CNPG Cluster deletion started", "name", cnpgCluster.Name) if err := c.Delete(ctx, cnpgCluster); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("failed to delete CNPG Cluster: %w", err) + return fmt.Errorf("deleting CNPG Cluster: %w", err) } return nil } @@ -985,10 +984,10 @@ func handleFinalizer(ctx context.Context, rc *ReconcileContext, cluster *enterpr cnpgCluster = nil logger.Info("CNPG cluster not found during cleanup") } else { - return fmt.Errorf("failed to fetch CNPG cluster during cleanup: %w", err) + return fmt.Errorf("fetching CNPG cluster: %w", err) } } - logger.Info("Processing finalizer cleanup for PostgresCluster") + logger.Info("Finalizer cleanup started") policy := "" if cluster.Spec.ClusterDeletionPolicy != nil { @@ -996,35 +995,33 @@ func handleFinalizer(ctx context.Context, rc *ReconcileContext, cluster *enterpr } if err := deleteConnectionPoolers(ctx, c, cluster); err != nil { - logger.Error(err, "Failed to delete connection poolers during cleanup") - return fmt.Errorf("failed to delete connection poolers: %w", err) + return fmt.Errorf("deleting connection poolers: %w", err) } switch policy { case clusterDeletionPolicyDelete: - logger.Info("ClusterDeletionPolicy is 'Delete', deleting CNPG Cluster and associated resources") + logger.Info("ClusterDeletionPolicy 'Delete', CNPG Cluster deletion started") if cnpgCluster != nil { if err := deleteCNPGCluster(ctx, c, cnpgCluster); err != nil { - logger.Error(err, "Failed to delete CNPG Cluster during finalizer cleanup") - return fmt.Errorf("failed to delete CNPG Cluster during finalizer cleanup: %w", err) + return fmt.Errorf("deleting CNPG Cluster: %w", err) } } else { logger.Info("CNPG Cluster not found, skipping deletion") } case clusterDeletionPolicyRetain: - logger.Info("ClusterDeletionPolicy is 'Retain', removing owner references to orphan CNPG Cluster") + logger.Info("ClusterDeletionPolicy 'Retain', orphaning CNPG Cluster") if cnpgCluster != nil { originalCNPG := cnpgCluster.DeepCopy() refRemoved, err := removeOwnerRef(scheme, cluster, cnpgCluster) if err != nil { - return fmt.Errorf("failed to remove owner reference from CNPG cluster: %w", err) + return fmt.Errorf("removing owner reference from CNPG cluster: %w", err) } if !refRemoved { logger.Info("Owner reference already removed from CNPG Cluster, skipping patch") } if err := patchObject(ctx, c, originalCNPG, cnpgCluster, "CNPGCluster"); err != nil { - return fmt.Errorf("failed to patch CNPG cluster after removing owner reference: %w", err) + return fmt.Errorf("patching CNPG cluster after removing owner reference: %w", err) } logger.Info("Removed owner reference from CNPG Cluster") } @@ -1034,19 +1031,18 @@ func handleFinalizer(ctx context.Context, rc *ReconcileContext, cluster *enterpr secretName := cluster.Status.Resources.SuperUserSecretRef.Name if err := c.Get(ctx, types.NamespacedName{Name: secretName, Namespace: cluster.Namespace}, secret); err != nil { if !apierrors.IsNotFound(err) { - logger.Error(err, "Failed to fetch Secret during cleanup") - return fmt.Errorf("failed to fetch secret during cleanup: %w", err) + return fmt.Errorf("fetching secret during cleanup: %w", err) } logger.Info("Secret not found, skipping owner reference removal", "secret", secretName) } else { originalSecret := secret.DeepCopy() refRemoved, err := removeOwnerRef(scheme, cluster, secret) if err != nil { - return fmt.Errorf("failed to remove owner reference from Secret: %w", err) + return fmt.Errorf("removing owner reference from Secret: %w", err) } if refRemoved { if err := patchObject(ctx, c, originalSecret, secret, "Secret"); err != nil { - return fmt.Errorf("failed to patch Secret after removing owner reference: %w", err) + return fmt.Errorf("patching Secret after removing owner reference: %w", err) } } logger.Info("Removed owner reference from Secret") @@ -1063,8 +1059,7 @@ func handleFinalizer(ctx context.Context, rc *ReconcileContext, cluster *enterpr logger.Info("PostgresCluster already deleted, skipping finalizer update") return nil } - logger.Error(err, "Failed to remove finalizer from PostgresCluster") - return fmt.Errorf("failed to remove finalizer: %w", err) + return fmt.Errorf("removing finalizer: %w", err) } rc.emitNormal(cluster, EventCleanupComplete, fmt.Sprintf("Cleanup complete (policy: %s)", policy)) logger.Info("Finalizer removed, cleanup complete") @@ -1074,13 +1069,13 @@ func handleFinalizer(ctx context.Context, rc *ReconcileContext, cluster *enterpr func removeOwnerRef(scheme *runtime.Scheme, owner, obj client.Object) (bool, error) { hasRef, err := controllerutil.HasOwnerReference(obj.GetOwnerReferences(), owner, scheme) if err != nil { - return false, fmt.Errorf("failed to check owner reference: %w", err) + return false, fmt.Errorf("checking owner reference: %w", err) } if !hasRef { return false, nil } if err := controllerutil.RemoveOwnerReference(owner, obj, scheme); err != nil { - return false, fmt.Errorf("failed to remove owner reference: %w", err) + return false, fmt.Errorf("removing owner reference: %w", err) } return true, nil } @@ -1093,9 +1088,9 @@ func patchObject(ctx context.Context, c client.Client, original, obj client.Obje logger.Info("Object not found, skipping patch", "kind", kind, "name", obj.GetName()) return nil } - return fmt.Errorf("failed to patch %s object: %w", kind, err) + return fmt.Errorf("patching %s: %w", kind, err) } - logger.Info("Patched object successfully", "kind", kind, "name", obj.GetName()) + logger.Info("Object patched", "kind", kind, "name", obj.GetName()) return nil } diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 269ecb706..f84a35fd9 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -38,8 +38,9 @@ func PostgresDatabaseService( newDBRepo NewDBRepoFunc, ) (ctrl.Result, error) { c := rc.Client - logger := log.FromContext(ctx) - logger.Info("Reconciling PostgresDatabase", "name", postgresDB.Name, "namespace", postgresDB.Namespace) + logger := log.FromContext(ctx).WithValues("postgresDatabase", postgresDB.Name) + ctx = log.IntoContext(ctx, logger) + logger.Info("Reconciling PostgresDatabase") updateStatus := func(conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { return persistStatus(ctx, c, postgresDB, conditionType, conditionStatus, reason, message, phase) @@ -48,7 +49,7 @@ func PostgresDatabaseService( // Finalizer: cleanup on deletion, register on creation. if postgresDB.GetDeletionTimestamp() != nil { if err := handleDeletion(ctx, rc, postgresDB); err != nil { - logger.Error(err, "Cleanup failed for PostgresDatabase") + logger.Error(err, "Failed to clean up PostgresDatabase") rc.emitWarning(postgresDB, EventCleanupFailed, fmt.Sprintf("Cleanup failed: %v", err)) return ctrl.Result{}, err } @@ -65,7 +66,7 @@ func PostgresDatabaseService( logger.Error(err, "Failed to add finalizer to PostgresDatabase") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) } - logger.Info("Finalizer added successfully") + logger.Info("Finalizer added") return ctrl.Result{}, nil } @@ -92,7 +93,7 @@ func PostgresDatabaseService( return ctrl.Result{}, err } clusterStatus := getClusterReadyStatus(cluster) - logger.Info("Cluster validation done", "clusterName", postgresDB.Spec.ClusterRef.Name, "status", clusterStatus) + logger.Info("Cluster validation complete", "clusterName", postgresDB.Spec.ClusterRef.Name, "status", clusterStatus) switch clusterStatus { case ClusterNotReady, ClusterNoProvisionerRef: @@ -115,9 +116,10 @@ func PostgresDatabaseService( conflictMsg := fmt.Sprintf("Role conflict: %s. "+ "If you deleted a previous PostgresDatabase, recreate it with the original name to re-adopt the orphaned resources.", strings.Join(roleConflicts, ", ")) - logger.Error(nil, conflictMsg) + conflictErr := fmt.Errorf("role conflict detected: %s", strings.Join(roleConflicts, ", ")) + logger.Error(conflictErr, conflictMsg) rc.emitWarning(postgresDB, EventRoleConflict, conflictMsg) - errs := []error{fmt.Errorf("role conflict detected: %s", strings.Join(roleConflicts, ", "))} + errs := []error{conflictErr} if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRoleConflict, conflictMsg, failedDBPhase); statusErr != nil { logger.Error(statusErr, "Failed to update status") errs = append(errs, fmt.Errorf("failed to update status: %w", statusErr)) @@ -180,7 +182,7 @@ func PostgresDatabaseService( } if len(missing) > 0 { - logger.Info("User spec changed, patching CNPG Cluster", "missing", missing) + logger.Info("CNPG Cluster patch started, missing roles detected", "missing", missing) if err := patchManagedRoles(ctx, c, postgresDB, cluster); err != nil { logger.Error(err, "Failed to patch users in CNPG Cluster") rc.emitWarning(postgresDB, EventManagedRolesPatchFailed, fmt.Sprintf("Failed to patch managed roles: %v", err)) @@ -255,7 +257,7 @@ func PostgresDatabaseService( // (name + key) when the cluster was provisioned. This avoids depending on CNPG's // spec field and makes the key explicit. if cluster.Status.Resources == nil || cluster.Status.Resources.SuperUserSecretRef == nil { - return ctrl.Result{}, fmt.Errorf("PostgresCluster %s has no superuser secret ref in status", cluster.Name) + return ctrl.Result{}, fmt.Errorf("postgresCluster %s has no superuser secret ref in status", cluster.Name) } superSecretRef := cluster.Status.Resources.SuperUserSecretRef superSecret := &corev1.Secret{} @@ -263,7 +265,7 @@ func PostgresDatabaseService( Name: superSecretRef.Name, Namespace: postgresDB.Namespace, }, superSecret); err != nil { - return ctrl.Result{}, fmt.Errorf("fetching superuser secret %s: %w", superSecretRef.Name, err) + return ctrl.Result{}, fmt.Errorf("failed to fetch superuser secret %s: %w", superSecretRef.Name, err) } pw, ok := superSecret.Data[superSecretRef.Key] if !ok { @@ -298,7 +300,7 @@ func PostgresDatabaseService( if errors.IsConflict(err) { return ctrl.Result{Requeue: true}, nil } - return ctrl.Result{}, fmt.Errorf("persisting final status: %w", err) + return ctrl.Result{}, fmt.Errorf("failed to persist final status: %w", err) } logger.Info("All phases complete") @@ -318,13 +320,11 @@ func reconcileRWRolePrivileges( for _, dbName := range dbNames { repo, err := newDBRepo(ctx, rwHost, dbName, superPassword) if err != nil { - logger.Error(err, "Failed to connect to database", "database", dbName) - errs = append(errs, fmt.Errorf("database %s: %w", dbName, err)) + errs = append(errs, fmt.Errorf("connecting to database %s: %w", dbName, err)) continue } if err := repo.ExecGrants(ctx, dbName); err != nil { - logger.Error(err, "Failed to grant RW role privileges", "database", dbName) - errs = append(errs, fmt.Errorf("database %s: %w", dbName, err)) + errs = append(errs, fmt.Errorf("granting RW privileges on database %s: %w", dbName, err)) continue } logger.Info("RW role privileges granted", "database", dbName, "rwRole", rwRoleName(dbName)) @@ -333,13 +333,8 @@ func reconcileRWRolePrivileges( } func fetchCluster(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase) (*enterprisev4.PostgresCluster, error) { - logger := log.FromContext(ctx) cluster := &enterprisev4.PostgresCluster{} if err := c.Get(ctx, types.NamespacedName{Name: postgresDB.Spec.ClusterRef.Name, Namespace: postgresDB.Namespace}, cluster); err != nil { - if errors.IsNotFound(err) { - return nil, err - } - logger.Error(err, "Failed to fetch Cluster", "name", postgresDB.Spec.ClusterRef.Name) return nil, err } return cluster, nil @@ -423,15 +418,13 @@ func patchManagedRoles(ctx context.Context, c client.Client, postgresDB *enterpr allRoles := buildManagedRoles(postgresDB.Name, postgresDB.Spec.Databases) rolePatch, err := buildManagedRolesPatch(cluster, allRoles, c.Scheme()) if err != nil { - logger.Error(err, "Failed to build managed roles patch", "postgresDatabase", postgresDB.Name) return fmt.Errorf("building managed roles patch for PostgresDatabase %s: %w", postgresDB.Name, err) } fieldManager := fieldManagerName(postgresDB.Name) if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManager)); err != nil { - logger.Error(err, "Failed to add users to PostgresCluster", "postgresDatabase", postgresDB.Name) return fmt.Errorf("patching managed roles for PostgresDatabase %s: %w", postgresDB.Name, err) } - logger.Info("Users added to PostgresCluster via SSA", "postgresDatabase", postgresDB.Name, "roleCount", len(allRoles)) + logger.Info("Users added to PostgresCluster via SSA", "roleCount", len(allRoles)) return nil } @@ -440,7 +433,7 @@ func verifyRolesReady(ctx context.Context, expectedUsers []string, cnpgCluster * if cnpgCluster.Status.ManagedRolesStatus.CannotReconcile != nil { for _, userName := range expectedUsers { if errs, exists := cnpgCluster.Status.ManagedRolesStatus.CannotReconcile[userName]; exists { - return nil, fmt.Errorf("user %s reconciliation failed: %v", userName, errs) + return nil, fmt.Errorf("reconciling user %s: %v", userName, errs) } } } @@ -469,7 +462,7 @@ func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtim cnpgDB.Spec = buildCNPGDatabaseSpec(cluster.Status.ProvisionerRef.Name, dbSpec) reAdopting := cnpgDB.Annotations[annotationRetainedFrom] == postgresDB.Name if reAdopting { - logger.Info("Re-adopting orphaned CNPG Database", "name", cnpgDBName) + logger.Info("Orphaned CNPG Database re-adopted", "name", cnpgDBName) delete(cnpgDB.Annotations, annotationRetainedFrom) adopted = append(adopted, dbSpec.Name) } @@ -530,6 +523,7 @@ func buildDeletionPlan(databases []enterprisev4.DatabaseDefinition) deletionPlan } func handleDeletion(ctx context.Context, rc *ReconcileContext, postgresDB *enterprisev4.PostgresDatabase) error { + logger := log.FromContext(ctx) c := rc.Client plan := buildDeletionPlan(postgresDB.Spec.Databases) if err := orphanRetainedResources(ctx, c, postgresDB, plan.retained); err != nil { @@ -549,7 +543,7 @@ func handleDeletion(ctx context.Context, rc *ReconcileContext, postgresDB *enter return fmt.Errorf("removing finalizer: %w", err) } rc.emitNormal(postgresDB, EventCleanupComplete, fmt.Sprintf("Cleanup complete (%d retained, %d deleted)", len(plan.retained), len(plan.deleted))) - log.FromContext(ctx).Info("Cleanup complete", "name", postgresDB.Name, "retained", len(plan.retained), "deleted", len(plan.deleted)) + logger.Info("Cleanup complete", "retained", len(plan.retained), "deleted", len(plan.deleted)) return nil } @@ -574,6 +568,7 @@ func deleteRemovedResources(ctx context.Context, c client.Client, postgresDB *en } func cleanupManagedRoles(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, plan deletionPlan) error { + logger := log.FromContext(ctx) if len(plan.deleted) == 0 { return nil } @@ -582,7 +577,7 @@ func cleanupManagedRoles(ctx context.Context, c client.Client, postgresDB *enter if !errors.IsNotFound(err) { return fmt.Errorf("getting PostgresCluster for role cleanup: %w", err) } - log.FromContext(ctx).Info("PostgresCluster already deleted, skipping role cleanup") + logger.Info("PostgresCluster already deleted, skipping role cleanup") return nil } return patchManagedRolesOnDeletion(ctx, c, postgresDB, cluster, plan.retained) @@ -745,7 +740,7 @@ func buildManagedRoles(postgresDBName string, databases []enterprisev4.DatabaseD func buildManagedRolesPatch(cluster *enterprisev4.PostgresCluster, roles []enterprisev4.ManagedRole, scheme *runtime.Scheme) (*unstructured.Unstructured, error) { gvk, err := apiutil.GVKForObject(cluster, scheme) if err != nil { - return nil, fmt.Errorf("failed to get GVK for Cluster: %w", err) + return nil, fmt.Errorf("getting GVK for Cluster: %w", err) } return &unstructured.Unstructured{ Object: map[string]any{ @@ -758,6 +753,7 @@ func buildManagedRolesPatch(cluster *enterprisev4.PostgresCluster, roles []enter } func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster, retained []enterprisev4.DatabaseDefinition) error { + logger := log.FromContext(ctx) roles := buildManagedRoles(postgresDB.Name, retained) rolePatch, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) if err != nil { @@ -766,7 +762,7 @@ func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresD if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManagerName(postgresDB.Name))); err != nil { return fmt.Errorf("patching managed roles on deletion: %w", err) } - log.FromContext(ctx).Info("Patched managed roles on deletion", "postgresDatabase", postgresDB.Name, "retainedRoles", len(roles)) + logger.Info("Managed roles patched on deletion", "retainedRoles", len(roles)) return nil } @@ -811,10 +807,10 @@ func ensureSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, logger := log.FromContext(ctx) switch { case secret == nil: - logger.Info("Creating missing user secret", "name", secretName) + logger.Info("User secret creation started", "name", secretName) return createUserSecret(ctx, c, scheme, postgresDB, roleName, secretName) case secret.Annotations[annotationRetainedFrom] == postgresDB.Name: - logger.Info("Re-adopting orphaned secret", "name", secretName) + logger.Info("Orphaned secret re-adopted", "name", secretName) return adoptResource(ctx, c, scheme, postgresDB, secret) } return nil @@ -889,7 +885,7 @@ func reconcileRoleConfigMaps(ctx context.Context, c client.Client, scheme *runti cm.Data = buildDatabaseConfigMapBody(dbSpec.Name, endpoints) reAdopting := cm.Annotations[annotationRetainedFrom] == postgresDB.Name if reAdopting { - logger.Info("Re-adopting orphaned ConfigMap", "name", cmName) + logger.Info("Orphaned ConfigMap re-adopted", "name", cmName) delete(cm.Annotations, annotationRetainedFrom) } if cm.CreationTimestamp.IsZero() || reAdopting { From 45545ba344e36cdd27cab167cc7e25f724ca74f6 Mon Sep 17 00:00:00 2001 From: Jakub Koterba Date: Wed, 1 Apr 2026 11:18:18 +0200 Subject: [PATCH 13/43] added recorder obj to pg cluster and database reconciler instances --- internal/controller/postgrescluster_controller_test.go | 6 ++++-- internal/controller/postgresdatabase_controller_test.go | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 4619c9ac8..ea4d66f64 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -23,6 +23,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/client-go/tools/record" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" @@ -121,8 +122,9 @@ var _ = Describe("PostgresCluster Controller", func() { } reconciler = &PostgresClusterReconciler{ - Client: k8sClient, - Scheme: k8sClient.Scheme(), + Client: k8sClient, + Scheme: k8sClient.Scheme(), + Recorder: record.NewFakeRecorder(100), } req = reconcile.Request{NamespacedName: types.NamespacedName{Name: clusterName, Namespace: namespace}} }) diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go index 614efc49b..a1f5ed9ba 100644 --- a/internal/controller/postgresdatabase_controller_test.go +++ b/internal/controller/postgresdatabase_controller_test.go @@ -32,6 +32,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/tools/record" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/reconcile" @@ -41,8 +42,9 @@ const postgresDatabaseFinalizer = "postgresdatabases.enterprise.splunk.com/final func reconcilePostgresDatabase(ctx context.Context, nn types.NamespacedName) (ctrl.Result, error) { reconciler := &PostgresDatabaseReconciler{ - Client: k8sClient, - Scheme: k8sClient.Scheme(), + Client: k8sClient, + Scheme: k8sClient.Scheme(), + Recorder: record.NewFakeRecorder(100), } return reconciler.Reconcile(ctx, reconcile.Request{NamespacedName: nn}) } From e725c5396e389b0689dbfdf9045175392171c5c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Fri, 3 Apr 2026 16:03:57 +0200 Subject: [PATCH 14/43] Code modified to mark dbs as ensure: false when needed in cluster CR --- api/v4/postgrescluster_types.go | 2 +- .../postgrescluster_controller_test.go | 2 +- .../postgresdatabase_controller_test.go | 70 +++++++- pkg/postgresql/cluster/core/cluster.go | 1 - pkg/postgresql/database/core/database.go | 133 +++++++++----- .../database/core/database_unit_test.go | 163 +++++++++++++++--- pkg/postgresql/database/core/types.go | 3 +- 7 files changed, 304 insertions(+), 70 deletions(-) diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 3e3dd0da7..65d300f53 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -37,7 +37,7 @@ type ManagedRole struct { // Exists controls whether the role should be present (true) or absent (false) in PostgreSQL. // +kubebuilder:default=true // +optional - Exists bool `json:"exists,omitempty"` + Exists bool `json:"exists"` } // PostgresClusterSpec defines the desired state of PostgresCluster. diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index ea4d66f64..5687ae1f8 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -51,7 +51,7 @@ import ( * PC-09 ignores no-op updates */ -var _ = Describe("PostgresCluster Controller", func() { +var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { const ( postgresVersion = "15.10" diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go index a1f5ed9ba..707d2c34b 100644 --- a/internal/controller/postgresdatabase_controller_test.go +++ b/internal/controller/postgresdatabase_controller_test.go @@ -309,6 +309,15 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl } } +func expectManagedRoleExists(cluster *enterprisev4.PostgresCluster, roleName string, exists bool) { + rolesByName := make(map[string]enterprisev4.ManagedRole, len(cluster.Spec.ManagedRoles)) + for _, r := range cluster.Spec.ManagedRoles { + rolesByName[r.Name] = r + } + Expect(rolesByName).To(HaveKey(roleName)) + Expect(rolesByName[roleName].Exists).To(Equal(exists), "role %s: expected Exists=%v", roleName, exists) +} + func expectRetainedArtifact(ctx context.Context, name, namespace, resourceName string, obj client.Object) { Expect(k8sClient.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, obj)).To(Succeed()) Expect(obj.GetAnnotations()).To(HaveKeyWithValue("enterprise.splunk.com/retained-from", resourceName)) @@ -344,7 +353,7 @@ func expectReadyStatus(current *enterprisev4.PostgresDatabase, generation int64, Expect(current.Status.Databases[0].ConfigMapRef).NotTo(BeNil()) } -var _ = Describe("PostgresDatabase Controller", func() { +var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { var ( ctx context.Context namespace string @@ -493,6 +502,59 @@ var _ = Describe("PostgresDatabase Controller", func() { }) }) + When("a database is removed from spec.databases while the CR stays alive", func() { + It("marks the removed database roles as absent in postgres cluster and keeps the retained roles present", func() { + resourceName := "live-db-removal" + clusterName := "live-db-removal-postgres" + cnpgClusterName := "live-db-removal-cnpg" + requestName := types.NamespacedName{Name: resourceName, Namespace: namespace} + + postgresDB := createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{ + {Name: "keepdb"}, + {Name: "dropdb"}, + }, postgresDatabaseFinalizer) + Expect(k8sClient.Get(ctx, requestName, postgresDB)).To(Succeed()) + + postgresCluster := createPostgresClusterResource(ctx, namespace, clusterName) + markPostgresClusterReady(ctx, postgresCluster, cnpgClusterName, namespace, false) + cnpgCluster := createCNPGClusterResource(ctx, namespace, cnpgClusterName) + markCNPGClusterReady(ctx, cnpgCluster, []string{"keepdb_admin", "keepdb_rw", "dropdb_admin", "dropdb_rw"}, "tenant-rw", "tenant-ro") + + initialRolesPatch := &unstructured.Unstructured{ + Object: map[string]any{ + "apiVersion": enterprisev4.GroupVersion.String(), + "kind": "PostgresCluster", + "metadata": map[string]any{"name": clusterName, "namespace": namespace}, + "spec": map[string]any{ + "managedRoles": []map[string]any{ + {"name": "keepdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-keepdb-admin", "key": "password"}}, + {"name": "keepdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-keepdb-rw", "key": "password"}}, + {"name": "dropdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-dropdb-admin", "key": "password"}}, + {"name": "dropdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-dropdb-rw", "key": "password"}}, + }, + }, + }, + } + Expect(k8sClient.Patch(ctx, initialRolesPatch, client.Apply, client.FieldOwner("postgresdatabase-"+resourceName))).To(Succeed()) + + seedOwnedDatabaseArtifacts(ctx, namespace, resourceName, clusterName, postgresDB, "keepdb", "dropdb") + + postgresDB.Spec.Databases = []enterprisev4.DatabaseDefinition{{Name: "keepdb"}} + Expect(k8sClient.Update(ctx, postgresDB)).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, requestName) + expectReconcileResult(result, err, 15*time.Second) + + updatedCluster := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: clusterName, Namespace: namespace}, updatedCluster)).To(Succeed()) + + expectManagedRoleExists(updatedCluster, "keepdb_admin", true) + expectManagedRoleExists(updatedCluster, "keepdb_rw", true) + expectManagedRoleExists(updatedCluster, "dropdb_admin", false) + expectManagedRoleExists(updatedCluster, "dropdb_rw", false) + }) + }) + When("the PostgresDatabase is being deleted", func() { Context("with retained and deleted databases", func() { It("orphans retained resources, removes deleted resources, and patches managed roles", func() { @@ -547,7 +609,11 @@ var _ = Describe("PostgresDatabase Controller", func() { updatedCluster := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, types.NamespacedName{Name: clusterName, Namespace: namespace}, updatedCluster)).To(Succeed()) - Expect(managedRoleNames(updatedCluster.Spec.ManagedRoles)).To(ConsistOf("keepdb_admin", "keepdb_rw")) + + expectManagedRoleExists(updatedCluster, "keepdb_admin", true) + expectManagedRoleExists(updatedCluster, "keepdb_rw", true) + expectManagedRoleExists(updatedCluster, "dropdb_admin", false) + expectManagedRoleExists(updatedCluster, "dropdb_rw", false) current := &enterprisev4.PostgresDatabase{} err = k8sClient.Get(ctx, requestName, current) diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 3334011c6..e09974ec0 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -606,7 +606,6 @@ func reconcileManagedRoles(ctx context.Context, c client.Client, cluster *enterp Name: role.Name, Ensure: cnpgv1.EnsureAbsent, } - // Exists bool replaces the old Ensure string enum ("present"/"absent"). if role.Exists { r.Ensure = cnpgv1.EnsurePresent r.Login = true diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index f84a35fd9..3a88bac80 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -172,31 +172,29 @@ func PostgresDatabaseService( } // Phase: RoleProvisioning - desiredUsers := getDesiredUsers(postgresDB) - actualRoles := getUsersInClusterSpec(cluster) - var missing []string - for _, role := range desiredUsers { - if !slices.Contains(actualRoles, role) { - missing = append(missing, role) - } - } - - if len(missing) > 0 { - logger.Info("CNPG Cluster patch started, missing roles detected", "missing", missing) - if err := patchManagedRoles(ctx, c, postgresDB, cluster); err != nil { + fieldManager := fieldManagerName(postgresDB.Name) + desired := buildDesiredRoles(postgresDB.Name, postgresDB.Spec.Databases) + rolesToAdd := findAddedRoleNames(cluster, desired) + rolesToRemove := absentRolesByName(findRemovedRoleNames(cluster, fieldManager, desired)) + allRoles := append(desired, rolesToRemove...) + + if len(rolesToAdd) > 0 || len(rolesToRemove) > 0 { + logger.Info("CNPG Cluster patch started, role drift detected", "toAdd", len(rolesToAdd), "toRemove", len(rolesToRemove)) + if err := patchManagedRoles(ctx, c, fieldManager, cluster, allRoles); err != nil { logger.Error(err, "Failed to patch users in CNPG Cluster") rc.emitWarning(postgresDB, EventManagedRolesPatchFailed, fmt.Sprintf("Failed to patch managed roles: %v", err)) return ctrl.Result{}, err } - rc.emitNormal(postgresDB, EventRoleReconciliationStarted, fmt.Sprintf("Patched managed roles, waiting for %d roles to reconcile", len(desiredUsers))) + rc.emitNormal(postgresDB, EventRoleReconciliationStarted, fmt.Sprintf("Patched managed roles: %d to add, %d to remove", len(rolesToAdd), len(rolesToRemove))) if err := updateStatus(rolesReady, metav1.ConditionFalse, reasonWaitingForCNPG, - fmt.Sprintf("Waiting for %d roles to be reconciled", len(desiredUsers)), provisioningDBPhase); err != nil { + fmt.Sprintf("Waiting for roles to be reconciled: %d to add, %d to remove", len(rolesToAdd), len(rolesToRemove)), provisioningDBPhase); err != nil { return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil } - notReadyRoles, err := verifyRolesReady(ctx, desiredUsers, cnpgCluster) + roleNames := getDesiredUsers(postgresDB) + notReadyRoles, err := verifyRolesReady(ctx, roleNames, cnpgCluster) if err != nil { rc.emitWarning(postgresDB, EventRoleFailed, fmt.Sprintf("Role reconciliation failed: %v", err)) if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonUsersCreationFailed, @@ -212,9 +210,9 @@ func PostgresDatabaseService( } return ctrl.Result{RequeueAfter: retryDelay}, nil } - rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, rolesReady, EventRolesReady, fmt.Sprintf("All %d roles reconciled", len(desiredUsers))) + rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, rolesReady, EventRolesReady, fmt.Sprintf("Roles reconciled: %d active, %d removed", len(rolesToAdd), len(rolesToRemove))) if err := updateStatus(rolesReady, metav1.ConditionTrue, reasonUsersAvailable, - fmt.Sprintf("All %d users in PostgreSQL", len(desiredUsers)), provisioningDBPhase); err != nil { + fmt.Sprintf("Roles reconciled: %d active, %d removed", len(rolesToAdd), len(rolesToRemove)), provisioningDBPhase); err != nil { return ctrl.Result{}, err } @@ -366,6 +364,9 @@ func getUsersInClusterSpec(cluster *enterprisev4.PostgresCluster) []string { return users } +// rolesMatchClusterSpec returns true if desired and actual contain the same roles +// (by name and Exists state), regardless of order. + func getRoleConflicts(postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) []string { myManager := fieldManagerName(postgresDB.Name) desired := make(map[string]struct{}, len(postgresDB.Spec.Databases)*2) @@ -413,18 +414,16 @@ func parseRoleNames(raw []byte) []string { return names } -func patchManagedRoles(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster) error { +func patchManagedRoles(ctx context.Context, c client.Client, fieldManager string, cluster *enterprisev4.PostgresCluster, roles []enterprisev4.ManagedRole) error { logger := log.FromContext(ctx) - allRoles := buildManagedRoles(postgresDB.Name, postgresDB.Spec.Databases) - rolePatch, err := buildManagedRolesPatch(cluster, allRoles, c.Scheme()) + rolePatch, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) if err != nil { - return fmt.Errorf("building managed roles patch for PostgresDatabase %s: %w", postgresDB.Name, err) + return fmt.Errorf("building managed roles patch: %w", err) } - fieldManager := fieldManagerName(postgresDB.Name) if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManager)); err != nil { - return fmt.Errorf("patching managed roles for PostgresDatabase %s: %w", postgresDB.Name, err) + return fmt.Errorf("patching managed roles: %w", err) } - logger.Info("Users added to PostgresCluster via SSA", "roleCount", len(allRoles)) + logger.Info("Managed roles patched", "count", len(roles)) return nil } @@ -580,7 +579,15 @@ func cleanupManagedRoles(ctx context.Context, c client.Client, postgresDB *enter logger.Info("PostgresCluster already deleted, skipping role cleanup") return nil } - return patchManagedRolesOnDeletion(ctx, c, postgresDB, cluster, plan.retained) + fieldManager := fieldManagerName(postgresDB.Name) + retainedRoles := buildDesiredRoles(postgresDB.Name, plan.retained) + rolesToRemove := buildRolesToRemove(plan.deleted) + allRoles := append(retainedRoles, rolesToRemove...) + if err := patchManagedRoles(ctx, c, fieldManager, cluster, allRoles); err != nil { + return err + } + logger.Info("Managed roles patched on deletion", "retained", len(retainedRoles), "removed", len(rolesToRemove)) + return nil } func orphanCNPGDatabases(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, databases []enterprisev4.DatabaseDefinition) error { @@ -716,7 +723,67 @@ func deleteSecrets(ctx context.Context, c client.Client, postgresDB *enterprisev return nil } -func buildManagedRoles(postgresDBName string, databases []enterprisev4.DatabaseDefinition) []enterprisev4.ManagedRole { +// buildRolesToRemove produces Exists:false entries for the given databases so CNPG drops their roles. +func buildRolesToRemove(databases []enterprisev4.DatabaseDefinition) []enterprisev4.ManagedRole { + roles := make([]enterprisev4.ManagedRole, 0, len(databases)*2) + for _, dbSpec := range databases { + roles = append(roles, + enterprisev4.ManagedRole{Name: adminRoleName(dbSpec.Name), Exists: false}, + enterprisev4.ManagedRole{Name: rwRoleName(dbSpec.Name), Exists: false}, + ) + } + return roles +} + +// absentRolesByName produces Exists:false entries from a list of raw role names. +// Used by the normal reconcile path where names come from SSA field manager parsing. +func absentRolesByName(names []string) []enterprisev4.ManagedRole { + roles := make([]enterprisev4.ManagedRole, 0, len(names)) + for _, name := range names { + roles = append(roles, enterprisev4.ManagedRole{Name: name, Exists: false}) + } + return roles +} + +// findAddedRoleNames returns role names from the desired list that are missing +// from the cluster spec or currently marked absent. +func findAddedRoleNames(cluster *enterprisev4.PostgresCluster, desired []enterprisev4.ManagedRole) []string { + current := make(map[string]bool, len(cluster.Spec.ManagedRoles)) + for _, r := range cluster.Spec.ManagedRoles { + current[r.Name] = r.Exists + } + var toAdd []string + for _, r := range desired { + exists, found := current[r.Name] + if !found || !exists { + toAdd = append(toAdd, r.Name) + } + } + return toAdd +} + +// findRemovedRoleNames returns role names currently owned by this field manager +// in the cluster spec that are absent from the desired list. +func findRemovedRoleNames(cluster *enterprisev4.PostgresCluster, manager string, desired []enterprisev4.ManagedRole) []string { + desiredSet := make(map[string]struct{}, len(desired)) + for _, r := range desired { + desiredSet[r.Name] = struct{}{} + } + owners := managedRoleOwners(cluster.ManagedFields) + var toRemove []string + for name, owner := range owners { + if owner == manager { + if _, ok := desiredSet[name]; !ok { + toRemove = append(toRemove, name) + } + } + } + return toRemove +} + +// buildDesiredRoles builds the full set of roles that should be present for the given databases. +// This is the input to findAddedRoleNames and findRemovedRoleNames. +func buildDesiredRoles(postgresDBName string, databases []enterprisev4.DatabaseDefinition) []enterprisev4.ManagedRole { roles := make([]enterprisev4.ManagedRole, 0, len(databases)*2) for _, dbSpec := range databases { roles = append(roles, @@ -752,20 +819,6 @@ func buildManagedRolesPatch(cluster *enterprisev4.PostgresCluster, roles []enter }, nil } -func patchManagedRolesOnDeletion(ctx context.Context, c client.Client, postgresDB *enterprisev4.PostgresDatabase, cluster *enterprisev4.PostgresCluster, retained []enterprisev4.DatabaseDefinition) error { - logger := log.FromContext(ctx) - roles := buildManagedRoles(postgresDB.Name, retained) - rolePatch, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) - if err != nil { - return fmt.Errorf("building managed roles patch: %w", err) - } - if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManagerName(postgresDB.Name))); err != nil { - return fmt.Errorf("patching managed roles on deletion: %w", err) - } - logger.Info("Managed roles patched on deletion", "retainedRoles", len(roles)) - return nil -} - func stripOwnerReference(obj metav1.Object, ownerUID types.UID) { refs := obj.GetOwnerReferences() filtered := make([]metav1.OwnerReference, 0, len(refs)) diff --git a/pkg/postgresql/database/core/database_unit_test.go b/pkg/postgresql/database/core/database_unit_test.go index 8d4da6c52..0e8bee12b 100644 --- a/pkg/postgresql/database/core/database_unit_test.go +++ b/pkg/postgresql/database/core/database_unit_test.go @@ -306,7 +306,7 @@ func TestVerifyRolesReady(t *testing.T) { }, }, }, - wantErr: "user main_db_rw reconciliation failed: [reserved role]", + wantErr: "reconciling user main_db_rw: [reserved role]", }, { name: "returns missing roles that are not reconciled yet", @@ -1283,7 +1283,7 @@ func TestBuildManagedRoles(t *testing.T) { }, } - got := buildManagedRoles("primary", databases) + got := buildDesiredRoles("primary", databases) assert.Equal(t, want, got) } @@ -1300,7 +1300,7 @@ func TestBuildManagedRolesPatch(t *testing.T) { Namespace: "dbs", }, } - roles := buildManagedRoles("primary", []enterprisev4.DatabaseDefinition{{Name: "payments"}}) + roles := buildDesiredRoles("primary", []enterprisev4.DatabaseDefinition{{Name: "payments"}}) c := testClient(t, scheme, cluster) got, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) @@ -1312,37 +1312,152 @@ func TestBuildManagedRolesPatch(t *testing.T) { assert.Equal(t, map[string]any{"managedRoles": roles}, got.Object["spec"]) } -func TestPatchManagedRolesOnDeletion(t *testing.T) { - scheme := testScheme(t) - postgresDB := &enterprisev4.PostgresDatabase{ - ObjectMeta: metav1.ObjectMeta{ - Name: "primary", - Namespace: "dbs", +func TestFindAddedRoleNames(t *testing.T) { + desired := buildDesiredRoles("primary", []enterprisev4.DatabaseDefinition{{Name: "payments"}, {Name: "api"}}) + + tests := []struct { + name string + current []enterprisev4.ManagedRole + want []string + }{ + { + name: "all missing from cluster", + current: nil, + want: []string{"payments_admin", "payments_rw", "api_admin", "api_rw"}, + }, + { + name: "some already present", + current: []enterprisev4.ManagedRole{ + {Name: "payments_admin", Exists: true}, + {Name: "payments_rw", Exists: true}, + }, + want: []string{"api_admin", "api_rw"}, + }, + { + name: "role present but marked absent — should be re-added", + current: []enterprisev4.ManagedRole{ + {Name: "payments_admin", Exists: false}, + {Name: "payments_rw", Exists: true}, + }, + want: []string{"payments_admin", "api_admin", "api_rw"}, + }, + { + name: "all already present", + current: []enterprisev4.ManagedRole{ + {Name: "payments_admin", Exists: true}, + {Name: "payments_rw", Exists: true}, + {Name: "api_admin", Exists: true}, + {Name: "api_rw", Exists: true}, + }, + want: nil, }, } - cluster := &enterprisev4.PostgresCluster{ - TypeMeta: metav1.TypeMeta{ - APIVersion: enterprisev4.GroupVersion.String(), - Kind: "PostgresCluster", + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ManagedRoles: tc.current}, + } + got := findAddedRoleNames(cluster, desired) + assert.ElementsMatch(t, tc.want, got) + }) + } +} + +type roleFieldOwner struct { + manager string + roles []string +} + +func TestFindRemovedRoleNames(t *testing.T) { + manager := "splunk-operator-primary" + desired := buildDesiredRoles("primary", []enterprisev4.DatabaseDefinition{{Name: "payments"}}) + + tests := []struct { + name string + fieldOwners []roleFieldOwner + want []string + }{ + { + name: "no roles owned by any manager", + fieldOwners: nil, + want: nil, }, - ObjectMeta: metav1.ObjectMeta{ - Name: "primary", - Namespace: "dbs", + { + name: "owned roles still in desired — nothing to remove", + fieldOwners: []roleFieldOwner{{manager: manager, roles: []string{"payments_admin", "payments_rw"}}}, + want: nil, + }, + { + name: "owned role no longer in desired — should be removed", + fieldOwners: []roleFieldOwner{{manager: manager, roles: []string{"payments_admin", "payments_rw", "api_admin", "api_rw"}}}, + want: []string{"api_admin", "api_rw"}, + }, + { + name: "role owned by different manager — ignored", + fieldOwners: []roleFieldOwner{{manager: "other-manager", roles: []string{"api_admin", "api_rw"}}}, + want: nil, }, } - retained := []enterprisev4.DatabaseDefinition{{Name: "payments"}} - want := buildManagedRoles(postgresDB.Name, retained) - c := testClient(t, scheme, cluster) - err := patchManagedRolesOnDeletion(context.Background(), c, postgresDB, cluster, retained) + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + var managedFields []metav1.ManagedFieldsEntry + for _, fo := range tc.fieldOwners { + keys := make([]string, len(fo.roles)) + for i, r := range fo.roles { + keys[i] = `k:{"name":"` + r + `"}` + } + managedFields = append(managedFields, metav1.ManagedFieldsEntry{ + Manager: fo.manager, + FieldsV1: &metav1.FieldsV1{Raw: managedRolesFieldsRaw(t, keys...)}, + Operation: metav1.ManagedFieldsOperationApply, + }) + } + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ManagedFields: managedFields}, + } + got := findRemovedRoleNames(cluster, manager, desired) + assert.ElementsMatch(t, tc.want, got) + }) + } +} + - require.NoError(t, err) +func TestBuildRolesToRemove(t *testing.T) { + tests := []struct { + name string + deleted []enterprisev4.DatabaseDefinition + want []enterprisev4.ManagedRole + }{ + { + name: "nothing to remove", + deleted: nil, + want: []enterprisev4.ManagedRole{}, + }, + { + name: "single database removed", + deleted: []enterprisev4.DatabaseDefinition{{Name: "api"}}, + want: []enterprisev4.ManagedRole{{Name: "api_admin", Exists: false}, {Name: "api_rw", Exists: false}}, + }, + { + name: "multiple databases removed", + deleted: []enterprisev4.DatabaseDefinition{{Name: "api"}, {Name: "payments"}}, + want: []enterprisev4.ManagedRole{ + {Name: "api_admin", Exists: false}, {Name: "api_rw", Exists: false}, + {Name: "payments_admin", Exists: false}, {Name: "payments_rw", Exists: false}, + }, + }, + } - got := &enterprisev4.PostgresCluster{} - require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: cluster.Name, Namespace: cluster.Namespace}, got)) - assert.Equal(t, want, got.Spec.ManagedRoles) + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + assert.Equal(t, tc.want, buildRolesToRemove(tc.deleted)) + }) + } } + func TestStripOwnerReference(t *testing.T) { obj := &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/postgresql/database/core/types.go b/pkg/postgresql/database/core/types.go index bf07fd19f..fb57dee91 100644 --- a/pkg/postgresql/database/core/types.go +++ b/pkg/postgresql/database/core/types.go @@ -31,7 +31,8 @@ const ( readWriteEndpoint string = "rw" deletionPolicyRetain string = "Retain" - + deletionPolicyDelete string = "Delete" + postgresDatabaseFinalizerName string = "postgresdatabases.enterprise.splunk.com/finalizer" annotationRetainedFrom string = "enterprise.splunk.com/retained-from" From bbc6c9c3f62c1dec30854ff19c7b6ae5418fbf82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Tue, 7 Apr 2026 20:01:27 +0200 Subject: [PATCH 15/43] Apply PR suggestions --- api/v4/postgrescluster_types.go | 1 - .../postgresdatabase_controller_test.go | 189 +++++++++++------- 2 files changed, 119 insertions(+), 71 deletions(-) diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 65d300f53..5adc91f13 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -36,7 +36,6 @@ type ManagedRole struct { // Exists controls whether the role should be present (true) or absent (false) in PostgreSQL. // +kubebuilder:default=true - // +optional Exists bool `json:"exists"` } diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go index 707d2c34b..31f591573 100644 --- a/internal/controller/postgresdatabase_controller_test.go +++ b/internal/controller/postgresdatabase_controller_test.go @@ -40,6 +40,44 @@ import ( const postgresDatabaseFinalizer = "postgresdatabases.enterprise.splunk.com/finalizer" +// condition types +const ( + condClusterReady = "ClusterReady" + condSecretsReady = "SecretsReady" + condConfigMapsReady = "ConfigMapsReady" + condRolesReady = "RolesReady" + condDatabasesReady = "DatabasesReady" + condPrivilegesReady = "PrivilegesReady" +) + +// condition reasons +const ( + reasonClusterNotFound = "ClusterNotFound" + reasonClusterAvailable = "ClusterAvailable" + reasonSecretsCreated = "SecretsCreated" + reasonConfigMapsCreated = "ConfigMapsCreated" + reasonUsersAvailable = "UsersAvailable" + reasonDatabasesAvailable = "DatabasesAvailable" + reasonRoleConflict = "RoleConflict" +) + +// phases +const ( + phasePending = "Pending" + phaseReady = "Ready" + phaseFailed = "Failed" +) + +// annotations +const retainedFromAnnotation = "enterprise.splunk.com/retained-from" + +// database names used across tests +const ( + dbAppdb = "appdb" + dbKeepdb = "payments" + dbDropdb = "analytics" +) + func reconcilePostgresDatabase(ctx context.Context, nn types.NamespacedName) (ctrl.Result, error) { reconciler := &PostgresDatabaseReconciler{ Client: k8sClient, @@ -57,12 +95,20 @@ func managedRoleNames(roles []enterprisev4.ManagedRole) []string { return names } -func adminRoleNameForTest(dbName string) string { - return dbName + "_admin" -} +func adminRoleNameForTest(dbName string) string { return dbName + "_admin" } +func rwRoleNameForTest(dbName string) string { return dbName + "_rw" } -func rwRoleNameForTest(dbName string) string { - return dbName + "_rw" +func adminSecretNameForTest(resourceName, dbName string) string { + return fmt.Sprintf("%s-%s-admin", resourceName, dbName) +} +func rwSecretNameForTest(resourceName, dbName string) string { + return fmt.Sprintf("%s-%s-rw", resourceName, dbName) +} +func configMapNameForTest(resourceName, dbName string) string { + return fmt.Sprintf("%s-%s-config", resourceName, dbName) +} +func cnpgDatabaseNameForTest(resourceName, dbName string) string { + return fmt.Sprintf("%s-%s", resourceName, dbName) } func ownedByPostgresDatabase(postgresDB *enterprisev4.PostgresDatabase) []metav1.OwnerReference { @@ -208,17 +254,17 @@ func seedExistingDatabaseStatus(ctx context.Context, current *enterprisev4.Postg func expectProvisionedArtifacts(ctx context.Context, scenario readyClusterScenario, owner *enterprisev4.PostgresDatabase) { adminSecret := &corev1.Secret{} - Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-admin", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, adminSecret)).To(Succeed()) + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: adminSecretNameForTest(scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, adminSecret)).To(Succeed()) Expect(adminSecret.Data).To(HaveKey("password")) Expect(metav1.IsControlledBy(adminSecret, owner)).To(BeTrue()) rwSecret := &corev1.Secret{} - Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-rw", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, rwSecret)).To(Succeed()) + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: rwSecretNameForTest(scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, rwSecret)).To(Succeed()) Expect(rwSecret.Data).To(HaveKey("password")) Expect(metav1.IsControlledBy(rwSecret, owner)).To(BeTrue()) configMap := &corev1.ConfigMap{} - Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-config", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: configMapNameForTest(scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) Expect(configMap.Data).To(HaveKeyWithValue("rw-host", "tenant-rw."+scenario.namespace+".svc.cluster.local")) Expect(configMap.Data).To(HaveKeyWithValue("ro-host", "tenant-ro."+scenario.namespace+".svc.cluster.local")) Expect(configMap.Data).To(HaveKeyWithValue("admin-user", adminRoleNameForTest(scenario.dbName))) @@ -234,7 +280,7 @@ func expectManagedRolesPatched(ctx context.Context, scenario readyClusterScenari func expectCNPGDatabaseCreated(ctx context.Context, scenario readyClusterScenario, owner *enterprisev4.PostgresDatabase) *cnpgv1.Database { cnpgDatabase := &cnpgv1.Database{} - Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, cnpgDatabase)).To(Succeed()) + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: cnpgDatabaseNameForTest(scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, cnpgDatabase)).To(Succeed()) Expect(cnpgDatabase.Spec.Name).To(Equal(scenario.dbName)) Expect(cnpgDatabase.Spec.Owner).To(Equal(adminRoleNameForTest(scenario.dbName))) Expect(cnpgDatabase.Spec.ClusterRef.Name).To(Equal(scenario.cnpgClusterName)) @@ -250,18 +296,18 @@ func markCNPGDatabaseApplied(ctx context.Context, cnpgDatabase *cnpgv1.Database) func expectPoolerConfigMap(ctx context.Context, scenario readyClusterScenario) { configMap := &corev1.ConfigMap{} - Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-config", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: configMapNameForTest(scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) Expect(configMap.Data).To(HaveKeyWithValue("pooler-rw-host", scenario.cnpgClusterName+"-pooler-rw."+scenario.namespace+".svc.cluster.local")) Expect(configMap.Data).To(HaveKeyWithValue("pooler-ro-host", scenario.cnpgClusterName+"-pooler-ro."+scenario.namespace+".svc.cluster.local")) } func seedMissingClusterScenario(ctx context.Context, namespace, resourceName string, finalizers ...string) types.NamespacedName { - createPostgresDatabaseResource(ctx, namespace, resourceName, "absent-cluster", []enterprisev4.DatabaseDefinition{{Name: "appdb"}}, finalizers...) + createPostgresDatabaseResource(ctx, namespace, resourceName, "absent-cluster", []enterprisev4.DatabaseDefinition{{Name: dbAppdb}}, finalizers...) return types.NamespacedName{Name: resourceName, Namespace: namespace} } func seedConflictScenario(ctx context.Context, namespace, resourceName, clusterName string) types.NamespacedName { - createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{{Name: "appdb"}}, postgresDatabaseFinalizer) + createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{{Name: dbAppdb}}, postgresDatabaseFinalizer) postgresCluster := createPostgresClusterResource(ctx, namespace, clusterName) markPostgresClusterReady(ctx, postgresCluster, "unused-cnpg", namespace, false) return types.NamespacedName{Name: resourceName, Namespace: namespace} @@ -272,7 +318,7 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl for _, dbName := range dbNames { Expect(k8sClient.Create(ctx, &corev1.Secret{ ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%s-%s-admin", resourceName, dbName), + Name: adminSecretNameForTest(resourceName, dbName), Namespace: namespace, OwnerReferences: ownerReferences, }, @@ -280,7 +326,7 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl Expect(k8sClient.Create(ctx, &corev1.Secret{ ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%s-%s-rw", resourceName, dbName), + Name: rwSecretNameForTest(resourceName, dbName), Namespace: namespace, OwnerReferences: ownerReferences, }, @@ -288,7 +334,7 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl Expect(k8sClient.Create(ctx, &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%s-%s-config", resourceName, dbName), + Name: configMapNameForTest(resourceName, dbName), Namespace: namespace, OwnerReferences: ownerReferences, }, @@ -296,7 +342,7 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl Expect(k8sClient.Create(ctx, &cnpgv1.Database{ ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%s-%s", resourceName, dbName), + Name: cnpgDatabaseNameForTest(resourceName, dbName), Namespace: namespace, OwnerReferences: ownerReferences, }, @@ -320,7 +366,7 @@ func expectManagedRoleExists(cluster *enterprisev4.PostgresCluster, roleName str func expectRetainedArtifact(ctx context.Context, name, namespace, resourceName string, obj client.Object) { Expect(k8sClient.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, obj)).To(Succeed()) - Expect(obj.GetAnnotations()).To(HaveKeyWithValue("enterprise.splunk.com/retained-from", resourceName)) + Expect(obj.GetAnnotations()).To(HaveKeyWithValue(retainedFromAnnotation, resourceName)) Expect(obj.GetOwnerReferences()).To(BeEmpty()) } @@ -342,7 +388,7 @@ func expectStatusCondition(current *enterprisev4.PostgresDatabase, conditionType } func expectReadyStatus(current *enterprisev4.PostgresDatabase, generation int64, expectedDatabase enterprisev4.DatabaseInfo) { - expectStatusPhase(current, "Ready") + expectStatusPhase(current, phaseReady) Expect(current.Status.ObservedGeneration).NotTo(BeNil()) Expect(*current.Status.ObservedGeneration).To(Equal(generation)) Expect(current.Status.Databases).To(HaveLen(1)) @@ -393,9 +439,9 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { expectReconcileResult(result, err, 30*time.Second) current := fetchPostgresDatabase(ctx, requestName) - expectStatusPhase(current, "Pending") - expectStatusCondition(current, "ClusterReady", metav1.ConditionFalse, "ClusterNotFound") - clusterReady := meta.FindStatusCondition(current.Status.Conditions, "ClusterReady") + expectStatusPhase(current, phasePending) + expectStatusCondition(current, condClusterReady, metav1.ConditionFalse, reasonClusterNotFound) + clusterReady := meta.FindStatusCondition(current.Status.Conditions, condClusterReady) Expect(clusterReady.ObservedGeneration).To(Equal(current.Generation)) }) }) @@ -404,7 +450,7 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { When("the referenced PostgresCluster is ready", func() { Context("and live grants are not invoked", func() { It("reconciles secrets, configmaps, roles, and CNPG databases", func() { - scenario := newReadyClusterScenario(namespace, "ready-cluster", "tenant-cluster", "tenant-cnpg", "appdb") + scenario := newReadyClusterScenario(namespace, "ready-cluster", "tenant-cluster", "tenant-cnpg", dbAppdb) seedReadyClusterScenario(ctx, scenario, false) result, err := reconcilePostgresDatabase(ctx, scenario.requestName) @@ -428,18 +474,18 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { current = fetchPostgresDatabase(ctx, scenario.requestName) expectReadyStatus(current, current.Generation, enterprisev4.DatabaseInfo{Name: scenario.dbName, Ready: true}) - expectStatusCondition(current, "ClusterReady", metav1.ConditionTrue, "ClusterAvailable") - expectStatusCondition(current, "SecretsReady", metav1.ConditionTrue, "SecretsCreated") - expectStatusCondition(current, "ConfigMapsReady", metav1.ConditionTrue, "ConfigMapsCreated") - expectStatusCondition(current, "RolesReady", metav1.ConditionTrue, "UsersAvailable") - expectStatusCondition(current, "DatabasesReady", metav1.ConditionTrue, "DatabasesAvailable") - Expect(meta.FindStatusCondition(current.Status.Conditions, "PrivilegesReady")).To(BeNil()) + expectStatusCondition(current, condClusterReady, metav1.ConditionTrue, reasonClusterAvailable) + expectStatusCondition(current, condSecretsReady, metav1.ConditionTrue, reasonSecretsCreated) + expectStatusCondition(current, condConfigMapsReady, metav1.ConditionTrue, reasonConfigMapsCreated) + expectStatusCondition(current, condRolesReady, metav1.ConditionTrue, reasonUsersAvailable) + expectStatusCondition(current, condDatabasesReady, metav1.ConditionTrue, reasonDatabasesAvailable) + Expect(meta.FindStatusCondition(current.Status.Conditions, condPrivilegesReady)).To(BeNil()) }) }) Context("and connection pooling is enabled", func() { It("adds pooler endpoints to the generated ConfigMap", func() { - scenario := newReadyClusterScenario(namespace, "pooler-cluster", "pooler-postgres", "pooler-cnpg", "appdb") + scenario := newReadyClusterScenario(namespace, "pooler-cluster", "pooler-postgres", "pooler-cnpg", dbAppdb) seedReadyClusterScenario(ctx, scenario, true) result, err := reconcilePostgresDatabase(ctx, scenario.requestName) @@ -471,8 +517,8 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { }, "spec": map[string]any{ "managedRoles": []map[string]any{ - {"name": "appdb_admin", "exists": true}, - {"name": "appdb_rw", "exists": true}, + {"name": adminRoleNameForTest(dbAppdb), "exists": true}, + {"name": rwRoleNameForTest(dbAppdb), "exists": true}, }, }, }, @@ -485,19 +531,19 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { Expect(result).To(Equal(ctrl.Result{})) current := fetchPostgresDatabase(ctx, requestName) - expectStatusPhase(current, "Failed") - expectStatusCondition(current, "RolesReady", metav1.ConditionFalse, "RoleConflict") + expectStatusPhase(current, phaseFailed) + expectStatusCondition(current, condRolesReady, metav1.ConditionFalse, reasonRoleConflict) - rolesReady := meta.FindStatusCondition(current.Status.Conditions, "RolesReady") - Expect(rolesReady.Message).To(ContainSubstring("appdb_admin")) + rolesReady := meta.FindStatusCondition(current.Status.Conditions, condRolesReady) + Expect(rolesReady.Message).To(ContainSubstring(adminRoleNameForTest(dbAppdb))) Expect(rolesReady.Message).To(ContainSubstring("postgresdatabase-legacy")) configMap := &corev1.ConfigMap{} - err = k8sClient.Get(ctx, types.NamespacedName{Name: "conflict-cluster-appdb-config", Namespace: namespace}, configMap) + err = k8sClient.Get(ctx, types.NamespacedName{Name: configMapNameForTest("conflict-cluster", dbAppdb), Namespace: namespace}, configMap) Expect(apierrors.IsNotFound(err)).To(BeTrue()) cnpgDatabase := &cnpgv1.Database{} - err = k8sClient.Get(ctx, types.NamespacedName{Name: "conflict-cluster-appdb", Namespace: namespace}, cnpgDatabase) + err = k8sClient.Get(ctx, types.NamespacedName{Name: cnpgDatabaseNameForTest("conflict-cluster", dbAppdb), Namespace: namespace}, cnpgDatabase) Expect(apierrors.IsNotFound(err)).To(BeTrue()) }) }) @@ -510,15 +556,18 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { requestName := types.NamespacedName{Name: resourceName, Namespace: namespace} postgresDB := createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{ - {Name: "keepdb"}, - {Name: "dropdb"}, + {Name: dbKeepdb}, + {Name: dbDropdb}, }, postgresDatabaseFinalizer) Expect(k8sClient.Get(ctx, requestName, postgresDB)).To(Succeed()) postgresCluster := createPostgresClusterResource(ctx, namespace, clusterName) markPostgresClusterReady(ctx, postgresCluster, cnpgClusterName, namespace, false) cnpgCluster := createCNPGClusterResource(ctx, namespace, cnpgClusterName) - markCNPGClusterReady(ctx, cnpgCluster, []string{"keepdb_admin", "keepdb_rw", "dropdb_admin", "dropdb_rw"}, "tenant-rw", "tenant-ro") + markCNPGClusterReady(ctx, cnpgCluster, []string{ + adminRoleNameForTest(dbKeepdb), rwRoleNameForTest(dbKeepdb), + adminRoleNameForTest(dbDropdb), rwRoleNameForTest(dbDropdb), + }, "tenant-rw", "tenant-ro") initialRolesPatch := &unstructured.Unstructured{ Object: map[string]any{ @@ -527,19 +576,19 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { "metadata": map[string]any{"name": clusterName, "namespace": namespace}, "spec": map[string]any{ "managedRoles": []map[string]any{ - {"name": "keepdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-keepdb-admin", "key": "password"}}, - {"name": "keepdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-keepdb-rw", "key": "password"}}, - {"name": "dropdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-dropdb-admin", "key": "password"}}, - {"name": "dropdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-dropdb-rw", "key": "password"}}, + {"name": adminRoleNameForTest(dbKeepdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbKeepdb + "-admin", "key": "password"}}, + {"name": rwRoleNameForTest(dbKeepdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbKeepdb + "-rw", "key": "password"}}, + {"name": adminRoleNameForTest(dbDropdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbDropdb + "-admin", "key": "password"}}, + {"name": rwRoleNameForTest(dbDropdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbDropdb + "-rw", "key": "password"}}, }, }, }, } Expect(k8sClient.Patch(ctx, initialRolesPatch, client.Apply, client.FieldOwner("postgresdatabase-"+resourceName))).To(Succeed()) - seedOwnedDatabaseArtifacts(ctx, namespace, resourceName, clusterName, postgresDB, "keepdb", "dropdb") + seedOwnedDatabaseArtifacts(ctx, namespace, resourceName, clusterName, postgresDB, dbKeepdb, dbDropdb) - postgresDB.Spec.Databases = []enterprisev4.DatabaseDefinition{{Name: "keepdb"}} + postgresDB.Spec.Databases = []enterprisev4.DatabaseDefinition{{Name: dbKeepdb}} Expect(k8sClient.Update(ctx, postgresDB)).To(Succeed()) result, err := reconcilePostgresDatabase(ctx, requestName) @@ -548,10 +597,10 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { updatedCluster := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, types.NamespacedName{Name: clusterName, Namespace: namespace}, updatedCluster)).To(Succeed()) - expectManagedRoleExists(updatedCluster, "keepdb_admin", true) - expectManagedRoleExists(updatedCluster, "keepdb_rw", true) - expectManagedRoleExists(updatedCluster, "dropdb_admin", false) - expectManagedRoleExists(updatedCluster, "dropdb_rw", false) + expectManagedRoleExists(updatedCluster, adminRoleNameForTest(dbKeepdb), true) + expectManagedRoleExists(updatedCluster, rwRoleNameForTest(dbKeepdb), true) + expectManagedRoleExists(updatedCluster, adminRoleNameForTest(dbDropdb), false) + expectManagedRoleExists(updatedCluster, rwRoleNameForTest(dbDropdb), false) }) }) @@ -563,8 +612,8 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { requestName := types.NamespacedName{Name: resourceName, Namespace: namespace} postgresDB := createPostgresDatabaseResource(ctx, namespace, resourceName, clusterName, []enterprisev4.DatabaseDefinition{ - {Name: "keepdb", DeletionPolicy: "Retain"}, - {Name: "dropdb"}, + {Name: dbKeepdb, DeletionPolicy: "Retain"}, + {Name: dbDropdb}, }, postgresDatabaseFinalizer) Expect(k8sClient.Get(ctx, requestName, postgresDB)).To(Succeed()) @@ -580,40 +629,40 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { }, "spec": map[string]any{ "managedRoles": []map[string]any{ - {"name": "keepdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-keepdb-admin", "key": "password"}}, - {"name": "keepdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-keepdb-rw", "key": "password"}}, - {"name": "dropdb_admin", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-dropdb-admin", "key": "password"}}, - {"name": "dropdb_rw", "exists": true, "passwordSecretRef": map[string]any{"name": "delete-cluster-dropdb-rw", "key": "password"}}, + {"name": adminRoleNameForTest(dbKeepdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbKeepdb + "-admin", "key": "password"}}, + {"name": rwRoleNameForTest(dbKeepdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbKeepdb + "-rw", "key": "password"}}, + {"name": adminRoleNameForTest(dbDropdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbDropdb + "-admin", "key": "password"}}, + {"name": rwRoleNameForTest(dbDropdb), "exists": true, "passwordSecretRef": map[string]any{"name": resourceName + "-" + dbDropdb + "-rw", "key": "password"}}, }, }, }, } - Expect(k8sClient.Patch(ctx, initialRolesPatch, client.Apply, client.FieldOwner("postgresdatabase-delete-cluster"))).To(Succeed()) + Expect(k8sClient.Patch(ctx, initialRolesPatch, client.Apply, client.FieldOwner("postgresdatabase-"+resourceName))).To(Succeed()) - seedOwnedDatabaseArtifacts(ctx, namespace, resourceName, clusterName, postgresDB, "keepdb", "dropdb") + seedOwnedDatabaseArtifacts(ctx, namespace, resourceName, clusterName, postgresDB, dbKeepdb, dbDropdb) Expect(k8sClient.Delete(ctx, postgresDB)).To(Succeed()) result, err := reconcilePostgresDatabase(ctx, requestName) expectEmptyReconcileResult(result, err) - expectRetainedArtifact(ctx, "delete-cluster-keepdb-config", namespace, resourceName, &corev1.ConfigMap{}) - expectRetainedArtifact(ctx, "delete-cluster-keepdb-admin", namespace, resourceName, &corev1.Secret{}) - expectRetainedArtifact(ctx, "delete-cluster-keepdb-rw", namespace, resourceName, &corev1.Secret{}) - expectRetainedArtifact(ctx, "delete-cluster-keepdb", namespace, resourceName, &cnpgv1.Database{}) + expectRetainedArtifact(ctx, configMapNameForTest(resourceName, dbKeepdb), namespace, resourceName, &corev1.ConfigMap{}) + expectRetainedArtifact(ctx, adminSecretNameForTest(resourceName, dbKeepdb), namespace, resourceName, &corev1.Secret{}) + expectRetainedArtifact(ctx, rwSecretNameForTest(resourceName, dbKeepdb), namespace, resourceName, &corev1.Secret{}) + expectRetainedArtifact(ctx, cnpgDatabaseNameForTest(resourceName, dbKeepdb), namespace, resourceName, &cnpgv1.Database{}) - expectDeletedArtifact(ctx, "delete-cluster-dropdb-config", namespace, &corev1.ConfigMap{}) - expectDeletedArtifact(ctx, "delete-cluster-dropdb-admin", namespace, &corev1.Secret{}) - expectDeletedArtifact(ctx, "delete-cluster-dropdb-rw", namespace, &corev1.Secret{}) - expectDeletedArtifact(ctx, "delete-cluster-dropdb", namespace, &cnpgv1.Database{}) + expectDeletedArtifact(ctx, configMapNameForTest(resourceName, dbDropdb), namespace, &corev1.ConfigMap{}) + expectDeletedArtifact(ctx, adminSecretNameForTest(resourceName, dbDropdb), namespace, &corev1.Secret{}) + expectDeletedArtifact(ctx, rwSecretNameForTest(resourceName, dbDropdb), namespace, &corev1.Secret{}) + expectDeletedArtifact(ctx, cnpgDatabaseNameForTest(resourceName, dbDropdb), namespace, &cnpgv1.Database{}) updatedCluster := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, types.NamespacedName{Name: clusterName, Namespace: namespace}, updatedCluster)).To(Succeed()) - expectManagedRoleExists(updatedCluster, "keepdb_admin", true) - expectManagedRoleExists(updatedCluster, "keepdb_rw", true) - expectManagedRoleExists(updatedCluster, "dropdb_admin", false) - expectManagedRoleExists(updatedCluster, "dropdb_rw", false) + expectManagedRoleExists(updatedCluster, adminRoleNameForTest(dbKeepdb), true) + expectManagedRoleExists(updatedCluster, rwRoleNameForTest(dbKeepdb), true) + expectManagedRoleExists(updatedCluster, adminRoleNameForTest(dbDropdb), false) + expectManagedRoleExists(updatedCluster, rwRoleNameForTest(dbDropdb), false) current := &enterprisev4.PostgresDatabase{} err = k8sClient.Get(ctx, requestName, current) From 67a0ed2a455752a525627f12657b2da3989f2128 Mon Sep 17 00:00:00 2001 From: Kamil Ubych <56136249+limak9182@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:49:07 +0200 Subject: [PATCH 16/43] postgres controllers metrics (#1811) * metrics * use Controller-runtime standard metrics * metrics labeled by errors * managedusers reset bug fix --- cmd/main.go | 25 +++-- .../controller/postgrescluster_controller.go | 14 ++- .../controller/postgresdatabase_controller.go | 15 ++- pkg/postgresql/cluster/core/cluster.go | 21 +++-- pkg/postgresql/cluster/core/types.go | 2 + pkg/postgresql/database/core/database.go | 14 ++- .../database/core/database_unit_test.go | 2 + pkg/postgresql/database/core/types.go | 11 ++- .../shared/adapter/prometheus/collector.go | 91 +++++++++++++++++++ .../shared/adapter/prometheus/noop.go | 15 +++ .../shared/adapter/prometheus/recorder.go | 91 +++++++++++++++++++ pkg/postgresql/shared/ports/metrics.go | 35 +++++++ 12 files changed, 307 insertions(+), 29 deletions(-) create mode 100644 pkg/postgresql/shared/adapter/prometheus/collector.go create mode 100644 pkg/postgresql/shared/adapter/prometheus/noop.go create mode 100644 pkg/postgresql/shared/adapter/prometheus/recorder.go create mode 100644 pkg/postgresql/shared/ports/metrics.go diff --git a/cmd/main.go b/cmd/main.go index 332623f0d..d7cc6cc8b 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -25,6 +25,7 @@ import ( "path/filepath" "time" + crmetrics "sigs.k8s.io/controller-runtime/pkg/metrics" "sigs.k8s.io/controller-runtime/pkg/metrics/filters" intController "github.com/splunk/splunk-operator/internal/controller" @@ -55,6 +56,7 @@ import ( "github.com/splunk/splunk-operator/internal/controller" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" //+kubebuilder:scaffold:imports //extapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) @@ -282,18 +284,29 @@ func main() { setupLog.Error(err, "unable to create controller", "controller", "Telemetry") os.Exit(1) } + pgMetricsRecorder := pgprometheus.NewPrometheusRecorder() + if err := pgprometheus.Register(crmetrics.Registry); err != nil { + setupLog.Error(err, "unable to register PostgreSQL metrics") + os.Exit(1) + } + pgFleetMetricsCollector := pgprometheus.NewFleetCollector() + if err := (&controller.PostgresDatabaseReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - Recorder: mgr.GetEventRecorderFor("postgresdatabase-controller"), + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + Recorder: mgr.GetEventRecorderFor("postgresdatabase-controller"), + Metrics: pgMetricsRecorder, + FleetCollector: pgFleetMetricsCollector, }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "PostgresDatabase") os.Exit(1) } if err := (&controller.PostgresClusterReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - Recorder: mgr.GetEventRecorderFor("postgrescluster-controller"), + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + Recorder: mgr.GetEventRecorderFor("postgrescluster-controller"), + Metrics: pgMetricsRecorder, + FleetCollector: pgFleetMetricsCollector, }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "PostgresCluster") os.Exit(1) diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 70b11c9e6..c49e7ba4d 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -22,6 +22,8 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" clustercore "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -42,8 +44,10 @@ const ( // PostgresClusterReconciler reconciles PostgresCluster resources. type PostgresClusterReconciler struct { client.Client - Scheme *runtime.Scheme - Recorder record.EventRecorder + Scheme *runtime.Scheme + Recorder record.EventRecorder + Metrics ports.Recorder + FleetCollector *pgprometheus.FleetCollector } // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters,verbs=get;list;watch;create;update;patch;delete @@ -57,8 +61,10 @@ type PostgresClusterReconciler struct { // +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder} - return clustercore.PostgresClusterService(ctx, rc, req) + rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} + result, err := clustercore.PostgresClusterService(ctx, rc, req) + r.FleetCollector.CollectClusterMetrics(ctx, r.Client, r.Metrics) + return result, err } // SetupWithManager registers the controller and owned resource watches. diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go index 0c6db9628..ab54da0fd 100644 --- a/internal/controller/postgresdatabase_controller.go +++ b/internal/controller/postgresdatabase_controller.go @@ -24,6 +24,8 @@ import ( enterprisev4 "github.com/splunk/splunk-operator/api/v4" dbadapter "github.com/splunk/splunk-operator/pkg/postgresql/database/adapter" dbcore "github.com/splunk/splunk-operator/pkg/postgresql/database/core" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -42,8 +44,10 @@ import ( // PostgresDatabaseReconciler reconciles a PostgresDatabase object. type PostgresDatabaseReconciler struct { client.Client - Scheme *runtime.Scheme - Recorder record.EventRecorder + Scheme *runtime.Scheme + Recorder record.EventRecorder + Metrics ports.Recorder + FleetCollector *pgprometheus.FleetCollector } const ( @@ -71,8 +75,11 @@ func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Req } return ctrl.Result{}, err } - rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder} - return dbcore.PostgresDatabaseService(ctx, rc, postgresDB, dbadapter.NewDBRepository) + rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} + result, err := dbcore.PostgresDatabaseService(ctx, rc, postgresDB, dbadapter.NewDBRepository) + r.FleetCollector.CollectDatabaseMetrics(ctx, r.Client, r.Metrics) + + return result, err } // SetupWithManager sets up the controller with the Manager. diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index e09974ec0..01df3a1c7 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -24,6 +24,7 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" password "github.com/sethvargo/go-password/password" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -67,7 +68,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. ctx = log.IntoContext(ctx, logger) updateStatus := func(conditionType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { - return setStatus(ctx, c, postgresCluster, conditionType, status, reason, message, phase) + return setStatus(ctx, c, rc.Metrics, postgresCluster, conditionType, status, reason, message, phase) } // Finalizer handling must come before any other processing. @@ -384,7 +385,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. default: oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) copy(oldConditions, postgresCluster.Status.Conditions) - if err := syncPoolerStatus(ctx, c, postgresCluster); err != nil { + if err := syncPoolerStatus(ctx, c, rc.Metrics, postgresCluster); err != nil { logger.Error(err, "Failed to sync pooler status") rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to sync pooler status: %v", err)) if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, @@ -450,7 +451,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if postgresCluster.Status.Phase != nil { oldPhase = *postgresCluster.Status.Phase } - if err := syncStatus(ctx, c, postgresCluster, cnpgCluster); err != nil { + if err := syncStatus(ctx, c, rc.Metrics, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to sync status") if apierrors.IsConflict(err) { logger.Info("Conflict during status update, will requeue") @@ -478,7 +479,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. logger.Info("Poolers ready, syncing status") poolerOldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) copy(poolerOldConditions, postgresCluster.Status.Conditions) - _ = syncPoolerStatus(ctx, c, postgresCluster) + _ = syncPoolerStatus(ctx, c, rc.Metrics, postgresCluster) rc.emitPoolerReadyTransition(postgresCluster, poolerOldConditions) } } @@ -755,7 +756,7 @@ func deleteConnectionPoolers(ctx context.Context, c client.Client, cluster *ente } // syncPoolerStatus populates ConnectionPoolerStatus and the PoolerReady condition. -func syncPoolerStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster) error { +func syncPoolerStatus(ctx context.Context, c client.Client, metrics ports.Recorder, cluster *enterprisev4.PostgresCluster) error { rwPooler := &cnpgv1.Pooler{} if err := c.Get(ctx, types.NamespacedName{ Name: poolerResourceName(cluster.Name, readWriteEndpoint), @@ -776,13 +777,13 @@ func syncPoolerStatus(ctx context.Context, c client.Client, cluster *enterprisev rwDesired, rwScheduled := poolerInstanceCount(rwPooler) roDesired, roScheduled := poolerInstanceCount(roPooler) - return setStatus(ctx, c, cluster, poolerReady, metav1.ConditionTrue, reasonAllInstancesReady, + return setStatus(ctx, c, metrics, cluster, poolerReady, metav1.ConditionTrue, reasonAllInstancesReady, fmt.Sprintf("%s: %d/%d, %s: %d/%d", readWriteEndpoint, rwScheduled, rwDesired, readOnlyEndpoint, roScheduled, roDesired), readyClusterPhase) } // syncStatus maps CNPG Cluster state to PostgresCluster status. -func syncStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster) error { +func syncStatus(ctx context.Context, c client.Client, metrics ports.Recorder, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster) error { cluster.Status.ProvisionerRef = &corev1.ObjectReference{ APIVersion: "postgresql.cnpg.io/v1", Kind: "Cluster", @@ -835,13 +836,13 @@ func syncStatus(ctx context.Context, c client.Client, cluster *enterprisev4.Post message = fmt.Sprintf("CNPG cluster phase: %s", cnpgCluster.Status.Phase) } - return setStatus(ctx, c, cluster, clusterReady, condStatus, reason, message, phase) + return setStatus(ctx, c, metrics, cluster, clusterReady, condStatus, reason, message, phase) } // setStatus sets the phase, condition and persists the status. // It skips the API write when the resulting status is identical to the current // state, avoiding unnecessary etcd churn and ResourceVersion bumps on stable clusters. -func setStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { +func setStatus(ctx context.Context, c client.Client, metrics ports.Recorder, cluster *enterprisev4.PostgresCluster, condType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { before := cluster.Status.DeepCopy() p := string(phase) @@ -858,6 +859,8 @@ func setStatus(ctx context.Context, c client.Client, cluster *enterprisev4.Postg return nil } + metrics.IncStatusTransition(ports.ControllerCluster, string(condType), string(status), string(reason)) + if err := c.Status().Update(ctx, cluster); err != nil { return fmt.Errorf("failed to update PostgresCluster status: %w", err) } diff --git a/pkg/postgresql/cluster/core/types.go b/pkg/postgresql/cluster/core/types.go index 042a5ae82..7a43322fe 100644 --- a/pkg/postgresql/cluster/core/types.go +++ b/pkg/postgresql/cluster/core/types.go @@ -4,6 +4,7 @@ import ( "time" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/record" @@ -17,6 +18,7 @@ type ReconcileContext struct { Client client.Client Scheme *runtime.Scheme Recorder record.EventRecorder + Metrics ports.Recorder } // normalizedCNPGClusterSpec is a subset of cnpgv1.ClusterSpec fields used for drift detection. diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 3a88bac80..377f1dcce 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -11,6 +11,7 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" "github.com/sethvargo/go-password/password" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -43,7 +44,7 @@ func PostgresDatabaseService( logger.Info("Reconciling PostgresDatabase") updateStatus := func(conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { - return persistStatus(ctx, c, postgresDB, conditionType, conditionStatus, reason, message, phase) + return persistStatus(ctx, c, rc.Metrics, postgresDB, conditionType, conditionStatus, reason, message, phase) } // Finalizer: cleanup on deletion, register on creation. @@ -183,6 +184,10 @@ func PostgresDatabaseService( if err := patchManagedRoles(ctx, c, fieldManager, cluster, allRoles); err != nil { logger.Error(err, "Failed to patch users in CNPG Cluster") rc.emitWarning(postgresDB, EventManagedRolesPatchFailed, fmt.Sprintf("Failed to patch managed roles: %v", err)) + if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonUsersCreationFailed, + fmt.Sprintf("Failed to patch managed roles: %v", err), failedDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } return ctrl.Result{}, err } rc.emitNormal(postgresDB, EventRoleReconciliationStarted, fmt.Sprintf("Patched managed roles: %d to add, %d to remove", len(rolesToAdd), len(rolesToRemove))) @@ -221,6 +226,10 @@ func PostgresDatabaseService( if err != nil { logger.Error(err, "Failed to reconcile CNPG Databases") rc.emitWarning(postgresDB, EventDatabasesReconcileFailed, fmt.Sprintf("Failed to reconcile databases: %v", err)) + if statusErr := updateStatus(databasesReady, metav1.ConditionFalse, reasonDatabaseReconcileFailed, + fmt.Sprintf("Failed to reconcile databases: %v", err), failedDBPhase); statusErr != nil { + logger.Error(statusErr, "Failed to update status") + } return ctrl.Result{}, err } if len(adopted) > 0 { @@ -492,8 +501,9 @@ func verifyDatabasesReady(ctx context.Context, c client.Client, postgresDB *ente return notReady, nil } -func persistStatus(ctx context.Context, c client.Client, db *enterprisev4.PostgresDatabase, conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { +func persistStatus(ctx context.Context, c client.Client, metrics ports.Recorder, db *enterprisev4.PostgresDatabase, conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { applyStatus(db, conditionType, conditionStatus, reason, message, phase) + metrics.IncStatusTransition(ports.ControllerDatabase, string(conditionType), string(conditionStatus), string(reason)) return c.Status().Update(ctx, db) } diff --git a/pkg/postgresql/database/core/database_unit_test.go b/pkg/postgresql/database/core/database_unit_test.go index 0e8bee12b..fdba00f71 100644 --- a/pkg/postgresql/database/core/database_unit_test.go +++ b/pkg/postgresql/database/core/database_unit_test.go @@ -20,6 +20,7 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" @@ -591,6 +592,7 @@ func TestSetStatus(t *testing.T) { err := persistStatus( context.Background(), c, + &pgprometheus.NoopRecorder{}, postgresDB, clusterReady, metav1.ConditionTrue, diff --git a/pkg/postgresql/database/core/types.go b/pkg/postgresql/database/core/types.go index fb57dee91..cbf7c15a9 100644 --- a/pkg/postgresql/database/core/types.go +++ b/pkg/postgresql/database/core/types.go @@ -4,16 +4,18 @@ import ( "time" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/record" "sigs.k8s.io/controller-runtime/pkg/client" ) -// ReconcileContext bundles infrastructure dependencies injected by the controller +// ReconcileContext bundles infrastructure dependencies injected by the controller. type ReconcileContext struct { Client client.Client Scheme *runtime.Scheme Recorder record.EventRecorder + Metrics ports.Recorder } type reconcileDBPhases string @@ -77,9 +79,10 @@ const ( reasonUsersAvailable conditionReasons = "UsersAvailable" reasonRoleConflict conditionReasons = "RoleConflict" reasonConfigMapsCreationFailed conditionReasons = "ConfigMapsCreationFailed" - reasonConfigMapsCreated conditionReasons = "ConfigMapsCreated" - reasonPrivilegesGranted conditionReasons = "PrivilegesGranted" - reasonPrivilegesGrantFailed conditionReasons = "PrivilegesGrantFailed" + reasonConfigMapsCreated conditionReasons = "ConfigMapsCreated" + reasonDatabaseReconcileFailed conditionReasons = "DatabaseReconcileFailed" + reasonPrivilegesGranted conditionReasons = "PrivilegesGranted" + reasonPrivilegesGrantFailed conditionReasons = "PrivilegesGrantFailed" // ClusterReady sentinel values returned by ensureClusterReady. // Exported so the controller adapter can switch on them if needed. diff --git a/pkg/postgresql/shared/adapter/prometheus/collector.go b/pkg/postgresql/shared/adapter/prometheus/collector.go new file mode 100644 index 000000000..bbd44944b --- /dev/null +++ b/pkg/postgresql/shared/adapter/prometheus/collector.go @@ -0,0 +1,91 @@ +package prometheus + +import ( + "context" + + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/log" +) + +// FleetCollector recomputes fleet-state gauges from the K8s API (informer cache). +type FleetCollector struct{} + +// NewFleetCollector returns a new FleetCollector. +func NewFleetCollector() *FleetCollector { + return &FleetCollector{} +} + +// CollectClusterMetrics lists all PostgresCluster resources and updates phase +// gauges, pooler gauges, and managed-user gauges. +func (fc *FleetCollector) CollectClusterMetrics(ctx context.Context, c client.Client, recorder ports.Recorder) { + logger := log.FromContext(ctx) + + var list enterprisev4.PostgresClusterList + if err := c.List(ctx, &list); err != nil { + logger.Error(err, "Failed to list PostgresClusters for fleet metrics") + return + } + + phases := make(map[string]float64) + var poolerEnabledCount float64 + managedUserStates := map[string]float64{ + "desired": 0, + "reconciled": 0, + "pending": 0, + "failed": 0, + } + + for i := range list.Items { + cluster := &list.Items[i] + + // Phase gauge. + phase := "Unknown" + if cluster.Status.Phase != nil { + phase = *cluster.Status.Phase + } + phases[phase]++ + + // Pooler-enabled count. + if cluster.Spec.ConnectionPoolerEnabled != nil && *cluster.Spec.ConnectionPoolerEnabled { + poolerEnabledCount++ + } + + // Managed users. + managedUserStates["desired"] += float64(len(cluster.Spec.ManagedRoles)) + if cluster.Status.ManagedRolesStatus != nil { + managedUserStates["reconciled"] += float64(len(cluster.Status.ManagedRolesStatus.Reconciled)) + managedUserStates["pending"] += float64(len(cluster.Status.ManagedRolesStatus.Pending)) + managedUserStates["failed"] += float64(len(cluster.Status.ManagedRolesStatus.Failed)) + } + } + + recorder.SetClusterPhases(phases) + recorder.SetPoolerEnabledClusters(poolerEnabledCount) + recorder.SetManagedUsers(ports.ControllerCluster, managedUserStates) +} + +// CollectDatabaseMetrics lists all PostgresDatabase resources and updates +// phase gauges. +func (fc *FleetCollector) CollectDatabaseMetrics(ctx context.Context, c client.Client, recorder ports.Recorder) { + logger := log.FromContext(ctx) + + var list enterprisev4.PostgresDatabaseList + if err := c.List(ctx, &list); err != nil { + logger.Error(err, "Failed to list PostgresDatabases for fleet metrics") + return + } + + phases := make(map[string]float64) + for i := range list.Items { + db := &list.Items[i] + phase := "Unknown" + if db.Status.Phase != nil { + phase = *db.Status.Phase + } + phases[phase]++ + } + + recorder.SetDatabasePhases(phases) +} diff --git a/pkg/postgresql/shared/adapter/prometheus/noop.go b/pkg/postgresql/shared/adapter/prometheus/noop.go new file mode 100644 index 000000000..91b9307f8 --- /dev/null +++ b/pkg/postgresql/shared/adapter/prometheus/noop.go @@ -0,0 +1,15 @@ +package prometheus + +import "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" + +// NoopRecorder is a no-op implementation of Recorder for use in tests. +type NoopRecorder struct{} + +func (n *NoopRecorder) IncStatusTransition(string, string, string, string) {} +func (n *NoopRecorder) SetClusterPhases(map[string]float64) {} +func (n *NoopRecorder) SetPoolerEnabledClusters(float64) {} +func (n *NoopRecorder) SetDatabasePhases(map[string]float64) {} +func (n *NoopRecorder) SetManagedUsers(string, map[string]float64) {} + +// Compile-time interface check. +var _ ports.Recorder = (*NoopRecorder)(nil) diff --git a/pkg/postgresql/shared/adapter/prometheus/recorder.go b/pkg/postgresql/shared/adapter/prometheus/recorder.go new file mode 100644 index 000000000..61d3d409d --- /dev/null +++ b/pkg/postgresql/shared/adapter/prometheus/recorder.go @@ -0,0 +1,91 @@ +package prometheus + +import ( + "github.com/prometheus/client_golang/prometheus" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" +) + +var ( + statusTransitionsTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ + Name: "splunk_operator_postgres_status_transitions_total", + Help: "Status condition transitions by controller, condition type, status, and reason.", + }, []string{"controller", "condition", "status", "reason"}) + + clusters = prometheus.NewGaugeVec(prometheus.GaugeOpts{ + Name: "splunk_operator_postgres_clusters", + Help: "Current number of PostgresCluster resources by status phase.", + }, []string{"phase"}) + + poolerEnabledClusters = prometheus.NewGauge(prometheus.GaugeOpts{ + Name: "splunk_operator_postgres_clusters_pooler_enabled", + Help: "Current number of PostgresCluster resources with connection pooling enabled.", + }) + + databases = prometheus.NewGaugeVec(prometheus.GaugeOpts{ + Name: "splunk_operator_postgres_databases", + Help: "Current number of PostgresDatabase resources by status phase.", + }, []string{"phase"}) + + managedUsers = prometheus.NewGaugeVec(prometheus.GaugeOpts{ + Name: "splunk_operator_postgres_managed_users", + Help: "Current counts of managed users by state.", + }, []string{"controller", "state"}) + + allCollectors = []prometheus.Collector{ + statusTransitionsTotal, + clusters, + poolerEnabledClusters, + databases, + managedUsers, + } +) + +// Register registers all PostgreSQL metrics with the given registerer. +// Call once at startup from cmd/main.go. +func Register(registerer prometheus.Registerer) error { + for _, c := range allCollectors { + if err := registerer.Register(c); err != nil { + return err + } + } + return nil +} + +// PrometheusRecorder implements shared.Recorder using Prometheus client_golang. +type PrometheusRecorder struct{} + +// NewPrometheusRecorder returns a new PrometheusRecorder. +func NewPrometheusRecorder() *PrometheusRecorder { + return &PrometheusRecorder{} +} + +func (p *PrometheusRecorder) IncStatusTransition(controller, condition, status, reason string) { + statusTransitionsTotal.WithLabelValues(controller, condition, status, reason).Inc() +} + +func (p *PrometheusRecorder) SetClusterPhases(phases map[string]float64) { + clusters.Reset() // drop stale label combinations before re-populating + for phase, count := range phases { + clusters.WithLabelValues(phase).Set(count) + } +} + +func (p *PrometheusRecorder) SetPoolerEnabledClusters(count float64) { + poolerEnabledClusters.Set(count) +} + +func (p *PrometheusRecorder) SetDatabasePhases(phases map[string]float64) { + databases.Reset() // drop stale label combinations before re-populating + for phase, count := range phases { + databases.WithLabelValues(phase).Set(count) + } +} + +func (p *PrometheusRecorder) SetManagedUsers(controller string, states map[string]float64) { + for state, count := range states { + managedUsers.WithLabelValues(controller, state).Set(count) + } +} + +// Compile-time interface check. +var _ ports.Recorder = (*PrometheusRecorder)(nil) diff --git a/pkg/postgresql/shared/ports/metrics.go b/pkg/postgresql/shared/ports/metrics.go new file mode 100644 index 000000000..79ec2fbfb --- /dev/null +++ b/pkg/postgresql/shared/ports/metrics.go @@ -0,0 +1,35 @@ +package ports + +// Controller name labels. +const ( + ControllerCluster = "postgrescluster" + ControllerDatabase = "postgresdatabase" +) + +// Recorder is the port for all PostgreSQL controller metrics. +// Core service packages depend on this interface, never on Prometheus directly. +// +// Reconcile-level metrics (total count, duration, error count) are handled +// automatically by controller-runtime — see controller_runtime_reconcile_total, +// controller_runtime_reconcile_time_seconds, controller_runtime_reconcile_errors_total. +// +// Domain-specific business metrics are emitted automatically via IncStatusTransition +// every time a status condition is written. Fleet-level gauges are populated by the +// collector on each reconcile. +type Recorder interface { + // IncStatusTransition increments the status transition counter. + // Called automatically by persistStatus/setStatus — no manual calls needed in service code. + IncStatusTransition(controller, condition, status, reason string) + + // SetClusterPhases sets gauge values for cluster counts by phase. + SetClusterPhases(phases map[string]float64) + + // SetPoolerEnabledClusters sets the gauge for clusters with connection pooling enabled. + SetPoolerEnabledClusters(count float64) + + // SetDatabasePhases sets gauge values for database counts by phase. + SetDatabasePhases(phases map[string]float64) + + // SetManagedUsers sets the gauge for managed user states. + SetManagedUsers(controller string, states map[string]float64) +} From 86ce512568355dd76ff80fd6eb33b0ad8957ca3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Tue, 14 Apr 2026 23:11:06 +0200 Subject: [PATCH 17/43] Cleanup conflicting handling and separate business logic from infra errors --- .../controller/postgrescluster_controller.go | 6 +- .../controller/postgresdatabase_controller.go | 7 +- pkg/postgresql/cluster/core/cluster.go | 193 ++++++------------ pkg/postgresql/database/core/database.go | 7 - pkg/postgresql/shared/reconcile/errors.go | 42 ++++ 5 files changed, 116 insertions(+), 139 deletions(-) create mode 100644 pkg/postgresql/shared/reconcile/errors.go diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index c49e7ba4d..6d42d72bf 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -22,8 +22,9 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" clustercore "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" - "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" + sharedreconcile "github.com/splunk/splunk-operator/pkg/postgresql/shared/reconcile" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -64,6 +65,9 @@ func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Requ rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} result, err := clustercore.PostgresClusterService(ctx, rc, req) r.FleetCollector.CollectClusterMetrics(ctx, r.Client, r.Metrics) + if sharedreconcile.IsPureConflict(err) { + return ctrl.Result{Requeue: true}, nil + } return result, err } diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go index ab54da0fd..8a480abc2 100644 --- a/internal/controller/postgresdatabase_controller.go +++ b/internal/controller/postgresdatabase_controller.go @@ -24,8 +24,9 @@ import ( enterprisev4 "github.com/splunk/splunk-operator/api/v4" dbadapter "github.com/splunk/splunk-operator/pkg/postgresql/database/adapter" dbcore "github.com/splunk/splunk-operator/pkg/postgresql/database/core" - "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" + "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" + sharedreconcile "github.com/splunk/splunk-operator/pkg/postgresql/shared/reconcile" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -78,7 +79,9 @@ func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Req rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} result, err := dbcore.PostgresDatabaseService(ctx, rc, postgresDB, dbadapter.NewDBRepository) r.FleetCollector.CollectDatabaseMetrics(ctx, r.Client, r.Metrics) - + if sharedreconcile.IsPureConflict(err) { + return ctrl.Result{Requeue: true}, nil + } return result, err } diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 01df3a1c7..94e41407e 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -79,13 +79,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. } logger.Error(err, "Failed to handle finalizer") rc.emitWarning(postgresCluster, EventCleanupFailed, fmt.Sprintf("Cleanup failed: %v", err)) - errs := []error{err} - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterDeleteFailed, - fmt.Sprintf("Failed to delete resources during cleanup: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - errs = append(errs, statusErr) - } - return ctrl.Result{}, errors.Join(errs...) + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterDeleteFailed, + fmt.Sprintf("Failed to delete resources during cleanup: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } if postgresCluster.GetDeletionTimestamp() != nil { logger.Info("Deletion cleanup complete, finalizer removed") @@ -96,10 +92,6 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if !controllerutil.ContainsFinalizer(postgresCluster, PostgresClusterFinalizerName) { controllerutil.AddFinalizer(postgresCluster, PostgresClusterFinalizerName) if err := c.Update(ctx, postgresCluster); err != nil { - if apierrors.IsConflict(err) { - logger.Info("Conflict while adding finalizer, will requeue") - return ctrl.Result{Requeue: true}, nil - } logger.Error(err, "Failed to add finalizer to PostgresCluster") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) } @@ -112,11 +104,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err := c.Get(ctx, client.ObjectKey{Name: postgresCluster.Spec.Class}, clusterClass); err != nil { logger.Error(err, "Failed to fetch PostgresClusterClass", "className", postgresCluster.Spec.Class) rc.emitWarning(postgresCluster, EventClusterClassNotFound, fmt.Sprintf("ClusterClass %s not found", postgresCluster.Spec.Class)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterClassNotFound, - fmt.Sprintf("ClusterClass %s not found: %v", postgresCluster.Spec.Class, err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterClassNotFound, + fmt.Sprintf("ClusterClass %s not found: %v", postgresCluster.Spec.Class, err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } // Merge PostgresClusterSpec on top of PostgresClusterClass defaults. @@ -124,11 +114,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err != nil { logger.Error(err, "Failed to merge PostgresCluster configuration") rc.emitWarning(postgresCluster, EventConfigMergeFailed, fmt.Sprintf("Failed to merge configuration: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonInvalidConfiguration, - fmt.Sprintf("Failed to merge configuration: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonInvalidConfiguration, + fmt.Sprintf("Failed to merge configuration: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } // Resolve or derive the superuser secret name. @@ -144,28 +132,20 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if secretErr != nil { logger.Error(secretErr, "Failed to check if PostgresCluster secret exists", "name", postgresSecretName) rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to check secret existence: %v", secretErr)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, - fmt.Sprintf("Failed to check secret existence: %v", secretErr), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, secretErr + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, + fmt.Sprintf("Failed to check secret existence: %v", secretErr), failedClusterPhase) + return ctrl.Result{}, errors.Join(secretErr, statusErr) } if !secretExists { logger.Info("Superuser secret creation started", "name", postgresSecretName) if err := ensureClusterSecret(ctx, c, rc.Scheme, postgresCluster, postgresSecretName, secret); err != nil { logger.Error(err, "Failed to ensure PostgresCluster secret", "name", postgresSecretName) rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to generate cluster secret: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, - fmt.Sprintf("Failed to generate PostgresCluster secret: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, + fmt.Sprintf("Failed to generate PostgresCluster secret: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } if err := c.Status().Update(ctx, postgresCluster); err != nil { - if apierrors.IsConflict(err) { - logger.Info("Conflict after secret creation, will requeue") - return ctrl.Result{Requeue: true}, nil - } logger.Error(err, "Failed to update status after secret creation") return ctrl.Result{}, err } @@ -189,11 +169,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err := patchObject(ctx, c, originalSecret, secret, "Secret"); err != nil { logger.Error(err, "Failed to patch existing secret with controller reference") rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to patch existing secret: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonSuperUserSecretFailed, - fmt.Sprintf("Failed to patch existing secret: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonSuperUserSecretFailed, + fmt.Sprintf("Failed to patch existing secret: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } } @@ -217,26 +195,22 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err := c.Create(ctx, newCluster); err != nil { logger.Error(err, "Failed to create CNPG Cluster") rc.emitWarning(postgresCluster, EventClusterCreateFailed, fmt.Sprintf("Failed to create CNPG cluster: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildFailed, - fmt.Sprintf("Failed to create CNPG Cluster: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildFailed, + fmt.Sprintf("Failed to create CNPG Cluster: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } rc.emitNormal(postgresCluster, EventClusterCreationStarted, "CNPG cluster created, waiting for healthy state") if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, "CNPG Cluster created", pendingClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + return ctrl.Result{}, statusErr } logger.Info("CNPG Cluster created, requeueing for status update", "name", postgresCluster.Name) return ctrl.Result{RequeueAfter: retryDelay}, nil case err != nil: logger.Error(err, "Failed to get CNPG Cluster") - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterGetFailed, - fmt.Sprintf("Failed to get CNPG Cluster: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterGetFailed, + fmt.Sprintf("Failed to get CNPG Cluster: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } // Patch CNPG Cluster spec if drift detected. @@ -250,22 +224,16 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. cnpgCluster.Spec = desiredSpec switch patchErr := patchObject(ctx, c, originalCluster, cnpgCluster, "CNPGCluster"); { - case apierrors.IsConflict(patchErr): - logger.Info("Conflict occurred while updating CNPG Cluster, requeueing", "name", cnpgCluster.Name) - return ctrl.Result{Requeue: true}, nil case patchErr != nil: logger.Error(patchErr, "Failed to patch CNPG Cluster", "name", cnpgCluster.Name) rc.emitWarning(postgresCluster, EventClusterUpdateFailed, fmt.Sprintf("Failed to patch CNPG cluster: %v", patchErr)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterPatchFailed, - fmt.Sprintf("Failed to patch CNPG Cluster: %v", patchErr), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, patchErr + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterPatchFailed, + fmt.Sprintf("Failed to patch CNPG Cluster: %v", patchErr), failedClusterPhase) + return ctrl.Result{}, errors.Join(patchErr, statusErr) default: if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, "CNPG Cluster spec updated, waiting for healthy state", provisioningClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status after patch") - return ctrl.Result{Requeue: true}, nil + return ctrl.Result{}, statusErr } rc.emitNormal(postgresCluster, EventClusterUpdateStarted, "CNPG cluster spec updated, waiting for healthy state") logger.Info("CNPG Cluster patched, requeueing for status update", "name", cnpgCluster.Name) @@ -277,11 +245,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err := reconcileManagedRoles(ctx, c, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to reconcile managed roles") rc.emitWarning(postgresCluster, EventManagedRolesFailed, fmt.Sprintf("Failed to reconcile managed roles: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonManagedRolesFailed, - fmt.Sprintf("Failed to reconcile managed roles: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonManagedRolesFailed, + fmt.Sprintf("Failed to reconcile managed roles: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } // Reconcile Connection Pooler. @@ -290,35 +256,25 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. rwPoolerExists, err := poolerExists(ctx, c, postgresCluster, readWriteEndpoint) if err != nil { logger.Error(err, "Failed to check RW pooler existence") - errs := []error{err} - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - errs = append(errs, statusErr) - } - return ctrl.Result{}, errors.Join(errs...) + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } roPoolerExists, err := poolerExists(ctx, c, postgresCluster, readOnlyEndpoint) if err != nil { logger.Error(err, "Failed to check RO pooler existence") - errs := []error{err} - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - errs = append(errs, statusErr) - } - return ctrl.Result{}, errors.Join(errs...) + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } switch { case !poolerEnabled: if err := deleteConnectionPoolers(ctx, c, postgresCluster); err != nil { logger.Error(err, "Failed to delete connection poolers") - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to delete connection poolers: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to delete connection poolers: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } postgresCluster.Status.ConnectionPoolerStatus = nil meta.RemoveStatusCondition(&postgresCluster.Status.Conditions, string(poolerReady)) @@ -327,35 +283,29 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if mergedConfig.CNPG == nil || mergedConfig.CNPG.ConnectionPooler == nil { logger.Info("Connection pooler enabled but no config found in class or cluster spec, skipping", "class", postgresCluster.Spec.Class, "cluster", postgresCluster.Name) - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerConfigMissing, + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerConfigMissing, fmt.Sprintf("Connection pooler is enabled but no config found in class %q or cluster %q", - postgresCluster.Spec.Class, postgresCluster.Name), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, nil + postgresCluster.Spec.Class, postgresCluster.Name), failedClusterPhase) + return ctrl.Result{}, statusErr } if cnpgCluster.Status.Phase != cnpgv1.PhaseHealthy { logger.Info("CNPG Cluster not healthy yet, pending pooler creation", "clusterPhase", cnpgCluster.Status.Phase) - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonCNPGClusterNotHealthy, - "Waiting for CNPG cluster to become healthy before creating poolers", pendingClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{RequeueAfter: retryDelay}, nil + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonCNPGClusterNotHealthy, + "Waiting for CNPG cluster to become healthy before creating poolers", pendingClusterPhase) + return ctrl.Result{RequeueAfter: retryDelay}, statusErr } if err := createOrUpdateConnectionPoolers(ctx, c, rc.Scheme, postgresCluster, mergedConfig, cnpgCluster); err != nil { logger.Error(err, "Failed to reconcile connection pooler") rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to reconcile connection pooler: %v", err)) - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to reconcile connection pooler: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to reconcile connection pooler: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } rc.emitNormal(postgresCluster, EventPoolerCreationStarted, "Connection poolers created, waiting for readiness") logger.Info("Connection pooler creation started, requeueing") if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, "Connection poolers are being provisioned", provisioningClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + return ctrl.Result{}, statusErr } return ctrl.Result{RequeueAfter: retryDelay}, nil @@ -373,14 +323,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return rwErr != nil || roErr != nil || !arePoolersReady(rwPooler, roPooler) }(): logger.Info("Connection Poolers are not ready yet, requeueing") - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, - "Connection poolers are being provisioned", pendingClusterPhase); statusErr != nil { - if apierrors.IsConflict(statusErr) { - logger.Info("Conflict updating pooler status, will requeue") - return ctrl.Result{Requeue: true}, nil - } - } - return ctrl.Result{RequeueAfter: retryDelay}, nil + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, + "Connection poolers are being provisioned", pendingClusterPhase) + return ctrl.Result{RequeueAfter: retryDelay}, statusErr default: oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) @@ -388,11 +333,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err := syncPoolerStatus(ctx, c, rc.Metrics, postgresCluster); err != nil { logger.Error(err, "Failed to sync pooler status") rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to sync pooler status: %v", err)) - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to sync pooler status: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, + fmt.Sprintf("Failed to sync pooler status: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } rc.emitPoolerReadyTransition(postgresCluster, oldConditions) } @@ -404,11 +347,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err != nil { logger.Error(err, "Failed to generate ConfigMap") rc.emitWarning(postgresCluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, - fmt.Sprintf("Failed to generate ConfigMap: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, + fmt.Sprintf("Failed to generate ConfigMap: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } cm := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: desiredCM.Name, Namespace: desiredCM.Namespace}} createOrUpdateResult, err := controllerutil.CreateOrUpdate(ctx, c, cm, func() error { @@ -425,11 +366,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. if err != nil { logger.Error(err, "Failed to reconcile ConfigMap", "name", desiredCM.Name) rc.emitWarning(postgresCluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, - fmt.Sprintf("Failed to reconcile ConfigMap: %v", err), failedClusterPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") - } - return ctrl.Result{}, err + statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, + fmt.Sprintf("Failed to reconcile ConfigMap: %v", err), failedClusterPhase) + return ctrl.Result{}, errors.Join(err, statusErr) } switch createOrUpdateResult { case controllerutil.OperationResultCreated: @@ -453,11 +392,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. } if err := syncStatus(ctx, c, rc.Metrics, postgresCluster, cnpgCluster); err != nil { logger.Error(err, "Failed to sync status") - if apierrors.IsConflict(err) { - logger.Info("Conflict during status update, will requeue") - return ctrl.Result{Requeue: true}, nil - } - return ctrl.Result{}, fmt.Errorf("failed to sync status: %w", err) + return ctrl.Result{}, err } var newPhase string if postgresCluster.Status.Phase != nil { diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 377f1dcce..362b2939c 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -60,10 +60,6 @@ func PostgresDatabaseService( if !controllerutil.ContainsFinalizer(postgresDB, postgresDatabaseFinalizerName) { controllerutil.AddFinalizer(postgresDB, postgresDatabaseFinalizerName) if err := c.Update(ctx, postgresDB); err != nil { - if errors.IsConflict(err) { - logger.Info("Conflict while adding finalizer, will requeue") - return ctrl.Result{Requeue: true}, nil - } logger.Error(err, "Failed to add finalizer to PostgresDatabase") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) } @@ -304,9 +300,6 @@ func PostgresDatabaseService( postgresDB.Status.ObservedGeneration = &postgresDB.Generation if err := c.Status().Update(ctx, postgresDB); err != nil { - if errors.IsConflict(err) { - return ctrl.Result{Requeue: true}, nil - } return ctrl.Result{}, fmt.Errorf("failed to persist final status: %w", err) } diff --git a/pkg/postgresql/shared/reconcile/errors.go b/pkg/postgresql/shared/reconcile/errors.go new file mode 100644 index 000000000..2270770f8 --- /dev/null +++ b/pkg/postgresql/shared/reconcile/errors.go @@ -0,0 +1,42 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package reconcile + +import ( + apierrors "k8s.io/apimachinery/pkg/api/errors" +) + +// IsPureConflict reports whether err is non-nil and every non-nil error +// within it is a 409 Conflict. When a business error and a status-write +// conflict are joined together the business error takes priority and this +// returns false, preserving exponential backoff for real failures. +// +// TODO(human): implement this function. +// Guidance: errors.Join wraps multiple errors; use the Unwrap() []error +// interface to walk all joined errors. Consider all four cases: +// - err == nil → false +// - single conflict error → true +// - single non-conflict error → false +// - joined errors, mixed conflict → false (business error wins) +func IsPureConflict(err error) bool { + if err == nil { + return false + } + _ = apierrors.IsConflict // ensure the import is used once implemented + // TODO(human): replace this placeholder with the real implementation + return false +} From b00f7cc15e845d76e918b9bcee703c06caa8ae50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Wed, 15 Apr 2026 10:02:51 +0200 Subject: [PATCH 18/43] Add tests and fill isPureFunction --- .../postgrescluster_controller_test.go | 9 +- .../postgresdatabase_controller_test.go | 9 +- .../database/core/database_unit_test.go | 8 +- pkg/postgresql/database/core/types.go | 10 +-- pkg/postgresql/shared/reconcile/errors.go | 21 +++-- .../shared/reconcile/errors_test.go | 87 +++++++++++++++++++ 6 files changed, 117 insertions(+), 27 deletions(-) create mode 100644 pkg/postgresql/shared/reconcile/errors_test.go diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 5687ae1f8..9d4954d61 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -36,6 +36,7 @@ import ( enterprisev4 "github.com/splunk/splunk-operator/api/v4" "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" ) /* @@ -122,9 +123,11 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { } reconciler = &PostgresClusterReconciler{ - Client: k8sClient, - Scheme: k8sClient.Scheme(), - Recorder: record.NewFakeRecorder(100), + Client: k8sClient, + Scheme: k8sClient.Scheme(), + Recorder: record.NewFakeRecorder(100), + Metrics: &pgprometheus.NoopRecorder{}, + FleetCollector: pgprometheus.NewFleetCollector(), } req = reconcile.Request{NamespacedName: types.NamespacedName{Name: clusterName, Namespace: namespace}} }) diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go index 31f591573..44143919f 100644 --- a/internal/controller/postgresdatabase_controller_test.go +++ b/internal/controller/postgresdatabase_controller_test.go @@ -26,6 +26,7 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -80,9 +81,11 @@ const ( func reconcilePostgresDatabase(ctx context.Context, nn types.NamespacedName) (ctrl.Result, error) { reconciler := &PostgresDatabaseReconciler{ - Client: k8sClient, - Scheme: k8sClient.Scheme(), - Recorder: record.NewFakeRecorder(100), + Client: k8sClient, + Scheme: k8sClient.Scheme(), + Recorder: record.NewFakeRecorder(100), + Metrics: &pgprometheus.NoopRecorder{}, + FleetCollector: pgprometheus.NewFleetCollector(), } return reconciler.Reconcile(ctx, reconcile.Request{NamespacedName: nn}) } diff --git a/pkg/postgresql/database/core/database_unit_test.go b/pkg/postgresql/database/core/database_unit_test.go index fdba00f71..c41d2dd59 100644 --- a/pkg/postgresql/database/core/database_unit_test.go +++ b/pkg/postgresql/database/core/database_unit_test.go @@ -1425,12 +1425,11 @@ func TestFindRemovedRoleNames(t *testing.T) { } } - func TestBuildRolesToRemove(t *testing.T) { tests := []struct { - name string - deleted []enterprisev4.DatabaseDefinition - want []enterprisev4.ManagedRole + name string + deleted []enterprisev4.DatabaseDefinition + want []enterprisev4.ManagedRole }{ { name: "nothing to remove", @@ -1459,7 +1458,6 @@ func TestBuildRolesToRemove(t *testing.T) { } } - func TestStripOwnerReference(t *testing.T) { obj := &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/postgresql/database/core/types.go b/pkg/postgresql/database/core/types.go index cbf7c15a9..6511b502f 100644 --- a/pkg/postgresql/database/core/types.go +++ b/pkg/postgresql/database/core/types.go @@ -34,7 +34,7 @@ const ( deletionPolicyRetain string = "Retain" deletionPolicyDelete string = "Delete" - + postgresDatabaseFinalizerName string = "postgresdatabases.enterprise.splunk.com/finalizer" annotationRetainedFrom string = "enterprise.splunk.com/retained-from" @@ -79,10 +79,10 @@ const ( reasonUsersAvailable conditionReasons = "UsersAvailable" reasonRoleConflict conditionReasons = "RoleConflict" reasonConfigMapsCreationFailed conditionReasons = "ConfigMapsCreationFailed" - reasonConfigMapsCreated conditionReasons = "ConfigMapsCreated" - reasonDatabaseReconcileFailed conditionReasons = "DatabaseReconcileFailed" - reasonPrivilegesGranted conditionReasons = "PrivilegesGranted" - reasonPrivilegesGrantFailed conditionReasons = "PrivilegesGrantFailed" + reasonConfigMapsCreated conditionReasons = "ConfigMapsCreated" + reasonDatabaseReconcileFailed conditionReasons = "DatabaseReconcileFailed" + reasonPrivilegesGranted conditionReasons = "PrivilegesGranted" + reasonPrivilegesGrantFailed conditionReasons = "PrivilegesGrantFailed" // ClusterReady sentinel values returned by ensureClusterReady. // Exported so the controller adapter can switch on them if needed. diff --git a/pkg/postgresql/shared/reconcile/errors.go b/pkg/postgresql/shared/reconcile/errors.go index 2270770f8..1c777b5d7 100644 --- a/pkg/postgresql/shared/reconcile/errors.go +++ b/pkg/postgresql/shared/reconcile/errors.go @@ -24,19 +24,18 @@ import ( // within it is a 409 Conflict. When a business error and a status-write // conflict are joined together the business error takes priority and this // returns false, preserving exponential backoff for real failures. -// -// TODO(human): implement this function. -// Guidance: errors.Join wraps multiple errors; use the Unwrap() []error -// interface to walk all joined errors. Consider all four cases: -// - err == nil → false -// - single conflict error → true -// - single non-conflict error → false -// - joined errors, mixed conflict → false (business error wins) func IsPureConflict(err error) bool { if err == nil { return false } - _ = apierrors.IsConflict // ensure the import is used once implemented - // TODO(human): replace this placeholder with the real implementation - return false + // check if err can be unwrapped + if wrappedErrs, ok := err.(interface{ Unwrap() []error }); ok { + for _, err := range wrappedErrs.Unwrap() { + if !apierrors.IsConflict(err) { + return false + } + } + return true + } + return apierrors.IsConflict(err) } diff --git a/pkg/postgresql/shared/reconcile/errors_test.go b/pkg/postgresql/shared/reconcile/errors_test.go new file mode 100644 index 000000000..22398e49b --- /dev/null +++ b/pkg/postgresql/shared/reconcile/errors_test.go @@ -0,0 +1,87 @@ +/* +Copyright 2026. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package reconcile + +import ( + "errors" + "fmt" + "testing" + + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var conflictErr = apierrors.NewConflict(schema.GroupResource{Group: "enterprise.splunk.com", Resource: "postgresclusters"}, "my-cluster", fmt.Errorf("rv mismatch")) +var businessErr = fmt.Errorf("failed to fetch ClusterClass") + +func TestIsPureConflict(t *testing.T) { + tests := []struct { + name string + err error + expected bool + }{ + { + name: "nil error", + err: nil, + expected: false, + }, + { + name: "single conflict error", + err: conflictErr, + expected: true, + }, + { + name: "single non-conflict error", + err: businessErr, + expected: false, + }, + { + name: "wrapped non-conflict error (fmt.Errorf %w)", + err: fmt.Errorf("reconcile failed: %w", businessErr), + expected: false, + }, + { + name: "joined: business + conflict — business wins", + err: errors.Join(businessErr, conflictErr), + expected: false, + }, + { + name: "joined: conflict + business — business wins regardless of order", + err: errors.Join(conflictErr, businessErr), + expected: false, + }, + { + name: "joined: two conflict errors", + err: errors.Join(conflictErr, conflictErr), + expected: true, + }, + { + name: "joined: single conflict (nil partner discarded by errors.Join)", + err: errors.Join(conflictErr, nil), + expected: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := IsPureConflict(tt.err) + if got != tt.expected { + t.Errorf("IsPureConflict(%v) = %v, want %v", tt.err, got, tt.expected) + } + }) + } +} From 6f83dfbed195ffbb05877f45a84e89fb663daf96 Mon Sep 17 00:00:00 2001 From: Kamil Ubych <56136249+limak9182@users.noreply.github.com> Date: Wed, 15 Apr 2026 10:40:21 +0200 Subject: [PATCH 19/43] checking errors for ctrl.SetControllerReference (#1846) --- pkg/postgresql/cluster/core/cluster.go | 28 +++++++++++++------ .../cluster/core/cluster_unit_test.go | 9 ++++-- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 01df3a1c7..15000b891 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -213,7 +213,11 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. switch { case apierrors.IsNotFound(err): logger.Info("CNPG Cluster creation started", "name", postgresCluster.Name) - newCluster := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName) + newCluster, err := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName) + if err != nil { + logger.Error(err, "Failed to build CNPG Cluster", "name", postgresCluster.Name) + return ctrl.Result{}, err + } if err := c.Create(ctx, newCluster); err != nil { logger.Error(err, "Failed to create CNPG Cluster") rc.emitWarning(postgresCluster, EventClusterCreateFailed, fmt.Sprintf("Failed to create CNPG cluster: %v", err)) @@ -560,13 +564,15 @@ func buildCNPGClusterSpec(cfg *MergedConfig, secretName string) cnpgv1.ClusterSp } } -func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string) *cnpgv1.Cluster { +func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string) (*cnpgv1.Cluster, error) { cnpg := &cnpgv1.Cluster{ ObjectMeta: metav1.ObjectMeta{Name: cluster.Name, Namespace: cluster.Namespace}, Spec: buildCNPGClusterSpec(cfg, secretName), } - ctrl.SetControllerReference(cluster, cnpg, scheme) - return cnpg + if err := ctrl.SetControllerReference(cluster, cnpg, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on CNPG cluster: %w", err) + } + return cnpg, nil } func normalizeCNPGClusterSpec(spec cnpgv1.ClusterSpec, customDefinedParameters map[string]string) normalizedCNPGClusterSpec { @@ -705,10 +711,14 @@ func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtim return err } logger.Info("CNPG Pooler creation started", "name", poolerName, "type", poolerType) - return c.Create(ctx, buildCNPGPooler(scheme, cluster, cfg, cnpgCluster, poolerType)) + pooler, err := buildCNPGPooler(scheme, cluster, cfg, cnpgCluster, poolerType) + if err != nil { + return err + } + return c.Create(ctx, pooler) } -func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) *cnpgv1.Pooler { +func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) (*cnpgv1.Pooler, error) { pc := cfg.CNPG.ConnectionPooler instances := *pc.Instances mode := cnpgv1.PgBouncerPoolMode(*pc.Mode) @@ -724,8 +734,10 @@ func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresClust }, }, } - ctrl.SetControllerReference(cluster, pooler, scheme) - return pooler + if err := ctrl.SetControllerReference(cluster, pooler, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on CNPG pooler: %w", err) + } + return pooler, nil } // deleteConnectionPoolers removes RW and RO poolers if they exist. diff --git a/pkg/postgresql/cluster/core/cluster_unit_test.go b/pkg/postgresql/cluster/core/cluster_unit_test.go index e2466f54b..1a0659c98 100644 --- a/pkg/postgresql/cluster/core/cluster_unit_test.go +++ b/pkg/postgresql/cluster/core/cluster_unit_test.go @@ -403,8 +403,9 @@ func TestBuildCNPGPooler(t *testing.T) { } t.Run("rw pooler", func(t *testing.T) { - pooler := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "rw") + pooler, err := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "rw") + require.NoError(t, err) assert.Equal(t, "my-cluster-pooler-rw", pooler.Name) assert.Equal(t, "db-ns", pooler.Namespace) assert.Equal(t, "my-cluster", pooler.Spec.Cluster.Name) @@ -418,8 +419,9 @@ func TestBuildCNPGPooler(t *testing.T) { }) t.Run("ro pooler", func(t *testing.T) { - pooler := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "ro") + pooler, err := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "ro") + require.NoError(t, err) assert.Equal(t, "my-cluster-pooler-ro", pooler.Name) assert.Equal(t, cnpgv1.PoolerType("ro"), pooler.Spec.Type) }) @@ -451,8 +453,9 @@ func TestBuildCNPGCluster(t *testing.T) { }, } - cluster := buildCNPGCluster(scheme, postgresCluster, cfg, "my-secret") + cluster, err := buildCNPGCluster(scheme, postgresCluster, cfg, "my-secret") + require.NoError(t, err) assert.Equal(t, "my-cluster", cluster.Name) assert.Equal(t, "db-ns", cluster.Namespace) require.Len(t, cluster.OwnerReferences, 1) From d3092c48e1217c6f0fdd56c647cf588260f35928 Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Wed, 1 Apr 2026 12:56:10 +0200 Subject: [PATCH 20/43] add basic grafana --- api/v4/postgrescluster_types.go | 24 + api/v4/postgresclusterclass_types.go | 30 + cmd/main.go | 2 + ...nterprise_v4_postgresclusterclass_dev.yaml | 5 + .../controller/postgrescluster_controller.go | 2 +- internal/controller/suite_test.go | 4 + pkg/postgresql/cluster/core/cluster.go | 58 ++ .../dashboards/postgres_observability.json | 136 ++++ pkg/postgresql/cluster/core/events.go | 39 +- pkg/postgresql/cluster/core/monitoring.go | 614 ++++++++++++++++++ .../cluster/core/monitoring_unit_test.go | 472 ++++++++++++++ 11 files changed, 1366 insertions(+), 20 deletions(-) create mode 100644 pkg/postgresql/cluster/core/dashboards/postgres_observability.json create mode 100644 pkg/postgresql/cluster/core/monitoring.go create mode 100644 pkg/postgresql/cluster/core/monitoring_unit_test.go diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 5adc91f13..1faae2820 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -107,6 +107,30 @@ type PostgresClusterSpec struct { // +kubebuilder:default=Retain // +optional ClusterDeletionPolicy *string `json:"clusterDeletionPolicy,omitempty"` + + // Observability contains configuration for monitoring and observability features. + // +optional + Observability *PostgresObservabilityOverride `json:"observability,omitempty"` +} + +// PostgresObservabilityOverride overrides observability configuration options for PostgresClusterClass. +type PostgresObservabilityOverride struct { + + // +optional + PostgreSQL *FeatureDisableOverride `json:"postgresql,omitempty"` + + // +optional + PgBouncer *FeatureDisableOverride `json:"pgbouncer,omitempty"` + + // +optional + GrafanaDashboard *FeatureDisableOverride `json:"grafanaDashboard,omitempty"` +} + +type FeatureDisableOverride struct { + // Disable set to true will disable the feature even if it's enabled in the class. + // +kubebuilder:default=false + // +optional + Disabled *bool `json:"disabled,omitempty"` } // PostgresClusterResources defines references to Kubernetes resources related to the PostgresCluster, such as ConfigMaps and Secrets. diff --git a/api/v4/postgresclusterclass_types.go b/api/v4/postgresclusterclass_types.go index 7f02e5633..743e98722 100644 --- a/api/v4/postgresclusterclass_types.go +++ b/api/v4/postgresclusterclass_types.go @@ -99,6 +99,13 @@ type PostgresClusterClassConfig struct { // +kubebuilder:default=false // +optional ConnectionPoolerEnabled *bool `json:"connectionPoolerEnabled,omitempty"` + + // Observability contains configuration for metrics and dashboards. + // When enabled, creates metrics resources and Grafana dashboard for clusters using this class. + // Can be overridden in PostgresCluster CR. + // +kubebuilder:default={} + // +optional + Observability *PostgresObservabilityClassConfig `json:"observability,omitempty"` } // ConnectionPoolerMode defines the PgBouncer connection pooling strategy. @@ -172,6 +179,29 @@ type PostgresClusterClassStatus struct { Phase *string `json:"phase,omitempty"` } +type PostgresObservabilityClassConfig struct { + // +optional + PostgreSQL *MetricsClassConfig `json:"postgresql,omitempty"` + // +optional + PgBouncer *MetricsClassConfig `json:"pgbouncer,omitempty"` + // +optional + GrafanaDashboard *GrafanaDashboardClassConfig `json:"grafanaDashboard,omitempty"` +} + +type MetricsClassConfig struct { + // Enabled controls whether metrics resources should be created for this target. + // +kubebuilder:default=false + // +optional + Enabled *bool `json:"enabled,omitempty"` +} + +type GrafanaDashboardClassConfig struct { + // Enabled controls whether a Grafana dashboard ConfigMap should be created for this class. + // +kubebuilder:default=false + // +optional + Enabled *bool `json:"enabled,omitempty"` +} + // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:scope=Cluster diff --git a/cmd/main.go b/cmd/main.go index d7cc6cc8b..402264560 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -56,6 +56,7 @@ import ( "github.com/splunk/splunk-operator/internal/controller" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" + monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" //+kubebuilder:scaffold:imports //extapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" @@ -71,6 +72,7 @@ func init() { utilruntime.Must(enterpriseApi.AddToScheme(scheme)) utilruntime.Must(enterpriseApiV3.AddToScheme(scheme)) utilruntime.Must(cnpgv1.AddToScheme(scheme)) + utilruntime.Must(monitoringv1.AddToScheme(scheme)) //+kubebuilder:scaffold:scheme //utilruntime.Must(extapi.AddToScheme(scheme)) } diff --git a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml index a9846e36c..560958794 100644 --- a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml +++ b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml @@ -27,6 +27,11 @@ spec: cpu: "1" memory: "2Gi" connectionPoolerEnabled: true + observability: + grafanaDashboard: + enabled: true + pgbouncer: + enabled: true cnpg: # Restart method - tolerate downtime in dev diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 6d42d72bf..75b5bc50f 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -50,7 +50,7 @@ type PostgresClusterReconciler struct { Metrics ports.Recorder FleetCollector *pgprometheus.FleetCollector } - +// +kubebuilder:rbac:groups=monitoring.coreos.com,resources=servicemonitors,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters/status,verbs=get;update;patch // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters/finalizers,verbs=update diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 9356a011f..8518541be 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -39,6 +39,7 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" + monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" enterpriseApi "github.com/splunk/splunk-operator/api/v4" //+kubebuilder:scaffold:imports @@ -109,6 +110,9 @@ var _ = BeforeSuite(func(ctx context.Context) { err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) + err = monitoringv1.AddToScheme(clientgoscheme.Scheme) + Expect(err).NotTo(HaveOccurred()) + //+kubebuilder:scaffold:scheme // Create New Manager for controller diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index ba9030f6f..6c3a06b07 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -344,6 +344,64 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. rc.emitPoolerReadyTransition(postgresCluster, oldConditions) } + if err := reconcilePostgreSQLMetricsService(ctx, c, rc.Scheme, postgresCluster, isPostgreSQLMetricsEnabled(postgresCluster, clusterClass)); err != nil { + return ctrl.Result{}, err + } + + poolerMetricsEnabled := isConnectionPoolerMetricsEnabled(postgresCluster, clusterClass) + rwPoolerMetricsEnabled := poolerMetricsEnabled && rwPoolerExists + roPoolerMetricsEnabled := poolerMetricsEnabled && roPoolerExists + if err := reconcileConnectionPoolerMetricsService(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled); err != nil { + return ctrl.Result{}, err + } + if err := reconcileConnectionPoolerMetricsService(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled); err != nil { + return ctrl.Result{}, err + } + + if err := reconcileGrafanaDashboardConfigMap(ctx, c, rc.Scheme, postgresCluster, isGrafanaDashboardEnabled(postgresCluster, clusterClass)); err != nil { + return ctrl.Result{}, err + } + + serviceMonitorUnavailableEmitted := false + handleServiceMonitorError := func(err error) (bool, error) { + if err == nil { + return false, nil + } + if !isServiceMonitorUnavailable(err) { + return false, err + } + if !serviceMonitorUnavailableEmitted { + serviceMonitorUnavailableEmitted = true + logger.Info("ServiceMonitor CRD unavailable, continuing without ServiceMonitors") + rc.emitWarning(postgresCluster, EventServiceMonitorUnavailable, + "ServiceMonitor CRD not found; continuing without Prometheus ServiceMonitors") + } + return true, nil + } + + if handled, err := handleServiceMonitorError( + reconcilePostgreSQLMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, isPostgreSQLMetricsEnabled(postgresCluster, clusterClass)), + ); err != nil { + return ctrl.Result{}, err + } else if handled { + logger.Info("Skipped PostgreSQL ServiceMonitor reconciliation") + } + + if handled, err := handleServiceMonitorError( + reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled), + ); err != nil { + return ctrl.Result{}, err + } else if handled { + logger.Info("Skipped RW PgBouncer ServiceMonitor reconciliation") + } + if handled, err := handleServiceMonitorError( + reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled), + ); err != nil { + return ctrl.Result{}, err + } else if handled { + logger.Info("Skipped RO PgBouncer ServiceMonitor reconciliation") + } + // Reconcile ConfigMap when CNPG cluster is healthy. if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { logger.Info("CNPG Cluster healthy, reconciling ConfigMap") diff --git a/pkg/postgresql/cluster/core/dashboards/postgres_observability.json b/pkg/postgresql/cluster/core/dashboards/postgres_observability.json new file mode 100644 index 000000000..bbdf6eda7 --- /dev/null +++ b/pkg/postgresql/cluster/core/dashboards/postgres_observability.json @@ -0,0 +1,136 @@ +{ + "title": "PostgreSQL __CLUSTER_NAME__", + "uid": "pg-__CLUSTER_NAME__", + "schemaVersion": 39, + "version": 1, + "refresh": "30s", + "timezone": "browser", + "tags": ["postgresql", "cnpg", "pgbouncer"], + "editable": true, + "graphTooltip": 0, + "panels": [ + { + "id": 1, + "type": "stat", + "title": "PostgreSQL Instances", + "gridPos": { "x": 0, "y": 0, "w": 6, "h": 4 }, + "targets": [ + { + "expr": "count(max by (pod) (cnpg_pg_postmaster_start_time_seconds{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}))", + "refId": "A" + } + ], + "options": { + "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "orientation": "horizontal", + "textMode": "value" + } + }, + { + "id": 2, + "type": "stat", + "title": "RW PgBouncer Pods Up", + "gridPos": { "x": 6, "y": 0, "w": 6, "h": 4 }, + "targets": [ + { + "expr": "round(sum(max by (pod) (cnpg_pgbouncer_up{namespace=\"__NAMESPACE__\",service=\"__RW_POOLER_SERVICE__\"})))", + "refId": "A" + } + ], + "options": { + "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "orientation": "horizontal", + "textMode": "value" + } + }, + { + "id": 3, + "type": "stat", + "title": "RO PgBouncer Pods Up", + "gridPos": { "x": 12, "y": 0, "w": 6, "h": 4 }, + "targets": [ + { + "expr": "round(sum(max by (pod) (cnpg_pgbouncer_up{namespace=\"__NAMESPACE__\",service=\"__RO_POOLER_SERVICE__\"})))", + "refId": "A" + } + ], + "options": { + "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "orientation": "horizontal", + "textMode": "value" + } + }, + { + "id": 4, + "type": "stat", + "title": "Total Database Size", + "gridPos": { "x": 18, "y": 0, "w": 6, "h": 4 }, + "targets": [ + { + "expr": "sum(max by (datname) (cnpg_pg_database_size_bytes{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}))", + "refId": "A" + } + ], + "fieldConfig": { + "defaults": { + "unit": "bytes" + } + }, + "options": { + "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, + "orientation": "horizontal", + "textMode": "value" + } + }, + { + "id": 5, + "type": "timeseries", + "title": "WAL Files by Pod", + "gridPos": { "x": 0, "y": 4, "w": 8, "h": 8 }, + "targets": [ + { + "expr": "round(max by (pod) (cnpg_pg_wal_files_total{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}))", + "legendFormat": "{{pod}}", + "refId": "A" + } + ] + }, + { + "id": 6, + "type": "timeseries", + "title": "Archived WAL Rate by Pod", + "gridPos": { "x": 8, "y": 4, "w": 8, "h": 8 }, + "targets": [ + { + "expr": "max by (pod) (rate(cnpg_pg_stat_archiver_archived_count{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}[5m]))", + "legendFormat": "{{pod}}", + "refId": "A" + } + ] + }, + { + "id": 7, + "type": "timeseries", + "title": "PgBouncer Active Clients", + "gridPos": { "x": 16, "y": 4, "w": 8, "h": 8 }, + "targets": [ + { + "expr": "round(sum(cnpg_pgbouncer_pools_cl_active{namespace=\"__NAMESPACE__\",service=\"__RW_POOLER_SERVICE__\"}))", + "legendFormat": "rw", + "refId": "A" + }, + { + "expr": "round(sum(cnpg_pgbouncer_pools_cl_active{namespace=\"__NAMESPACE__\",service=\"__RO_POOLER_SERVICE__\"}))", + "legendFormat": "ro", + "refId": "B" + } + ] + } + ], + "templating": { + "list": [] + }, + "annotations": { + "list": [] + } +} diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go index afcfd768e..73ded6cd5 100644 --- a/pkg/postgresql/cluster/core/events.go +++ b/pkg/postgresql/cluster/core/events.go @@ -10,25 +10,26 @@ import ( ) const ( - EventSecretReady = "SecretReady" - EventConfigMapReady = "ConfigMapReady" - EventClusterAdopted = "ClusterAdopted" - EventClusterCreationStarted = "ClusterCreationStarted" - EventClusterUpdateStarted = "ClusterUpdateStarted" - EventClusterReady = "ClusterReady" - EventPoolerCreationStarted = "PoolerCreationStarted" - EventPoolerReady = "PoolerReady" - EventCleanupComplete = "CleanupComplete" - EventClusterClassNotFound = "ClusterClassNotFound" - EventConfigMergeFailed = "ConfigMergeFailed" - EventSecretReconcileFailed = "SecretReconcileFailed" - EventClusterCreateFailed = "ClusterCreateFailed" - EventClusterUpdateFailed = "ClusterUpdateFailed" - EventManagedRolesFailed = "ManagedRolesFailed" - EventPoolerReconcileFailed = "PoolerReconcileFailed" - EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" - EventClusterDegraded = "ClusterDegraded" - EventCleanupFailed = "CleanupFailed" + EventSecretReady = "SecretReady" + EventConfigMapReady = "ConfigMapReady" + EventClusterAdopted = "ClusterAdopted" + EventClusterCreationStarted = "ClusterCreationStarted" + EventClusterUpdateStarted = "ClusterUpdateStarted" + EventClusterReady = "ClusterReady" + EventPoolerCreationStarted = "PoolerCreationStarted" + EventPoolerReady = "PoolerReady" + EventCleanupComplete = "CleanupComplete" + EventClusterClassNotFound = "ClusterClassNotFound" + EventConfigMergeFailed = "ConfigMergeFailed" + EventSecretReconcileFailed = "SecretReconcileFailed" + EventClusterCreateFailed = "ClusterCreateFailed" + EventClusterUpdateFailed = "ClusterUpdateFailed" + EventManagedRolesFailed = "ManagedRolesFailed" + EventPoolerReconcileFailed = "PoolerReconcileFailed" + EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" + EventServiceMonitorUnavailable = "ServiceMonitorUnavailable" + EventClusterDegraded = "ClusterDegraded" + EventCleanupFailed = "CleanupFailed" ) func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { diff --git a/pkg/postgresql/cluster/core/monitoring.go b/pkg/postgresql/cluster/core/monitoring.go new file mode 100644 index 000000000..7c942d22a --- /dev/null +++ b/pkg/postgresql/cluster/core/monitoring.go @@ -0,0 +1,614 @@ +package core + +import ( + "context" + _ "embed" + "fmt" + monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + apimeta "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/intstr" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + "sigs.k8s.io/controller-runtime/pkg/log" + "strings" +) + +const ( + // metrics + postgresMetricsServiceSuffix = "-postgres-metrics" + postgresMetricsPortName = "metrics" + postgresMetricsPort = int32(9187) + poolerMetricsPortName = "metrics" + poolerMetricsPort = int32(9127) + grafanaDashboardConfigMapSuffix = "-grafana-dashboard" + + // labels + labelManagedBy = "app.kubernetes.io/managed-by" + labelManagedByValue = "postgrescluster-controller" + labelObservabilityComponent = "enterprise.splunk.com/observability-component" + cnpgClusterLabelName = "cnpg.io/cluster" + cnpgPoolerNameLabel = "cnpg.io/poolerName" + cnpgPodRoleInstance = "instance" + cnpgPodRoleLabelName = "cnpg.io/podRole" + grafanaDashboardLabelKey = "grafana_dashboard" + grafanaDashboardLabelValue = "1" +) + +func isPostgreSQLMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { + if class == nil || class.Spec.Config == nil || class.Spec.Config.Observability == nil { + return false + } + classCfg := class.Spec.Config.Observability.PostgreSQL + if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { + return false + } + if cluster == nil || cluster.Spec.Observability == nil || cluster.Spec.Observability.PostgreSQL == nil { + return true + } + override := cluster.Spec.Observability.PostgreSQL.Disabled + return override == nil || !*override +} + +func isConnectionPoolerEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { + if class == nil || class.Spec.Config == nil || class.Spec.Config.ConnectionPoolerEnabled == nil { + return false + } + if !*class.Spec.Config.ConnectionPoolerEnabled { + return false + } + if cluster == nil || cluster.Spec.ConnectionPoolerEnabled == nil { + return true + } + return *cluster.Spec.ConnectionPoolerEnabled +} + +func isConnectionPoolerMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { + if !isConnectionPoolerEnabled(cluster, class) { + return false + } + if class == nil || class.Spec.Config == nil || class.Spec.Config.Observability == nil { + return false + } + classCfg := class.Spec.Config.Observability.PgBouncer + if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { + return false + } + if cluster == nil || cluster.Spec.Observability == nil || cluster.Spec.Observability.PgBouncer == nil { + return true + } + override := cluster.Spec.Observability.PgBouncer.Disabled + return override == nil || !*override +} + +func isGrafanaDashboardEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { + if class == nil || class.Spec.Config == nil || class.Spec.Config.Observability == nil { + return false + } + classCfg := class.Spec.Config.Observability.GrafanaDashboard + if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { + return false + } + if cluster == nil || cluster.Spec.Observability == nil || cluster.Spec.Observability.GrafanaDashboard == nil { + return true + } + override := cluster.Spec.Observability.GrafanaDashboard.Disabled + return override == nil || !*override +} + +func buildPostgreSQLMetricsService(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster) (*corev1.Service, error) { + svc := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: cluster.Name + postgresMetricsServiceSuffix, + Namespace: cluster.Namespace, + Labels: map[string]string{ + labelManagedBy: labelManagedByValue, + labelObservabilityComponent: "postgresql-metrics", + cnpgClusterLabelName: cluster.Name, + }, + }, + Spec: corev1.ServiceSpec{ + Type: corev1.ServiceTypeClusterIP, + Selector: map[string]string{ + cnpgClusterLabelName: cluster.Name, + cnpgPodRoleLabelName: cnpgPodRoleInstance, + }, + Ports: []corev1.ServicePort{ + { + Name: postgresMetricsPortName, + Port: postgresMetricsPort, + Protocol: corev1.ProtocolTCP, + TargetPort: intstr.FromString(postgresMetricsPortName), + }, + }, + }, + } + + if err := ctrl.SetControllerReference(cluster, svc, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on PostgreSQL metrics Service: %w", err) + } + + return svc, nil +} + +func poolerMetricsServiceName(clusterName, poolerType string) string { + return fmt.Sprintf("%s-pooler-%s-metrics", clusterName, poolerType) +} +func buildConnectionPoolerMetricsService( + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, + poolerType string, +) (*corev1.Service, error) { + poolerName := poolerResourceName(cluster.Name, poolerType) + + svc := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: poolerMetricsServiceName(cluster.Name, poolerType), + Namespace: cluster.Namespace, + Labels: map[string]string{ + labelManagedBy: labelManagedByValue, + labelObservabilityComponent: "pgbouncer-metrics", + cnpgClusterLabelName: cluster.Name, + cnpgPoolerNameLabel: poolerName, + }, + }, + Spec: corev1.ServiceSpec{ + Type: corev1.ServiceTypeClusterIP, + Selector: map[string]string{ + cnpgPoolerNameLabel: poolerName, + }, + Ports: []corev1.ServicePort{ + { + Name: poolerMetricsPortName, + Port: poolerMetricsPort, + Protocol: corev1.ProtocolTCP, + TargetPort: intstr.FromString(poolerMetricsPortName), + }, + }, + }, + } + + if err := ctrl.SetControllerReference(cluster, svc, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on PgBouncer metrics Service: %w", err) + } + + return svc, nil +} + +func buildGrafanaDashboardConfigMap(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster) (*corev1.ConfigMap, error) { + cm := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: cluster.Name + grafanaDashboardConfigMapSuffix, + Namespace: cluster.Namespace, + Labels: map[string]string{ + labelManagedBy: labelManagedByValue, + labelObservabilityComponent: "grafana-dashboard", + cnpgClusterLabelName: cluster.Name, + grafanaDashboardLabelKey: grafanaDashboardLabelValue, + }, + }, + Data: map[string]string{ + "dashboard.json": buildBasicGrafanaDashboard(cluster), + }, + } + + if err := ctrl.SetControllerReference(cluster, cm, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on Grafana dashboard ConfigMap: %w", err) + } + + return cm, nil +} + +func isServiceMonitorUnavailable(err error) bool { + if err == nil { + return false + } + + if apierrors.IsNotFound(err) || apimeta.IsNoMatchError(err) { + return true + } + + msg := err.Error() + return strings.Contains(msg, "no matches for kind \"ServiceMonitor\"") || + strings.Contains(msg, "servicemonitors.monitoring.coreos.com") +} + +func reconcilePostgreSQLMetricsService(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, enabled bool) error { + logger := log.FromContext(ctx) + serviceName := cluster.Name + postgresMetricsServiceSuffix + + if !enabled { + existing := &corev1.Service{} + err := c.Get(ctx, types.NamespacedName{Name: serviceName, Namespace: cluster.Namespace}, existing) + switch { + case apierrors.IsNotFound(err): + return nil + case err != nil: + return fmt.Errorf("getting PostgreSQL metrics Service %s: %w", serviceName, err) + } + + logger.Info("Deleting PostgreSQL metrics Service", "name", serviceName) + if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("deleting PostgreSQL metrics Service %s: %w", serviceName, err) + } + return nil + } + + desired, err := buildPostgreSQLMetricsService(scheme, cluster) + if err != nil { + return fmt.Errorf("building PostgreSQL metrics Service: %w", err) + } + + live := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: desired.Name, + Namespace: desired.Namespace, + }, + } + + _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { + live.Labels = desired.Labels + live.Annotations = desired.Annotations + live.Spec.Type = desired.Spec.Type + live.Spec.Selector = desired.Spec.Selector + live.Spec.Ports = desired.Spec.Ports + + if !metav1.IsControlledBy(live, cluster) { + if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { + return fmt.Errorf("setting controller reference on PostgreSQL metrics Service: %w", err) + } + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling PostgreSQL metrics Service %s: %w", desired.Name, err) + } + + return nil +} + +func reconcileConnectionPoolerMetricsService( + ctx context.Context, + c client.Client, + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, + poolerType string, + enabled bool, +) error { + logger := log.FromContext(ctx) + serviceName := poolerMetricsServiceName(cluster.Name, poolerType) + + if !enabled { + existing := &corev1.Service{} + err := c.Get(ctx, types.NamespacedName{Name: serviceName, Namespace: cluster.Namespace}, existing) + switch { + case apierrors.IsNotFound(err): + return nil + case err != nil: + return fmt.Errorf("getting PgBouncer metrics Service %s: %w", serviceName, err) + } + + logger.Info("Deleting PgBouncer metrics Service", "name", serviceName, "poolerType", poolerType) + if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("deleting PgBouncer metrics Service %s: %w", serviceName, err) + } + return nil + } + + desired, err := buildConnectionPoolerMetricsService(scheme, cluster, poolerType) + if err != nil { + return fmt.Errorf("building PgBouncer metrics Service for %s pooler: %w", poolerType, err) + } + + live := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: desired.Name, + Namespace: desired.Namespace, + }, + } + + _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { + live.Labels = desired.Labels + live.Annotations = desired.Annotations + live.Spec.Type = desired.Spec.Type + live.Spec.Selector = desired.Spec.Selector + live.Spec.Ports = desired.Spec.Ports + + if !metav1.IsControlledBy(live, cluster) { + if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { + return fmt.Errorf("setting controller reference on PgBouncer metrics Service: %w", err) + } + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling PgBouncer metrics Service %s: %w", desired.Name, err) + } + + return nil +} + +func reconcileGrafanaDashboardConfigMap( + ctx context.Context, + c client.Client, + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, + enabled bool, +) error { + logger := log.FromContext(ctx) + configMapName := cluster.Name + grafanaDashboardConfigMapSuffix + + if !enabled { + existing := &corev1.ConfigMap{} + err := c.Get(ctx, types.NamespacedName{Name: configMapName, Namespace: cluster.Namespace}, existing) + switch { + case apierrors.IsNotFound(err): + return nil + case err != nil: + return fmt.Errorf("getting Grafana dashboard ConfigMap %s: %w", configMapName, err) + } + + logger.Info("Deleting Grafana dashboard ConfigMap", "name", configMapName) + if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("deleting Grafana dashboard ConfigMap %s: %w", configMapName, err) + } + return nil + } + + desired, err := buildGrafanaDashboardConfigMap(scheme, cluster) + if err != nil { + return fmt.Errorf("building Grafana dashboard ConfigMap: %w", err) + } + + live := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: desired.Name, + Namespace: desired.Namespace, + }, + } + + _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { + live.Labels = desired.Labels + live.Annotations = desired.Annotations + live.Data = desired.Data + + if !metav1.IsControlledBy(live, cluster) { + if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { + return fmt.Errorf("setting controller reference on Grafana dashboard ConfigMap: %w", err) + } + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling Grafana dashboard ConfigMap %s: %w", desired.Name, err) + } + + return nil +} + +func postgresMetricsServiceMonitorName(clusterName string) string { + return clusterName + "-postgres-metrics-monitor" +} + +func poolerMetricsServiceMonitorName(clusterName, poolerType string) string { + return fmt.Sprintf("%s-pooler-%s-metrics-monitor", clusterName, poolerType) +} + +func buildPostgreSQLMetricsServiceMonitor( + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, +) (*monitoringv1.ServiceMonitor, error) { + sm := &monitoringv1.ServiceMonitor{ + ObjectMeta: metav1.ObjectMeta{ + Name: postgresMetricsServiceMonitorName(cluster.Name), + Namespace: cluster.Namespace, + Labels: map[string]string{ + labelManagedBy: labelManagedByValue, + labelObservabilityComponent: "postgresql-metrics", + cnpgClusterLabelName: cluster.Name, + }, + }, + Spec: monitoringv1.ServiceMonitorSpec{ + Selector: metav1.LabelSelector{ + MatchLabels: map[string]string{ + labelObservabilityComponent: "postgresql-metrics", + cnpgClusterLabelName: cluster.Name, + }, + }, + Endpoints: []monitoringv1.Endpoint{ + { + Port: postgresMetricsPortName, + Path: "/metrics", + Scheme: "http", + }, + }, + }, + } + + if err := ctrl.SetControllerReference(cluster, sm, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on PostgreSQL ServiceMonitor: %w", err) + } + + return sm, nil +} + +func buildConnectionPoolerMetricsServiceMonitor( + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, + poolerType string, +) (*monitoringv1.ServiceMonitor, error) { + poolerName := poolerResourceName(cluster.Name, poolerType) + + sm := &monitoringv1.ServiceMonitor{ + ObjectMeta: metav1.ObjectMeta{ + Name: poolerMetricsServiceMonitorName(cluster.Name, poolerType), + Namespace: cluster.Namespace, + Labels: map[string]string{ + labelManagedBy: labelManagedByValue, + labelObservabilityComponent: "pgbouncer-metrics", + cnpgClusterLabelName: cluster.Name, + cnpgPoolerNameLabel: poolerName, + }, + }, + Spec: monitoringv1.ServiceMonitorSpec{ + Selector: metav1.LabelSelector{ + MatchLabels: map[string]string{ + labelObservabilityComponent: "pgbouncer-metrics", + cnpgClusterLabelName: cluster.Name, + cnpgPoolerNameLabel: poolerName, + }, + }, + Endpoints: []monitoringv1.Endpoint{ + { + Port: poolerMetricsPortName, + Path: "/metrics", + Scheme: "http", + }, + }, + }, + } + + if err := ctrl.SetControllerReference(cluster, sm, scheme); err != nil { + return nil, fmt.Errorf("setting controller reference on PgBouncer ServiceMonitor: %w", err) + } + + return sm, nil +} + +func reconcilePostgreSQLMetricsServiceMonitor( + ctx context.Context, + c client.Client, + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, + enabled bool, +) error { + logger := log.FromContext(ctx) + name := postgresMetricsServiceMonitorName(cluster.Name) + + if !enabled { + existing := &monitoringv1.ServiceMonitor{} + err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: cluster.Namespace}, existing) + switch { + case apierrors.IsNotFound(err): + return nil + case err != nil: + return fmt.Errorf("getting PostgreSQL ServiceMonitor %s: %w", name, err) + } + + logger.Info("Deleting PostgreSQL ServiceMonitor", "name", name) + if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("deleting PostgreSQL ServiceMonitor %s: %w", name, err) + } + return nil + } + + desired, err := buildPostgreSQLMetricsServiceMonitor(scheme, cluster) + if err != nil { + return fmt.Errorf("building PostgreSQL ServiceMonitor: %w", err) + } + + live := &monitoringv1.ServiceMonitor{ + ObjectMeta: metav1.ObjectMeta{ + Name: desired.Name, + Namespace: desired.Namespace, + }, + } + + _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { + live.Labels = desired.Labels + live.Annotations = desired.Annotations + live.Spec = desired.Spec + + if !metav1.IsControlledBy(live, cluster) { + if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { + return fmt.Errorf("setting controller reference on PostgreSQL ServiceMonitor: %w", err) + } + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling PostgreSQL ServiceMonitor %s: %w", desired.Name, err) + } + + return nil +} + +func reconcileConnectionPoolerMetricsServiceMonitor( + ctx context.Context, + c client.Client, + scheme *runtime.Scheme, + cluster *enterprisev4.PostgresCluster, + poolerType string, + enabled bool, +) error { + logger := log.FromContext(ctx) + name := poolerMetricsServiceMonitorName(cluster.Name, poolerType) + + if !enabled { + existing := &monitoringv1.ServiceMonitor{} + err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: cluster.Namespace}, existing) + switch { + case apierrors.IsNotFound(err): + return nil + case err != nil: + return fmt.Errorf("getting PgBouncer ServiceMonitor %s: %w", name, err) + } + + logger.Info("Deleting PgBouncer ServiceMonitor", "name", name, "poolerType", poolerType) + if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { + return fmt.Errorf("deleting PgBouncer ServiceMonitor %s: %w", name, err) + } + return nil + } + + desired, err := buildConnectionPoolerMetricsServiceMonitor(scheme, cluster, poolerType) + if err != nil { + return fmt.Errorf("building PgBouncer ServiceMonitor for %s pooler: %w", poolerType, err) + } + + live := &monitoringv1.ServiceMonitor{ + ObjectMeta: metav1.ObjectMeta{ + Name: desired.Name, + Namespace: desired.Namespace, + }, + } + + _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { + live.Labels = desired.Labels + live.Annotations = desired.Annotations + live.Spec = desired.Spec + + if !metav1.IsControlledBy(live, cluster) { + if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { + return fmt.Errorf("setting controller reference on PgBouncer ServiceMonitor: %w", err) + } + } + return nil + }) + if err != nil { + return fmt.Errorf("reconciling PgBouncer ServiceMonitor %s: %w", desired.Name, err) + } + + return nil +} + +//go:embed dashboards/postgres_observability.json +var postgresObservabilityDashboardTemplate string + +func buildBasicGrafanaDashboard(cluster *enterprisev4.PostgresCluster) string { + replacer := strings.NewReplacer( + "__CLUSTER_NAME__", cluster.Name, + "__NAMESPACE__", cluster.Namespace, + "__POSTGRES_SERVICE__", cluster.Name+postgresMetricsServiceSuffix, + "__RW_POOLER_SERVICE__", poolerMetricsServiceName(cluster.Name, readWriteEndpoint), + "__RO_POOLER_SERVICE__", poolerMetricsServiceName(cluster.Name, readOnlyEndpoint), + ) + + return replacer.Replace(postgresObservabilityDashboardTemplate) +} diff --git a/pkg/postgresql/cluster/core/monitoring_unit_test.go b/pkg/postgresql/cluster/core/monitoring_unit_test.go new file mode 100644 index 000000000..6c1d0715a --- /dev/null +++ b/pkg/postgresql/cluster/core/monitoring_unit_test.go @@ -0,0 +1,472 @@ +package core + +import ( + "encoding/json" + "errors" + "testing" + + monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" + enterprisev4 "github.com/splunk/splunk-operator/api/v4" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/utils/ptr" +) + +func TestIsPostgreSQLMetricsEnabled(t *testing.T) { + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + class *enterprisev4.PostgresClusterClass + want bool + }{ + { + name: "disabled when class observability is absent", + class: &enterprisev4.PostgresClusterClass{ + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{}, + }, + }, + want: false, + }, + { + name: "enabled when class enables and cluster override is unset", + cluster: &enterprisev4.PostgresCluster{}, + class: newClassWithObservability( + ptr.To(true), + nil, + nil, + nil, + ), + want: true, + }, + { + name: "disabled when cluster override disables", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + Observability: &enterprisev4.PostgresObservabilityOverride{ + PostgreSQL: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + }, + }, + }, + class: newClassWithObservability( + ptr.To(true), + nil, + nil, + nil, + ), + want: false, + }, + { + name: "disabled when class disables even if cluster has override struct", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + Observability: &enterprisev4.PostgresObservabilityOverride{ + PostgreSQL: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(false)}, + }, + }, + }, + class: newClassWithObservability( + ptr.To(false), + nil, + nil, + nil, + ), + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := isPostgreSQLMetricsEnabled(tt.cluster, tt.class) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestIsConnectionPoolerEnabled(t *testing.T) { + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + class *enterprisev4.PostgresClusterClass + want bool + }{ + { + name: "disabled when class config is absent", + class: &enterprisev4.PostgresClusterClass{}, + want: false, + }, + { + name: "inherits enabled class setting when cluster override is unset", + cluster: &enterprisev4.PostgresCluster{}, + class: &enterprisev4.PostgresClusterClass{ + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + }, + want: true, + }, + { + name: "cluster can disable class enabled pooler", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ConnectionPoolerEnabled: ptr.To(false), + }, + }, + class: &enterprisev4.PostgresClusterClass{ + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + }, + want: false, + }, + { + name: "class disabled wins", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + class: &enterprisev4.PostgresClusterClass{ + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(false), + }, + }, + }, + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := isConnectionPoolerEnabled(tt.cluster, tt.class) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + class *enterprisev4.PostgresClusterClass + want bool + }{ + { + name: "disabled when pooler itself is disabled", + cluster: &enterprisev4.PostgresCluster{}, + class: newClassWithObservability( + nil, + ptr.To(true), + nil, + ptr.To(false), + ), + want: false, + }, + { + name: "enabled when pooler and pgbouncer metrics are enabled", + cluster: &enterprisev4.PostgresCluster{}, + class: newClassWithObservability( + nil, + ptr.To(true), + ptr.To(true), + ptr.To(true), + ), + want: true, + }, + { + name: "disabled when cluster override disables pgbouncer metrics", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + Observability: &enterprisev4.PostgresObservabilityOverride{ + PgBouncer: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + }, + }, + }, + class: newClassWithObservability( + nil, + ptr.To(true), + ptr.To(true), + ptr.To(true), + ), + want: false, + }, + { + name: "disabled when class disables pgbouncer metrics", + cluster: &enterprisev4.PostgresCluster{}, + class: newClassWithObservability( + nil, + ptr.To(true), + ptr.To(false), + ptr.To(true), + ), + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := isConnectionPoolerMetricsEnabled(tt.cluster, tt.class) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestIsGrafanaDashboardEnabled(t *testing.T) { + tests := []struct { + name string + cluster *enterprisev4.PostgresCluster + class *enterprisev4.PostgresClusterClass + want bool + }{ + { + name: "enabled when class enables and cluster override is unset", + cluster: &enterprisev4.PostgresCluster{}, + class: newClassWithObservability( + nil, + nil, + nil, + ptr.To(true), + ), + want: true, + }, + { + name: "disabled when cluster override disables dashboard", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + Observability: &enterprisev4.PostgresObservabilityOverride{ + GrafanaDashboard: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + }, + }, + }, + class: newClassWithObservability( + nil, + nil, + nil, + ptr.To(true), + ), + want: false, + }, + { + name: "disabled when class disables dashboard", + cluster: &enterprisev4.PostgresCluster{}, + class: newClassWithObservability( + nil, + nil, + nil, + ptr.To(false), + ), + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := isGrafanaDashboardEnabled(tt.cluster, tt.class) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestBuildPostgreSQLMetricsService(t *testing.T) { + scheme := newMonitoringTestScheme(t) + cluster := newTestMonitoringCluster() + + svc, err := buildPostgreSQLMetricsService(scheme, cluster) + require.NoError(t, err) + + assert.Equal(t, "postgresql-cluster-dev-postgres-metrics", svc.Name) + assert.Equal(t, cluster.Namespace, svc.Namespace) + assert.Equal(t, "postgresql-metrics", svc.Labels[labelObservabilityComponent]) + assert.Equal(t, cluster.Name, svc.Labels[cnpgClusterLabelName]) + assert.Equal(t, cluster.Name, svc.Spec.Selector[cnpgClusterLabelName]) + assert.Equal(t, cnpgPodRoleInstance, svc.Spec.Selector[cnpgPodRoleLabelName]) + require.Len(t, svc.Spec.Ports, 1) + assert.Equal(t, postgresMetricsPortName, svc.Spec.Ports[0].Name) + assert.Equal(t, postgresMetricsPort, svc.Spec.Ports[0].Port) + assert.Equal(t, postgresMetricsPortName, svc.Spec.Ports[0].TargetPort.StrVal) + assertMonitoringOwnerRef(t, svc.OwnerReferences, cluster) +} + +func TestBuildConnectionPoolerMetricsService(t *testing.T) { + scheme := newMonitoringTestScheme(t) + cluster := newTestMonitoringCluster() + + svc, err := buildConnectionPoolerMetricsService(scheme, cluster, readWriteEndpoint) + require.NoError(t, err) + + assert.Equal(t, "postgresql-cluster-dev-pooler-rw-metrics", svc.Name) + assert.Equal(t, "pgbouncer-metrics", svc.Labels[labelObservabilityComponent]) + assert.Equal(t, poolerResourceName(cluster.Name, readWriteEndpoint), svc.Labels[cnpgPoolerNameLabel]) + assert.Equal(t, poolerResourceName(cluster.Name, readWriteEndpoint), svc.Spec.Selector[cnpgPoolerNameLabel]) + require.Len(t, svc.Spec.Ports, 1) + assert.Equal(t, poolerMetricsPortName, svc.Spec.Ports[0].Name) + assert.Equal(t, poolerMetricsPort, svc.Spec.Ports[0].Port) + assert.Equal(t, poolerMetricsPortName, svc.Spec.Ports[0].TargetPort.StrVal) + assertMonitoringOwnerRef(t, svc.OwnerReferences, cluster) +} + +func TestBuildGrafanaDashboardConfigMap(t *testing.T) { + scheme := newMonitoringTestScheme(t) + cluster := newTestMonitoringCluster() + + cm, err := buildGrafanaDashboardConfigMap(scheme, cluster) + require.NoError(t, err) + + assert.Equal(t, "postgresql-cluster-dev-grafana-dashboard", cm.Name) + assert.Equal(t, "grafana-dashboard", cm.Labels[labelObservabilityComponent]) + assert.Equal(t, grafanaDashboardLabelValue, cm.Labels[grafanaDashboardLabelKey]) + assert.Contains(t, cm.Data, "dashboard.json") + assert.NotContains(t, cm.Data["dashboard.json"], "__CLUSTER_NAME__") + assert.Contains(t, cm.Data["dashboard.json"], cluster.Name) + assert.Contains(t, cm.Data["dashboard.json"], cluster.Namespace) + assert.Contains(t, cm.Data["dashboard.json"], cluster.Name+postgresMetricsServiceSuffix) + assert.Contains(t, cm.Data["dashboard.json"], poolerMetricsServiceName(cluster.Name, readWriteEndpoint)) + assert.Contains(t, cm.Data["dashboard.json"], poolerMetricsServiceName(cluster.Name, readOnlyEndpoint)) + + var dashboard map[string]any + require.NoError(t, json.Unmarshal([]byte(cm.Data["dashboard.json"]), &dashboard)) + assertMonitoringOwnerRef(t, cm.OwnerReferences, cluster) +} + +func TestBuildPostgreSQLMetricsServiceMonitor(t *testing.T) { + scheme := newMonitoringTestScheme(t) + cluster := newTestMonitoringCluster() + + sm, err := buildPostgreSQLMetricsServiceMonitor(scheme, cluster) + require.NoError(t, err) + + assert.Equal(t, "postgresql-cluster-dev-postgres-metrics-monitor", sm.Name) + assert.Equal(t, "postgresql-metrics", sm.Labels[labelObservabilityComponent]) + assert.Equal(t, cluster.Name, sm.Spec.Selector.MatchLabels[cnpgClusterLabelName]) + require.Len(t, sm.Spec.Endpoints, 1) + assert.Equal(t, postgresMetricsPortName, sm.Spec.Endpoints[0].Port) + assert.Equal(t, "/metrics", sm.Spec.Endpoints[0].Path) + assert.Equal(t, "http", sm.Spec.Endpoints[0].Scheme) + assertMonitoringOwnerRef(t, sm.OwnerReferences, cluster) +} + +func TestBuildConnectionPoolerMetricsServiceMonitor(t *testing.T) { + scheme := newMonitoringTestScheme(t) + cluster := newTestMonitoringCluster() + + sm, err := buildConnectionPoolerMetricsServiceMonitor(scheme, cluster, readOnlyEndpoint) + require.NoError(t, err) + + assert.Equal(t, "postgresql-cluster-dev-pooler-ro-metrics-monitor", sm.Name) + assert.Equal(t, "pgbouncer-metrics", sm.Labels[labelObservabilityComponent]) + assert.Equal(t, poolerResourceName(cluster.Name, readOnlyEndpoint), sm.Labels[cnpgPoolerNameLabel]) + assert.Equal(t, poolerResourceName(cluster.Name, readOnlyEndpoint), sm.Spec.Selector.MatchLabels[cnpgPoolerNameLabel]) + require.Len(t, sm.Spec.Endpoints, 1) + assert.Equal(t, poolerMetricsPortName, sm.Spec.Endpoints[0].Port) + assert.Equal(t, "/metrics", sm.Spec.Endpoints[0].Path) + assert.Equal(t, "http", sm.Spec.Endpoints[0].Scheme) + assertMonitoringOwnerRef(t, sm.OwnerReferences, cluster) +} + +func TestIsServiceMonitorUnavailable(t *testing.T) { + tests := []struct { + name string + err error + want bool + }{ + { + name: "nil error", + err: nil, + want: false, + }, + { + name: "not found error", + err: apierrors.NewNotFound(schema.GroupResource{Group: "monitoring.coreos.com", Resource: "servicemonitors"}, "test"), + want: true, + }, + { + name: "kind match string error", + err: errors.New("no matches for kind \"ServiceMonitor\" in version \"monitoring.coreos.com/v1\""), + want: true, + }, + { + name: "resource string error", + err: errors.New("servicemonitors.monitoring.coreos.com not found"), + want: true, + }, + { + name: "unrelated error", + err: errors.New("boom"), + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := isServiceMonitorUnavailable(tt.err) + assert.Equal(t, tt.want, got) + }) + } +} + +func newMonitoringTestScheme(t *testing.T) *runtime.Scheme { + t.Helper() + + scheme := runtime.NewScheme() + require.NoError(t, corev1.AddToScheme(scheme)) + require.NoError(t, monitoringv1.AddToScheme(scheme)) + require.NoError(t, enterprisev4.AddToScheme(scheme)) + + return scheme +} + +func newTestMonitoringCluster() *enterprisev4.PostgresCluster { + return &enterprisev4.PostgresCluster{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresCluster", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "postgresql-cluster-dev", + Namespace: "test", + UID: "cluster-uid", + }, + } +} + +func newClassWithObservability( + postgresEnabled *bool, + poolerEnabled *bool, + pgBouncerMetricsEnabled *bool, + grafanaEnabled *bool, +) *enterprisev4.PostgresClusterClass { + return &enterprisev4.PostgresClusterClass{ + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: poolerEnabled, + Observability: &enterprisev4.PostgresObservabilityClassConfig{ + PostgreSQL: &enterprisev4.MetricsClassConfig{Enabled: postgresEnabled}, + PgBouncer: &enterprisev4.MetricsClassConfig{Enabled: pgBouncerMetricsEnabled}, + GrafanaDashboard: &enterprisev4.GrafanaDashboardClassConfig{Enabled: grafanaEnabled}, + }, + }, + }, + } +} + +func assertMonitoringOwnerRef(t *testing.T, ownerRefs []metav1.OwnerReference, cluster *enterprisev4.PostgresCluster) { + t.Helper() + + require.Len(t, ownerRefs, 1) + assert.Equal(t, cluster.APIVersion, ownerRefs[0].APIVersion) + assert.Equal(t, cluster.Kind, ownerRefs[0].Kind) + assert.Equal(t, cluster.Name, ownerRefs[0].Name) + assert.Equal(t, cluster.UID, ownerRefs[0].UID) + require.NotNil(t, ownerRefs[0].Controller) + assert.True(t, *ownerRefs[0].Controller) +} From 2822a8dbc63f556891309de3434b91af4f98fc1e Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Thu, 2 Apr 2026 16:46:17 +0200 Subject: [PATCH 21/43] removed grafana dashboard from code --- api/v4/postgrescluster_types.go | 5 +- api/v4/postgresclusterclass_types.go | 13 +- ...nterprise_v4_postgresclusterclass_dev.yaml | 3 +- pkg/postgresql/cluster/core/cluster.go | 39 +---- .../dashboards/postgres_observability.json | 136 ----------------- pkg/postgresql/cluster/core/events.go | 39 +++-- pkg/postgresql/cluster/core/monitoring.go | 143 +----------------- .../cluster/core/monitoring_unit_test.go | 137 +---------------- 8 files changed, 37 insertions(+), 478 deletions(-) delete mode 100644 pkg/postgresql/cluster/core/dashboards/postgres_observability.json diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 1faae2820..5c3608058 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -108,7 +108,7 @@ type PostgresClusterSpec struct { // +optional ClusterDeletionPolicy *string `json:"clusterDeletionPolicy,omitempty"` - // Observability contains configuration for monitoring and observability features. + // Observability contains configuration for metrics exposure features. // +optional Observability *PostgresObservabilityOverride `json:"observability,omitempty"` } @@ -121,9 +121,6 @@ type PostgresObservabilityOverride struct { // +optional PgBouncer *FeatureDisableOverride `json:"pgbouncer,omitempty"` - - // +optional - GrafanaDashboard *FeatureDisableOverride `json:"grafanaDashboard,omitempty"` } type FeatureDisableOverride struct { diff --git a/api/v4/postgresclusterclass_types.go b/api/v4/postgresclusterclass_types.go index 743e98722..74085d191 100644 --- a/api/v4/postgresclusterclass_types.go +++ b/api/v4/postgresclusterclass_types.go @@ -100,8 +100,8 @@ type PostgresClusterClassConfig struct { // +optional ConnectionPoolerEnabled *bool `json:"connectionPoolerEnabled,omitempty"` - // Observability contains configuration for metrics and dashboards. - // When enabled, creates metrics resources and Grafana dashboard for clusters using this class. + // Observability contains configuration for metrics exposure. + // When enabled, creates metrics resources for clusters using this class. // Can be overridden in PostgresCluster CR. // +kubebuilder:default={} // +optional @@ -184,8 +184,6 @@ type PostgresObservabilityClassConfig struct { PostgreSQL *MetricsClassConfig `json:"postgresql,omitempty"` // +optional PgBouncer *MetricsClassConfig `json:"pgbouncer,omitempty"` - // +optional - GrafanaDashboard *GrafanaDashboardClassConfig `json:"grafanaDashboard,omitempty"` } type MetricsClassConfig struct { @@ -195,13 +193,6 @@ type MetricsClassConfig struct { Enabled *bool `json:"enabled,omitempty"` } -type GrafanaDashboardClassConfig struct { - // Enabled controls whether a Grafana dashboard ConfigMap should be created for this class. - // +kubebuilder:default=false - // +optional - Enabled *bool `json:"enabled,omitempty"` -} - // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:scope=Cluster diff --git a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml index 560958794..082d5fad9 100644 --- a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml +++ b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml @@ -28,7 +28,7 @@ spec: memory: "2Gi" connectionPoolerEnabled: true observability: - grafanaDashboard: + postgresql: enabled: true pgbouncer: enabled: true @@ -41,4 +41,3 @@ spec: mode: transaction config: max_client_conn: "100" - diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 6c3a06b07..329571933 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -358,48 +358,21 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, err } - if err := reconcileGrafanaDashboardConfigMap(ctx, c, rc.Scheme, postgresCluster, isGrafanaDashboardEnabled(postgresCluster, clusterClass)); err != nil { - return ctrl.Result{}, err - } - - serviceMonitorUnavailableEmitted := false - handleServiceMonitorError := func(err error) (bool, error) { - if err == nil { - return false, nil - } - if !isServiceMonitorUnavailable(err) { - return false, err - } - if !serviceMonitorUnavailableEmitted { - serviceMonitorUnavailableEmitted = true - logger.Info("ServiceMonitor CRD unavailable, continuing without ServiceMonitors") - rc.emitWarning(postgresCluster, EventServiceMonitorUnavailable, - "ServiceMonitor CRD not found; continuing without Prometheus ServiceMonitors") - } - return true, nil - } - - if handled, err := handleServiceMonitorError( - reconcilePostgreSQLMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, isPostgreSQLMetricsEnabled(postgresCluster, clusterClass)), + if err := reconcilePostgreSQLMetricsServiceMonitor( + ctx, c, rc.Scheme, postgresCluster, isPostgreSQLMetricsEnabled(postgresCluster, clusterClass), ); err != nil { return ctrl.Result{}, err - } else if handled { - logger.Info("Skipped PostgreSQL ServiceMonitor reconciliation") } - if handled, err := handleServiceMonitorError( - reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled), + if err := reconcileConnectionPoolerMetricsServiceMonitor( + ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled, ); err != nil { return ctrl.Result{}, err - } else if handled { - logger.Info("Skipped RW PgBouncer ServiceMonitor reconciliation") } - if handled, err := handleServiceMonitorError( - reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled), + if err := reconcileConnectionPoolerMetricsServiceMonitor( + ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled, ); err != nil { return ctrl.Result{}, err - } else if handled { - logger.Info("Skipped RO PgBouncer ServiceMonitor reconciliation") } // Reconcile ConfigMap when CNPG cluster is healthy. diff --git a/pkg/postgresql/cluster/core/dashboards/postgres_observability.json b/pkg/postgresql/cluster/core/dashboards/postgres_observability.json deleted file mode 100644 index bbdf6eda7..000000000 --- a/pkg/postgresql/cluster/core/dashboards/postgres_observability.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "title": "PostgreSQL __CLUSTER_NAME__", - "uid": "pg-__CLUSTER_NAME__", - "schemaVersion": 39, - "version": 1, - "refresh": "30s", - "timezone": "browser", - "tags": ["postgresql", "cnpg", "pgbouncer"], - "editable": true, - "graphTooltip": 0, - "panels": [ - { - "id": 1, - "type": "stat", - "title": "PostgreSQL Instances", - "gridPos": { "x": 0, "y": 0, "w": 6, "h": 4 }, - "targets": [ - { - "expr": "count(max by (pod) (cnpg_pg_postmaster_start_time_seconds{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}))", - "refId": "A" - } - ], - "options": { - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, - "orientation": "horizontal", - "textMode": "value" - } - }, - { - "id": 2, - "type": "stat", - "title": "RW PgBouncer Pods Up", - "gridPos": { "x": 6, "y": 0, "w": 6, "h": 4 }, - "targets": [ - { - "expr": "round(sum(max by (pod) (cnpg_pgbouncer_up{namespace=\"__NAMESPACE__\",service=\"__RW_POOLER_SERVICE__\"})))", - "refId": "A" - } - ], - "options": { - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, - "orientation": "horizontal", - "textMode": "value" - } - }, - { - "id": 3, - "type": "stat", - "title": "RO PgBouncer Pods Up", - "gridPos": { "x": 12, "y": 0, "w": 6, "h": 4 }, - "targets": [ - { - "expr": "round(sum(max by (pod) (cnpg_pgbouncer_up{namespace=\"__NAMESPACE__\",service=\"__RO_POOLER_SERVICE__\"})))", - "refId": "A" - } - ], - "options": { - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, - "orientation": "horizontal", - "textMode": "value" - } - }, - { - "id": 4, - "type": "stat", - "title": "Total Database Size", - "gridPos": { "x": 18, "y": 0, "w": 6, "h": 4 }, - "targets": [ - { - "expr": "sum(max by (datname) (cnpg_pg_database_size_bytes{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}))", - "refId": "A" - } - ], - "fieldConfig": { - "defaults": { - "unit": "bytes" - } - }, - "options": { - "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, - "orientation": "horizontal", - "textMode": "value" - } - }, - { - "id": 5, - "type": "timeseries", - "title": "WAL Files by Pod", - "gridPos": { "x": 0, "y": 4, "w": 8, "h": 8 }, - "targets": [ - { - "expr": "round(max by (pod) (cnpg_pg_wal_files_total{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}))", - "legendFormat": "{{pod}}", - "refId": "A" - } - ] - }, - { - "id": 6, - "type": "timeseries", - "title": "Archived WAL Rate by Pod", - "gridPos": { "x": 8, "y": 4, "w": 8, "h": 8 }, - "targets": [ - { - "expr": "max by (pod) (rate(cnpg_pg_stat_archiver_archived_count{namespace=\"__NAMESPACE__\",service=\"__POSTGRES_SERVICE__\"}[5m]))", - "legendFormat": "{{pod}}", - "refId": "A" - } - ] - }, - { - "id": 7, - "type": "timeseries", - "title": "PgBouncer Active Clients", - "gridPos": { "x": 16, "y": 4, "w": 8, "h": 8 }, - "targets": [ - { - "expr": "round(sum(cnpg_pgbouncer_pools_cl_active{namespace=\"__NAMESPACE__\",service=\"__RW_POOLER_SERVICE__\"}))", - "legendFormat": "rw", - "refId": "A" - }, - { - "expr": "round(sum(cnpg_pgbouncer_pools_cl_active{namespace=\"__NAMESPACE__\",service=\"__RO_POOLER_SERVICE__\"}))", - "legendFormat": "ro", - "refId": "B" - } - ] - } - ], - "templating": { - "list": [] - }, - "annotations": { - "list": [] - } -} diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go index 73ded6cd5..afcfd768e 100644 --- a/pkg/postgresql/cluster/core/events.go +++ b/pkg/postgresql/cluster/core/events.go @@ -10,26 +10,25 @@ import ( ) const ( - EventSecretReady = "SecretReady" - EventConfigMapReady = "ConfigMapReady" - EventClusterAdopted = "ClusterAdopted" - EventClusterCreationStarted = "ClusterCreationStarted" - EventClusterUpdateStarted = "ClusterUpdateStarted" - EventClusterReady = "ClusterReady" - EventPoolerCreationStarted = "PoolerCreationStarted" - EventPoolerReady = "PoolerReady" - EventCleanupComplete = "CleanupComplete" - EventClusterClassNotFound = "ClusterClassNotFound" - EventConfigMergeFailed = "ConfigMergeFailed" - EventSecretReconcileFailed = "SecretReconcileFailed" - EventClusterCreateFailed = "ClusterCreateFailed" - EventClusterUpdateFailed = "ClusterUpdateFailed" - EventManagedRolesFailed = "ManagedRolesFailed" - EventPoolerReconcileFailed = "PoolerReconcileFailed" - EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" - EventServiceMonitorUnavailable = "ServiceMonitorUnavailable" - EventClusterDegraded = "ClusterDegraded" - EventCleanupFailed = "CleanupFailed" + EventSecretReady = "SecretReady" + EventConfigMapReady = "ConfigMapReady" + EventClusterAdopted = "ClusterAdopted" + EventClusterCreationStarted = "ClusterCreationStarted" + EventClusterUpdateStarted = "ClusterUpdateStarted" + EventClusterReady = "ClusterReady" + EventPoolerCreationStarted = "PoolerCreationStarted" + EventPoolerReady = "PoolerReady" + EventCleanupComplete = "CleanupComplete" + EventClusterClassNotFound = "ClusterClassNotFound" + EventConfigMergeFailed = "ConfigMergeFailed" + EventSecretReconcileFailed = "SecretReconcileFailed" + EventClusterCreateFailed = "ClusterCreateFailed" + EventClusterUpdateFailed = "ClusterUpdateFailed" + EventManagedRolesFailed = "ManagedRolesFailed" + EventPoolerReconcileFailed = "PoolerReconcileFailed" + EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" + EventClusterDegraded = "ClusterDegraded" + EventCleanupFailed = "CleanupFailed" ) func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { diff --git a/pkg/postgresql/cluster/core/monitoring.go b/pkg/postgresql/cluster/core/monitoring.go index 7c942d22a..c2f1267f8 100644 --- a/pkg/postgresql/cluster/core/monitoring.go +++ b/pkg/postgresql/cluster/core/monitoring.go @@ -2,13 +2,12 @@ package core import ( "context" - _ "embed" "fmt" + monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" - apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" @@ -17,17 +16,15 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/log" - "strings" ) const ( // metrics - postgresMetricsServiceSuffix = "-postgres-metrics" - postgresMetricsPortName = "metrics" - postgresMetricsPort = int32(9187) - poolerMetricsPortName = "metrics" - poolerMetricsPort = int32(9127) - grafanaDashboardConfigMapSuffix = "-grafana-dashboard" + postgresMetricsServiceSuffix = "-postgres-metrics" + postgresMetricsPortName = "metrics" + postgresMetricsPort = int32(9187) + poolerMetricsPortName = "metrics" + poolerMetricsPort = int32(9127) // labels labelManagedBy = "app.kubernetes.io/managed-by" @@ -37,8 +34,6 @@ const ( cnpgPoolerNameLabel = "cnpg.io/poolerName" cnpgPodRoleInstance = "instance" cnpgPodRoleLabelName = "cnpg.io/podRole" - grafanaDashboardLabelKey = "grafana_dashboard" - grafanaDashboardLabelValue = "1" ) func isPostgreSQLMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { @@ -87,21 +82,6 @@ func isConnectionPoolerMetricsEnabled(cluster *enterprisev4.PostgresCluster, cla return override == nil || !*override } -func isGrafanaDashboardEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { - if class == nil || class.Spec.Config == nil || class.Spec.Config.Observability == nil { - return false - } - classCfg := class.Spec.Config.Observability.GrafanaDashboard - if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { - return false - } - if cluster == nil || cluster.Spec.Observability == nil || cluster.Spec.Observability.GrafanaDashboard == nil { - return true - } - override := cluster.Spec.Observability.GrafanaDashboard.Disabled - return override == nil || !*override -} - func buildPostgreSQLMetricsService(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster) (*corev1.Service, error) { svc := &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ @@ -181,44 +161,6 @@ func buildConnectionPoolerMetricsService( return svc, nil } -func buildGrafanaDashboardConfigMap(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster) (*corev1.ConfigMap, error) { - cm := &corev1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: cluster.Name + grafanaDashboardConfigMapSuffix, - Namespace: cluster.Namespace, - Labels: map[string]string{ - labelManagedBy: labelManagedByValue, - labelObservabilityComponent: "grafana-dashboard", - cnpgClusterLabelName: cluster.Name, - grafanaDashboardLabelKey: grafanaDashboardLabelValue, - }, - }, - Data: map[string]string{ - "dashboard.json": buildBasicGrafanaDashboard(cluster), - }, - } - - if err := ctrl.SetControllerReference(cluster, cm, scheme); err != nil { - return nil, fmt.Errorf("setting controller reference on Grafana dashboard ConfigMap: %w", err) - } - - return cm, nil -} - -func isServiceMonitorUnavailable(err error) bool { - if err == nil { - return false - } - - if apierrors.IsNotFound(err) || apimeta.IsNoMatchError(err) { - return true - } - - msg := err.Error() - return strings.Contains(msg, "no matches for kind \"ServiceMonitor\"") || - strings.Contains(msg, "servicemonitors.monitoring.coreos.com") -} - func reconcilePostgreSQLMetricsService(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, enabled bool) error { logger := log.FromContext(ctx) serviceName := cluster.Name + postgresMetricsServiceSuffix @@ -334,64 +276,6 @@ func reconcileConnectionPoolerMetricsService( return nil } -func reconcileGrafanaDashboardConfigMap( - ctx context.Context, - c client.Client, - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, - enabled bool, -) error { - logger := log.FromContext(ctx) - configMapName := cluster.Name + grafanaDashboardConfigMapSuffix - - if !enabled { - existing := &corev1.ConfigMap{} - err := c.Get(ctx, types.NamespacedName{Name: configMapName, Namespace: cluster.Namespace}, existing) - switch { - case apierrors.IsNotFound(err): - return nil - case err != nil: - return fmt.Errorf("getting Grafana dashboard ConfigMap %s: %w", configMapName, err) - } - - logger.Info("Deleting Grafana dashboard ConfigMap", "name", configMapName) - if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("deleting Grafana dashboard ConfigMap %s: %w", configMapName, err) - } - return nil - } - - desired, err := buildGrafanaDashboardConfigMap(scheme, cluster) - if err != nil { - return fmt.Errorf("building Grafana dashboard ConfigMap: %w", err) - } - - live := &corev1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: desired.Name, - Namespace: desired.Namespace, - }, - } - - _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { - live.Labels = desired.Labels - live.Annotations = desired.Annotations - live.Data = desired.Data - - if !metav1.IsControlledBy(live, cluster) { - if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { - return fmt.Errorf("setting controller reference on Grafana dashboard ConfigMap: %w", err) - } - } - return nil - }) - if err != nil { - return fmt.Errorf("reconciling Grafana dashboard ConfigMap %s: %w", desired.Name, err) - } - - return nil -} - func postgresMetricsServiceMonitorName(clusterName string) string { return clusterName + "-postgres-metrics-monitor" } @@ -597,18 +481,3 @@ func reconcileConnectionPoolerMetricsServiceMonitor( return nil } - -//go:embed dashboards/postgres_observability.json -var postgresObservabilityDashboardTemplate string - -func buildBasicGrafanaDashboard(cluster *enterprisev4.PostgresCluster) string { - replacer := strings.NewReplacer( - "__CLUSTER_NAME__", cluster.Name, - "__NAMESPACE__", cluster.Namespace, - "__POSTGRES_SERVICE__", cluster.Name+postgresMetricsServiceSuffix, - "__RW_POOLER_SERVICE__", poolerMetricsServiceName(cluster.Name, readWriteEndpoint), - "__RO_POOLER_SERVICE__", poolerMetricsServiceName(cluster.Name, readOnlyEndpoint), - ) - - return replacer.Replace(postgresObservabilityDashboardTemplate) -} diff --git a/pkg/postgresql/cluster/core/monitoring_unit_test.go b/pkg/postgresql/cluster/core/monitoring_unit_test.go index 6c1d0715a..545ea25da 100644 --- a/pkg/postgresql/cluster/core/monitoring_unit_test.go +++ b/pkg/postgresql/cluster/core/monitoring_unit_test.go @@ -1,8 +1,6 @@ package core import ( - "encoding/json" - "errors" "testing" monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -10,10 +8,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/utils/ptr" ) @@ -40,7 +36,6 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { ptr.To(true), nil, nil, - nil, ), want: true, }, @@ -57,7 +52,6 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { ptr.To(true), nil, nil, - nil, ), want: false, }, @@ -74,7 +68,6 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { ptr.To(false), nil, nil, - nil, ), want: false, }, @@ -168,7 +161,6 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { nil, ptr.To(true), nil, - ptr.To(false), ), want: false, }, @@ -179,7 +171,6 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { nil, ptr.To(true), ptr.To(true), - ptr.To(true), ), want: true, }, @@ -196,7 +187,6 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { nil, ptr.To(true), ptr.To(true), - ptr.To(true), ), want: false, }, @@ -207,7 +197,6 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { nil, ptr.To(true), ptr.To(false), - ptr.To(true), ), want: false, }, @@ -221,62 +210,6 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { } } -func TestIsGrafanaDashboardEnabled(t *testing.T) { - tests := []struct { - name string - cluster *enterprisev4.PostgresCluster - class *enterprisev4.PostgresClusterClass - want bool - }{ - { - name: "enabled when class enables and cluster override is unset", - cluster: &enterprisev4.PostgresCluster{}, - class: newClassWithObservability( - nil, - nil, - nil, - ptr.To(true), - ), - want: true, - }, - { - name: "disabled when cluster override disables dashboard", - cluster: &enterprisev4.PostgresCluster{ - Spec: enterprisev4.PostgresClusterSpec{ - Observability: &enterprisev4.PostgresObservabilityOverride{ - GrafanaDashboard: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, - }, - }, - }, - class: newClassWithObservability( - nil, - nil, - nil, - ptr.To(true), - ), - want: false, - }, - { - name: "disabled when class disables dashboard", - cluster: &enterprisev4.PostgresCluster{}, - class: newClassWithObservability( - nil, - nil, - nil, - ptr.To(false), - ), - want: false, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := isGrafanaDashboardEnabled(tt.cluster, tt.class) - assert.Equal(t, tt.want, got) - }) - } -} - func TestBuildPostgreSQLMetricsService(t *testing.T) { scheme := newMonitoringTestScheme(t) cluster := newTestMonitoringCluster() @@ -315,29 +248,6 @@ func TestBuildConnectionPoolerMetricsService(t *testing.T) { assertMonitoringOwnerRef(t, svc.OwnerReferences, cluster) } -func TestBuildGrafanaDashboardConfigMap(t *testing.T) { - scheme := newMonitoringTestScheme(t) - cluster := newTestMonitoringCluster() - - cm, err := buildGrafanaDashboardConfigMap(scheme, cluster) - require.NoError(t, err) - - assert.Equal(t, "postgresql-cluster-dev-grafana-dashboard", cm.Name) - assert.Equal(t, "grafana-dashboard", cm.Labels[labelObservabilityComponent]) - assert.Equal(t, grafanaDashboardLabelValue, cm.Labels[grafanaDashboardLabelKey]) - assert.Contains(t, cm.Data, "dashboard.json") - assert.NotContains(t, cm.Data["dashboard.json"], "__CLUSTER_NAME__") - assert.Contains(t, cm.Data["dashboard.json"], cluster.Name) - assert.Contains(t, cm.Data["dashboard.json"], cluster.Namespace) - assert.Contains(t, cm.Data["dashboard.json"], cluster.Name+postgresMetricsServiceSuffix) - assert.Contains(t, cm.Data["dashboard.json"], poolerMetricsServiceName(cluster.Name, readWriteEndpoint)) - assert.Contains(t, cm.Data["dashboard.json"], poolerMetricsServiceName(cluster.Name, readOnlyEndpoint)) - - var dashboard map[string]any - require.NoError(t, json.Unmarshal([]byte(cm.Data["dashboard.json"]), &dashboard)) - assertMonitoringOwnerRef(t, cm.OwnerReferences, cluster) -} - func TestBuildPostgreSQLMetricsServiceMonitor(t *testing.T) { scheme := newMonitoringTestScheme(t) cluster := newTestMonitoringCluster() @@ -373,47 +283,6 @@ func TestBuildConnectionPoolerMetricsServiceMonitor(t *testing.T) { assertMonitoringOwnerRef(t, sm.OwnerReferences, cluster) } -func TestIsServiceMonitorUnavailable(t *testing.T) { - tests := []struct { - name string - err error - want bool - }{ - { - name: "nil error", - err: nil, - want: false, - }, - { - name: "not found error", - err: apierrors.NewNotFound(schema.GroupResource{Group: "monitoring.coreos.com", Resource: "servicemonitors"}, "test"), - want: true, - }, - { - name: "kind match string error", - err: errors.New("no matches for kind \"ServiceMonitor\" in version \"monitoring.coreos.com/v1\""), - want: true, - }, - { - name: "resource string error", - err: errors.New("servicemonitors.monitoring.coreos.com not found"), - want: true, - }, - { - name: "unrelated error", - err: errors.New("boom"), - want: false, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := isServiceMonitorUnavailable(tt.err) - assert.Equal(t, tt.want, got) - }) - } -} - func newMonitoringTestScheme(t *testing.T) *runtime.Scheme { t.Helper() @@ -443,16 +312,14 @@ func newClassWithObservability( postgresEnabled *bool, poolerEnabled *bool, pgBouncerMetricsEnabled *bool, - grafanaEnabled *bool, ) *enterprisev4.PostgresClusterClass { return &enterprisev4.PostgresClusterClass{ Spec: enterprisev4.PostgresClusterClassSpec{ Config: &enterprisev4.PostgresClusterClassConfig{ ConnectionPoolerEnabled: poolerEnabled, Observability: &enterprisev4.PostgresObservabilityClassConfig{ - PostgreSQL: &enterprisev4.MetricsClassConfig{Enabled: postgresEnabled}, - PgBouncer: &enterprisev4.MetricsClassConfig{Enabled: pgBouncerMetricsEnabled}, - GrafanaDashboard: &enterprisev4.GrafanaDashboardClassConfig{Enabled: grafanaEnabled}, + PostgreSQL: &enterprisev4.MetricsClassConfig{Enabled: postgresEnabled}, + PgBouncer: &enterprisev4.MetricsClassConfig{Enabled: pgBouncerMetricsEnabled}, }, }, }, From 016b1aab04685162195531ea4fe37ca31c8b675a Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Fri, 3 Apr 2026 15:03:00 +0200 Subject: [PATCH 22/43] add grafana sample to docs --- docs/PostgreSQLObservabilityDashboard.json | 928 +++++++++++++++++++++ docs/PostgreSQLObservabilityDashboard.md | 65 ++ 2 files changed, 993 insertions(+) create mode 100644 docs/PostgreSQLObservabilityDashboard.json create mode 100644 docs/PostgreSQLObservabilityDashboard.md diff --git a/docs/PostgreSQLObservabilityDashboard.json b/docs/PostgreSQLObservabilityDashboard.json new file mode 100644 index 000000000..aa0ffc765 --- /dev/null +++ b/docs/PostgreSQLObservabilityDashboard.json @@ -0,0 +1,928 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 1, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 1, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "count(count by (pod) (cnpg_pg_postmaster_start_time_seconds{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"}))", + "legendFormat": "postgres pods", + "range": true, + "refId": "A" + } + ], + "title": "PostgreSQL Targets", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Down" + }, + "1": { + "index": 1, + "text": "Up" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 2, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "max(cnpg_pgbouncer_up{namespace=\"$namespace\",service=\"$cluster-pooler-rw-metrics\"})", + "legendFormat": "rw", + "range": true, + "refId": "A" + } + ], + "title": "RW Pooler", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "Down" + }, + "1": { + "index": 1, + "text": "Up" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "green", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 3, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "max(cnpg_pgbouncer_up{namespace=\"$namespace\",service=\"$cluster-pooler-ro-metrics\"})", + "legendFormat": "ro", + "range": true, + "refId": "A" + } + ], + "title": "RO Pooler", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 1 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 4, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum(rate(cnpg_pg_stat_archiver_archived_count{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"}[5m]))", + "legendFormat": "archive rate", + "range": true, + "refId": "A" + } + ], + "title": "Archive Rate", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 16, + "y": 0 + }, + "id": 5, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum(splunk_operator_postgres_databases{phase=\"Failed\"})", + "legendFormat": "failed", + "range": true, + "refId": "A" + } + ], + "title": "Failed Databases", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 12, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 4, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 4 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (datname) (cnpg_pg_database_size_bytes{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"})", + "legendFormat": "{{datname}}", + "range": true, + "refId": "A" + } + ], + "title": "Database Size by Database", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 4, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 4 + }, + "id": 7, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (service) (cnpg_pgbouncer_pools_cl_active{namespace=\"$namespace\",service=~\"$cluster-pooler-(rw|ro)-metrics\"})", + "legendFormat": "{{service}} active", + "range": true, + "refId": "A" + }, + { + "editorMode": "code", + "expr": "sum by (service) (cnpg_pgbouncer_pools_cl_waiting{namespace=\"$namespace\",service=~\"$cluster-pooler-(rw|ro)-metrics\"})", + "legendFormat": "{{service}} waiting", + "range": true, + "refId": "B" + } + ], + "title": "PgBouncer Client Load", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 4, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 0.25 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 4 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum(rate(cnpg_pg_stat_archiver_archived_count{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"}[5m]))", + "legendFormat": "archived WAL / sec", + "range": true, + "refId": "A" + }, + { + "editorMode": "code", + "expr": "sum(cnpg_pg_wal_files_total{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"})", + "legendFormat": "wal files total", + "range": true, + "refId": "B" + } + ], + "title": "WAL Activity", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 4, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 12 + }, + "id": 9, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (phase) (splunk_operator_postgres_databases)", + "legendFormat": "{{phase}}", + "range": true, + "refId": "A" + } + ], + "title": "Fleet Database Phases", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 4, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 12 + }, + "id": 10, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (controller, result) (rate(splunk_operator_postgres_reconcile_total[5m]))", + "legendFormat": "{{controller}} {{result}}", + "range": true, + "refId": "A" + }, + { + "editorMode": "code", + "expr": "sum by (controller, error_class) (rate(splunk_operator_postgres_reconcile_errors_total[5m]))", + "legendFormat": "{{controller}} errors {{error_class}}", + "range": true, + "refId": "B" + } + ], + "title": "Controller Reconcile Activity", + "type": "timeseries" + } + ], + "refresh": "30s", + "schemaVersion": 39, + "style": "dark", + "tags": [ + "postgresql", + "cnpg", + "pgbouncer", + "splunk-operator", + "reference" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": { + "selected": true, + "text": "default", + "value": "default" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(cnpg_pg_postmaster_start_time_seconds, namespace)", + "hide": 0, + "includeAll": false, + "label": "Namespace", + "multi": false, + "name": "namespace", + "options": [], + "query": { + "query": "label_values(cnpg_pg_postmaster_start_time_seconds, namespace)", + "refId": "Prometheus-namespace" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "type": "query" + }, + { + "current": { + "selected": false, + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(cnpg_pg_postmaster_start_time_seconds{namespace=\"$namespace\"}, service)", + "hide": 0, + "includeAll": false, + "label": "Cluster", + "multi": false, + "name": "cluster", + "options": [], + "query": { + "query": "label_values(cnpg_pg_postmaster_start_time_seconds{namespace=\"$namespace\"}, service)", + "refId": "Prometheus-cluster" + }, + "refresh": 2, + "regex": "/(.*)-postgres-metrics/", + "skipUrlSync": false, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "browser", + "title": "PostgreSQL Observability Reference", + "uid": "postgresql-observability-reference", + "version": 1, + "weekStart": "" +} diff --git a/docs/PostgreSQLObservabilityDashboard.md b/docs/PostgreSQLObservabilityDashboard.md new file mode 100644 index 000000000..109ef78d2 --- /dev/null +++ b/docs/PostgreSQLObservabilityDashboard.md @@ -0,0 +1,65 @@ +# PostgreSQL Observability Dashboard Example + +This file provides a reference Grafana dashboard for the PostgreSQL observability model described in the PostgreSQL observability notes. + +The dashboard JSON lives at: + +- [PostgreSQLObservabilityDashboard.json](/Users/dpishchenkov/splunk-operator/docs/PostgreSQLObservabilityDashboard.json) + +## Purpose + +This dashboard is a reference artifact only. + +It is meant to show how a Grafana dashboard could combine: + +- runtime PostgreSQL and PgBouncer metrics exposed through the `PostgresCluster` observability path +- controller metrics emitted by the PostgreSQL controllers + +It is not meant to imply that Grafana runtime resources are managed by the operator. + +## Panels Included + +The sample dashboard includes: + +- PostgreSQL target count +- RW and RO PgBouncer availability +- WAL archive rate +- failed `PostgresDatabase` count +- database size by database +- PgBouncer active and waiting clients +- WAL activity +- fleet database phases +- controller reconcile activity and errors + +## Assumptions + +The sample queries assume: + +- Prometheus is scraping the PostgreSQL metrics `Service` created by the `PostgresCluster` controller +- Prometheus is scraping the PgBouncer metrics `Service` objects created for RW and RO poolers +- Prometheus series include `namespace` and `service` labels +- the cluster metrics service is named `-postgres-metrics` +- the PgBouncer metrics services are named `-pooler-rw-metrics` and `-pooler-ro-metrics` +- the controller metrics branch is present for the `splunk_operator_postgres_*` metrics + +If your Prometheus relabeling differs, you may need to adjust the dashboard queries. + +## Import Notes + +To use the dashboard: + +1. Import the JSON file into Grafana. +2. Select the correct Prometheus datasource. +3. Choose the namespace. +4. Choose the cluster name using the derived `cluster` variable. + +## Notes On Candidate Metrics + +Some PgBouncer queries in the sample use metrics that are good candidates but should still be verified against actual exporter output in the merged branch: + +- `cnpg_pgbouncer_pools_cl_waiting` +- `cnpg_pgbouncer_pools_maxwait` +- `cnpg_pgbouncer_stats_avg_wait_time` +- `cnpg_pgbouncer_stats_total_wait_time` + +If those exact series are not present, keep the panel shape and replace the query with the actual exported metric name. From 2cf1ca7a347dffb44f00f2e83007b5e658564d3f Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Thu, 9 Apr 2026 15:16:00 +0200 Subject: [PATCH 23/43] style: fix links to docs. --- docs/PostgreSQLObservabilityDashboard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/PostgreSQLObservabilityDashboard.md b/docs/PostgreSQLObservabilityDashboard.md index 109ef78d2..22343afff 100644 --- a/docs/PostgreSQLObservabilityDashboard.md +++ b/docs/PostgreSQLObservabilityDashboard.md @@ -4,7 +4,7 @@ This file provides a reference Grafana dashboard for the PostgreSQL observabilit The dashboard JSON lives at: -- [PostgreSQLObservabilityDashboard.json](/Users/dpishchenkov/splunk-operator/docs/PostgreSQLObservabilityDashboard.json) +- [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) ## Purpose From aa983fc41a7e9170f12fecc4e647375d0b1cd798 Mon Sep 17 00:00:00 2001 From: Kamil Ubych Date: Fri, 10 Apr 2026 11:54:13 +0200 Subject: [PATCH 24/43] changed metrics --- docs/PostgreSQLObservabilityDashboard.json | 456 ++++++++++++--------- 1 file changed, 269 insertions(+), 187 deletions(-) diff --git a/docs/PostgreSQLObservabilityDashboard.json b/docs/PostgreSQLObservabilityDashboard.json index aa0ffc765..913e730b6 100644 --- a/docs/PostgreSQLObservabilityDashboard.json +++ b/docs/PostgreSQLObservabilityDashboard.json @@ -52,7 +52,7 @@ }, "gridPos": { "h": 4, - "w": 4, + "w": 6, "x": 0, "y": 0 }, @@ -128,8 +128,8 @@ }, "gridPos": { "h": 4, - "w": 4, - "x": 4, + "w": 6, + "x": 6, "y": 0 }, "id": 2, @@ -204,8 +204,8 @@ }, "gridPos": { "h": 4, - "w": 4, - "x": 8, + "w": 6, + "x": 12, "y": 0 }, "id": 3, @@ -266,8 +266,8 @@ }, "gridPos": { "h": 4, - "w": 4, - "x": 12, + "w": 6, + "x": 18, "y": 0 }, "id": 4, @@ -298,68 +298,6 @@ "title": "Archive Rate", "type": "stat" }, - { - "datasource": { - "type": "prometheus", - "uid": "${datasource}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 16, - "y": 0 - }, - "id": 5, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "value" - }, - "pluginVersion": "10.4.2", - "targets": [ - { - "editorMode": "code", - "expr": "sum(splunk_operator_postgres_databases{phase=\"Failed\"})", - "legendFormat": "failed", - "range": true, - "refId": "A" - } - ], - "title": "Failed Databases", - "type": "stat" - }, { "datasource": { "type": "prometheus", @@ -647,6 +585,21 @@ "title": "WAL Activity", "type": "timeseries" }, + { + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 100, + "options": { + "content": "## Controller-Runtime (built-in, zero code)\nReconcile count, duration, errors — provided automatically by the framework.", + "mode": "markdown" + }, + "title": "", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -654,84 +607,82 @@ }, "fieldConfig": { "defaults": { - "color": { - "mode": "palette-classic" - }, "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 4, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } + "lineWidth": 2 }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] + "unit": "ops" + } }, "gridPos": { "h": 8, - "w": 12, + "w": 8, "x": 0, - "y": 12 + "y": 14 }, "id": 9, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "rate(controller_runtime_reconcile_total{controller=~\"postgresCluster|postgresdatabase\"}[1m])", + "legendFormat": "{{controller}} / {{result}}", + "range": true, + "refId": "A" } + ], + "title": "Reconcile Rate (per second)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" }, - "pluginVersion": "10.4.2", + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "lineWidth": 2 + }, + "unit": "s" + } + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 14 + }, + "id": 10, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "editorMode": "code", - "expr": "sum by (phase) (splunk_operator_postgres_databases)", - "legendFormat": "{{phase}}", + "expr": "histogram_quantile(0.99, sum by (controller, le) (rate(controller_runtime_reconcile_time_seconds_bucket{controller=~\"postgresCluster|postgresdatabase\"}[5m])))", + "legendFormat": "p99 {{controller}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.50, sum by (controller, le) (rate(controller_runtime_reconcile_time_seconds_bucket{controller=~\"postgresCluster|postgresdatabase\"}[5m])))", + "legendFormat": "p50 {{controller}}", + "range": true, + "refId": "B" } ], - "title": "Fleet Database Phases", + "title": "Reconcile Duration p50 / p99", "type": "timeseries" }, { @@ -742,90 +693,221 @@ "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" + "fixedColor": "red", + "mode": "fixed" }, "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", + "drawStyle": "bars", "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 4, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] + "lineWidth": 2 }, "unit": "ops" + } + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 14 + }, + "id": 13, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "rate(controller_runtime_reconcile_errors_total{controller=~\"postgresCluster|postgresdatabase\"}[1m])", + "legendFormat": "{{controller}}", + "range": true, + "refId": "A" + } + ], + "title": "Reconcile Errors", + "type": "timeseries" + }, + { + "gridPos": { + "h": 2, + "w": 24, + "x": 0, + "y": 22 + }, + "id": 200, + "options": { + "content": "## Domain Metrics (custom, `splunk_operator_postgres_*`)\nFleet state gauges (collected every reconcile) and status transitions (emitted on condition changes).", + "mode": "markdown" + }, + "title": "", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 24 + }, + "id": 14, + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] }, - "overrides": [] + "pieType": "donut" + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "splunk_operator_postgres_databases", + "legendFormat": "{{phase}}", + "range": true, + "refId": "A" + } + ], + "title": "Databases by Phase", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" }, "gridPos": { "h": 8, - "w": 12, - "x": 12, - "y": 12 + "w": 6, + "x": 6, + "y": 24 }, - "id": 10, + "id": 15, "options": { "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] }, - "tooltip": { - "mode": "single", - "sort": "none" + "pieType": "donut" + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "splunk_operator_postgres_clusters", + "legendFormat": "{{phase}}", + "range": true, + "refId": "A" + } + ], + "title": "Clusters by Phase", + "type": "piechart" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "unit": "short" } }, - "pluginVersion": "10.4.2", + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 24 + }, + "id": 16, + "options": { + "displayMode": "gradient", + "orientation": "horizontal" + }, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "editorMode": "code", - "expr": "sum by (controller, result) (rate(splunk_operator_postgres_reconcile_total[5m]))", - "legendFormat": "{{controller}} {{result}}", + "expr": "splunk_operator_postgres_managed_users", + "legendFormat": "{{state}}", "range": true, "refId": "A" + } + ], + "title": "Managed Users", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "custom": { + "drawStyle": "bars", + "fillOpacity": 10, + "lineWidth": 2 + }, + "unit": "ops" }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/False/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 24 + }, + "id": 17, + "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, "editorMode": "code", - "expr": "sum by (controller, error_class) (rate(splunk_operator_postgres_reconcile_errors_total[5m]))", - "legendFormat": "{{controller}} errors {{error_class}}", + "expr": "sum by (controller, reason) (rate(splunk_operator_postgres_status_transitions_total{status=\"False\"}[5m]))", + "legendFormat": "{{controller}} / {{reason}}", "range": true, - "refId": "B" + "refId": "A" } ], - "title": "Controller Reconcile Activity", + "title": "Failures by Reason (per second)", "type": "timeseries" } ], From ed253364b88354e8c3acd4d6c0e5c9d19b1108d2 Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Sun, 12 Apr 2026 18:46:49 +0200 Subject: [PATCH 25/43] Update monitoring reconciliation logic, tests --- api/v4/postgrescluster_types.go | 14 +-- api/v4/postgresclusterclass_types.go | 11 +- .../postgrescluster_controller_test.go | 85 ++++++++++++- internal/controller/suite_test.go | 1 + ...monitoring.coreos.com_servicemonitors.yaml | 32 +++++ pkg/postgresql/cluster/core/cluster.go | 105 ++++++++++++---- pkg/postgresql/cluster/core/events.go | 49 +++++--- pkg/postgresql/cluster/core/monitoring.go | 32 ++--- .../cluster/core/monitoring_unit_test.go | 114 +++++------------- pkg/postgresql/cluster/core/types.go | 32 +++-- 10 files changed, 302 insertions(+), 173 deletions(-) create mode 100644 internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 5c3608058..6450b33fe 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -108,23 +108,23 @@ type PostgresClusterSpec struct { // +optional ClusterDeletionPolicy *string `json:"clusterDeletionPolicy,omitempty"` - // Observability contains configuration for metrics exposure features. + // Monitoring contains configuration for metrics exposure features. // +optional - Observability *PostgresObservabilityOverride `json:"observability,omitempty"` + Monitoring *PostgresClusterMonitoring `json:"monitoring,omitempty"` } -// PostgresObservabilityOverride overrides observability configuration options for PostgresClusterClass. -type PostgresObservabilityOverride struct { +// PostgresClusterMonitoring overrides monitoring configuration options for PostgresClusterClass. +type PostgresClusterMonitoring struct { // +optional - PostgreSQL *FeatureDisableOverride `json:"postgresql,omitempty"` + PostgreSQLMetrics *FeatureDisableOverride `json:"postgresqlMetrics,omitempty"` // +optional - PgBouncer *FeatureDisableOverride `json:"pgbouncer,omitempty"` + ConnectionPoolerMetrics *FeatureDisableOverride `json:"connectionPoolerMetrics,omitempty"` } type FeatureDisableOverride struct { - // Disable set to true will disable the feature even if it's enabled in the class. + // Disabled set to true will disable the feature even if it's enabled in the class. // +kubebuilder:default=false // +optional Disabled *bool `json:"disabled,omitempty"` diff --git a/api/v4/postgresclusterclass_types.go b/api/v4/postgresclusterclass_types.go index 74085d191..76281e8e8 100644 --- a/api/v4/postgresclusterclass_types.go +++ b/api/v4/postgresclusterclass_types.go @@ -49,6 +49,7 @@ type PostgresClusterClassSpec struct { CNPG *CNPGConfig `json:"cnpg,omitempty"` } +// +kubebuilder:validation:XValidation:rule="!has(self.monitoring) || !has(self.monitoring.connectionPoolerMetrics) || !has(self.monitoring.connectionPoolerMetrics.enabled) || !self.monitoring.connectionPoolerMetrics.enabled || (has(self.connectionPoolerEnabled) && self.connectionPoolerEnabled)",message="connectionPoolerEnabled must be true when monitoring.connectionPoolerMetrics.enabled is true" // PostgresClusterClassConfig contains provider-agnostic cluster configuration. // These fields define PostgresCluster infrastructure and can be overridden in PostgresCluster CR. type PostgresClusterClassConfig struct { @@ -100,12 +101,12 @@ type PostgresClusterClassConfig struct { // +optional ConnectionPoolerEnabled *bool `json:"connectionPoolerEnabled,omitempty"` - // Observability contains configuration for metrics exposure. + // Monitoring contains configuration for metrics exposure. // When enabled, creates metrics resources for clusters using this class. // Can be overridden in PostgresCluster CR. // +kubebuilder:default={} // +optional - Observability *PostgresObservabilityClassConfig `json:"observability,omitempty"` + Monitoring *PostgresMonitoringClassConfig `json:"monitoring,omitempty"` } // ConnectionPoolerMode defines the PgBouncer connection pooling strategy. @@ -179,11 +180,11 @@ type PostgresClusterClassStatus struct { Phase *string `json:"phase,omitempty"` } -type PostgresObservabilityClassConfig struct { +type PostgresMonitoringClassConfig struct { // +optional - PostgreSQL *MetricsClassConfig `json:"postgresql,omitempty"` + PostgreSQLMetrics *MetricsClassConfig `json:"postgresqlMetrics,omitempty"` // +optional - PgBouncer *MetricsClassConfig `json:"pgbouncer,omitempty"` + ConnectionPoolerMetrics *MetricsClassConfig `json:"connectionPoolerMetrics,omitempty"` } type MetricsClassConfig struct { diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 9d4954d61..59737a2a4 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -28,15 +28,17 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/reconcile" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/ptr" enterprisev4 "github.com/splunk/splunk-operator/api/v4" "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" - pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" + corev1 "k8s.io/api/core/v1" ) /* @@ -86,6 +88,28 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { } } + recreateClassWithMonitoring := func(postgresMetricsEnabled bool) { + Expect(k8sClient.Delete(ctx, pgClusterClass)).To(Succeed()) + + pgClusterClass = &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: className}, + Spec: enterprisev4.PostgresClusterClassSpec{ + Provisioner: provisioner, + Config: &enterprisev4.PostgresClusterClassConfig{ + Instances: &[]int32{clusterMemberCount}[0], + Storage: &[]resource.Quantity{resource.MustParse(storageAmount)}[0], + PostgresVersion: &[]string{postgresVersion}[0], + ConnectionPoolerEnabled: &[]bool{poolerEnabled}[0], + Monitoring: &enterprisev4.PostgresMonitoringClassConfig{ + PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: ptr.To(postgresMetricsEnabled)}, + }, + }, + }, + } + + Expect(k8sClient.Create(ctx, pgClusterClass)).To(Succeed()) + } + BeforeEach(func() { nameSuffix := fmt.Sprintf("%d-%d-%d", GinkgoParallelProcess(), @@ -241,6 +265,65 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Expect(cond).NotTo(BeNil()) Expect(cond.ObservedGeneration).To(Equal(pc.Generation)) }) + + It("creates monitoring resources and sets MonitoringReady when monitoring is enabled", func() { + recreateClassWithMonitoring(true) + + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(3) + + pc := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) + cond := meta.FindStatusCondition(pc.Status.Conditions, "MonitoringReady") + Expect(cond).NotTo(BeNil()) + Expect(cond.Status).To(Equal(metav1.ConditionTrue)) + Expect(cond.Reason).To(Equal("ObservabilityResourcesReady")) + + metricsService := &corev1.Service{} + Expect(k8sClient.Get(ctx, types.NamespacedName{ + Name: clusterName + "-postgres-metrics", + Namespace: namespace, + }, metricsService)).To(Succeed()) + + serviceMonitor := &monitoringv1.ServiceMonitor{} + Expect(k8sClient.Get(ctx, types.NamespacedName{ + Name: clusterName + "-postgres-metrics-monitor", + Namespace: namespace, + }, serviceMonitor)).To(Succeed()) + }) + + It("removes monitoring resources and MonitoringReady when monitoring is disabled by cluster override", func() { + recreateClassWithMonitoring(true) + + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(3) + + current := &enterprisev4.PostgresCluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, current)).To(Succeed()) + current.Spec.Monitoring = &enterprisev4.PostgresClusterMonitoring{ + PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + } + Expect(k8sClient.Update(ctx, current)).To(Succeed()) + + reconcileNTimes(1) + + Expect(k8sClient.Get(ctx, pgClusterKey, current)).To(Succeed()) + Expect(meta.FindStatusCondition(current.Status.Conditions, "MonitoringReady")).To(BeNil()) + + metricsService := &corev1.Service{} + err := k8sClient.Get(ctx, types.NamespacedName{ + Name: clusterName + "-postgres-metrics", + Namespace: namespace, + }, metricsService) + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + + serviceMonitor := &monitoringv1.ServiceMonitor{} + err = k8sClient.Get(ctx, types.NamespacedName{ + Name: clusterName + "-postgres-metrics-monitor", + Namespace: namespace, + }, serviceMonitor) + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + }) }) }) diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 8518541be..cf86dac87 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -78,6 +78,7 @@ var _ = BeforeSuite(func(ctx context.Context) { CRDDirectoryPaths: []string{ filepath.Join("..", "..", "config", "crd", "bases"), filepath.Join(cnpgModuleDir, "config", "crd", "bases"), + filepath.Join("testdata", "crds"), }, ErrorIfCRDPathMissing: true, } diff --git a/internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml b/internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml new file mode 100644 index 000000000..230e31d50 --- /dev/null +++ b/internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml @@ -0,0 +1,32 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: servicemonitors.monitoring.coreos.com +spec: + group: monitoring.coreos.com + scope: Namespaced + names: + plural: servicemonitors + singular: servicemonitor + kind: ServiceMonitor + listKind: ServiceMonitorList + versions: + - name: v1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 329571933..4b5152d32 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -344,35 +344,54 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. rc.emitPoolerReadyTransition(postgresCluster, oldConditions) } - if err := reconcilePostgreSQLMetricsService(ctx, c, rc.Scheme, postgresCluster, isPostgreSQLMetricsEnabled(postgresCluster, clusterClass)); err != nil { - return ctrl.Result{}, err + postgresMetricsEnabled := isPostgreSQLMetricsEnabled(postgresCluster, clusterClass) + poolerMetricsEnabled := isConnectionPoolerMetricsEnabled(postgresCluster, clusterClass) + rwPoolerMetricsEnabled := poolerMetricsEnabled && poolerEnabled && rwPoolerExists + roPoolerMetricsEnabled := poolerMetricsEnabled && poolerEnabled && roPoolerExists + monitoringEnabled := postgresMetricsEnabled || (poolerMetricsEnabled && poolerEnabled) + + monitoringFailure := func(reason conditionReasons, eventReason, message string, err error) (ctrl.Result, error) { + return ctrl.Result{}, handleMonitoringFailure(ctx, c, rc, postgresCluster, reason, eventReason, message, err) } - poolerMetricsEnabled := isConnectionPoolerMetricsEnabled(postgresCluster, clusterClass) - rwPoolerMetricsEnabled := poolerMetricsEnabled && rwPoolerExists - roPoolerMetricsEnabled := poolerMetricsEnabled && roPoolerExists + oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) + copy(oldConditions, postgresCluster.Status.Conditions) + + if err := reconcilePostgreSQLMetricsService(ctx, c, rc.Scheme, postgresCluster, postgresMetricsEnabled); err != nil { + return monitoringFailure(reasonPostgresMetricsServiceFailed, EventMetricsServiceReconcileFailed, fmt.Sprintf("Failed to reconcile PostgreSQL metrics Service: %v", err), err) + } if err := reconcileConnectionPoolerMetricsService(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled); err != nil { - return ctrl.Result{}, err + return monitoringFailure(reasonPoolerMetricsServiceFailed, EventMetricsServiceReconcileFailed, fmt.Sprintf("Failed to reconcile RW pooler metrics Service: %v", err), err) } if err := reconcileConnectionPoolerMetricsService(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled); err != nil { - return ctrl.Result{}, err + return monitoringFailure(reasonPoolerMetricsServiceFailed, EventMetricsServiceReconcileFailed, fmt.Sprintf("Failed to reconcile RO pooler metrics Service: %v", err), err) } - - if err := reconcilePostgreSQLMetricsServiceMonitor( - ctx, c, rc.Scheme, postgresCluster, isPostgreSQLMetricsEnabled(postgresCluster, clusterClass), - ); err != nil { - return ctrl.Result{}, err + if err := reconcilePostgreSQLMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, postgresMetricsEnabled); err != nil { + return monitoringFailure(reasonPostgresMetricsMonitorFailed, EventServiceMonitorReconcileFailed, fmt.Sprintf("Failed to reconcile PostgreSQL metrics ServiceMonitor: %v", err), err) } - - if err := reconcileConnectionPoolerMetricsServiceMonitor( - ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled, - ); err != nil { - return ctrl.Result{}, err + if err := reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled); err != nil { + return monitoringFailure(reasonPoolerMetricsMonitorFailed, EventServiceMonitorReconcileFailed, fmt.Sprintf("Failed to reconcile RW pooler metrics ServiceMonitor: %v", err), err) } - if err := reconcileConnectionPoolerMetricsServiceMonitor( - ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled, - ); err != nil { - return ctrl.Result{}, err + if err := reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled); err != nil { + return monitoringFailure(reasonPoolerMetricsMonitorFailed, EventServiceMonitorReconcileFailed, fmt.Sprintf("Failed to reconcile RO pooler metrics ServiceMonitor: %v", err), err) + } + + if !monitoringEnabled { + if err := removeCondition(ctx, c, postgresCluster, monitoringReady); err != nil { + if apierrors.IsConflict(err) { + return ctrl.Result{Requeue: true}, nil + } + return ctrl.Result{}, err + } + } else { + if err := setCondition(ctx, c, postgresCluster, monitoringReady, metav1.ConditionTrue, reasonObservabilityResourcesReady, "Monitoring resources are ready"); err != nil { + if apierrors.IsConflict(err) { + return ctrl.Result{Requeue: true}, nil + } + return ctrl.Result{}, err + } + + rc.emitMonitoringReadyTransition(postgresCluster, oldConditions) } // Reconcile ConfigMap when CNPG cluster is healthy. @@ -845,6 +864,50 @@ func setStatus(ctx context.Context, c client.Client, metrics ports.Recorder, clu return nil } +// setCondition updates a specific condition on the PostgresCluster status. +func setCondition(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string) error { + base := cluster.Status.DeepCopy() + + meta.SetStatusCondition(&cluster.Status.Conditions, metav1.Condition{ + Type: string(condType), + Status: status, + Reason: string(reason), + Message: message, + ObservedGeneration: cluster.Generation, + }) + + if equality.Semantic.DeepEqual(*base, cluster.Status) { + return nil + } + if err := c.Status().Update(ctx, cluster); err != nil { + return fmt.Errorf("failed to update PostgresCluster condition: %w", err) + } + return nil +} + +// removeCondition removes a specific condition from the PostgresCluster status. +func removeCondition(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes) error { + base := cluster.Status.DeepCopy() + + meta.RemoveStatusCondition(&cluster.Status.Conditions, string(condType)) + + if equality.Semantic.DeepEqual(*base, cluster.Status) { + return nil + } + if err := c.Status().Update(ctx, cluster); err != nil { + return fmt.Errorf("failed to remove PostgresCluster condition: %w", err) + } + return nil +} + +func handleMonitoringFailure(ctx context.Context, c client.Client, rc *ReconcileContext, cluster *enterprisev4.PostgresCluster, reason conditionReasons, eventReason string, message string, err error) error { + rc.emitWarning(cluster, eventReason, message) + if statusErr := setCondition(ctx, c, cluster, monitoringReady, metav1.ConditionFalse, reason, message); statusErr != nil { + return errors.Join(err, fmt.Errorf("failed to update MonitoringReady condition: %w", statusErr)) + } + return err +} + // generateConfigMap builds a ConfigMap with connection details for the PostgresCluster. func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster, secretName string) (*corev1.ConfigMap, error) { cmName := fmt.Sprintf("%s%s", cluster.Name, defaultConfigMapSuffix) diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go index afcfd768e..d2692ed9b 100644 --- a/pkg/postgresql/cluster/core/events.go +++ b/pkg/postgresql/cluster/core/events.go @@ -10,25 +10,28 @@ import ( ) const ( - EventSecretReady = "SecretReady" - EventConfigMapReady = "ConfigMapReady" - EventClusterAdopted = "ClusterAdopted" - EventClusterCreationStarted = "ClusterCreationStarted" - EventClusterUpdateStarted = "ClusterUpdateStarted" - EventClusterReady = "ClusterReady" - EventPoolerCreationStarted = "PoolerCreationStarted" - EventPoolerReady = "PoolerReady" - EventCleanupComplete = "CleanupComplete" - EventClusterClassNotFound = "ClusterClassNotFound" - EventConfigMergeFailed = "ConfigMergeFailed" - EventSecretReconcileFailed = "SecretReconcileFailed" - EventClusterCreateFailed = "ClusterCreateFailed" - EventClusterUpdateFailed = "ClusterUpdateFailed" - EventManagedRolesFailed = "ManagedRolesFailed" - EventPoolerReconcileFailed = "PoolerReconcileFailed" - EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" - EventClusterDegraded = "ClusterDegraded" - EventCleanupFailed = "CleanupFailed" + EventSecretReady = "SecretReady" + EventConfigMapReady = "ConfigMapReady" + EventClusterAdopted = "ClusterAdopted" + EventClusterCreationStarted = "ClusterCreationStarted" + EventClusterUpdateStarted = "ClusterUpdateStarted" + EventClusterReady = "ClusterReady" + EventPoolerCreationStarted = "PoolerCreationStarted" + EventPoolerReady = "PoolerReady" + EventCleanupComplete = "CleanupComplete" + EventClusterClassNotFound = "ClusterClassNotFound" + EventConfigMergeFailed = "ConfigMergeFailed" + EventSecretReconcileFailed = "SecretReconcileFailed" + EventClusterCreateFailed = "ClusterCreateFailed" + EventClusterUpdateFailed = "ClusterUpdateFailed" + EventManagedRolesFailed = "ManagedRolesFailed" + EventPoolerReconcileFailed = "PoolerReconcileFailed" + EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" + EventClusterDegraded = "ClusterDegraded" + EventCleanupFailed = "CleanupFailed" + EventMonitoringReady = "MonitoringReady" + EventMetricsServiceReconcileFailed = "MetricsServiceReconcileFailed" + EventServiceMonitorReconcileFailed = "ServiceMonitorReconcileFailed" ) func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { @@ -60,3 +63,11 @@ func (rc *ReconcileContext) emitPoolerReadyTransition(obj client.Object, conditi rc.emitNormal(obj, EventPoolerReady, "Connection poolers are ready") } } + +// emitMonitoringReadyTransition emits MonitoringReady only when the condition was not +// previously True — prevents re-emission on every reconcile while already ready. +func (rc *ReconcileContext) emitMonitoringReadyTransition(obj client.Object, conditions []metav1.Condition) { + if !meta.IsStatusConditionTrue(conditions, string(monitoringReady)) { + rc.emitNormal(obj, EventMonitoringReady, "Monitoring resources are ready") + } +} \ No newline at end of file diff --git a/pkg/postgresql/cluster/core/monitoring.go b/pkg/postgresql/cluster/core/monitoring.go index c2f1267f8..e422a25d9 100644 --- a/pkg/postgresql/cluster/core/monitoring.go +++ b/pkg/postgresql/cluster/core/monitoring.go @@ -37,48 +37,32 @@ const ( ) func isPostgreSQLMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { - if class == nil || class.Spec.Config == nil || class.Spec.Config.Observability == nil { + if class == nil || class.Spec.Config == nil || class.Spec.Config.Monitoring == nil { return false } - classCfg := class.Spec.Config.Observability.PostgreSQL + classCfg := class.Spec.Config.Monitoring.PostgreSQLMetrics if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { return false } - if cluster == nil || cluster.Spec.Observability == nil || cluster.Spec.Observability.PostgreSQL == nil { + if cluster == nil || cluster.Spec.Monitoring == nil || cluster.Spec.Monitoring.PostgreSQLMetrics == nil { return true } - override := cluster.Spec.Observability.PostgreSQL.Disabled + override := cluster.Spec.Monitoring.PostgreSQLMetrics.Disabled return override == nil || !*override } -func isConnectionPoolerEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { - if class == nil || class.Spec.Config == nil || class.Spec.Config.ConnectionPoolerEnabled == nil { - return false - } - if !*class.Spec.Config.ConnectionPoolerEnabled { - return false - } - if cluster == nil || cluster.Spec.ConnectionPoolerEnabled == nil { - return true - } - return *cluster.Spec.ConnectionPoolerEnabled -} - func isConnectionPoolerMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { - if !isConnectionPoolerEnabled(cluster, class) { - return false - } - if class == nil || class.Spec.Config == nil || class.Spec.Config.Observability == nil { + if class == nil || class.Spec.Config == nil || class.Spec.Config.Monitoring == nil { return false } - classCfg := class.Spec.Config.Observability.PgBouncer + classCfg := class.Spec.Config.Monitoring.ConnectionPoolerMetrics if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { return false } - if cluster == nil || cluster.Spec.Observability == nil || cluster.Spec.Observability.PgBouncer == nil { + if cluster == nil || cluster.Spec.Monitoring == nil || cluster.Spec.Monitoring.ConnectionPoolerMetrics == nil { return true } - override := cluster.Spec.Observability.PgBouncer.Disabled + override := cluster.Spec.Monitoring.ConnectionPoolerMetrics.Disabled return override == nil || !*override } diff --git a/pkg/postgresql/cluster/core/monitoring_unit_test.go b/pkg/postgresql/cluster/core/monitoring_unit_test.go index 545ea25da..fe10c0943 100644 --- a/pkg/postgresql/cluster/core/monitoring_unit_test.go +++ b/pkg/postgresql/cluster/core/monitoring_unit_test.go @@ -21,7 +21,7 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { want bool }{ { - name: "disabled when class observability is absent", + name: "disabled when class monitoring is absent", class: &enterprisev4.PostgresClusterClass{ Spec: enterprisev4.PostgresClusterClassSpec{ Config: &enterprisev4.PostgresClusterClassConfig{}, @@ -32,7 +32,7 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { { name: "enabled when class enables and cluster override is unset", cluster: &enterprisev4.PostgresCluster{}, - class: newClassWithObservability( + class: newClassWithMonitoring( ptr.To(true), nil, nil, @@ -43,12 +43,12 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { name: "disabled when cluster override disables", cluster: &enterprisev4.PostgresCluster{ Spec: enterprisev4.PostgresClusterSpec{ - Observability: &enterprisev4.PostgresObservabilityOverride{ - PostgreSQL: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + Monitoring: &enterprisev4.PostgresClusterMonitoring{ + PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, }, }, }, - class: newClassWithObservability( + class: newClassWithMonitoring( ptr.To(true), nil, nil, @@ -59,12 +59,12 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { name: "disabled when class disables even if cluster has override struct", cluster: &enterprisev4.PostgresCluster{ Spec: enterprisev4.PostgresClusterSpec{ - Observability: &enterprisev4.PostgresObservabilityOverride{ - PostgreSQL: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(false)}, + Monitoring: &enterprisev4.PostgresClusterMonitoring{ + PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(false)}, }, }, }, - class: newClassWithObservability( + class: newClassWithMonitoring( ptr.To(false), nil, nil, @@ -81,7 +81,7 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { } } -func TestIsConnectionPoolerEnabled(t *testing.T) { +func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { tests := []struct { name string cluster *enterprisev4.PostgresCluster @@ -89,85 +89,33 @@ func TestIsConnectionPoolerEnabled(t *testing.T) { want bool }{ { - name: "disabled when class config is absent", - class: &enterprisev4.PostgresClusterClass{}, - want: false, - }, - { - name: "inherits enabled class setting when cluster override is unset", + name: "disabled when class monitoring is absent", cluster: &enterprisev4.PostgresCluster{}, class: &enterprisev4.PostgresClusterClass{ Spec: enterprisev4.PostgresClusterClassSpec{ - Config: &enterprisev4.PostgresClusterClassConfig{ - ConnectionPoolerEnabled: ptr.To(true), - }, - }, - }, - want: true, - }, - { - name: "cluster can disable class enabled pooler", - cluster: &enterprisev4.PostgresCluster{ - Spec: enterprisev4.PostgresClusterSpec{ - ConnectionPoolerEnabled: ptr.To(false), - }, - }, - class: &enterprisev4.PostgresClusterClass{ - Spec: enterprisev4.PostgresClusterClassSpec{ - Config: &enterprisev4.PostgresClusterClassConfig{ - ConnectionPoolerEnabled: ptr.To(true), - }, - }, - }, - want: false, - }, - { - name: "class disabled wins", - cluster: &enterprisev4.PostgresCluster{ - Spec: enterprisev4.PostgresClusterSpec{ - ConnectionPoolerEnabled: ptr.To(true), - }, - }, - class: &enterprisev4.PostgresClusterClass{ - Spec: enterprisev4.PostgresClusterClassSpec{ - Config: &enterprisev4.PostgresClusterClassConfig{ - ConnectionPoolerEnabled: ptr.To(false), - }, + Config: &enterprisev4.PostgresClusterClassConfig{}, }, }, want: false, }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := isConnectionPoolerEnabled(tt.cluster, tt.class) - assert.Equal(t, tt.want, got) - }) - } -} - -func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { - tests := []struct { - name string - cluster *enterprisev4.PostgresCluster - class *enterprisev4.PostgresClusterClass - want bool - }{ { - name: "disabled when pooler itself is disabled", + name: "enabled when class enables and cluster override is unset", cluster: &enterprisev4.PostgresCluster{}, - class: newClassWithObservability( + class: newClassWithMonitoring( nil, ptr.To(true), - nil, + ptr.To(true), ), - want: false, + want: true, }, { - name: "enabled when pooler and pgbouncer metrics are enabled", - cluster: &enterprisev4.PostgresCluster{}, - class: newClassWithObservability( + name: "enabled even when cluster explicitly disables the pooler", + cluster: &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ConnectionPoolerEnabled: ptr.To(false), + }, + }, + class: newClassWithMonitoring( nil, ptr.To(true), ptr.To(true), @@ -178,12 +126,12 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { name: "disabled when cluster override disables pgbouncer metrics", cluster: &enterprisev4.PostgresCluster{ Spec: enterprisev4.PostgresClusterSpec{ - Observability: &enterprisev4.PostgresObservabilityOverride{ - PgBouncer: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + Monitoring: &enterprisev4.PostgresClusterMonitoring{ + ConnectionPoolerMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, }, }, }, - class: newClassWithObservability( + class: newClassWithMonitoring( nil, ptr.To(true), ptr.To(true), @@ -193,7 +141,7 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { { name: "disabled when class disables pgbouncer metrics", cluster: &enterprisev4.PostgresCluster{}, - class: newClassWithObservability( + class: newClassWithMonitoring( nil, ptr.To(true), ptr.To(false), @@ -308,18 +256,18 @@ func newTestMonitoringCluster() *enterprisev4.PostgresCluster { } } -func newClassWithObservability( +func newClassWithMonitoring( postgresEnabled *bool, poolerEnabled *bool, - pgBouncerMetricsEnabled *bool, + connectionPoolerMetricsEnabled *bool, ) *enterprisev4.PostgresClusterClass { return &enterprisev4.PostgresClusterClass{ Spec: enterprisev4.PostgresClusterClassSpec{ Config: &enterprisev4.PostgresClusterClassConfig{ ConnectionPoolerEnabled: poolerEnabled, - Observability: &enterprisev4.PostgresObservabilityClassConfig{ - PostgreSQL: &enterprisev4.MetricsClassConfig{Enabled: postgresEnabled}, - PgBouncer: &enterprisev4.MetricsClassConfig{Enabled: pgBouncerMetricsEnabled}, + Monitoring: &enterprisev4.PostgresMonitoringClassConfig{ + PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: postgresEnabled}, + ConnectionPoolerMetrics: &enterprisev4.MetricsClassConfig{Enabled: connectionPoolerMetricsEnabled}, }, }, }, diff --git a/pkg/postgresql/cluster/core/types.go b/pkg/postgresql/cluster/core/types.go index 7a43322fe..d4889edaa 100644 --- a/pkg/postgresql/cluster/core/types.go +++ b/pkg/postgresql/cluster/core/types.go @@ -76,21 +76,27 @@ const ( failedClusterPhase reconcileClusterPhases = "Failed" // condition types - clusterReady conditionTypes = "ClusterReady" - poolerReady conditionTypes = "PoolerReady" + clusterReady conditionTypes = "ClusterReady" + poolerReady conditionTypes = "PoolerReady" + monitoringReady conditionTypes = "MonitoringReady" // condition reasons — clusterReady - reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" - reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" - reasonClusterBuildFailed conditionReasons = "ClusterBuildFailed" - reasonClusterBuildSucceeded conditionReasons = "ClusterBuildSucceeded" - reasonClusterGetFailed conditionReasons = "ClusterGetFailed" - reasonClusterPatchFailed conditionReasons = "ClusterPatchFailed" - reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" - reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" - reasonUserSecretFailed conditionReasons = "UserSecretReconciliationFailed" - reasonSuperUserSecretFailed conditionReasons = "SuperUserSecretFailed" - reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" + reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" + reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" + reasonClusterBuildFailed conditionReasons = "ClusterBuildFailed" + reasonClusterBuildSucceeded conditionReasons = "ClusterBuildSucceeded" + reasonClusterGetFailed conditionReasons = "ClusterGetFailed" + reasonClusterPatchFailed conditionReasons = "ClusterPatchFailed" + reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" + reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" + reasonUserSecretFailed conditionReasons = "UserSecretReconciliationFailed" + reasonSuperUserSecretFailed conditionReasons = "SuperUserSecretFailed" + reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" + reasonObservabilityResourcesReady conditionReasons = "ObservabilityResourcesReady" + reasonPostgresMetricsMonitorFailed conditionReasons = "PostgresMetricsMonitorFailed" + reasonPostgresMetricsServiceFailed conditionReasons = "PostgresMetricsServiceFailed" + reasonPoolerMetricsServiceFailed conditionReasons = "PoolerMetricsServiceFailed" + reasonPoolerMetricsMonitorFailed conditionReasons = "PoolerMetricsMonitorFailed" // condition reasons — poolerReady reasonPoolerReconciliationFailed conditionReasons = "PoolerReconciliationFailed" From d353d0530eb565dded9c5ab6d655fa5ee7e3304a Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Wed, 15 Apr 2026 13:06:35 +0200 Subject: [PATCH 26/43] remove prometeush, add annotations. --- cmd/main.go | 2 - ...ise.splunk.com_postgresclusterclasses.yaml | 30 ++ ...nterprise.splunk.com_postgresclusters.yaml | 21 + docs/postgresSQLMonitoring-e2e.md | 285 +++++++++++ .../controller/postgrescluster_controller.go | 8 +- .../postgrescluster_controller_test.go | 166 ++++--- .../controller/postgresdatabase_controller.go | 6 +- internal/controller/suite_test.go | 6 - ...monitoring.coreos.com_servicemonitors.yaml | 32 -- pkg/postgresql/cluster/core/cluster.go | 141 ++---- .../cluster/core/cluster_unit_test.go | 76 ++- pkg/postgresql/cluster/core/events.go | 11 - pkg/postgresql/cluster/core/monitoring.go | 456 ++---------------- .../cluster/core/monitoring_unit_test.go | 158 ++---- pkg/postgresql/cluster/core/types.go | 33 +- .../monitoring/postgrescluster.yaml | 7 + .../monitoring/postgresclusterclass.yaml | 21 + test/postgresql/monitoring/values.yaml | 37 ++ 18 files changed, 706 insertions(+), 790 deletions(-) create mode 100644 docs/postgresSQLMonitoring-e2e.md delete mode 100644 internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml create mode 100644 test/postgresql/monitoring/postgrescluster.yaml create mode 100644 test/postgresql/monitoring/postgresclusterclass.yaml create mode 100644 test/postgresql/monitoring/values.yaml diff --git a/cmd/main.go b/cmd/main.go index 402264560..d7cc6cc8b 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -56,7 +56,6 @@ import ( "github.com/splunk/splunk-operator/internal/controller" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" - monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" //+kubebuilder:scaffold:imports //extapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" @@ -72,7 +71,6 @@ func init() { utilruntime.Must(enterpriseApi.AddToScheme(scheme)) utilruntime.Must(enterpriseApiV3.AddToScheme(scheme)) utilruntime.Must(cnpgv1.AddToScheme(scheme)) - utilruntime.Must(monitoringv1.AddToScheme(scheme)) //+kubebuilder:scaffold:scheme //utilruntime.Must(extapi.AddToScheme(scheme)) } diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml index cd3d7ab7a..353d17e6e 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresclusterclasses.yaml @@ -134,6 +134,30 @@ spec: maximum: 10 minimum: 1 type: integer + monitoring: + default: {} + description: |- + Monitoring contains configuration for metrics exposure. + When enabled, creates metrics resources for clusters using this class. + Can be overridden in PostgresCluster CR. + properties: + connectionPoolerMetrics: + properties: + enabled: + default: false + description: Enabled controls whether metrics resources + should be created for this target. + type: boolean + type: object + postgresqlMetrics: + properties: + enabled: + default: false + description: Enabled controls whether metrics resources + should be created for this target. + type: boolean + type: object + type: object pgHBA: description: |- PgHBA contains pg_hba.conf host-based authentication rules. @@ -231,6 +255,12 @@ spec: pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object + x-kubernetes-validations: + - message: connectionPoolerEnabled must be true when monitoring.connectionPoolerMetrics.enabled + is true + rule: '!has(self.monitoring) || !has(self.monitoring.connectionPoolerMetrics) + || !has(self.monitoring.connectionPoolerMetrics.enabled) || !self.monitoring.connectionPoolerMetrics.enabled + || (has(self.connectionPoolerEnabled) && self.connectionPoolerEnabled)' provisioner: description: |- Provisioner identifies which database provisioner to use. diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml index 09c7de13c..ff5d6dbf5 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml @@ -126,6 +126,27 @@ spec: x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map + monitoring: + description: Monitoring contains configuration for metrics exposure + features. + properties: + connectionPoolerMetrics: + properties: + disabled: + default: false + description: Disabled set to true will disable the feature + even if it's enabled in the class. + type: boolean + type: object + postgresqlMetrics: + properties: + disabled: + default: false + description: Disabled set to true will disable the feature + even if it's enabled in the class. + type: boolean + type: object + type: object pgHBA: default: [] description: |- diff --git a/docs/postgresSQLMonitoring-e2e.md b/docs/postgresSQLMonitoring-e2e.md new file mode 100644 index 000000000..e4409753a --- /dev/null +++ b/docs/postgresSQLMonitoring-e2e.md @@ -0,0 +1,285 @@ +# PostgreSQL Monitoring E2E on KIND + +This validates the PostgreSQL and PgBouncer monitoring flow in namespace `test`. + +## Goal + +Verify that: + +- PostgreSQL pods are scraped through pod annotations +- PgBouncer pooler pods are scraped through pod annotations +- no dedicated metrics `Service` is required +- no `ServiceMonitor` is used for PostgreSQL or PgBouncer + +`ServiceMonitor` is still acceptable for operator-controller metrics if you want that separately, but it is not part of this feature validation. + +## Prerequisites + +- KIND cluster is running +- CNPG is installed +- Splunk Operator is installed +- CRDs are up to date + +## 1. Install Prometheus and Grafana + +Create `values.yaml`: + +```yaml +grafana: + adminPassword: admin + +alertmanager: + enabled: false + +kubeStateMetrics: + enabled: false + +nodeExporter: + enabled: false + +prometheus: + prometheusSpec: + additionalScrapeConfigs: + - job_name: annotated-pods + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] + action: replace + target_label: __metrics_path__ + regex: (.+) + - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + action: replace + regex: ([^:]+)(?::\d+)?;(\d+) + replacement: $1:$2 + target_label: __address__ + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: namespace + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: pod +``` + +Install the stack: + +```bash +kubectl create namespace monitoring + +helm repo add prometheus-community https://prometheus-community.github.io/helm-charts +helm repo add grafana https://grafana.github.io/helm-charts +helm repo update + +helm install kube-prometheus prometheus-community/kube-prometheus-stack \ + --namespace monitoring \ + -f values.yaml +``` + +## 2. Optional: scrape operator-controller metrics + +This is separate from the PostgreSQL and PgBouncer validation. + +Grant Prometheus access: + +```bash +kubectl apply -f - < -o yaml | rg 'prometheus.io/' +``` + +Expected: + +- `prometheus.io/scrape: "true"` +- `prometheus.io/path: /metrics` +- `prometheus.io/port: "9187"` + +Pooler pods: + +```bash +kubectl get pods -n test -l cnpg.io/poolerName=-pooler-rw -o yaml | rg 'prometheus.io/' +kubectl get pods -n test -l cnpg.io/poolerName=-pooler-ro -o yaml | rg 'prometheus.io/' +``` + +Expected: + +- `prometheus.io/scrape: "true"` +- `prometheus.io/path: /metrics` +- `prometheus.io/port: "9127"` + +## 6. Access Prometheus + +```bash +kubectl port-forward -n monitoring svc/kube-prometheus-prometheus 9090:9090 +``` + +Open: + +- http://localhost:9090 + +Useful checks: + +```promql +up{job="annotated-pods", namespace="test"} +``` + +```promql +count by (pod) (cnpg_pg_postmaster_start_time_seconds{namespace="test"}) +``` + +```promql +cnpg_pgbouncer_up{namespace="test"} +``` + +## 7. Access Grafana + +Port-forward Grafana: + +```bash +kubectl port-forward svc/kube-prometheus-grafana -n monitoring 3000:80 +``` + +Open: + +- http://localhost:3000 + +Login: + +- user: `admin` +- password: `admin` + +Use Grafana in one of two ways: + +### Explore + +1. Open **Explore** +2. Select the default **Prometheus** datasource +3. Run PromQL queries such as: + +```promql +up{job="annotated-pods", namespace="test"} +``` + +```promql +cnpg_pg_postmaster_start_time_seconds{namespace="test"} +``` + +```promql +cnpg_pgbouncer_up{namespace="test"} +``` + +### Dashboard import + +You can also import the reference dashboard from: + +- [PostgreSQLObservabilityDashboard.json](/Users/dpishchenkov/splunk-operator/docs/PostgreSQLObservabilityDashboard.json) + +In Grafana: + +1. Go to **Dashboards** +2. Click **New** -> **Import** +3. Upload `docs/PostgreSQLObservabilityDashboard.json` +4. Select the Prometheus datasource + +## 8. Optional disable test + +Disable monitoring in the `PostgresCluster` and verify annotations disappear: + +```bash +kubectl patch postgrescluster -n test --type=merge -p ' +spec: + monitoring: + postgresqlMetrics: + disabled: true + connectionPoolerMetrics: + disabled: true +' +``` + +Then re-check: + +```bash +kubectl get pods -n test -l cnpg.io/cluster= -o yaml | rg 'prometheus.io/' || true +kubectl get pods -n test -l cnpg.io/poolerName=-pooler-rw -o yaml | rg 'prometheus.io/' || true +kubectl get pods -n test -l cnpg.io/poolerName=-pooler-ro -o yaml | rg 'prometheus.io/' || true +``` + +Prometheus should also stop showing those targets under `annotated-pods` after discovery refresh. + +## Notes + +- Use `ServiceMonitor` only for operator-controller metrics if needed. +- Do not use `ServiceMonitor` for PostgreSQL or PgBouncer in this E2E, because that bypasses the feature under test. +- Verify both: + - reconciled CNPG specs + - actual pod annotations +- PostgreSQL annotations come from CNPG `Cluster.Spec.InheritedMetadata` +- pooler annotations come from CNPG `Pooler.Spec.Template` diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 75b5bc50f..78aecad32 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -50,7 +50,7 @@ type PostgresClusterReconciler struct { Metrics ports.Recorder FleetCollector *pgprometheus.FleetCollector } -// +kubebuilder:rbac:groups=monitoring.coreos.com,resources=servicemonitors,verbs=get;list;watch;create;update;patch;delete + // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters/status,verbs=get;update;patch // +kubebuilder:rbac:groups=enterprise.splunk.com,resources=postgresclusters/finalizers,verbs=update @@ -62,7 +62,11 @@ type PostgresClusterReconciler struct { // +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} + metrics := r.Metrics + if metrics == nil { + metrics = &pgprometheus.NoopRecorder{} + } + rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: metrics} result, err := clustercore.PostgresClusterService(ctx, rc, req) r.FleetCollector.CollectClusterMetrics(ctx, r.Client, r.Metrics) if sharedreconcile.IsPureConflict(err) { diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 59737a2a4..730eb3251 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -28,17 +28,13 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/reconcile" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/ptr" - enterprisev4 "github.com/splunk/splunk-operator/api/v4" "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" - corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) /* @@ -81,6 +77,15 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { req reconcile.Request ) + const ( + scrapeAnnotationKey = "prometheus.io/scrape" + pathAnnotationKey = "prometheus.io/path" + portAnnotationKey = "prometheus.io/port" + metricsPath = "/metrics" + postgresPort = "9187" + poolerPort = "9127" + ) + reconcileNTimes := func(times int) { for i := 0; i < times; i++ { _, err := reconciler.Reconcile(ctx, req) @@ -88,25 +93,18 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { } } - recreateClassWithMonitoring := func(postgresMetricsEnabled bool) { + recreateClusterClass := func(modify func(*enterprisev4.PostgresClusterClass)) { Expect(k8sClient.Delete(ctx, pgClusterClass)).To(Succeed()) - - pgClusterClass = &enterprisev4.PostgresClusterClass{ - ObjectMeta: metav1.ObjectMeta{Name: className}, - Spec: enterprisev4.PostgresClusterClassSpec{ - Provisioner: provisioner, - Config: &enterprisev4.PostgresClusterClassConfig{ - Instances: &[]int32{clusterMemberCount}[0], - Storage: &[]resource.Quantity{resource.MustParse(storageAmount)}[0], - PostgresVersion: &[]string{postgresVersion}[0], - ConnectionPoolerEnabled: &[]bool{poolerEnabled}[0], - Monitoring: &enterprisev4.PostgresMonitoringClassConfig{ - PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: ptr.To(postgresMetricsEnabled)}, - }, - }, - }, + Eventually(func() bool { + return apierrors.IsNotFound(k8sClient.Get(ctx, pgClusterClassKey, &enterprisev4.PostgresClusterClass{})) + }, "10s", "250ms").Should(BeTrue()) + + pgClusterClass = pgClusterClass.DeepCopy() + pgClusterClass.ResourceVersion = "" + pgClusterClass.UID = "" + if modify != nil { + modify(pgClusterClass) } - Expect(k8sClient.Create(ctx, pgClusterClass)).To(Succeed()) } @@ -266,63 +264,105 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Expect(cond.ObservedGeneration).To(Equal(pc.Generation)) }) - It("creates monitoring resources and sets MonitoringReady when monitoring is enabled", func() { - recreateClassWithMonitoring(true) + It("adds PostgreSQL scrape annotations to the CNPG Cluster when monitoring is enabled", func() { + recreateClusterClass(func(class *enterprisev4.PostgresClusterClass) { + class.Spec.Config.Monitoring = &enterprisev4.PostgresMonitoringClassConfig{ + PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: &[]bool{true}[0]}, + } + }) Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) - reconcileNTimes(3) + reconcileNTimes(2) - pc := &enterprisev4.PostgresCluster{} - Expect(k8sClient.Get(ctx, pgClusterKey, pc)).To(Succeed()) - cond := meta.FindStatusCondition(pc.Status.Conditions, "MonitoringReady") - Expect(cond).NotTo(BeNil()) - Expect(cond.Status).To(Equal(metav1.ConditionTrue)) - Expect(cond.Reason).To(Equal("ObservabilityResourcesReady")) - - metricsService := &corev1.Service{} - Expect(k8sClient.Get(ctx, types.NamespacedName{ - Name: clusterName + "-postgres-metrics", - Namespace: namespace, - }, metricsService)).To(Succeed()) - - serviceMonitor := &monitoringv1.ServiceMonitor{} - Expect(k8sClient.Get(ctx, types.NamespacedName{ - Name: clusterName + "-postgres-metrics-monitor", - Namespace: namespace, - }, serviceMonitor)).To(Succeed()) + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + Expect(cnpg.Spec.InheritedMetadata).NotTo(BeNil()) + Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(scrapeAnnotationKey, "true")) + Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(pathAnnotationKey, metricsPath)) + Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(portAnnotationKey, postgresPort)) }) - It("removes monitoring resources and MonitoringReady when monitoring is disabled by cluster override", func() { - recreateClassWithMonitoring(true) + It("removes PostgreSQL scrape annotations when disabled by cluster override", func() { + recreateClusterClass(func(class *enterprisev4.PostgresClusterClass) { + class.Spec.Config.Monitoring = &enterprisev4.PostgresMonitoringClassConfig{ + PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: &[]bool{true}[0]}, + } + }) Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) - reconcileNTimes(3) + reconcileNTimes(2) + + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + Expect(cnpg.Spec.InheritedMetadata).NotTo(BeNil()) + Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(portAnnotationKey, postgresPort)) current := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, pgClusterKey, current)).To(Succeed()) current.Spec.Monitoring = &enterprisev4.PostgresClusterMonitoring{ - PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: &[]bool{true}[0]}, } Expect(k8sClient.Update(ctx, current)).To(Succeed()) reconcileNTimes(1) - Expect(k8sClient.Get(ctx, pgClusterKey, current)).To(Succeed()) - Expect(meta.FindStatusCondition(current.Status.Conditions, "MonitoringReady")).To(BeNil()) - - metricsService := &corev1.Service{} - err := k8sClient.Get(ctx, types.NamespacedName{ - Name: clusterName + "-postgres-metrics", - Namespace: namespace, - }, metricsService) - Expect(apierrors.IsNotFound(err)).To(BeTrue()) - - serviceMonitor := &monitoringv1.ServiceMonitor{} - err = k8sClient.Get(ctx, types.NamespacedName{ - Name: clusterName + "-postgres-metrics-monitor", - Namespace: namespace, - }, serviceMonitor) - Expect(apierrors.IsNotFound(err)).To(BeTrue()) + Eventually(func(g Gomega) { + updated := &cnpgv1.Cluster{} + g.Expect(k8sClient.Get(ctx, pgClusterKey, updated)).To(Succeed()) + if updated.Spec.InheritedMetadata != nil { + g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(scrapeAnnotationKey)) + g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(pathAnnotationKey)) + g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(portAnnotationKey)) + } + }, "20s", "250ms").Should(Succeed()) + }) + + It("creates poolers with scrape annotations only after the CNPG cluster becomes healthy", func() { + recreateClusterClass(func(class *enterprisev4.PostgresClusterClass) { + class.Spec.Config.ConnectionPoolerEnabled = &[]bool{true}[0] + class.Spec.Config.Monitoring = &enterprisev4.PostgresMonitoringClassConfig{ + ConnectionPoolerMetrics: &enterprisev4.MetricsClassConfig{Enabled: &[]bool{true}[0]}, + } + class.Spec.CNPG = &enterprisev4.CNPGConfig{ + ConnectionPooler: &enterprisev4.ConnectionPoolerConfig{ + Instances: &[]int32{2}[0], + Mode: &[]enterprisev4.ConnectionPoolerMode{enterprisev4.ConnectionPoolerModeTransaction}[0], + }, + } + }) + + Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) + reconcileNTimes(2) + + rwKey := types.NamespacedName{Name: clusterName + "-pooler-rw", Namespace: namespace} + roKey := types.NamespacedName{Name: clusterName + "-pooler-ro", Namespace: namespace} + + Expect(apierrors.IsNotFound(k8sClient.Get(ctx, rwKey, &cnpgv1.Pooler{}))).To(BeTrue()) + Expect(apierrors.IsNotFound(k8sClient.Get(ctx, roKey, &cnpgv1.Pooler{}))).To(BeTrue()) + + cnpg := &cnpgv1.Cluster{} + Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + cnpg.Status.Phase = cnpgv1.PhaseHealthy + Expect(k8sClient.Status().Update(ctx, cnpg)).To(Succeed()) + + Eventually(func(g Gomega) { + _, err := reconciler.Reconcile(ctx, req) + g.Expect(err).NotTo(HaveOccurred()) + + rw := &cnpgv1.Pooler{} + g.Expect(k8sClient.Get(ctx, rwKey, rw)).To(Succeed()) + g.Expect(rw.Spec.Template).NotTo(BeNil()) + g.Expect(rw.Spec.Template.ObjectMeta.Annotations).To(HaveKeyWithValue(scrapeAnnotationKey, "true")) + g.Expect(rw.Spec.Template.ObjectMeta.Annotations).To(HaveKeyWithValue(pathAnnotationKey, metricsPath)) + g.Expect(rw.Spec.Template.ObjectMeta.Annotations).To(HaveKeyWithValue(portAnnotationKey, poolerPort)) + + ro := &cnpgv1.Pooler{} + g.Expect(k8sClient.Get(ctx, roKey, ro)).To(Succeed()) + g.Expect(ro.Spec.Template).NotTo(BeNil()) + g.Expect(ro.Spec.Template.ObjectMeta.Annotations).To(HaveKeyWithValue(scrapeAnnotationKey, "true")) + g.Expect(ro.Spec.Template.ObjectMeta.Annotations).To(HaveKeyWithValue(pathAnnotationKey, metricsPath)) + g.Expect(ro.Spec.Template.ObjectMeta.Annotations).To(HaveKeyWithValue(portAnnotationKey, poolerPort)) + }, "20s", "250ms").Should(Succeed()) }) }) }) diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go index 8a480abc2..d31082ba9 100644 --- a/internal/controller/postgresdatabase_controller.go +++ b/internal/controller/postgresdatabase_controller.go @@ -76,7 +76,11 @@ func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Req } return ctrl.Result{}, err } - rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} + metrics := r.Metrics + if metrics == nil { + metrics = &pgprometheus.NoopRecorder{} + } + rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: metrics} result, err := dbcore.PostgresDatabaseService(ctx, rc, postgresDB, dbadapter.NewDBRepository) r.FleetCollector.CollectDatabaseMetrics(ctx, r.Client, r.Metrics) if sharedreconcile.IsPureConflict(err) { diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index cf86dac87..5dca32cb2 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -39,7 +39,6 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" - monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" enterpriseApi "github.com/splunk/splunk-operator/api/v4" //+kubebuilder:scaffold:imports @@ -78,9 +77,7 @@ var _ = BeforeSuite(func(ctx context.Context) { CRDDirectoryPaths: []string{ filepath.Join("..", "..", "config", "crd", "bases"), filepath.Join(cnpgModuleDir, "config", "crd", "bases"), - filepath.Join("testdata", "crds"), }, - ErrorIfCRDPathMissing: true, } var err error @@ -111,9 +108,6 @@ var _ = BeforeSuite(func(ctx context.Context) { err = enterpriseApi.AddToScheme(clientgoscheme.Scheme) Expect(err).NotTo(HaveOccurred()) - err = monitoringv1.AddToScheme(clientgoscheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - //+kubebuilder:scaffold:scheme // Create New Manager for controller diff --git a/internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml b/internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml deleted file mode 100644 index 230e31d50..000000000 --- a/internal/controller/testdata/crds/monitoring.coreos.com_servicemonitors.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: servicemonitors.monitoring.coreos.com -spec: - group: monitoring.coreos.com - scope: Namespaced - names: - plural: servicemonitors - singular: servicemonitor - kind: ServiceMonitor - listKind: ServiceMonitorList - versions: - - name: v1 - served: true - storage: true - schema: - openAPIV3Schema: - type: object - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - type: object - x-kubernetes-preserve-unknown-fields: true - status: - type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 4b5152d32..3b98ff100 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -183,7 +183,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. } // Build desired CNPG Cluster spec. - desiredSpec := buildCNPGClusterSpec(mergedConfig, postgresSecretName) + desiredSpec := buildCNPGClusterSpec(mergedConfig, postgresSecretName, postgresMetricsEnabled) // Fetch existing CNPG Cluster or create it. existingCNPG := &cnpgv1.Cluster{} @@ -298,7 +298,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. "Waiting for CNPG cluster to become healthy before creating poolers", pendingClusterPhase) return ctrl.Result{RequeueAfter: retryDelay}, statusErr } - if err := createOrUpdateConnectionPoolers(ctx, c, rc.Scheme, postgresCluster, mergedConfig, cnpgCluster); err != nil { + if err := createOrUpdateConnectionPoolers(ctx, c, rc.Scheme, postgresCluster, mergedConfig, cnpgCluster, poolerMetricsEnabled); err != nil { logger.Error(err, "Failed to reconcile connection pooler") rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to reconcile connection pooler: %v", err)) statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, @@ -344,56 +344,9 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. rc.emitPoolerReadyTransition(postgresCluster, oldConditions) } - postgresMetricsEnabled := isPostgreSQLMetricsEnabled(postgresCluster, clusterClass) - poolerMetricsEnabled := isConnectionPoolerMetricsEnabled(postgresCluster, clusterClass) - rwPoolerMetricsEnabled := poolerMetricsEnabled && poolerEnabled && rwPoolerExists - roPoolerMetricsEnabled := poolerMetricsEnabled && poolerEnabled && roPoolerExists - monitoringEnabled := postgresMetricsEnabled || (poolerMetricsEnabled && poolerEnabled) - - monitoringFailure := func(reason conditionReasons, eventReason, message string, err error) (ctrl.Result, error) { - return ctrl.Result{}, handleMonitoringFailure(ctx, c, rc, postgresCluster, reason, eventReason, message, err) - } - oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) copy(oldConditions, postgresCluster.Status.Conditions) - if err := reconcilePostgreSQLMetricsService(ctx, c, rc.Scheme, postgresCluster, postgresMetricsEnabled); err != nil { - return monitoringFailure(reasonPostgresMetricsServiceFailed, EventMetricsServiceReconcileFailed, fmt.Sprintf("Failed to reconcile PostgreSQL metrics Service: %v", err), err) - } - if err := reconcileConnectionPoolerMetricsService(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled); err != nil { - return monitoringFailure(reasonPoolerMetricsServiceFailed, EventMetricsServiceReconcileFailed, fmt.Sprintf("Failed to reconcile RW pooler metrics Service: %v", err), err) - } - if err := reconcileConnectionPoolerMetricsService(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled); err != nil { - return monitoringFailure(reasonPoolerMetricsServiceFailed, EventMetricsServiceReconcileFailed, fmt.Sprintf("Failed to reconcile RO pooler metrics Service: %v", err), err) - } - if err := reconcilePostgreSQLMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, postgresMetricsEnabled); err != nil { - return monitoringFailure(reasonPostgresMetricsMonitorFailed, EventServiceMonitorReconcileFailed, fmt.Sprintf("Failed to reconcile PostgreSQL metrics ServiceMonitor: %v", err), err) - } - if err := reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readWriteEndpoint, rwPoolerMetricsEnabled); err != nil { - return monitoringFailure(reasonPoolerMetricsMonitorFailed, EventServiceMonitorReconcileFailed, fmt.Sprintf("Failed to reconcile RW pooler metrics ServiceMonitor: %v", err), err) - } - if err := reconcileConnectionPoolerMetricsServiceMonitor(ctx, c, rc.Scheme, postgresCluster, readOnlyEndpoint, roPoolerMetricsEnabled); err != nil { - return monitoringFailure(reasonPoolerMetricsMonitorFailed, EventServiceMonitorReconcileFailed, fmt.Sprintf("Failed to reconcile RO pooler metrics ServiceMonitor: %v", err), err) - } - - if !monitoringEnabled { - if err := removeCondition(ctx, c, postgresCluster, monitoringReady); err != nil { - if apierrors.IsConflict(err) { - return ctrl.Result{Requeue: true}, nil - } - return ctrl.Result{}, err - } - } else { - if err := setCondition(ctx, c, postgresCluster, monitoringReady, metav1.ConditionTrue, reasonObservabilityResourcesReady, "Monitoring resources are ready"); err != nil { - if apierrors.IsConflict(err) { - return ctrl.Result{Requeue: true}, nil - } - return ctrl.Result{}, err - } - - rc.emitMonitoringReadyTransition(postgresCluster, oldConditions) - } - // Reconcile ConfigMap when CNPG cluster is healthy. if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { logger.Info("CNPG Cluster healthy, reconciling ConfigMap") @@ -525,8 +478,8 @@ func getMergedConfig(class *enterprisev4.PostgresClusterClass, cluster *enterpri // buildCNPGClusterSpec builds the desired CNPG ClusterSpec. // IMPORTANT: any field added here must also appear in normalizeCNPGClusterSpec, // otherwise spec drift will be silently ignored. -func buildCNPGClusterSpec(cfg *MergedConfig, secretName string) cnpgv1.ClusterSpec { - return cnpgv1.ClusterSpec{ +func buildCNPGClusterSpec(cfg *MergedConfig, secretName string, postgresMetricsEnabled bool) cnpgv1.ClusterSpec { + spec := cnpgv1.ClusterSpec{ ImageName: fmt.Sprintf("ghcr.io/cloudnative-pg/postgresql:%s", *cfg.Spec.PostgresVersion), Instances: int(*cfg.Spec.Instances), PostgresConfiguration: cnpgv1.PostgresConfiguration{ @@ -547,12 +500,18 @@ func buildCNPGClusterSpec(cfg *MergedConfig, secretName string) cnpgv1.ClusterSp }, Resources: *cfg.Spec.Resources, } + if postgresMetricsEnabled { + spec.InheritedMetadata = &cnpgv1.EmbeddedObjectMetadata{ + Annotations: buildPostgresScrapeAnnotations(), + } + } + return spec } -func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string) (*cnpgv1.Cluster, error) { +func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string, postgresMetricsEnabled bool) *cnpgv1.Cluster { cnpg := &cnpgv1.Cluster{ ObjectMeta: metav1.ObjectMeta{Name: cluster.Name, Namespace: cluster.Namespace}, - Spec: buildCNPGClusterSpec(cfg, secretName), + Spec: buildCNPGClusterSpec(cfg, secretName, postgresMetricsEnabled), } if err := ctrl.SetControllerReference(cluster, cnpg, scheme); err != nil { return nil, fmt.Errorf("setting controller reference on CNPG cluster: %w", err) @@ -576,6 +535,9 @@ func normalizeCNPGClusterSpec(spec cnpgv1.ClusterSpec, customDefinedParameters m if len(spec.PostgresConfiguration.PgHBA) > 0 { normalized.PgHBA = spec.PostgresConfiguration.PgHBA } + if spec.InheritedMetadata != nil && len(spec.InheritedMetadata.Annotations) > 0 { + normalized.InheritedAnnotations = spec.InheritedMetadata.Annotations + } if spec.Bootstrap != nil && spec.Bootstrap.InitDB != nil { normalized.DefaultDatabase = spec.Bootstrap.InitDB.Database normalized.Owner = spec.Bootstrap.InitDB.Owner @@ -674,17 +636,17 @@ func poolerInstanceCount(p *cnpgv1.Pooler) (desired, scheduled int32) { } // createOrUpdateConnectionPoolers creates RW and RO poolers if they don't exist. -func createOrUpdateConnectionPoolers(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster) error { - if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readWriteEndpoint); err != nil { +func createOrUpdateConnectionPoolers(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerMetricsEnabled bool) error { + if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readWriteEndpoint, poolerMetricsEnabled); err != nil { return fmt.Errorf("reconciling RW pooler: %w", err) } - if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readOnlyEndpoint); err != nil { + if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readOnlyEndpoint, poolerMetricsEnabled); err != nil { return fmt.Errorf("reconciling RO pooler: %w", err) } return nil } -func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) error { +func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string, poolerMetricsEnabled bool) error { logger := log.FromContext(ctx) poolerName := poolerResourceName(cluster.Name, poolerType) existing := &cnpgv1.Pooler{} @@ -696,14 +658,14 @@ func createConnectionPooler(ctx context.Context, c client.Client, scheme *runtim return err } logger.Info("CNPG Pooler creation started", "name", poolerName, "type", poolerType) - pooler, err := buildCNPGPooler(scheme, cluster, cfg, cnpgCluster, poolerType) + pooler, err := buildCNPGPooler(scheme, cluster, cfg, cnpgCluster, poolerType, poolerMetricsEnabled) if err != nil { return err } return c.Create(ctx, pooler) } -func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string) (*cnpgv1.Pooler, error) { +func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerType string, poolerMetricsEnabled bool) (*cnpgv1.Pooler, error) { pc := cfg.CNPG.ConnectionPooler instances := *pc.Instances mode := cnpgv1.PgBouncerPoolMode(*pc.Mode) @@ -719,6 +681,21 @@ func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresClust }, }, } + if poolerMetricsEnabled { + pooler.Spec.Template = &cnpgv1.PodTemplateSpec{ + ObjectMeta: cnpgv1.Metadata{ + Annotations: buildPoolerScrapeAnnotations(), + }, + Spec: corev1.PodSpec{ + // CNPG's Pooler CRD requires template.spec.containers to be present. + // A minimal named container lets CNPG's podspec builder merge in the + // real PgBouncer image/command/ports while still carrying our annotations. + Containers: []corev1.Container{ + {Name: "pgbouncer"}, + }, + }, + } + } if err := ctrl.SetControllerReference(cluster, pooler, scheme); err != nil { return nil, fmt.Errorf("setting controller reference on CNPG pooler: %w", err) } @@ -864,50 +841,6 @@ func setStatus(ctx context.Context, c client.Client, metrics ports.Recorder, clu return nil } -// setCondition updates a specific condition on the PostgresCluster status. -func setCondition(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string) error { - base := cluster.Status.DeepCopy() - - meta.SetStatusCondition(&cluster.Status.Conditions, metav1.Condition{ - Type: string(condType), - Status: status, - Reason: string(reason), - Message: message, - ObservedGeneration: cluster.Generation, - }) - - if equality.Semantic.DeepEqual(*base, cluster.Status) { - return nil - } - if err := c.Status().Update(ctx, cluster); err != nil { - return fmt.Errorf("failed to update PostgresCluster condition: %w", err) - } - return nil -} - -// removeCondition removes a specific condition from the PostgresCluster status. -func removeCondition(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, condType conditionTypes) error { - base := cluster.Status.DeepCopy() - - meta.RemoveStatusCondition(&cluster.Status.Conditions, string(condType)) - - if equality.Semantic.DeepEqual(*base, cluster.Status) { - return nil - } - if err := c.Status().Update(ctx, cluster); err != nil { - return fmt.Errorf("failed to remove PostgresCluster condition: %w", err) - } - return nil -} - -func handleMonitoringFailure(ctx context.Context, c client.Client, rc *ReconcileContext, cluster *enterprisev4.PostgresCluster, reason conditionReasons, eventReason string, message string, err error) error { - rc.emitWarning(cluster, eventReason, message) - if statusErr := setCondition(ctx, c, cluster, monitoringReady, metav1.ConditionFalse, reason, message); statusErr != nil { - return errors.Join(err, fmt.Errorf("failed to update MonitoringReady condition: %w", statusErr)) - } - return err -} - // generateConfigMap builds a ConfigMap with connection details for the PostgresCluster. func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster, secretName string) (*corev1.ConfigMap, error) { cmName := fmt.Sprintf("%s%s", cluster.Name, defaultConfigMapSuffix) @@ -1144,4 +1077,4 @@ func generatePassword() (string, error) { symbols = 0 ) return password.Generate(length, digits, symbols, false, true) -} +} \ No newline at end of file diff --git a/pkg/postgresql/cluster/core/cluster_unit_test.go b/pkg/postgresql/cluster/core/cluster_unit_test.go index 1a0659c98..49e5382b2 100644 --- a/pkg/postgresql/cluster/core/cluster_unit_test.go +++ b/pkg/postgresql/cluster/core/cluster_unit_test.go @@ -204,6 +204,27 @@ func TestNormalizeCNPGClusterSpec(t *testing.T) { Owner: "admin", }, }, + { + name: "inherited annotations included when non-empty", + spec: cnpgv1.ClusterSpec{ + ImageName: "img:18", + Instances: 1, + InheritedMetadata: &cnpgv1.EmbeddedObjectMetadata{ + Annotations: map[string]string{ + prometheusScrapeAnnotation: "true", + prometheusPortAnnotation: postgresMetricsPortString, + }, + }, + }, + expected: normalizedCNPGClusterSpec{ + ImageName: "img:18", + Instances: 1, + InheritedAnnotations: map[string]string{ + prometheusScrapeAnnotation: "true", + prometheusPortAnnotation: postgresMetricsPortString, + }, + }, + }, { name: "nil bootstrap leaves database and owner empty", spec: cnpgv1.ClusterSpec{ @@ -354,7 +375,7 @@ func TestBuildCNPGClusterSpec(t *testing.T) { }, } - spec := buildCNPGClusterSpec(cfg, "my-secret") + spec := buildCNPGClusterSpec(cfg, "my-secret", false) assert.Equal(t, "ghcr.io/cloudnative-pg/postgresql:18", spec.ImageName) assert.Equal(t, 3, spec.Instances) @@ -371,6 +392,16 @@ func TestBuildCNPGClusterSpec(t *testing.T) { require.Len(t, spec.PostgresConfiguration.PgHBA, 2) assert.Equal(t, "hostssl all all 0.0.0.0/0 scram-sha-256", spec.PostgresConfiguration.PgHBA[0]) assert.Equal(t, "host replication all 10.0.0.0/8 md5", spec.PostgresConfiguration.PgHBA[1]) + assert.Nil(t, spec.InheritedMetadata) + + t.Run("adds postgres scrape annotations when enabled", func(t *testing.T) { + spec := buildCNPGClusterSpec(cfg, "my-secret", true) + + require.NotNil(t, spec.InheritedMetadata) + assert.Equal(t, "true", spec.InheritedMetadata.Annotations[prometheusScrapeAnnotation]) + assert.Equal(t, metricsPath, spec.InheritedMetadata.Annotations[prometheusPathAnnotation]) + assert.Equal(t, postgresMetricsPortString, spec.InheritedMetadata.Annotations[prometheusPortAnnotation]) + }) } func TestBuildCNPGPooler(t *testing.T) { @@ -403,7 +434,7 @@ func TestBuildCNPGPooler(t *testing.T) { } t.Run("rw pooler", func(t *testing.T) { - pooler, err := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "rw") + pooler, err := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "rw", false) require.NoError(t, err) assert.Equal(t, "my-cluster-pooler-rw", pooler.Name) @@ -416,14 +447,21 @@ func TestBuildCNPGPooler(t *testing.T) { assert.Equal(t, "25", pooler.Spec.PgBouncer.Parameters["default_pool_size"]) require.Len(t, pooler.OwnerReferences, 1) assert.Equal(t, "test-uid", string(pooler.OwnerReferences[0].UID)) + assert.Nil(t, pooler.Spec.Template) }) t.Run("ro pooler", func(t *testing.T) { - pooler, err := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "ro") + pooler, err := buildCNPGPooler(scheme, postgresCluster, cfg, cnpgCluster, "ro", true) require.NoError(t, err) assert.Equal(t, "my-cluster-pooler-ro", pooler.Name) assert.Equal(t, cnpgv1.PoolerType("ro"), pooler.Spec.Type) + require.NotNil(t, pooler.Spec.Template) + assert.Equal(t, "true", pooler.Spec.Template.ObjectMeta.Annotations[prometheusScrapeAnnotation]) + assert.Equal(t, metricsPath, pooler.Spec.Template.ObjectMeta.Annotations[prometheusPathAnnotation]) + assert.Equal(t, poolerMetricsPortString, pooler.Spec.Template.ObjectMeta.Annotations[prometheusPortAnnotation]) + require.Len(t, pooler.Spec.Template.Spec.Containers, 1) + assert.Equal(t, "pgbouncer", pooler.Spec.Template.Spec.Containers[0].Name) }) } @@ -453,7 +491,7 @@ func TestBuildCNPGCluster(t *testing.T) { }, } - cluster, err := buildCNPGCluster(scheme, postgresCluster, cfg, "my-secret") + cluster, err := buildCNPGCluster(scheme, postgresCluster, cfg, "my-secret", true) require.NoError(t, err) assert.Equal(t, "my-cluster", cluster.Name) @@ -461,6 +499,8 @@ func TestBuildCNPGCluster(t *testing.T) { require.Len(t, cluster.OwnerReferences, 1) assert.Equal(t, "pg-uid", string(cluster.OwnerReferences[0].UID)) assert.Equal(t, 3, cluster.Spec.Instances) + require.NotNil(t, cluster.Spec.InheritedMetadata) + assert.Equal(t, postgresMetricsPortString, cluster.Spec.InheritedMetadata.Annotations[prometheusPortAnnotation]) } func TestClusterSecretExists(t *testing.T) { @@ -924,7 +964,7 @@ func TestCreateConnectionPooler(t *testing.T) { t.Run(tt.name, func(t *testing.T) { c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(tt.objects...).Build() - err := createConnectionPooler(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpg, "rw") + err := createConnectionPooler(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpg, "rw", false) require.NoError(t, err) fetched := &cnpgv1.Pooler{} @@ -1098,7 +1138,7 @@ func TestCreateOrUpdateConnectionPoolers(t *testing.T) { t.Run("creates both rw and ro poolers", func(t *testing.T) { c := fake.NewClientBuilder().WithScheme(scheme).Build() - err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster) + err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster, false) require.NoError(t, err) @@ -1128,7 +1168,7 @@ func TestCreateOrUpdateConnectionPoolers(t *testing.T) { } c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(existing...).Build() - err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster) + err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster, false) require.NoError(t, err) rw := &cnpgv1.Pooler{} @@ -1138,4 +1178,26 @@ func TestCreateOrUpdateConnectionPoolers(t *testing.T) { require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-ro", Namespace: "default"}, ro)) assert.Equal(t, int32(1), *ro.Spec.Instances) }) + + t.Run("creates both rw and ro poolers with scrape annotations when metrics are enabled", func(t *testing.T) { + c := fake.NewClientBuilder().WithScheme(scheme).Build() + + err := createOrUpdateConnectionPoolers(context.Background(), c, scheme, cluster.DeepCopy(), cfg, cnpgCluster, true) + + require.NoError(t, err) + + rw := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-rw", Namespace: "default"}, rw)) + require.NotNil(t, rw.Spec.Template) + assert.Equal(t, "true", rw.Spec.Template.ObjectMeta.Annotations[prometheusScrapeAnnotation]) + assert.Equal(t, metricsPath, rw.Spec.Template.ObjectMeta.Annotations[prometheusPathAnnotation]) + assert.Equal(t, poolerMetricsPortString, rw.Spec.Template.ObjectMeta.Annotations[prometheusPortAnnotation]) + + ro := &cnpgv1.Pooler{} + require.NoError(t, c.Get(context.Background(), client.ObjectKey{Name: "my-cluster-pooler-ro", Namespace: "default"}, ro)) + require.NotNil(t, ro.Spec.Template) + assert.Equal(t, "true", ro.Spec.Template.ObjectMeta.Annotations[prometheusScrapeAnnotation]) + assert.Equal(t, metricsPath, ro.Spec.Template.ObjectMeta.Annotations[prometheusPathAnnotation]) + assert.Equal(t, poolerMetricsPortString, ro.Spec.Template.ObjectMeta.Annotations[prometheusPortAnnotation]) + }) } diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go index d2692ed9b..b60f3f643 100644 --- a/pkg/postgresql/cluster/core/events.go +++ b/pkg/postgresql/cluster/core/events.go @@ -29,9 +29,6 @@ const ( EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" EventClusterDegraded = "ClusterDegraded" EventCleanupFailed = "CleanupFailed" - EventMonitoringReady = "MonitoringReady" - EventMetricsServiceReconcileFailed = "MetricsServiceReconcileFailed" - EventServiceMonitorReconcileFailed = "ServiceMonitorReconcileFailed" ) func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { @@ -63,11 +60,3 @@ func (rc *ReconcileContext) emitPoolerReadyTransition(obj client.Object, conditi rc.emitNormal(obj, EventPoolerReady, "Connection poolers are ready") } } - -// emitMonitoringReadyTransition emits MonitoringReady only when the condition was not -// previously True — prevents re-emission on every reconcile while already ready. -func (rc *ReconcileContext) emitMonitoringReadyTransition(obj client.Object, conditions []metav1.Condition) { - if !meta.IsStatusConditionTrue(conditions, string(monitoringReady)) { - rc.emitNormal(obj, EventMonitoringReady, "Monitoring resources are ready") - } -} \ No newline at end of file diff --git a/pkg/postgresql/cluster/core/monitoring.go b/pkg/postgresql/cluster/core/monitoring.go index e422a25d9..2b18ba497 100644 --- a/pkg/postgresql/cluster/core/monitoring.go +++ b/pkg/postgresql/cluster/core/monitoring.go @@ -1,41 +1,41 @@ package core import ( - "context" - "fmt" - - monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" - corev1 "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/intstr" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - "sigs.k8s.io/controller-runtime/pkg/log" ) const ( - // metrics - postgresMetricsServiceSuffix = "-postgres-metrics" - postgresMetricsPortName = "metrics" - postgresMetricsPort = int32(9187) - poolerMetricsPortName = "metrics" - poolerMetricsPort = int32(9127) + prometheusScrapeAnnotation = "prometheus.io/scrape" + prometheusPathAnnotation = "prometheus.io/path" + prometheusPortAnnotation = "prometheus.io/port" - // labels - labelManagedBy = "app.kubernetes.io/managed-by" - labelManagedByValue = "postgrescluster-controller" - labelObservabilityComponent = "enterprise.splunk.com/observability-component" - cnpgClusterLabelName = "cnpg.io/cluster" - cnpgPoolerNameLabel = "cnpg.io/poolerName" - cnpgPodRoleInstance = "instance" - cnpgPodRoleLabelName = "cnpg.io/podRole" + metricsPath = "/metrics" + postgresMetricsPortString = "9187" + poolerMetricsPortString = "9127" ) +func buildScrapeAnnotations(port string) map[string]string { + return map[string]string{ + prometheusScrapeAnnotation: "true", + prometheusPathAnnotation: metricsPath, + prometheusPortAnnotation: port, + } +} + +func removeScrapeAnnotations(annotations map[string]string) { + delete(annotations, prometheusScrapeAnnotation) + delete(annotations, prometheusPathAnnotation) + delete(annotations, prometheusPortAnnotation) +} + +func buildPostgresScrapeAnnotations() map[string]string { + return buildScrapeAnnotations(postgresMetricsPortString) +} + +func buildPoolerScrapeAnnotations() map[string]string { + return buildScrapeAnnotations(poolerMetricsPortString) +} + func isPostgreSQLMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { if class == nil || class.Spec.Config == nil || class.Spec.Config.Monitoring == nil { return false @@ -65,403 +65,3 @@ func isConnectionPoolerMetricsEnabled(cluster *enterprisev4.PostgresCluster, cla override := cluster.Spec.Monitoring.ConnectionPoolerMetrics.Disabled return override == nil || !*override } - -func buildPostgreSQLMetricsService(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster) (*corev1.Service, error) { - svc := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: cluster.Name + postgresMetricsServiceSuffix, - Namespace: cluster.Namespace, - Labels: map[string]string{ - labelManagedBy: labelManagedByValue, - labelObservabilityComponent: "postgresql-metrics", - cnpgClusterLabelName: cluster.Name, - }, - }, - Spec: corev1.ServiceSpec{ - Type: corev1.ServiceTypeClusterIP, - Selector: map[string]string{ - cnpgClusterLabelName: cluster.Name, - cnpgPodRoleLabelName: cnpgPodRoleInstance, - }, - Ports: []corev1.ServicePort{ - { - Name: postgresMetricsPortName, - Port: postgresMetricsPort, - Protocol: corev1.ProtocolTCP, - TargetPort: intstr.FromString(postgresMetricsPortName), - }, - }, - }, - } - - if err := ctrl.SetControllerReference(cluster, svc, scheme); err != nil { - return nil, fmt.Errorf("setting controller reference on PostgreSQL metrics Service: %w", err) - } - - return svc, nil -} - -func poolerMetricsServiceName(clusterName, poolerType string) string { - return fmt.Sprintf("%s-pooler-%s-metrics", clusterName, poolerType) -} -func buildConnectionPoolerMetricsService( - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, - poolerType string, -) (*corev1.Service, error) { - poolerName := poolerResourceName(cluster.Name, poolerType) - - svc := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: poolerMetricsServiceName(cluster.Name, poolerType), - Namespace: cluster.Namespace, - Labels: map[string]string{ - labelManagedBy: labelManagedByValue, - labelObservabilityComponent: "pgbouncer-metrics", - cnpgClusterLabelName: cluster.Name, - cnpgPoolerNameLabel: poolerName, - }, - }, - Spec: corev1.ServiceSpec{ - Type: corev1.ServiceTypeClusterIP, - Selector: map[string]string{ - cnpgPoolerNameLabel: poolerName, - }, - Ports: []corev1.ServicePort{ - { - Name: poolerMetricsPortName, - Port: poolerMetricsPort, - Protocol: corev1.ProtocolTCP, - TargetPort: intstr.FromString(poolerMetricsPortName), - }, - }, - }, - } - - if err := ctrl.SetControllerReference(cluster, svc, scheme); err != nil { - return nil, fmt.Errorf("setting controller reference on PgBouncer metrics Service: %w", err) - } - - return svc, nil -} - -func reconcilePostgreSQLMetricsService(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, enabled bool) error { - logger := log.FromContext(ctx) - serviceName := cluster.Name + postgresMetricsServiceSuffix - - if !enabled { - existing := &corev1.Service{} - err := c.Get(ctx, types.NamespacedName{Name: serviceName, Namespace: cluster.Namespace}, existing) - switch { - case apierrors.IsNotFound(err): - return nil - case err != nil: - return fmt.Errorf("getting PostgreSQL metrics Service %s: %w", serviceName, err) - } - - logger.Info("Deleting PostgreSQL metrics Service", "name", serviceName) - if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("deleting PostgreSQL metrics Service %s: %w", serviceName, err) - } - return nil - } - - desired, err := buildPostgreSQLMetricsService(scheme, cluster) - if err != nil { - return fmt.Errorf("building PostgreSQL metrics Service: %w", err) - } - - live := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: desired.Name, - Namespace: desired.Namespace, - }, - } - - _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { - live.Labels = desired.Labels - live.Annotations = desired.Annotations - live.Spec.Type = desired.Spec.Type - live.Spec.Selector = desired.Spec.Selector - live.Spec.Ports = desired.Spec.Ports - - if !metav1.IsControlledBy(live, cluster) { - if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { - return fmt.Errorf("setting controller reference on PostgreSQL metrics Service: %w", err) - } - } - return nil - }) - if err != nil { - return fmt.Errorf("reconciling PostgreSQL metrics Service %s: %w", desired.Name, err) - } - - return nil -} - -func reconcileConnectionPoolerMetricsService( - ctx context.Context, - c client.Client, - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, - poolerType string, - enabled bool, -) error { - logger := log.FromContext(ctx) - serviceName := poolerMetricsServiceName(cluster.Name, poolerType) - - if !enabled { - existing := &corev1.Service{} - err := c.Get(ctx, types.NamespacedName{Name: serviceName, Namespace: cluster.Namespace}, existing) - switch { - case apierrors.IsNotFound(err): - return nil - case err != nil: - return fmt.Errorf("getting PgBouncer metrics Service %s: %w", serviceName, err) - } - - logger.Info("Deleting PgBouncer metrics Service", "name", serviceName, "poolerType", poolerType) - if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("deleting PgBouncer metrics Service %s: %w", serviceName, err) - } - return nil - } - - desired, err := buildConnectionPoolerMetricsService(scheme, cluster, poolerType) - if err != nil { - return fmt.Errorf("building PgBouncer metrics Service for %s pooler: %w", poolerType, err) - } - - live := &corev1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: desired.Name, - Namespace: desired.Namespace, - }, - } - - _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { - live.Labels = desired.Labels - live.Annotations = desired.Annotations - live.Spec.Type = desired.Spec.Type - live.Spec.Selector = desired.Spec.Selector - live.Spec.Ports = desired.Spec.Ports - - if !metav1.IsControlledBy(live, cluster) { - if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { - return fmt.Errorf("setting controller reference on PgBouncer metrics Service: %w", err) - } - } - return nil - }) - if err != nil { - return fmt.Errorf("reconciling PgBouncer metrics Service %s: %w", desired.Name, err) - } - - return nil -} - -func postgresMetricsServiceMonitorName(clusterName string) string { - return clusterName + "-postgres-metrics-monitor" -} - -func poolerMetricsServiceMonitorName(clusterName, poolerType string) string { - return fmt.Sprintf("%s-pooler-%s-metrics-monitor", clusterName, poolerType) -} - -func buildPostgreSQLMetricsServiceMonitor( - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, -) (*monitoringv1.ServiceMonitor, error) { - sm := &monitoringv1.ServiceMonitor{ - ObjectMeta: metav1.ObjectMeta{ - Name: postgresMetricsServiceMonitorName(cluster.Name), - Namespace: cluster.Namespace, - Labels: map[string]string{ - labelManagedBy: labelManagedByValue, - labelObservabilityComponent: "postgresql-metrics", - cnpgClusterLabelName: cluster.Name, - }, - }, - Spec: monitoringv1.ServiceMonitorSpec{ - Selector: metav1.LabelSelector{ - MatchLabels: map[string]string{ - labelObservabilityComponent: "postgresql-metrics", - cnpgClusterLabelName: cluster.Name, - }, - }, - Endpoints: []monitoringv1.Endpoint{ - { - Port: postgresMetricsPortName, - Path: "/metrics", - Scheme: "http", - }, - }, - }, - } - - if err := ctrl.SetControllerReference(cluster, sm, scheme); err != nil { - return nil, fmt.Errorf("setting controller reference on PostgreSQL ServiceMonitor: %w", err) - } - - return sm, nil -} - -func buildConnectionPoolerMetricsServiceMonitor( - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, - poolerType string, -) (*monitoringv1.ServiceMonitor, error) { - poolerName := poolerResourceName(cluster.Name, poolerType) - - sm := &monitoringv1.ServiceMonitor{ - ObjectMeta: metav1.ObjectMeta{ - Name: poolerMetricsServiceMonitorName(cluster.Name, poolerType), - Namespace: cluster.Namespace, - Labels: map[string]string{ - labelManagedBy: labelManagedByValue, - labelObservabilityComponent: "pgbouncer-metrics", - cnpgClusterLabelName: cluster.Name, - cnpgPoolerNameLabel: poolerName, - }, - }, - Spec: monitoringv1.ServiceMonitorSpec{ - Selector: metav1.LabelSelector{ - MatchLabels: map[string]string{ - labelObservabilityComponent: "pgbouncer-metrics", - cnpgClusterLabelName: cluster.Name, - cnpgPoolerNameLabel: poolerName, - }, - }, - Endpoints: []monitoringv1.Endpoint{ - { - Port: poolerMetricsPortName, - Path: "/metrics", - Scheme: "http", - }, - }, - }, - } - - if err := ctrl.SetControllerReference(cluster, sm, scheme); err != nil { - return nil, fmt.Errorf("setting controller reference on PgBouncer ServiceMonitor: %w", err) - } - - return sm, nil -} - -func reconcilePostgreSQLMetricsServiceMonitor( - ctx context.Context, - c client.Client, - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, - enabled bool, -) error { - logger := log.FromContext(ctx) - name := postgresMetricsServiceMonitorName(cluster.Name) - - if !enabled { - existing := &monitoringv1.ServiceMonitor{} - err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: cluster.Namespace}, existing) - switch { - case apierrors.IsNotFound(err): - return nil - case err != nil: - return fmt.Errorf("getting PostgreSQL ServiceMonitor %s: %w", name, err) - } - - logger.Info("Deleting PostgreSQL ServiceMonitor", "name", name) - if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("deleting PostgreSQL ServiceMonitor %s: %w", name, err) - } - return nil - } - - desired, err := buildPostgreSQLMetricsServiceMonitor(scheme, cluster) - if err != nil { - return fmt.Errorf("building PostgreSQL ServiceMonitor: %w", err) - } - - live := &monitoringv1.ServiceMonitor{ - ObjectMeta: metav1.ObjectMeta{ - Name: desired.Name, - Namespace: desired.Namespace, - }, - } - - _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { - live.Labels = desired.Labels - live.Annotations = desired.Annotations - live.Spec = desired.Spec - - if !metav1.IsControlledBy(live, cluster) { - if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { - return fmt.Errorf("setting controller reference on PostgreSQL ServiceMonitor: %w", err) - } - } - return nil - }) - if err != nil { - return fmt.Errorf("reconciling PostgreSQL ServiceMonitor %s: %w", desired.Name, err) - } - - return nil -} - -func reconcileConnectionPoolerMetricsServiceMonitor( - ctx context.Context, - c client.Client, - scheme *runtime.Scheme, - cluster *enterprisev4.PostgresCluster, - poolerType string, - enabled bool, -) error { - logger := log.FromContext(ctx) - name := poolerMetricsServiceMonitorName(cluster.Name, poolerType) - - if !enabled { - existing := &monitoringv1.ServiceMonitor{} - err := c.Get(ctx, types.NamespacedName{Name: name, Namespace: cluster.Namespace}, existing) - switch { - case apierrors.IsNotFound(err): - return nil - case err != nil: - return fmt.Errorf("getting PgBouncer ServiceMonitor %s: %w", name, err) - } - - logger.Info("Deleting PgBouncer ServiceMonitor", "name", name, "poolerType", poolerType) - if err := c.Delete(ctx, existing); err != nil && !apierrors.IsNotFound(err) { - return fmt.Errorf("deleting PgBouncer ServiceMonitor %s: %w", name, err) - } - return nil - } - - desired, err := buildConnectionPoolerMetricsServiceMonitor(scheme, cluster, poolerType) - if err != nil { - return fmt.Errorf("building PgBouncer ServiceMonitor for %s pooler: %w", poolerType, err) - } - - live := &monitoringv1.ServiceMonitor{ - ObjectMeta: metav1.ObjectMeta{ - Name: desired.Name, - Namespace: desired.Namespace, - }, - } - - _, err = controllerutil.CreateOrUpdate(ctx, c, live, func() error { - live.Labels = desired.Labels - live.Annotations = desired.Annotations - live.Spec = desired.Spec - - if !metav1.IsControlledBy(live, cluster) { - if err := ctrl.SetControllerReference(cluster, live, scheme); err != nil { - return fmt.Errorf("setting controller reference on PgBouncer ServiceMonitor: %w", err) - } - } - return nil - }) - if err != nil { - return fmt.Errorf("reconciling PgBouncer ServiceMonitor %s: %w", desired.Name, err) - } - - return nil -} diff --git a/pkg/postgresql/cluster/core/monitoring_unit_test.go b/pkg/postgresql/cluster/core/monitoring_unit_test.go index fe10c0943..917052efc 100644 --- a/pkg/postgresql/cluster/core/monitoring_unit_test.go +++ b/pkg/postgresql/cluster/core/monitoring_unit_test.go @@ -3,13 +3,8 @@ package core import ( "testing" - monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/utils/ptr" ) @@ -81,6 +76,49 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { } } +func TestBuildScrapeAnnotations(t *testing.T) { + t.Run("postgres annotations", func(t *testing.T) { + got := buildPostgresScrapeAnnotations() + + assert.Equal(t, map[string]string{ + prometheusScrapeAnnotation: "true", + prometheusPathAnnotation: metricsPath, + prometheusPortAnnotation: postgresMetricsPortString, + }, got) + }) + + t.Run("pooler annotations", func(t *testing.T) { + got := buildPoolerScrapeAnnotations() + + assert.Equal(t, map[string]string{ + prometheusScrapeAnnotation: "true", + prometheusPathAnnotation: metricsPath, + prometheusPortAnnotation: poolerMetricsPortString, + }, got) + }) +} + +func TestRemoveScrapeAnnotations(t *testing.T) { + t.Run("removes only managed scrape keys", func(t *testing.T) { + annotations := map[string]string{ + prometheusScrapeAnnotation: "true", + prometheusPathAnnotation: metricsPath, + prometheusPortAnnotation: postgresMetricsPortString, + "custom": "keep-me", + } + + removeScrapeAnnotations(annotations) + + assert.Equal(t, map[string]string{ + "custom": "keep-me", + }, annotations) + }) + + t.Run("nil map is safe", func(t *testing.T) { + removeScrapeAnnotations(nil) + }) +} + func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { tests := []struct { name string @@ -158,104 +196,6 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { } } -func TestBuildPostgreSQLMetricsService(t *testing.T) { - scheme := newMonitoringTestScheme(t) - cluster := newTestMonitoringCluster() - - svc, err := buildPostgreSQLMetricsService(scheme, cluster) - require.NoError(t, err) - - assert.Equal(t, "postgresql-cluster-dev-postgres-metrics", svc.Name) - assert.Equal(t, cluster.Namespace, svc.Namespace) - assert.Equal(t, "postgresql-metrics", svc.Labels[labelObservabilityComponent]) - assert.Equal(t, cluster.Name, svc.Labels[cnpgClusterLabelName]) - assert.Equal(t, cluster.Name, svc.Spec.Selector[cnpgClusterLabelName]) - assert.Equal(t, cnpgPodRoleInstance, svc.Spec.Selector[cnpgPodRoleLabelName]) - require.Len(t, svc.Spec.Ports, 1) - assert.Equal(t, postgresMetricsPortName, svc.Spec.Ports[0].Name) - assert.Equal(t, postgresMetricsPort, svc.Spec.Ports[0].Port) - assert.Equal(t, postgresMetricsPortName, svc.Spec.Ports[0].TargetPort.StrVal) - assertMonitoringOwnerRef(t, svc.OwnerReferences, cluster) -} - -func TestBuildConnectionPoolerMetricsService(t *testing.T) { - scheme := newMonitoringTestScheme(t) - cluster := newTestMonitoringCluster() - - svc, err := buildConnectionPoolerMetricsService(scheme, cluster, readWriteEndpoint) - require.NoError(t, err) - - assert.Equal(t, "postgresql-cluster-dev-pooler-rw-metrics", svc.Name) - assert.Equal(t, "pgbouncer-metrics", svc.Labels[labelObservabilityComponent]) - assert.Equal(t, poolerResourceName(cluster.Name, readWriteEndpoint), svc.Labels[cnpgPoolerNameLabel]) - assert.Equal(t, poolerResourceName(cluster.Name, readWriteEndpoint), svc.Spec.Selector[cnpgPoolerNameLabel]) - require.Len(t, svc.Spec.Ports, 1) - assert.Equal(t, poolerMetricsPortName, svc.Spec.Ports[0].Name) - assert.Equal(t, poolerMetricsPort, svc.Spec.Ports[0].Port) - assert.Equal(t, poolerMetricsPortName, svc.Spec.Ports[0].TargetPort.StrVal) - assertMonitoringOwnerRef(t, svc.OwnerReferences, cluster) -} - -func TestBuildPostgreSQLMetricsServiceMonitor(t *testing.T) { - scheme := newMonitoringTestScheme(t) - cluster := newTestMonitoringCluster() - - sm, err := buildPostgreSQLMetricsServiceMonitor(scheme, cluster) - require.NoError(t, err) - - assert.Equal(t, "postgresql-cluster-dev-postgres-metrics-monitor", sm.Name) - assert.Equal(t, "postgresql-metrics", sm.Labels[labelObservabilityComponent]) - assert.Equal(t, cluster.Name, sm.Spec.Selector.MatchLabels[cnpgClusterLabelName]) - require.Len(t, sm.Spec.Endpoints, 1) - assert.Equal(t, postgresMetricsPortName, sm.Spec.Endpoints[0].Port) - assert.Equal(t, "/metrics", sm.Spec.Endpoints[0].Path) - assert.Equal(t, "http", sm.Spec.Endpoints[0].Scheme) - assertMonitoringOwnerRef(t, sm.OwnerReferences, cluster) -} - -func TestBuildConnectionPoolerMetricsServiceMonitor(t *testing.T) { - scheme := newMonitoringTestScheme(t) - cluster := newTestMonitoringCluster() - - sm, err := buildConnectionPoolerMetricsServiceMonitor(scheme, cluster, readOnlyEndpoint) - require.NoError(t, err) - - assert.Equal(t, "postgresql-cluster-dev-pooler-ro-metrics-monitor", sm.Name) - assert.Equal(t, "pgbouncer-metrics", sm.Labels[labelObservabilityComponent]) - assert.Equal(t, poolerResourceName(cluster.Name, readOnlyEndpoint), sm.Labels[cnpgPoolerNameLabel]) - assert.Equal(t, poolerResourceName(cluster.Name, readOnlyEndpoint), sm.Spec.Selector.MatchLabels[cnpgPoolerNameLabel]) - require.Len(t, sm.Spec.Endpoints, 1) - assert.Equal(t, poolerMetricsPortName, sm.Spec.Endpoints[0].Port) - assert.Equal(t, "/metrics", sm.Spec.Endpoints[0].Path) - assert.Equal(t, "http", sm.Spec.Endpoints[0].Scheme) - assertMonitoringOwnerRef(t, sm.OwnerReferences, cluster) -} - -func newMonitoringTestScheme(t *testing.T) *runtime.Scheme { - t.Helper() - - scheme := runtime.NewScheme() - require.NoError(t, corev1.AddToScheme(scheme)) - require.NoError(t, monitoringv1.AddToScheme(scheme)) - require.NoError(t, enterprisev4.AddToScheme(scheme)) - - return scheme -} - -func newTestMonitoringCluster() *enterprisev4.PostgresCluster { - return &enterprisev4.PostgresCluster{ - TypeMeta: metav1.TypeMeta{ - APIVersion: enterprisev4.GroupVersion.String(), - Kind: "PostgresCluster", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "postgresql-cluster-dev", - Namespace: "test", - UID: "cluster-uid", - }, - } -} - func newClassWithMonitoring( postgresEnabled *bool, poolerEnabled *bool, @@ -273,15 +213,3 @@ func newClassWithMonitoring( }, } } - -func assertMonitoringOwnerRef(t *testing.T, ownerRefs []metav1.OwnerReference, cluster *enterprisev4.PostgresCluster) { - t.Helper() - - require.Len(t, ownerRefs, 1) - assert.Equal(t, cluster.APIVersion, ownerRefs[0].APIVersion) - assert.Equal(t, cluster.Kind, ownerRefs[0].Kind) - assert.Equal(t, cluster.Name, ownerRefs[0].Name) - assert.Equal(t, cluster.UID, ownerRefs[0].UID) - require.NotNil(t, ownerRefs[0].Controller) - assert.True(t, *ownerRefs[0].Controller) -} diff --git a/pkg/postgresql/cluster/core/types.go b/pkg/postgresql/cluster/core/types.go index d4889edaa..7684e6df0 100644 --- a/pkg/postgresql/cluster/core/types.go +++ b/pkg/postgresql/cluster/core/types.go @@ -33,6 +33,7 @@ type normalizedCNPGClusterSpec struct { Owner string StorageSize string Resources corev1.ResourceRequirements + InheritedAnnotations map[string]string } // MergedConfig is the resolved configuration after overlaying PostgresCluster on PostgresClusterClass defaults. @@ -76,27 +77,21 @@ const ( failedClusterPhase reconcileClusterPhases = "Failed" // condition types - clusterReady conditionTypes = "ClusterReady" - poolerReady conditionTypes = "PoolerReady" - monitoringReady conditionTypes = "MonitoringReady" + clusterReady conditionTypes = "ClusterReady" + poolerReady conditionTypes = "PoolerReady" // condition reasons — clusterReady - reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" - reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" - reasonClusterBuildFailed conditionReasons = "ClusterBuildFailed" - reasonClusterBuildSucceeded conditionReasons = "ClusterBuildSucceeded" - reasonClusterGetFailed conditionReasons = "ClusterGetFailed" - reasonClusterPatchFailed conditionReasons = "ClusterPatchFailed" - reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" - reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" - reasonUserSecretFailed conditionReasons = "UserSecretReconciliationFailed" - reasonSuperUserSecretFailed conditionReasons = "SuperUserSecretFailed" - reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" - reasonObservabilityResourcesReady conditionReasons = "ObservabilityResourcesReady" - reasonPostgresMetricsMonitorFailed conditionReasons = "PostgresMetricsMonitorFailed" - reasonPostgresMetricsServiceFailed conditionReasons = "PostgresMetricsServiceFailed" - reasonPoolerMetricsServiceFailed conditionReasons = "PoolerMetricsServiceFailed" - reasonPoolerMetricsMonitorFailed conditionReasons = "PoolerMetricsMonitorFailed" + reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" + reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" + reasonClusterBuildFailed conditionReasons = "ClusterBuildFailed" + reasonClusterBuildSucceeded conditionReasons = "ClusterBuildSucceeded" + reasonClusterGetFailed conditionReasons = "ClusterGetFailed" + reasonClusterPatchFailed conditionReasons = "ClusterPatchFailed" + reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" + reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" + reasonUserSecretFailed conditionReasons = "UserSecretReconciliationFailed" + reasonSuperUserSecretFailed conditionReasons = "SuperUserSecretFailed" + reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" // condition reasons — poolerReady reasonPoolerReconciliationFailed conditionReasons = "PoolerReconciliationFailed" diff --git a/test/postgresql/monitoring/postgrescluster.yaml b/test/postgresql/monitoring/postgrescluster.yaml new file mode 100644 index 000000000..f572db864 --- /dev/null +++ b/test/postgresql/monitoring/postgrescluster.yaml @@ -0,0 +1,7 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresCluster +metadata: + name: pg-e2e +spec: + class: pg-monitoring + clusterDeletionPolicy: Delete diff --git a/test/postgresql/monitoring/postgresclusterclass.yaml b/test/postgresql/monitoring/postgresclusterclass.yaml new file mode 100644 index 000000000..37f2db96c --- /dev/null +++ b/test/postgresql/monitoring/postgresclusterclass.yaml @@ -0,0 +1,21 @@ +apiVersion: enterprise.splunk.com/v4 +kind: PostgresClusterClass +metadata: + name: pg-monitoring +spec: + provisioner: postgresql.cnpg.io + config: + instances: 2 + storage: 1Gi + postgresVersion: "17" + connectionPoolerEnabled: true + monitoring: + postgresqlMetrics: + enabled: true + connectionPoolerMetrics: + enabled: true + cnpg: + primaryUpdateMethod: switchover + connectionPooler: + instances: 2 + mode: transaction diff --git a/test/postgresql/monitoring/values.yaml b/test/postgresql/monitoring/values.yaml new file mode 100644 index 000000000..32079b7b5 --- /dev/null +++ b/test/postgresql/monitoring/values.yaml @@ -0,0 +1,37 @@ +grafana: + adminPassword: admin + +alertmanager: + enabled: false + +kubeStateMetrics: + enabled: false + +nodeExporter: + enabled: false + +prometheus: + prometheusSpec: + additionalScrapeConfigs: + - job_name: annotated-pods + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] + action: replace + target_label: __metrics_path__ + regex: (.+) + - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + action: replace + regex: ([^:]+)(?::\d+)?;(\d+) + replacement: $1:$2 + target_label: __address__ + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: namespace + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: pod From 31e0fa06ff74686284b189d88d33fe4a1c33c280 Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Wed, 15 Apr 2026 14:41:55 +0200 Subject: [PATCH 27/43] update metrics and dashboard --- docs/PostgreSQLObservabilityDashboard.json | 161 +++++++++++------- docs/postgresSQLMonitoring-e2e.md | 16 +- .../controller/postgrescluster_controller.go | 2 + .../monitoring/postgrescluster.yaml | 7 - .../monitoring/postgresclusterclass.yaml | 21 --- 5 files changed, 115 insertions(+), 92 deletions(-) delete mode 100644 test/postgresql/monitoring/postgrescluster.yaml delete mode 100644 test/postgresql/monitoring/postgresclusterclass.yaml diff --git a/docs/PostgreSQLObservabilityDashboard.json b/docs/PostgreSQLObservabilityDashboard.json index 913e730b6..e9975ff59 100644 --- a/docs/PostgreSQLObservabilityDashboard.json +++ b/docs/PostgreSQLObservabilityDashboard.json @@ -52,7 +52,7 @@ }, "gridPos": { "h": 4, - "w": 6, + "w": 4, "x": 0, "y": 0 }, @@ -63,9 +63,7 @@ "justifyMode": "center", "orientation": "auto", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -75,7 +73,7 @@ "targets": [ { "editorMode": "code", - "expr": "count(count by (pod) (cnpg_pg_postmaster_start_time_seconds{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"}))", + "expr": "count(count by (pod) (cnpg_pg_postmaster_start_time{namespace=\"$namespace\",pod=~\"$cluster-[0-9]+\"}))", "legendFormat": "postgres pods", "range": true, "refId": "A" @@ -128,8 +126,8 @@ }, "gridPos": { "h": 4, - "w": 6, - "x": 6, + "w": 4, + "x": 4, "y": 0 }, "id": 2, @@ -139,9 +137,7 @@ "justifyMode": "center", "orientation": "auto", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -151,7 +147,7 @@ "targets": [ { "editorMode": "code", - "expr": "max(cnpg_pgbouncer_up{namespace=\"$namespace\",service=\"$cluster-pooler-rw-metrics\"})", + "expr": "max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{namespace=\"$namespace\",pod=~\"$cluster-pooler-rw-.*\"}, 1))", "legendFormat": "rw", "range": true, "refId": "A" @@ -204,8 +200,8 @@ }, "gridPos": { "h": 4, - "w": 6, - "x": 12, + "w": 4, + "x": 8, "y": 0 }, "id": 3, @@ -215,9 +211,7 @@ "justifyMode": "center", "orientation": "auto", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -227,7 +221,7 @@ "targets": [ { "editorMode": "code", - "expr": "max(cnpg_pgbouncer_up{namespace=\"$namespace\",service=\"$cluster-pooler-ro-metrics\"})", + "expr": "max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{namespace=\"$namespace\",pod=~\"$cluster-pooler-ro-.*\"}, 1))", "legendFormat": "ro", "range": true, "refId": "A" @@ -266,8 +260,8 @@ }, "gridPos": { "h": 4, - "w": 6, - "x": 18, + "w": 4, + "x": 12, "y": 0 }, "id": 4, @@ -277,9 +271,7 @@ "justifyMode": "center", "orientation": "auto", "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "calcs": ["lastNotNull"], "fields": "", "values": false }, @@ -289,7 +281,7 @@ "targets": [ { "editorMode": "code", - "expr": "sum(rate(cnpg_pg_stat_archiver_archived_count{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"}[5m]))", + "expr": "sum(rate(cnpg_pg_stat_archiver_archived_count{namespace=\"$namespace\",pod=~\"$cluster-[0-9]+\"}[5m]))", "legendFormat": "archive rate", "range": true, "refId": "A" @@ -298,6 +290,70 @@ "title": "Archive Rate", "type": "stat" }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 16, + "y": 0 + }, + "id": 5, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": ["lastNotNull"], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.4.2", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(splunk_operator_postgres_databases{phase=\"Failed\"})", + "legendFormat": "failed", + "range": true, + "refId": "A" + } + ], + "title": "Failed Databases", + "type": "stat" + }, { "datasource": { "type": "prometheus", @@ -380,7 +436,7 @@ "targets": [ { "editorMode": "code", - "expr": "sum by (datname) (cnpg_pg_database_size_bytes{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"})", + "expr": "sum by (datname) (cnpg_pg_database_size_bytes{namespace=\"$namespace\",pod=~\"$cluster-[0-9]+\"})", "legendFormat": "{{datname}}", "range": true, "refId": "A" @@ -471,15 +527,15 @@ "targets": [ { "editorMode": "code", - "expr": "sum by (service) (cnpg_pgbouncer_pools_cl_active{namespace=\"$namespace\",service=~\"$cluster-pooler-(rw|ro)-metrics\"})", - "legendFormat": "{{service}} active", + "expr": "sum by (pooler) (label_replace(cnpg_pgbouncer_pools_cl_active{namespace=\"$namespace\",pod=~\"$cluster-pooler-(rw|ro)-.*\"}, \"pooler\", \"$1\", \"pod\", \".*-pooler-(rw|ro)-.*\"))", + "legendFormat": "{{pooler}} active", "range": true, "refId": "A" }, { "editorMode": "code", - "expr": "sum by (service) (cnpg_pgbouncer_pools_cl_waiting{namespace=\"$namespace\",service=~\"$cluster-pooler-(rw|ro)-metrics\"})", - "legendFormat": "{{service}} waiting", + "expr": "sum by (pooler) (label_replace(cnpg_pgbouncer_pools_cl_waiting{namespace=\"$namespace\",pod=~\"$cluster-pooler-(rw|ro)-.*\"}, \"pooler\", \"$1\", \"pod\", \".*-pooler-(rw|ro)-.*\"))", + "legendFormat": "{{pooler}} waiting", "range": true, "refId": "B" } @@ -569,14 +625,14 @@ "targets": [ { "editorMode": "code", - "expr": "sum(rate(cnpg_pg_stat_archiver_archived_count{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"}[5m]))", + "expr": "sum(rate(cnpg_pg_stat_archiver_archived_count{namespace=\"$namespace\",pod=~\"$cluster-[0-9]+\"}[5m]))", "legendFormat": "archived WAL / sec", "range": true, "refId": "A" }, { "editorMode": "code", - "expr": "sum(cnpg_pg_wal_files_total{namespace=\"$namespace\",service=\"$cluster-postgres-metrics\"})", + "expr": "sum(cnpg_collector_pg_wal{namespace=\"$namespace\",pod=~\"$cluster-[0-9]+\",value=\"count\"})", "legendFormat": "wal files total", "range": true, "refId": "B" @@ -594,7 +650,7 @@ }, "id": 100, "options": { - "content": "## Controller-Runtime (built-in, zero code)\nReconcile count, duration, errors — provided automatically by the framework.", + "content": "## Controller-Runtime (built-in, zero code)\nReconcile count, duration, errors \u2014 provided automatically by the framework.", "mode": "markdown" }, "title": "", @@ -736,7 +792,7 @@ }, "id": 200, "options": { - "content": "## Domain Metrics (custom, `splunk_operator_postgres_*`)\nFleet state gauges (collected every reconcile) and status transitions (emitted on condition changes).", + "content": "## Domain Metrics (custom, `splunk_operator_postgres_*`)\nFleet state gauges (collected every reconcile) and status transitions (emitted on condition changes).\n\nRuntime PostgreSQL and PgBouncer panels above assume annotation-based pod scraping and filter by `pod`, not dedicated metrics Services.", "mode": "markdown" }, "title": "", @@ -758,9 +814,7 @@ "legend": { "displayMode": "table", "placement": "right", - "values": [ - "value" - ] + "values": ["value"] }, "pieType": "donut" }, @@ -796,9 +850,7 @@ "legend": { "displayMode": "table", "placement": "right", - "values": [ - "value" - ] + "values": ["value"] }, "pieType": "donut" }, @@ -914,13 +966,7 @@ "refresh": "30s", "schemaVersion": 39, "style": "dark", - "tags": [ - "postgresql", - "cnpg", - "pgbouncer", - "splunk-operator", - "reference" - ], + "tags": ["postgresql", "cnpg", "pgbouncer", "splunk-operator", "reference"], "templating": { "list": [ { @@ -944,14 +990,14 @@ { "current": { "selected": true, - "text": "default", - "value": "default" + "text": "test", + "value": "test" }, "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "definition": "label_values(cnpg_pg_postmaster_start_time_seconds, namespace)", + "definition": "label_values(kube_pod_labels{label_cnpg_io_cluster!=\"\"}, namespace)", "hide": 0, "includeAll": false, "label": "Namespace", @@ -959,7 +1005,7 @@ "name": "namespace", "options": [], "query": { - "query": "label_values(cnpg_pg_postmaster_start_time_seconds, namespace)", + "query": "label_values(kube_pod_labels{label_cnpg_io_cluster!=\"\"}, namespace)", "refId": "Prometheus-namespace" }, "refresh": 2, @@ -970,30 +1016,31 @@ }, { "current": { - "selected": false, - "text": "", - "value": "" + "selected": true, + "text": "All", + "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "definition": "label_values(cnpg_pg_postmaster_start_time_seconds{namespace=\"$namespace\"}, service)", + "definition": "label_values(kube_pod_labels{label_cnpg_io_cluster!=\"\", namespace=\"$namespace\"}, label_cnpg_io_cluster)", "hide": 0, - "includeAll": false, + "includeAll": true, "label": "Cluster", "multi": false, "name": "cluster", "options": [], "query": { - "query": "label_values(cnpg_pg_postmaster_start_time_seconds{namespace=\"$namespace\"}, service)", + "query": "label_values(kube_pod_labels{label_cnpg_io_cluster!=\"\", namespace=\"$namespace\"}, label_cnpg_io_cluster)", "refId": "Prometheus-cluster" }, "refresh": 2, - "regex": "/(.*)-postgres-metrics/", + "regex": "", "skipUrlSync": false, "sort": 1, - "type": "query" + "type": "query", + "allValue": ".*" } ] }, diff --git a/docs/postgresSQLMonitoring-e2e.md b/docs/postgresSQLMonitoring-e2e.md index e4409753a..3153fd305 100644 --- a/docs/postgresSQLMonitoring-e2e.md +++ b/docs/postgresSQLMonitoring-e2e.md @@ -32,7 +32,7 @@ alertmanager: enabled: false kubeStateMetrics: - enabled: false + enabled: true nodeExporter: enabled: false @@ -44,14 +44,16 @@ prometheus: kubernetes_sd_configs: - role: pod relabel_configs: - - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + - source_labels: + [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + - source_labels: + [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 @@ -192,11 +194,11 @@ up{job="annotated-pods", namespace="test"} ``` ```promql -count by (pod) (cnpg_pg_postmaster_start_time_seconds{namespace="test"}) +count by (pod) (cnpg_pg_postmaster_start_time{namespace="test"}) ``` ```promql -cnpg_pgbouncer_up{namespace="test"} +cnpg_pgbouncer_last_collection_error{namespace="test"} ``` ## 7. Access Grafana @@ -229,11 +231,11 @@ up{job="annotated-pods", namespace="test"} ``` ```promql -cnpg_pg_postmaster_start_time_seconds{namespace="test"} +cnpg_pg_postmaster_start_time{namespace="test"} ``` ```promql -cnpg_pgbouncer_up{namespace="test"} +cnpg_pgbouncer_last_collection_error{namespace="test"} ``` ### Dashboard import diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 78aecad32..886373031 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -64,6 +64,8 @@ type PostgresClusterReconciler struct { func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { metrics := r.Metrics if metrics == nil { + // Tests and minimal reconciler wiring may omit a metrics adapter. + // Fall back to a no-op recorder so status updates can proceed safely. metrics = &pgprometheus.NoopRecorder{} } rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: metrics} diff --git a/test/postgresql/monitoring/postgrescluster.yaml b/test/postgresql/monitoring/postgrescluster.yaml deleted file mode 100644 index f572db864..000000000 --- a/test/postgresql/monitoring/postgrescluster.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: enterprise.splunk.com/v4 -kind: PostgresCluster -metadata: - name: pg-e2e -spec: - class: pg-monitoring - clusterDeletionPolicy: Delete diff --git a/test/postgresql/monitoring/postgresclusterclass.yaml b/test/postgresql/monitoring/postgresclusterclass.yaml deleted file mode 100644 index 37f2db96c..000000000 --- a/test/postgresql/monitoring/postgresclusterclass.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: enterprise.splunk.com/v4 -kind: PostgresClusterClass -metadata: - name: pg-monitoring -spec: - provisioner: postgresql.cnpg.io - config: - instances: 2 - storage: 1Gi - postgresVersion: "17" - connectionPoolerEnabled: true - monitoring: - postgresqlMetrics: - enabled: true - connectionPoolerMetrics: - enabled: true - cnpg: - primaryUpdateMethod: switchover - connectionPooler: - instances: 2 - mode: transaction From 08dfa1610a136abbf7a899fb107068d0399138e4 Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Wed, 15 Apr 2026 14:59:22 +0200 Subject: [PATCH 28/43] fix rebase errors --- internal/controller/postgrescluster_controller_test.go | 1 + pkg/postgresql/cluster/core/cluster.go | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 730eb3251..47e1d0824 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -34,6 +34,7 @@ import ( enterprisev4 "github.com/splunk/splunk-operator/api/v4" "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" + pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 3b98ff100..80825bf04 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -119,6 +119,8 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, errors.Join(err, statusErr) } + postgresMetricsEnabled := isPostgreSQLMetricsEnabled(postgresCluster, clusterClass) + poolerMetricsEnabled := isConnectionPoolerMetricsEnabled(postgresCluster, clusterClass) // Resolve or derive the superuser secret name. if postgresCluster.Status.Resources != nil && postgresCluster.Status.Resources.SuperUserSecretRef != nil { postgresSecretName = postgresCluster.Status.Resources.SuperUserSecretRef.Name @@ -191,7 +193,7 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. switch { case apierrors.IsNotFound(err): logger.Info("CNPG Cluster creation started", "name", postgresCluster.Name) - newCluster, err := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName) + newCluster, err := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName, postgresMetricsEnabled) if err != nil { logger.Error(err, "Failed to build CNPG Cluster", "name", postgresCluster.Name) return ctrl.Result{}, err @@ -508,7 +510,7 @@ func buildCNPGClusterSpec(cfg *MergedConfig, secretName string, postgresMetricsE return spec } -func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string, postgresMetricsEnabled bool) *cnpgv1.Cluster { +func buildCNPGCluster(scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, secretName string, postgresMetricsEnabled bool) (*cnpgv1.Cluster, error) { cnpg := &cnpgv1.Cluster{ ObjectMeta: metav1.ObjectMeta{Name: cluster.Name, Namespace: cluster.Namespace}, Spec: buildCNPGClusterSpec(cfg, secretName, postgresMetricsEnabled), From 8ed740c1b2c16ff61c0bac9c1ea520ac66ee2baf Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Wed, 15 Apr 2026 15:08:02 +0200 Subject: [PATCH 29/43] fix CR --- config/samples/enterprise_v4_postgresclusterclass_dev.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml index 082d5fad9..89e915033 100644 --- a/config/samples/enterprise_v4_postgresclusterclass_dev.yaml +++ b/config/samples/enterprise_v4_postgresclusterclass_dev.yaml @@ -27,10 +27,10 @@ spec: cpu: "1" memory: "2Gi" connectionPoolerEnabled: true - observability: - postgresql: + monitoring: + postgresqlMetrics: enabled: true - pgbouncer: + connectionPoolerMetrics: enabled: true cnpg: From 14c94b0ed8fc89080dfa44c8d21d08a9bb626a3b Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Wed, 15 Apr 2026 18:06:50 +0200 Subject: [PATCH 30/43] update to use Otel --- docs/PostgreSQLObservabilityDashboard.json | 2 +- docs/postgresSQLMonitoring-e2e.md | 54 ++- docs/postgresSQLMonitoring-otel-e2e.md | 434 ++++++++++++++++++ .../monitoring/otel-collector-values.yaml | 53 +++ test/postgresql/monitoring/otel-rbac.yaml | 25 + .../prometheus-via-otel-values.yaml | 43 ++ 6 files changed, 600 insertions(+), 11 deletions(-) create mode 100644 docs/postgresSQLMonitoring-otel-e2e.md create mode 100644 test/postgresql/monitoring/otel-collector-values.yaml create mode 100644 test/postgresql/monitoring/otel-rbac.yaml create mode 100644 test/postgresql/monitoring/prometheus-via-otel-values.yaml diff --git a/docs/PostgreSQLObservabilityDashboard.json b/docs/PostgreSQLObservabilityDashboard.json index e9975ff59..68439cbc9 100644 --- a/docs/PostgreSQLObservabilityDashboard.json +++ b/docs/PostgreSQLObservabilityDashboard.json @@ -792,7 +792,7 @@ }, "id": 200, "options": { - "content": "## Domain Metrics (custom, `splunk_operator_postgres_*`)\nFleet state gauges (collected every reconcile) and status transitions (emitted on condition changes).\n\nRuntime PostgreSQL and PgBouncer panels above assume annotation-based pod scraping and filter by `pod`, not dedicated metrics Services.", + "content": "## Domain Metrics (custom, `splunk_operator_postgres_*`)\nFleet state gauges (collected every reconcile) and status transitions (emitted on condition changes).\n\nRuntime PostgreSQL and PgBouncer panels above assume annotation-based pod scraping and filter by `pod`, not dedicated metrics Services.\n\nIf you validate through OpenTelemetry Collector, keep the Grafana datasource as Prometheus and have Prometheus scrape only the OTel Collector exporter for these metrics to avoid duplicate series.", "mode": "markdown" }, "title": "", diff --git a/docs/postgresSQLMonitoring-e2e.md b/docs/postgresSQLMonitoring-e2e.md index 3153fd305..f49378d79 100644 --- a/docs/postgresSQLMonitoring-e2e.md +++ b/docs/postgresSQLMonitoring-e2e.md @@ -13,6 +13,12 @@ Verify that: `ServiceMonitor` is still acceptable for operator-controller metrics if you want that separately, but it is not part of this feature validation. +The reference dashboard in [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) assumes: + +- `namespace=test` +- `cluster=postgresql-cluster-dev` +- `kube_pod_labels` is available for dashboard variables + ## Prerequisites - KIND cluster is running @@ -131,20 +137,28 @@ spec: EOF ``` -## 3. Apply test resources +## 3. Apply sample resources Create the namespace and apply the sample resources: ```bash kubectl create namespace test -kubectl apply -f test/postgresql/monitoring/postgresclusterclass.yaml -kubectl apply -f pgclustertest.yaml +kubectl apply -f config/samples/enterprise_v4_postgresclusterclass_dev.yaml +kubectl apply -n test -f config/samples/enterprise_v4_postgrescluster_dev.yaml +kubectl apply -n test -f config/samples/enterprise_v4_postgresdatabase.yaml ``` +These samples create: + +- `PostgresClusterClass` `postgresql-dev` +- `PostgresCluster` `postgresql-cluster-dev` +- `PostgresDatabase` `splunk-databases` + ## 4. Verify reconciled resources ```bash kubectl get postgrescluster -n test +kubectl get postgresdatabase -n test kubectl get cluster.postgresql.cnpg.io -n test kubectl get pooler.postgresql.cnpg.io -n test kubectl get pods -n test @@ -155,7 +169,7 @@ kubectl get pods -n test PostgreSQL pods: ```bash -kubectl get pods -n test -l cnpg.io/cluster= -o yaml | rg 'prometheus.io/' +kubectl get pods -n test -l cnpg.io/cluster=postgresql-cluster-dev -o yaml | rg 'prometheus.io/' ``` Expected: @@ -167,8 +181,8 @@ Expected: Pooler pods: ```bash -kubectl get pods -n test -l cnpg.io/poolerName=-pooler-rw -o yaml | rg 'prometheus.io/' -kubectl get pods -n test -l cnpg.io/poolerName=-pooler-ro -o yaml | rg 'prometheus.io/' +kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-rw -o yaml | rg 'prometheus.io/' +kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-ro -o yaml | rg 'prometheus.io/' ``` Expected: @@ -194,11 +208,15 @@ up{job="annotated-pods", namespace="test"} ``` ```promql -count by (pod) (cnpg_pg_postmaster_start_time{namespace="test"}) +count(count by (pod) (cnpg_pg_postmaster_start_time{namespace="test",pod=~"postgresql-cluster-dev-[0-9]+"})) ``` ```promql -cnpg_pgbouncer_last_collection_error{namespace="test"} +max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{namespace="test",pod=~"postgresql-cluster-dev-pooler-rw-.*"}, 1)) +``` + +```promql +sum(rate(cnpg_pg_stat_archiver_archived_count{namespace="test",pod=~"postgresql-cluster-dev-[0-9]+"}[5m])) ``` ## 7. Access Grafana @@ -242,7 +260,7 @@ cnpg_pgbouncer_last_collection_error{namespace="test"} You can also import the reference dashboard from: -- [PostgreSQLObservabilityDashboard.json](/Users/dpishchenkov/splunk-operator/docs/PostgreSQLObservabilityDashboard.json) +- [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) In Grafana: @@ -250,13 +268,29 @@ In Grafana: 2. Click **New** -> **Import** 3. Upload `docs/PostgreSQLObservabilityDashboard.json` 4. Select the Prometheus datasource +5. Set `namespace` to `test` +6. Set `cluster` to `postgresql-cluster-dev` + +The dashboard variables use: + +```promql +label_values(kube_pod_labels{label_cnpg_io_cluster!=""}, namespace) +``` + +and: + +```promql +label_values(kube_pod_labels{label_cnpg_io_cluster!="", namespace="$namespace"}, label_cnpg_io_cluster) +``` + +So `kubeStateMetrics.enabled: true` in `values.yaml` is required for the imported dashboard to work as-is. ## 8. Optional disable test Disable monitoring in the `PostgresCluster` and verify annotations disappear: ```bash -kubectl patch postgrescluster -n test --type=merge -p ' +kubectl patch postgrescluster postgresql-cluster-dev -n test --type=merge -p ' spec: monitoring: postgresqlMetrics: diff --git a/docs/postgresSQLMonitoring-otel-e2e.md b/docs/postgresSQLMonitoring-otel-e2e.md new file mode 100644 index 000000000..31d464bbe --- /dev/null +++ b/docs/postgresSQLMonitoring-otel-e2e.md @@ -0,0 +1,434 @@ +# PostgreSQL Monitoring E2E with OTel Collector + +This document describes how to validate PostgreSQL and PgBouncer monitoring with OpenTelemetry Collector using the current annotation-based design. + +## Goal + +Verify that: + +- PostgreSQL pods are discoverable through `prometheus.io/*` pod annotations +- PgBouncer pooler pods are discoverable through `prometheus.io/*` pod annotations +- OTel Collector scrapes those targets through Kubernetes pod discovery +- scraped metrics are re-exposed by OTel and then queried through Grafana +- disabling monitoring removes those scrape targets + +This test intentionally does not use dedicated metrics `Service`s or `ServiceMonitor`s for PostgreSQL and PgBouncer. + +The reference dashboard in [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) assumes: + +- `namespace=test` +- `cluster=postgresql-cluster-dev` +- `kube_pod_labels` is available from kube-state-metrics + +## Prerequisites + +- KIND cluster is running +- CNPG is installed +- Splunk Operator is installed +- CRDs are up to date +- test resources exist in namespace `test` + +## Recommended Setup + +Use OTel Collector for scraping and re-expose the metrics to Prometheus for Grafana queries. + +In this setup: + +- OTel Collector scrapes annotated PostgreSQL and PgBouncer pods +- OTel Collector re-exposes those metrics on its own Prometheus exporter endpoint +- Prometheus scrapes the OTel Collector pod +- Grafana queries Prometheus + +Grafana does not query OTel Collector directly. The Grafana datasource remains Prometheus. + +## 1. Deploy OTel Collector + +Use the concrete Helm values file: + +- [otel-collector-values.yaml](../test/postgresql/monitoring/otel-collector-values.yaml) +- [otel-rbac.yaml](../test/postgresql/monitoring/otel-rbac.yaml) + +Install the Collector: + +```bash +kubectl create namespace monitoring + +helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts +helm repo update + +helm install otel open-telemetry/opentelemetry-collector \ + --namespace monitoring \ + -f test/postgresql/monitoring/otel-collector-values.yaml +``` + +If the `otel` release already exists, use: + +```bash +helm upgrade otel open-telemetry/opentelemetry-collector \ + --namespace monitoring \ + -f test/postgresql/monitoring/otel-collector-values.yaml +``` + +Grant the Collector RBAC required for Kubernetes pod discovery: + +```bash +kubectl apply -f test/postgresql/monitoring/otel-rbac.yaml +``` + +This setup uses: + +- Prometheus receiver with Kubernetes pod discovery +- `prometheus.io/*` relabeling +- Prometheus exporter on port `8889` +- `debug` exporter for easy validation in logs + +If this RBAC is missing, the Collector will fail with errors like: + +```text +failed to list *v1.Pod: pods is forbidden +``` + +because the service account needs cluster-scoped `get`, `list`, and `watch` access for pod discovery. + +## 2. Install Prometheus and Grafana for the OTel path + +Use the Prometheus values file that scrapes only the OTel Collector exporter: + +- [prometheus-via-otel-values.yaml](../test/postgresql/monitoring/prometheus-via-otel-values.yaml) + +Install: + +```bash +helm repo add prometheus-community https://prometheus-community.github.io/helm-charts +helm repo add grafana https://grafana.github.io/helm-charts +helm repo update + +helm install kube-prometheus prometheus-community/kube-prometheus-stack \ + --namespace monitoring \ + -f test/postgresql/monitoring/prometheus-via-otel-values.yaml +``` + +If the `kube-prometheus` release already exists, use: + +```bash +helm upgrade kube-prometheus prometheus-community/kube-prometheus-stack \ + --namespace monitoring \ + -f test/postgresql/monitoring/prometheus-via-otel-values.yaml +``` + +This is important: Prometheus should scrape the OTel Collector exporter, not the PostgreSQL and PgBouncer pods directly. Otherwise Grafana will bypass OTel or you will get duplicate series. + +## 3. Apply PostgreSQL sample resources + +Apply: + +- `config/samples/enterprise_v4_postgresclusterclass_dev.yaml` +- `config/samples/enterprise_v4_postgrescluster_dev.yaml` +- `config/samples/enterprise_v4_postgresdatabase.yaml` + +Example: + +```bash +kubectl create namespace test +kubectl apply -f config/samples/enterprise_v4_postgresclusterclass_dev.yaml +kubectl apply -n test -f config/samples/enterprise_v4_postgrescluster_dev.yaml +kubectl apply -n test -f config/samples/enterprise_v4_postgresdatabase.yaml +``` + +These samples create: + +- `PostgresClusterClass` `postgresql-dev` +- `PostgresCluster` `postgresql-cluster-dev` +- `PostgresDatabase` `splunk-databases` + +## 4. Verify reconciled resources + +```bash +kubectl get postgrescluster -n test +kubectl get postgresdatabase -n test +kubectl get cluster.postgresql.cnpg.io -n test +kubectl get pooler.postgresql.cnpg.io -n test +kubectl get pods -n test +``` + +## 5. Verify annotations on workloads + +PostgreSQL pods: + +```bash +kubectl get pods -n test -l cnpg.io/cluster=postgresql-cluster-dev -o yaml | rg 'prometheus.io/' +``` + +Expected: + +- `prometheus.io/scrape: "true"` +- `prometheus.io/path: /metrics` +- `prometheus.io/port: "9187"` + +PgBouncer RW pooler pods: + +```bash +kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-rw -o yaml | rg 'prometheus.io/' +``` + +PgBouncer RO pooler pods: + +```bash +kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-ro -o yaml | rg 'prometheus.io/' +``` + +Expected for both: + +- `prometheus.io/scrape: "true"` +- `prometheus.io/path: /metrics` +- `prometheus.io/port: "9127"` + +## 6. Verify OTel Collector scraping + +If using the `debug` exporter: + +```bash +kubectl logs -n deploy/ -f +``` + +Look for metrics such as: + +- `cnpg_pg_postmaster_start_time` +- `cnpg_pg_database_size_bytes` +- `cnpg_collector_pg_wal` +- `cnpg_pg_stat_archiver_archived_count` +- `cnpg_pgbouncer_last_collection_error` +- `cnpg_pgbouncer_pools_cl_active` + +## 7. Verify Prometheus is scraping OTel + +Port-forward Prometheus: + +```bash +kubectl port-forward -n monitoring svc/kube-prometheus-prometheus 9090:9090 +``` + +Check that Prometheus is scraping the OTel Collector pod: + +```promql +up{job="otel-collector", namespace="monitoring"} +``` + +If this returns no series, the usual causes are: + +- the `kube-prometheus` release was not upgraded with [prometheus-via-otel-values.yaml](../test/postgresql/monitoring/prometheus-via-otel-values.yaml) +- Prometheus is still using the old `annotated-pods` scrape job +- kube-state-metrics is still disabled, which also breaks the dashboard variables + +Then verify PostgreSQL and PgBouncer metrics coming through that OTel path: + +```promql +count(count by (pod) (cnpg_pg_postmaster_start_time{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-[0-9]+"})) +``` + +```promql +max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-pooler-rw-.*"}, 1)) +``` + +## 8. Access Grafana + +Port-forward Grafana: + +```bash +kubectl port-forward -n monitoring svc/kube-prometheus-grafana 3000:80 +``` + +Open: + +- http://localhost:3000 + +Login: + +- user: `admin` +- password: `admin` + +Use the default Prometheus datasource. In this setup, Grafana is using metrics that flowed through OTel because Prometheus is scraping only the OTel Collector exporter. + +## 9. Verify dashboard queries + +Import: + +- [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) + +Set: + +- `namespace=test` +- `cluster=postgresql-cluster-dev` + +The dashboard does not need query changes for this path, but it assumes kube-state-metrics is enabled for the `namespace` and `cluster` variables. + +You can confirm the live Prometheus release picked up the right values with: + +```bash +helm get values -n monitoring kube-prometheus +``` + +Expected: + +- `kubeStateMetrics.enabled: true` +- additional scrape job `otel-collector` + +## 10. Verify backend metrics + +Validate with queries such as: + +```promql +up{job="otel-collector", namespace="monitoring"} +``` + +```promql +count(count by (pod) (cnpg_pg_postmaster_start_time{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-[0-9]+"})) +``` + +```promql +max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-pooler-rw-.*"}, 1)) +``` + +```promql +sum by (pooler) (label_replace(cnpg_pgbouncer_pools_cl_active{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-pooler-(rw|ro)-.*"}, "pooler", "$1", "pod", ".*-pooler-(rw|ro)-.*")) +``` + +The dashboard variables use: + +```promql +label_values(kube_pod_labels{label_cnpg_io_cluster!=""}, namespace) +``` + +and: + +```promql +label_values(kube_pod_labels{label_cnpg_io_cluster!="", namespace="$namespace"}, label_cnpg_io_cluster) +``` + +## 11. Disable monitoring and validate removal + +Disable both metrics paths: + +```bash +kubectl patch postgrescluster postgresql-cluster-dev -n test --type=merge -p ' +spec: + monitoring: + postgresqlMetrics: + disabled: true + connectionPoolerMetrics: + disabled: true +' +``` + +Re-check pod annotations: + +```bash +kubectl get pods -n test -l cnpg.io/cluster=postgresql-cluster-dev -o yaml | rg 'prometheus.io/' || true +kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-rw -o yaml | rg 'prometheus.io/' || true +kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-ro -o yaml | rg 'prometheus.io/' || true +``` + +Expected: + +- scrape annotations disappear +- OTel stops scraping those targets after discovery refresh + +## Test Plan + +### Test 1: PostgreSQL annotations are present + +Steps: + +1. Apply monitoring-enabled class and cluster +2. Wait for PostgreSQL pods +3. Inspect pod annotations + +Pass criteria: + +- PostgreSQL pods contain the expected scrape annotations + +### Test 2: Pooler annotations are present + +Steps: + +1. Apply class with `connectionPoolerEnabled=true` +2. Wait for RW and RO poolers and their pods +3. Inspect pooler pod annotations + +Pass criteria: + +- RW and RO pooler pods contain the expected scrape annotations + +### Test 3: OTel Collector scrapes PostgreSQL and poolers + +Steps: + +1. Run Collector with pod discovery +2. Inspect Collector logs or backend metrics + +Pass criteria: + +- PostgreSQL metrics are visible in OTel logs +- PgBouncer metrics are visible in OTel logs + +### Test 4: Prometheus and Grafana use the OTel path + +Steps: + +1. Verify `up{job="otel-collector", namespace="monitoring"}` +2. Verify PostgreSQL and PgBouncer metrics with `job="otel-collector"` +3. Import the dashboard and select the Prometheus datasource + +Pass criteria: + +- Prometheus is scraping the OTel Collector exporter +- Grafana panels return data from the `otel-collector` job + +### Test 5: Disable override removes scrape targets + +Steps: + +1. Patch the `PostgresCluster` to disable both monitoring paths +2. Re-check workload annotations +3. Re-check Collector or backend + +Pass criteria: + +- annotations are removed +- targets disappear from Collector/backend over time + +### Test 6: Cluster-only disable path + +Steps: + +1. Keep class monitoring enabled +2. Disable only in `PostgresCluster.spec.monitoring` + +Pass criteria: + +- class defaults remain unchanged +- only the target cluster loses annotations + +## Troubleshooting + +If no metrics appear: + +1. Check pod annotations first +2. Check Collector logs +3. Check whether the Collector is using `role: pod` +4. Check relabeling for `prometheus.io/scrape` +5. Check namespace filters in your backend queries + +Useful quick queries: + +```promql +up{namespace="test"} +``` + +```promql +cnpg_pg_postmaster_start_time_seconds{namespace="test"} +``` + +```promql +cnpg_pgbouncer_up{namespace="test"} +``` diff --git a/test/postgresql/monitoring/otel-collector-values.yaml b/test/postgresql/monitoring/otel-collector-values.yaml new file mode 100644 index 000000000..b68f1f273 --- /dev/null +++ b/test/postgresql/monitoring/otel-collector-values.yaml @@ -0,0 +1,53 @@ +mode: deployment + +image: + repository: otel/opentelemetry-collector-contrib + +podAnnotations: + prometheus.io/scrape: "true" + prometheus.io/path: /metrics + prometheus.io/port: "8889" + +config: + receivers: + prometheus: + config: + scrape_configs: + - job_name: annotated-pods + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] + action: replace + target_label: __metrics_path__ + regex: (.+) + - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + action: replace + regex: ([^:]+)(?::\d+)?;(\d+) + replacement: $1:$2 + target_label: __address__ + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: namespace + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: pod + + processors: + batch: {} + + exporters: + debug: + verbosity: normal + prometheus: + endpoint: "0.0.0.0:8889" + + service: + pipelines: + metrics: + receivers: [prometheus] + processors: [batch] + exporters: [debug, prometheus] diff --git a/test/postgresql/monitoring/otel-rbac.yaml b/test/postgresql/monitoring/otel-rbac.yaml new file mode 100644 index 000000000..1e55e37b4 --- /dev/null +++ b/test/postgresql/monitoring/otel-rbac.yaml @@ -0,0 +1,25 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: otel-prometheus-pod-discovery +rules: +- apiGroups: [""] + resources: ["pods", "nodes", "nodes/proxy", "services", "endpoints", "namespaces"] + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: ["endpointslices"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-prometheus-pod-discovery +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: otel-prometheus-pod-discovery +subjects: +- kind: ServiceAccount + name: otel-opentelemetry-collector + namespace: monitoring diff --git a/test/postgresql/monitoring/prometheus-via-otel-values.yaml b/test/postgresql/monitoring/prometheus-via-otel-values.yaml new file mode 100644 index 000000000..b1df9371c --- /dev/null +++ b/test/postgresql/monitoring/prometheus-via-otel-values.yaml @@ -0,0 +1,43 @@ +grafana: + adminPassword: admin + +alertmanager: + enabled: false + +kubeStateMetrics: + enabled: true + +nodeExporter: + enabled: false + +prometheus: + prometheusSpec: + additionalScrapeConfigs: + - job_name: otel-collector + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_namespace] + action: keep + regex: monitoring + - source_labels: [__meta_kubernetes_pod_name] + action: keep + regex: otel-opentelemetry-collector-.* + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] + action: replace + target_label: __metrics_path__ + regex: (.+) + - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + action: replace + regex: ([^:]+)(?::\d+)?;(\d+) + replacement: $1:$2 + target_label: __address__ + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: namespace + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: pod From b9766dd29162c22a06e6a12b93dcbed4faaf3b16 Mon Sep 17 00:00:00 2001 From: Gabriel Mendoza Date: Wed, 8 Apr 2026 12:46:16 -0400 Subject: [PATCH 31/43] Restore helm chart version 3.0.0 to repository index Version 3.0.0 was inadvertently removed by automated PR (commit 1139fcf26) when 3.1.0 was added. Customers reported the version missing from `helm search repo` results. Changes: - Restored 3.0.0 packaged chart from git tag - Added 3.0.0 entries to docs/index.yaml for both splunk-enterprise and splunk-operator charts - Chart digest: db5890e3bcc95f9ca7298873cc08b4a5d1ee86ccb4ad4e5334a0ab5d7a5fdb5e Co-Authored-By: Claude Opus 4.6 --- docs/index.yaml | 51 ++++++++++++++++++ .../charts/splunk-operator-3.0.0.tgz | Bin 5919 -> 4765116 bytes 2 files changed, 51 insertions(+) diff --git a/docs/index.yaml b/docs/index.yaml index 47385faef..35056f122 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -55,6 +55,34 @@ entries: urls: - https://splunk.github.io/splunk-operator/splunk-enterprise-3.1.0.tgz version: 3.1.0 + - apiVersion: v2 + appVersion: 3.0.0 + created: "2026-04-08T03:35:00Z" + dependencies: + - condition: splunk-operator.enabled + name: splunk-operator + repository: file://splunk-operator/helm-chart/splunk-operator + version: 3.0.0 + description: A Helm chart for Splunk Enterprise managed by the Splunk Operator + digest: db5890e3bcc95f9ca7298873cc08b4a5d1ee86ccb4ad4e5334a0ab5d7a5fdb5e + maintainers: + - email: vivekr@splunk.com + name: Vivek Reddy + - email: rlieberman@splunk.com + name: Raizel Lieberman + - email: patrykw@splunk.com + name: Patryk Wasielewski + - email: igorg@splunk.com + name: Igor Grzankowski + - email: kkoziol@splunk.com + name: Kasia Kozioł + - email: jbuczak@splunk.com + name: Jakub Buczak + name: splunk-enterprise + type: application + urls: + - https://splunk.github.io/splunk-operator/splunk-enterprise-3.0.0.tgz + version: 3.0.0 - apiVersion: v2 appVersion: 2.8.1 created: "2026-03-02T17:02:33.789329656Z" @@ -381,6 +409,29 @@ entries: urls: - https://splunk.github.io/splunk-operator/splunk-operator-3.1.0.tgz version: 3.1.0 + - apiVersion: v2 + appVersion: 3.0.0 + created: "2026-04-08T03:35:00Z" + description: A Helm chart for the Splunk Operator for Kubernetes + digest: db5890e3bcc95f9ca7298873cc08b4a5d1ee86ccb4ad4e5334a0ab5d7a5fdb5e + maintainers: + - email: vivekr@splunk.com + name: Vivek Reddy + - email: rlieberman@splunk.com + name: Raizel Lieberman + - email: patrykw@splunk.com + name: Patryk Wasielewski + - email: igorg@splunk.com + name: Igor Grzankowski + - email: kkoziol@splunk.com + name: Kasia Kozioł + - email: jbuczak@splunk.com + name: Jakub Buczak + name: splunk-operator + type: application + urls: + - https://splunk.github.io/splunk-operator/splunk-operator-3.0.0.tgz + version: 3.0.0 - apiVersion: v2 appVersion: 2.8.1 created: "2026-03-02T17:02:33.967789812Z" diff --git a/helm-chart/splunk-enterprise/charts/splunk-operator-3.0.0.tgz b/helm-chart/splunk-enterprise/charts/splunk-operator-3.0.0.tgz index 8038d92d5b047379eeb3490f954a9d75dd4d8022..7b53216f154faac5602cbd340f66760bfb2a5c0a 100644 GIT binary patch literal 4765116 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

d;hc{Pnv~e^v_v%G;pYQ#ZC24-b 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 -@qU`Mc0krBqb5YTMJy^srNBk*$aBO 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≪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ℑ7!V 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

$uHgzJDn=oUQsrYLGk?z`t%w!vO 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�gn_Q5%X?whdUqhfv{U7by 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Πx05h7_J?f~0IKkTd+O&0 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≈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�byqGJa~vmrq|(y=`qeTx9@Q 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�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

5flS&%~m<|jHOXQhR&tXfKlljnM$;pRyRU#yvT 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�G!7zVHz#pR9ISVOy^H=H)d$7PQ%OSDP+RA)Ck zn+t#!v3j>k&fZ&*U}zdE=ay`Z78=pAW@`fp7!^SUcWql0PS8}W70gy-@PFT9MvDC9 zD-EL>y{0`&pb@Xu^9INEOZy15aU^F4eze3|OinQbv55eu#;yRciDy=u88Ii9v7{om z8wabR3Rmg2cFh%zemQ03$=K~hXl)C}ptEV*eqnQlX3q6zW~zQNRHf-F zTNna96rmDi&~Ta27QV^Mq$f5U5i|`05w3>Z4A_2OJCf@1e;>XvtqO4Ju|r1HM3TgW z3$$a#!P^yLLV4fvTOpfJ&lg?t-5JpjPE;SW1*OnhwB)If(}U*aC_OvzGaCzn zCIC24w+HkuhMeL?A}TMuXj zb^I6?XEs9(6A-r0{PAH^c+x0C$hg4}CM6dSV<>yOul}wF~V&9&`9waqadx zApRd28#LeILmrwDh)^F-W}O?OlJ;Bmc3HE)_UISeP#1(2*_5HSE-`gOVsZqftJNt) zQGTAE=7&1_TP)?__s93>&G#)~j+d8%L+Mb~e-d`$DF7InJ9Orv6~3>55-K>65v)J| z9-pCSN7NeO?Gbkr(adVm%<9pzNdb&~wDFCY&(kJBhU?jcOsnd*A{YA$LX6Ugdy`CI zC?*3OtA+z|pf;hLHi0CZ_7IMerAt?49B8bwosbR{a{id8`t@6#nH{it<_Pa)Qyv~E z;ZE|cdMz$MeW#<*KrdUmd(%I`_)|G+517_l%LO7;BQ&})zfsK%) zY`eopMNeFTK>nPqnh7rK2t;kH!==o9navPXc&+!S{^#RwxAhxr7bR9de=VDQK)VQM(%nL-C{U?n4?aeb9e!OfWy zdqP7{D=JKs%QGS{P(thnB!>Um_}a48Jn9LK;DqH3jnIQBRI|f&m!E~@y#VciMIvFN zEw@f+=f~$@%px&mcpyV;509iq-#o&zrl&MHVPSi0SC9PF=H#bf9m?ggBF5OICH~}P z;UF%Gm~xtlJqn&lPjceA7EH67CGISD)bu+5r_;W+8)imDW;1$&?m};>za>5P!jhFylhS514J%|Cv;!mLy;Ut+y~9P9DDCyZ?>RtsB6;86&F&2-=FN;s zF4jfXZ7N5N$D6?mSQzt^r;pd?bM@jo#oB4-S{aU!1^Jmj8Xxk5z)l(s< z0@hG$T}&A?quj-qV*@eLfcA`3NrTX8&LtJIY{=nFZS>FbE0>ZT*Ko?P38f&P0H`*~ zM->4yqUxkL;9@wAuIZw2b%r4ca|=kJ4$sCC!%(lb3EY~fp+BeAE`8_L5O)XwzL}F> z4>b#BJ3fd1UTu8I^*%%skK+{Ad2Iwlq~V=QY%PiP?aBeNV{SEok zp`hCo?H9G3Fg1OvAv>%_o|Q!i8@_iIA7G7*h~$a*d@tiX0aJ>oXv{AQn~)O%9;}&D zqp+Hlk^^4y66>9HiWUfdZ?S<@9M_*wJIwoN^v3Qjba}Zksx8_ojhde4|7v@q)bWb{ z4CNU|O#(MNMurj)Qx>-HM%w=d`ZOeo5F18~b8y#QM}>VjK$IM`I0qf(QPSzi8bO@upJ)4djb;_w zn`r1C!8=58+c$QH`XML%ZF;1vE@yC}{xk?PBOIuXEYNUsSK-(L5QOLf%O;{Ct6L8!zn(67q_Wo*~2}=SIcH{COo_%qLLO{1lef)=Q~uB>)1q&VK1M22DSkTF_*#yxRy+Zt`zIdPYqZIen*0g-!Ge z<<}f+W#US@DqJoVpQ3j{4h=3}ZpY`(?8KJLpWKzuR`F6-3GSEpmBT^aIZKEd^)__W z3^dxJQ7gE2Y&3qrW(6+Q|vCTV8vPz_St>BMzXoQ z0G8U#l*CL7tJkvNmMr%bF=?3wv4Y;7k85N zv4Dc+=kbMscelHX@B=Z^zBWkB1KoUCL9`DO!m}5a0JCULy(dN^`YSKW+LC9TI?b1|*xeY~Q=FMj6 zXV#IDUE*KiMab$o@I5M{I zK~#5IsguX0!2g?Ne8G}+lCfXA(V3IdO%30DVM|tVk;X6SU&I3u3&jd3mu*({2(r#t zrH9iTsP}aiVsazmj)8@{aW{Z#(OT5KHosrq4hN{G5}Any=vc%JVKF_B{`){VytKPQ zq)fj-c}Em-uO8ijHj<)7cH_DN+k#RwSs4^V{0sP%yEzUF0`()Sh+x(YSn^BCV&h!7BBd{Jj*{dTZ*8O$kEQH@^X$`lYyds~JzP z4{=a>yJNj+hOOoLoUN^tjPtu=>n1R#IlY7Fph}qa>{+)vwzkL_3_9TwUH<(-t~)$7 z1?u80mrDK@9`{7#x4gi?VV8Deb+5gRdI1)Ca4@W07ugOlYNfxlv+>ODRQG?N)rbsf z#EO^3H4vUalS71!+AJcyKA0x|eND4=A}0Q-w_WqG-j?rceor%Ff`8yyn$QaU9j0!U z6c*>Z6#cqSLJLQFnv-Axi%VK5p41twh`y&wQS}CY49ESuV>*!g*Cw8uUu`-@kj;a3 zAM$Z-T$Dp(koL@qg{3?0Qpc2LP+e#)M;;}2H+D|`>@d)$AtSBLt76LLfZJrTM&o?nqZo|e47;@Cf`O0QVHY2Mg_q>!(tMEPtaT#kqS$X+EMQ!Fad_e^#I^TJ2t@o z!mrn~;6*cf80j3~O#-BgHkhK^;p*C^F{r6748nF(bv4BF8bd2A6?(OJr#;5;1mnNJl2hT#r_E6GjSt&?zV=!KjYP)Y2Ee{H2&(xFEaTbB=i&V02ya|# z@MoKw<#lP$)?$WEtf$39m>@HlqPT34+sd%&C^<} zyGC?&kTH$u9Jx>g@v%)^is6vK5oX&V>9l8BB2rF`vAv2Wo!RVGr`&p3Ovy{3E{hn0 zwNd0&?R&6Vb7NVG8 zn03F{F;v6+$CI%8gaP`LGbw#i9Hb=$5AP>rEsc+WboK@=Y zq@=tWxLs$qK%f7e36Jr+(5<(W;P8YXMvYyIVp9f-W+b*2eCsuYbRY6h@;|)Y~ z;MG9|9}A-2JNq|E^_njtz1&v7&V;zDOS`3ze2OVviO7w}jpGHC zFoeK($JR4c81emPS3P7qC*!+`2PN-iC2F{COw)R+0>mywZ?o2m=Ff6YV6Q-gN=0#? zuupqQ?W?_QHVd^`cxO(|NKt2*W}}G72Ld_TKZ59s#-O;=_e-@Gu4)rRUtKJ95?`W384gu2w0l+l%M<;X-r)D9*DxUaC!(+ zI3f>VEX?U08YIsWRntrl_VDTKv_A$~6zyj2xzIG+&h+r~Xx^H-p5l{f99cGrW6i8# z)U;Sbm;Lm>l7h2h{Xo})1i`Y@CBJ86#g{8qk+Nb5OMx7KD-`ZAcLh74vwjN3)tp?a zg98b+R8uS4;FoWM=E2!MF_!jz=8vAj-du*5=)7TbcJ6L)6v>}7H{Nre(he$R2}XP^PG|^kvhvPLDOu1lNF;%k~fn!y?8SLCxsKW z4Op0wXb@bkw@rI3Ojrj99!1(`jEPxBu@7PRk?TvW_7V+awVZ3`2M?v7soRK;D{ zf@co1!J6;^?wSFro2GW&y)a82IHsD{poz=N;WgJ(wzuiTT##_ez46+?IKSSckIvB2 zlAGq_O`(}~zuPXv%sZI&lc~1~p^=*Re;38$8(tn}c+U(|j%3pK-=I9!9MjIz`Mbkr zwnyOXwnU;|O>o3R3wNHgbM6Eb$yIHNa2M;z25m_NSZ&0WBr3WTUgi3vN|KRT9z{;l1td;FB?$XXJkhH zA_`GGL#bDH<)P*G4kKtZ;YE_wsfXg(FlMR6Q^c5mwrlIoTmXppsiWVaPT%zNL|dq6 zo88!w3fu8E`meBT0fAbdfceIKnq};sWnOu56i&TE9=gQ(gk9=sN-hdKVxeoc$mp{7 zt_)f@^vd3V`+e*s@V^RO0qCNi4qzNo@VIv#>(Jrxjys+lP2B-MjAGpdnhCIxX@;nO z#Zr7RXd`Q)ZCk433Xp=EP?Krvoc3EI+84wwM8whWZ}LsC>oM=YHZYc*&UwEn3ImBg z=sCA%>GQ~7%$w$YYb3g3z<*)4(6%{;IiUL5J6lZNHD+!jgK_Cx=ZK<}(5xF9YJh>- zoMJ7UxF8ksb<+aYM}??i?BI|67e{aFf}1i;gvb8Hbt zWgxhywUj}ZUihKKQVS_|)SKv8CdE{f8{6=_+h)%km66C z9-khcZYlV^jrxlJ75uNU%G>{5E;{Ta0iU~>Q|qQg8t#KWg(qM~e|pr|^~uxYC&#CU zdd^Rd^z1#${FB+~QK&|1t3@+2CR?`o%fcWvKZq(d;lpMVdz*!VZ^}ALbIWfLDz3S) z4+6*yxD>b|ALXKAAN3!4*G{kPywCJKK!QUNH8X1t?EISwvZL8HY43Pz$1v!7T74z5 zI%n5PRCLMuYD#US-om@>T1#;Ek434DWtr8*-SIuG$UU^Z)mk|6k(Dc!vx;V>pNND& zE#w2Rr2Cc}f-n6!ua1Z`#21wr}+dyV7{-J zRHS5;MOehOBuPej-bXPkv;4!q{_)S#lh63S{_#)P7p4-d&USio@)@6)beXE#-!^d0 z?F2I_<;z}#s@4o&n$pkL-luw&wFHQh?OFCrFEIDupaYi!`x}b-|H6bw1BhvbR(>yA z(li3GHPW54j&bHDwp{bFEJONjvqr(DPbE3d3w8W^E%9z^CUNoqc%$1fvQTH*o*`hR zn41aV@ZBQPEi?7G(L$p|peDuI=vk%clvsyCo9TnR$f#62`Ew?cJAE!9<<+h)TQe;H zj_f&?cMfbcERb*Hqf(-U{fq%`(7Ff7X|h6H$~fIjajlRhYS(6Tc^bSS$L2)+nm$N| z)4kQx)qn0S9vu@;zK}NqK(p=T#`mqlzu+0eY$pdl3ju$jJL|3VTGZr$qKO4=!kpaj z@)@}(WQ}e!wb4zuO*66vtHjt*VAn7{5wHwQZJP^}BnP5EC+w~IcrqoEw+pHNQ>cZU z%*kb5W<23ai^s)+RTZ9=TV_58w#gTyE?he9dpQ)r{%^i~{^c`J=Tbo)nAS?}HL(Tg zDi=-U?e3xy;k8dhUREOKUZyo%k`TsARD3PiK8A__w9lyf#6jvbzbL!|8n#O5r{jQL zE^Jx(sR=Vf0m0N~)-MH{yj|Pg3n&)r4k1J?nLiz;?EYA$^mGbCz>^Y=yKc{uN-{Z} z%*i#+c}A;jJ@x19-V3$}@|zh5SU*lC9BQQqAS_ z_;s>hK%`Q^zpoj&d~ON6C!eKUhS4o8)72}bIq~6HPJa*ux%l(78P?HHv}i%fGn5Z8 zb88yZ4g5QHw9PkS__JctXlM$P)>W z{pAahju0xmk1Waliyq-Q{+{HzHK@%T&bfNUXbSbfr})pWE3R0O8pRc5=kl&!vFVtQ z{lHGfsyo0h^iJs)3@-{Zi%i^F{pvAh@%q)}s7btjb!q3I|B01hTEmASh6&~441c7c z+Q_M&Zpf$&D>o&l427!srR6`R;!zSc8LvKX-%%(^Uo(IStNczk>nuxF7&{kP)>O(u`9*5{zy z1Bj3t0+ao)S15W%`DK_FTZ$We;q|M&B6D%PT2qpEUajBmkLDyBwp^yU-G4?%r1fO8d7Z4iOrr12D3Bk!4^MbNh1tDj!CEvDzJT#-+&orK+7&7d6t zhAq*)dLT*07c79#6b1Jo3a&&I5A$(gztFq;%I*bu;r*79L}VFD2CV{OfeYc9>`>i| zi&om&&_+!=#tk@rb#eCm#l<{Nf4ve9GbLuVWHYWpoG~IdJ~CT7CZoKhYBk2(q*i(f zG3<_J&&X?u0o7m!GZy|z2o=^|uyQ^|b%Xh>&N5tURWUa8EltNCUW#Z8C#|Ut$P|O> z8npP>Y@idy^YIVm7;Y1i9k$oH`KG}Im-ZD~bgiuUHK1IwVxR~0s~IwOc?{Jtj(-jR85o;&beyHB zi8e9C0I@vyoY0bg#VQFgTv~mdlA5P~8p5R?#c2j1PR1il=ttkx_(QMXhVs5Xi>j=w zSJ6~JI%)+w9_CWsai(d`i=PcO7?v@u$g;Ei$cwap)i+F<@NQdxG`}-W80TXS#mHLe zK@`>t-S$Cu-mT5$&)4$%Y=*th%CuSkpO53XZIlZeh}e5G%2`j`DAU}~V6m|nm+w38 z8~Fgz-_KI-kK&u}u$*x+-tKZpLziuFIRv8{6vdEQ`PCy!TG5;-Ry6Fy?*US4)DTov7hob{=|M;jBI4W~F`>Alhbx=4?JHo^w9H zmOBP^kQ=W2<&In#pAO#a%IEsb*k`yA%|0qi#^*gSW_-r5=gUP9In7(wHjy(I-WRC+ zOr#jx?J*pAILsNJN9N1;?8u$*8CUsrOvTqB4kuomaqD8C-6n-i_ zA~Gj03{l3*MQ^3ZYK4u*9EKNdn%+o#7U>y?wR;Vycto>JQY;eXA(C&V7fa|K4{%)1 zHNrLgC}875CXb)5x#Q7I9Z@^&)Wp~|vme-`2lB9D#xL$kPMUjg6`nANdR7QB)nMPz z()V5f!xPElED4g6!*iE#X9I{X3&pAhP1uodVQ_h`{WeSUz0G-B(IPe2O9`uhkg&Ik zReCSZuP;ej@q1QDa`kQ^G`*hxDDwpL6d$MzuUpbwcvr3&HqH{KIHaOF3(H)e zH_hje6s|>G8K0L01c!<~iGogptx`!Uw$v&}FyR9-MC!(qmhGiLh(oM z=si!ZY=eO14qK_D(pVG0RW7ASco1q`Ki;;XiUrb9tM*cpmmQfJD4=jn(D@#<)`dvf zRehUrxw;;0^zZr@gRh**K7=+!oVTIF_Agl>ImjiNyJ*>oYY|?+HVm!L=7kZE)0Z(* zYft~_Wi$S-hEqJTHfYLT7p4CVNobZyV^nfQ11;GP%jmjEP+@Jk7C?g(c10j`1EmUA zG-k9DMS7U6qOc7>$yD2q+pX}T(u$c25IS~yXUi|%*|K{SbyI+k!Y^l#Q_#ZE2+rR! zBFnIL562smM|h@8afF{i!JW+!fn1|icOYXkv%raW%_1z+?&59}#zrUrc>sTT5N)SU5+q=pyNb1`cqkrdm7ZPo=8v^SvgUnXD7C*P`uFq}@Fp>b zA>i=Z_Ky9OUa&3$n*lD_^kfB(M5mW4WWFPEfQ#+mR6|Qyu+_a&ZSPe3WjNI?(W&Ma zFm2HrV|5*{(v9_7JZ~r+inp6-U!EjBB*_SKX`5a2WP6J}7zQFIqdXwc)_?-jG3SFO zg#=OZ&^hRNAWJb|*24#c9e{{Ocu~`yQqnXP_n^UM-?`F;Wr1XE${OpIzLD z1M-J2V?`wzm3Llm70-p*Mrs`b=0qd#x8 zYu@Ouxz{{^z+YDtD^#|Ak205AxuInC=4o$A<1Pd9sfXZ>4XRo2Q-=Al|m?Z<#@ zHg{t~<~(U0F0b$*9G{do8dyZAP;k)xwO{U&O7Es2j8Y9^`~F8wpWs*7mE zF3>LbrD0Nzh&d_!JskBhBK9D7YkLImUBZryU-@v+DT57J1njsJM*DUCzHNcgkEw2>-GfSzgKWEN0PB#VH{BW)=L4$py zkC5&Wr9Uu>W-@H>re&G&1S(K~rV88aj?Il%zPy(Dkc+~+6KvJo7&kyH0&+eG{!L?h-#uNk@rB=O^H7FZq1}OgqTNDd$?|abe77=~xG8R0Gzl|2a+HFEzm_W3x z>(hOEYRRhEvgYZyd-Jmta&{DLhPj#zb&IRa*HnaP@ih+;+KYzkozCr=P#eJI$iDRu z-#9Cc;djY8F_0}h3ML+hfky>0KxVF1X`}0tTeiSRmHz9Z+XBVfr?rrAg?8QSo{4li)Vx$wbDYRshY`Hiit5^wWO*p}Wo!m|kE2u&G2&WI;>05(;b_xc*H;jfb4=26>)V$OcYBWXsfxQnhz9E@a&$aHO-I%;NW|kJiorgX8CfZW)BQpy2#8MT4M*v zHzQN~ZL0GYI-e3gXLI{guu0pD zWdlkqF}U94dcc9ly5o(ZIoPINC)@6Kzt^x~CPzkghTvoIDo6 zEX5fgfzrMQ=Bus}QpxNV1~Ek~KNpIZfe=G&Qn@%ouhz z=t4`_T*0>7YJtSLy51BH%oN?r;k#;B|Ju|ZU(StcG3oXqux#FC{Xtw9=Zi0P0s zFxn)mrMpopdedb5Crx-QtVNfsIqbF64YERUtT7D&3=~y`g{})c*zF}Bwn%H5y<|!@ zQJKikG+{K-i!s>%vx99IY?T@-MYm#rn<$0hOPc!*O@54T4hzA(5NVtvZ=+^g^Kp}P zfmuBg>{|Fjl)oW2^~D<;1*DiOdcV7gxshIHuEY!sX$IZRPGfu_5ut?k8R=q+NmR9u zrcu|?{-6!WANQ>x^(J7$g#<;^rLqs>ngl%~AGHJ=BMdu@9y4(ct%^T48)8AD+ONlW zs>w!&AenV*sU~A6&WmUze=UhuU`w~TlKMbbBFk8X1#40Jk2?k}_!20!fomUc5*B%tjM>mHf!weFvphLf$%;uLMbvR8gcnlL zENhB%n*$&~;xxV_Ul5HW;a=Lkv4EBtH72S>T_hOe$klpGbl#St09Fl&Ryw{wPeNl| zh$E@?Ac19Wja+nPOU{C#Y+wXG6>*`Aw=}tXpj9dX*?=mJrP`(_wfO>8ac~fKMVoEr z#ipF;Px`R=Tii9>lu?hI>?@fo{?#l(T%)xTIaNFX3m{*3-nHD7r?5d3aaR;X5fGNl zW|=$LEv-hL`^|;)P8V*Cw+3;$5RE)$27H6DBj8D|Smfo*wNgi+{_VnoK{%JG zH{h*}jFS>RB42|K-D?TWt63%d?(|2I@d|6;xKbO`tX|ie#(@KAq=FtXA+`-Y_?CR zE`$FpS-~o*!0~CIJNbgpt)aHA!p;lf9|LqU+btbQsl9DCEr2;up8$J#Bex3>p^nIF zQ~TZV7nhLTV;_hUg3yM5_5t+V7!$#q9G+$6%Ii6ju{he~a#q``;*UG3#q&x?`Tu9{ zZ?_}2t$cC#`?(4%CF@8^s!H8<#*^upOqL?49UXVKb);_lIgi`Nfk;#pA{Idtpw#6g zYvn@D++42Yzpys|f>k64mP&1VLVQTvDsmIA8~gRQ-&nF;W)M4sSObF{=BSB}nt0pr zMoqk}{WECd9uM1js7^X-8W+7m?|gvC8=*{~0!Y@B46}ifEiH`#?|h)^Ssh zMak~DsN&|qV>sIq7Ax{+AP^&b7LDKdScraK!JaNt=Mh!K@`!*le2m* z3X#rQHu`X?5bY#V6UnO@+apuXpzA0)c~i_u;?Ic4QH9=vfwehW9#VcKWJ3jpTjP%Xq>`~34O6$8xBL-csm|l zf$WH|Kz2h}AV1YSzh>J5paIzuV_zXE3jXodSQu?~DrVHiD}r-y2UUuBuq#Hq94uWm zkb6&7G^YzTb!4Y?f@!dVzuyKk01M|bo{xXt^KosVf;LVFDtYmX>vGe#Pe=o3-F|O~ zc}J|cQp{$|xRU{)j%g%DtKSSy0AD<&$gmHtUbAOQ0;BB%4HC$^I<($)Lv(CngTKsIg(~iw3@x-m;8*U$Jsc#J#JS9%+(*ddFID#5_k6 z*%2cP4wd>rOuzV0lnfyecT#RQi8K*xVJf0`l$%E1x`BxW4SPpy2!?K_Z_eXI`^V^j zr)J&T1~EX8hv{=PfEBnD1LxT#cWfPRF(4*M$JCRzWHCFfQ3G=T$$s4TX4_3AjjD0z zx2}4JxHeF*EUucI->?pcSrUL5(bFbAf__Hanmu9~+_EP21bC*ngxx_50qOS@53;SLWEB9nTZpd)iev;tifz1emcIg*w3w5Z zaTO9hihQLdbOREW3q^RIWL1hjQy`C?)2Erzoi=d&s@=IZqr*89W32~m*a46_;G$cT zI3$5VqmSelF`~f~RwwX4#J74MnRmi8G;56}O{M82zbzR#ThcsdnTIiq7Q4AFK z#BdKvG$+WII+SE7z+0LudG633bB7e&lOa%uPUat@Y!9rudT7e7n(bNFEyZJBS7UwM z2V?@3!ZzQp3(6Tb08@jPFq8&`XTzJeyACY5Tsc!J&*!Wxae8l=c_B!b&qM+ zaw#52D#!zaP#Z0cK9@5Sdu_{Wj;x-Q4?ukcZ%Vt%u+D~(ZvntoiTNhDz zc}5g17ffk7B(GMtEC}1V-||_5t5P1ivXqTc>|RrnkZVg3Vg?|EX)emd1~J+ym{=1{ zul!f$Zme=8gOTrX^(t}tzyA77d>ygF`kk)Td=O=pKJ>*VV35+0CUhJcNrXZ=sK{wp z<$8GF>43?A$D5O2b5Hdo5IqZorz}_caF=0O{|KlZlM9ZZb3hv^kF0KaULzRR3(#k~ z(&x&WCnQq{iv_R-LM@5pt1448XQGnXI=G!a<|6c8t{MA)2O;i~b&oeMTS!deiCwVX zxNhq=t8+@z6L<4ESUC29B?eBU$f^bJ1b_OdrQYkR)s+PN>hMx}McyBKMeJ66{pTqL zylt(#PEuB|ya%yL6gtXQ}A6W^`CE%$YT}sRe7ZA27Ib0q$1bbDOG2$|}#h7cELOql!wV z`pj`n`K*3Na}WQFn4hpbe@bW%%P{DwWcr^*%*z{8=Av{HV=L)|`L7KMf^X|NE?Lrp z?;ExIO^@EayF4E{P5K=x2*Q6irz*nJ3Kd28_m!`L0f@bu97F4IqwGCJi-grC({nEG z;wnsSz1BQhpPyY2^VdktrQJ^0XDI9@D{4&iM^-ypB&>E$q+H%TrfSvhrpHZv!PZu& zi=PDd+geoQ!9ZvmJ>@MgUXY7iRwb+J-E4fOZx2UmE#v~x)a47Sp9BdHG+}OmA zzJ>f9_|jD#Atx!jKanYYK7lU8({S{9UAjM3+N+-n&wL^U~FM?X2oiOFlol zn2~ozl`+>cay31Ey{F-ck2$eXNB0pHf*5^1diXjB^zFs@3-Y=70{4aI z8F?#eb8$f7afu41WQOb81eq|Qd0iq9u=Qz9E_1G20q3ynmt-P0q1c+Lu~sj*nxLeI zAJIQIz7ik`xvpAttkX#!BeJ>bp7Bb8E3ayychLD%{~fQSUPEy%oSlY<63fAvD(bV@ z;S3^44`+u~5X-o^EQ3VN-BfqRuTa$7cr!x2v^h6niH*0Nw?r6d94O-!&ZP9giqLI#91T2uH^` z9yf-5&f2^5{oEDn+{`;`|ek8fzG?$0JuE*!c5Y7OwKK}C^G5h-aAkIa>J;yQJ5 zeQ|pJ`eL?9AH$+po)&`V;mpyE64CY*yLap#yjoQTVJIv!xp`Eg5SduCmlqx|5x>Af z2~#@NGyHh9MlFYEG-_!lq#l`*=G8Jf2J%NA_@0Hr&DrSlZ`?9GSWp2^ExkHZ1uIt^ zBbFP|VpvD&lq8>Sf*&hHx+B&tW_A~t?`4CUBV7eHcXMs+(@iE=lx*titIT=E0H504 zwcWnkyf*b%%bd02;oI4IBa|-&+QUNbAS!E?t?N>E#yUb5So@?jo|2;E_dH{ZkRfo% z^M!{K<)cp-M7E|O|F!;Cot@iB7|zF=FW*9GTJRS?TG7!R32X^Mrqd~yl#c$aW#%+H zCSNo2eF3$0OP(n5uoSKkD2%OtMd7GoMKkmEiKd|CPrM!*bhy6%uyh=Hj~^vp@4%t0 zwcSaD-j1Bb6a%t+o)WoUWjw#D%k<2JfdOPh|6uoT$!Iv6ck_05)DCzw_g90g%wSN~ z=j@M`O_*R0UztBRfYJ3x>_76zBUJlG@LVnv$>SI=WMzbGTHCfW)v{K7+E&*mRUO?G;)62oYTDZm=LAaji;6|-!oc;0iiqJ~W zp5nboY;oZ#wx>6knKgKX=DkOZ&r*1b(d{>UzTwB}vAk2YgC8qQ)AVexA1my?`Us); zkGyH%ME`g3UGbbNPL(JJ`3)LxITK1Hl~~~k12ZP?&9;35#=Oh6wYx+wLjg#|` z9I2!T`uFyp1Cv#`FRoxe-{Nw-ayc-eF74R~2)jDoqGg_U>*M$T3VtK6xP;K0zKZMc zFqfwADM)TtTIuA)cQj4Q7kCHHjU-hDaTHhM+a@rUh z`!kP?wdrlhn4&kH{}QBoZ!dUV4H-D0M zH57ynUh}~Dp(-Y=3H-vCBy|4f=DSy?f4F!B^M=ta0gI$s8mWAjxX1WY+jYKrmo1NV z+T|PWx}3audDHOJZF%InEhw9wy2q+c`Mh%mp2*(m!D2R)R6QwB{;ZrmrEM-SVDclm zqx8seHu^kA!yQrmg2khQ>!N0~UvMdhWMCfR^Hyfj=LeZjsoB3~{7lLi#F))p_oMEt zM;UylW*ob+`J%00VjPESeHH)n#@0Eh`Cs5znG80x54Trvv~e_a<<*Po-rxHxOH%&{ z|ALi79%Vh&6oy5Ix>q)nk2|KTPa)Z!N|9AuN!Q$oBDYSZ zrc3D&XY`*bt$v>-{l^~FA{~&(rXRL*etB*rOq+=&%_bueyNqn_v?ssO)64Un52h&9 zgD8i9bTnVth@dgQZ6=X+Ya>6cvv&h$Z=<4I*BJ~;#7=1)cm%_K5a)N>ID$W|qqqAl z*@Md9uFc?Rc0y%%wElrxegMz0FBn6HUbvd$P%v6~XX&ZAi0#eJoTL=`x9(3gnTUNF zjrUkPBg^!vh}^HvVSp97!|k!K#EKSJ=$xeDA%CD{8YqVxmF9pOu@4rrndnfzW2*3L zWjkf$mMg3*hH-Yv*R{j0lDu|GYBr)-hWUzT7t4uA6wPe$My%Z*r2FjIGqgQE``3T{ zR|0iQQkL-5CJ};9{mb*`GxC2Md zT)ju!bk4}R7k=m4`lwp=)`iH0B6L2-9cU{a8qQz=NBClCOKj^smhm3^TQH}fUD#sY zV3;L*$K50_gbB&`9V2rI#kIq^Bo;-uWKxU#3C(q{@I&?Pk}L>9v|ndrMAg=&hsYde zTY|yV1hIkS$P0Q7LxhvB@y#no6_>#P$kdF7W+Gp}s`dCsgdc3gQkTWME_ysR@s%!+ ziM^%~W$c>~QuaL`YlqNVQ7Ie2fWP;WMf?YV;=vi}ePdW1j{#uy&2R&_9-8vWgfN;c z$sJoyfi*-?MQCzsu{hU*Z4{yPs(zmhm^ET!pBsA%692rkFDi{77)ucl$#c(2W9qU% zD7IEC%%8DnQzX^Pt*kVC5?QK=%k5D_Qgvgk!+SIjHrH{Ld*2u`pMZS`VOElv1bAxe zxOjm?OP=(dU)NCyL=8o|6Wn4?Vgv8$CYh=V>@I|X>CrMN35WGr(ejR205qD#uF{pB zJck8|g;wq{rd9JWKM69vocZBwc8FJFOX6e{jX~8W8b|mwEhN^*&~i6a-Vu<%tCr^C zj-*Nmjleqe+b*?+238vCsxxH9X-?CS${stF=vYPKx3_lt5afskFr1St2GAs3GA=qP z4Qk7M#X;%A0L){iR{mm*Oke4-52*9Nk9_2gEisC@_+2Oz0rCf&0-4#5=5$ebqu! zxm2KrBp*3IQ4-CgLHV)bwkd`?VAy?T;pWqk8~-s?l&k^t^y+e;HNktc!=B(h@w2rk zT%tw6FHU=259_NT;!m_jzq|6Z)wP%Us;oU!(btB*ph_6Ca((&M0M5}AZHxynnkQ7q zfPPOv`exg%A`Z77xq;%XXpM>QH8x>GfYTRPyp86$z#`gmf^}sF6rCgHwgRcsi=8Pw z58)u$aksj<#JeAc){<;YvY}yTNhV9SqJ!lu-CpXIxiaGAL&=q5h@i;Il_X+5vno&N^!4|2oC59vs^0nXoxhyfBcw=wPhE-;`p~KI@ zv8I_iKRP1zaI+a_jx)-LvH^m4csQFK4p|+CFJsiUO3kOgB`i-wikn^cyByd_Eu_~r z0NH^ z(9dv$1ZGK5O$@QwimgPso;ZT~$AK4H-5W#g807J!Dod8DZ2gfXb2opnm1O&WY2P29wnK)$?$u>2@oqQmo8hkpFx1 z{?~t<9{>L6=$mKLfBW{=NAG9wAHO>O{qbMzKYo3De02297q35mdv)`e{V3YsaCgg3#f36}IELm9v@x5iYwhM`^J7X?xVE6_>QBwG{A0wb zAQ=e8>7_r5T%AnTT853e&qt+-s_=ql}I3#RUHd{iwWPdjP=vao2 zoq5|C`v(-C6ivy`z!s`&A^Pf1mvt*@Enx_psc0DY)wj` zsEXb}+e7qsmHnjtNF+rR*;Kg(2rXf{_ocM&O3Ix`uC+T!|;(Sn)D`q{JRAutYxC zFUt24`o0pkYZV8lWS(u}DE)8q$1RB0&VFwfW2_NgJ6?*BRTibFf}jMAvB1+-L$)4; zBw-Tn(DS-vc^>vr0-fF^dNL5AHvAyFB0plezupPy6Y)#7;8G1L>xwTlH>c$J0&C-~ zs!Z`BbF&j1#I+@6Zb{!eLOs(vMf5L(-7Y8(Gv6cE2bL==#a8NzxS%C<)1Qddippbj z!VsGD+(HJwQs0Xu&FWe3VqYG+ITg!k9`v0yk7G=(XqH@C{{gorYboA)K@>;$A2W6{!4zJuoziX z(|qh8?t}1pTf?x+>75GT@6PWF7~nM1Y$dFZS@fuljdHu*N2%zT^2T^{Iv)tK)82cw zyp2N}J1lS0CJ(!&sgUFknMm%)IRl~n$0&SU-lqF0BR3Wy`)^Q$th^2D**~WeWGlKD zupQxXXLNwGiGKnvwXY)6jnnpvrFfVsF|8z<@?h*+)PV2U8Ug{MhiqPG=zdCokr)21 zg^lY!oWGNOb|X)$K4B_3Nm#KwG1PZwMth!~mB_gg<$#Lp_6@uR6Om;G%}vb787r2K zx zy!-^9W*II+I;^gGtczUEQL9KC$`r;ud zj12|}f7xP?G+ptY{OF$qi;SoPrsb;6U+ty3t41ahnz73-qqH*fY*R72F@N+h^n28h zt~w51xXnXyk#;)@#u^SyjmX>e2rd8EOM5{Td!X@mwt3#K%(PLD$?lTi5Kpfz$>&Jw z@wFsMp-}uh7c0u+%gAoNxLI^3b}(0t4l#thBE@sQsI=Z{^vNF)zJE(3`uV{3Kc?=f zXP2`n26gq*nB|2_$3-#_$#TiT3FyVLfG7p=$u2(t#j3Dn_LW%h+;RtDyxeojgLt%~ z9Q3o7gQUzZa(bJEJ*~|R?Oq`-GrAxQ{&A9WssEqc+`Ix$N|pDQ-1{G)U-XT0s^$?hB;K!LKdV|%eOTWQjqgzJaE_rfyNSVS4{1kAk7${tF8pCAmI&Qt9^h~MS)Y<+BuPdC(l0n&2M^Sy{e0{9y!yXLr>85Kq%xJMq)(qYR999ii)W@# zU&$^S4dw4&aR|vSAx3gnX*A8did@}0!70#>lX{>X(=<2fvt?Zm{_Sho>&IX2hx#2p zF>gAJqhNN$G+25w_krr)|*ks=OE?3Ft+2{)9888E(h3;Rv|YrZTjUwI$TUw5Ks_a+v6R)DdQK%pf3# zZVlV*iq364L`PjIs80<#q=pg$43Yd1HYI}tScE<%wmrcRleZcdzMiIy!M}h82y}=j z#L(8V5%68H6F%O@XUCL=8uuqtHono4}O+ ziU#=0RpBJId2iSX_0>kmDilu3z8p=5AT58nk8*Am-Z0PkkUrh~P(<4CjYN`Rt!1pB zgG~VqG23G)5dgK-a`~33rV>+N7{M+|&xk|iM5kZlD-+RZq{mPWs{}*dB+Q4uG`j9z z4HMK=sW9iBBSG76->AUM^c|Bh5*=6VFGHsAiJK4JKQZ8&H}xdHoKgXJa81EUf?<{N zB8V(qrbRBVA#7=_16_yX_1KrjI_BkhgREz=1e0o@P+Blg4h3FbmH5VAIIkWsogKDD zRk^80EVwy->I0h#9)_J_xG2m_<7`X6NMi6uLUdzJ{XStOYAkccV zk|{?I<2km~^rEV3UXhadV1ZNz7zjko8q-8geEi&{TkIN(CGIQFzkRWdZgmQ!q!yWi z7r@+UC5S^OA)?&ePn5|5fKHQmgohzB+aO7)veSn(l4eK=vIPjN0J$XXHYO9V{C51Q zdl-={0-+|!pGu7(BN32<1?S3S7nagnpvW7>$fLR7)vwqj-hAtkQG$J?uG)`9Q1yq^ z>{s(AjF=|UrzE3VHelJYkJ*mI?xzq%6auN}FG79G<@!qaLM`&nov##rUm&K6_J zCav>Oo`PZ>Dwk8KAvL%0c8i1tvMHhJrH~Z8l%Y|nh=5Lt({K~4*c6v$ZIG>p2J&w* zTKvk&>nfRIwY*nj?ojq&u~2u~C|+i)*2Lm&kYOA+gfyVA+=yx(gA-|t@-$W2OhN1T zw??GXfCSB)?lA>HOE=Ef6V+{Gwf+g8!v_e+73x*-s-60YEfKeDf3cvf8Z-o3N15W<7W}9FvTYBS92l`O!h?+U34WsIF$Aqd4<4=)XpAp`LC*S;v7<%7xMCY6FrS6pW1t3|F> z#$OP$-p@W8)9|qqT3IYU<}%je`p>~}&G4k@u~bwOCj)%dJI-i4ZuF?4LE+#uY9wHD z=8A{N)Y2QB?&uQme{k^8hL?zD3H;I{QPU{%tq&feX2k_}`OT<#rAmSmq3Mbx2}n&2 zS!TRR*=rmzq#fO;Oao}`8SdBn<16cPQ_m`_-@mVk$fckrRn*>l)_;;Mwplz6HM7b02H;-V;2h9#zbOTuzccBlH+C0MiM zwr_s)2-%LdGD9VSqN_tBP^&wbey)E@1BVpB)$FvDp-2P)xA?%ihVN?! zS}8gYj-c|NW)eFcRtedXan#y#oCoxPv7=6;QM z>5KN51WAsgx#L*M*pveg`r7?6o^hL6%E{sizv)S4WvU7Zh$Zi-SCl|~7;DBN=C>+p zxe0>D7=g+Tum9Xbh^n7hRx^jP;+*FCsdWudUvc7N^}P5caH)n#ckRDLc~yjinQhD_ zpjfOhv!QF^ad!>1%mSNjz!v3KJ+q6ji;l~99&L?;bG%5$xOlSFdK*HWQb8P^jb+OX zhxZR6Cz2^hxhPBSAAJ%)j^`}L>rafqR*WT*6Mm=)O}9rAWB=u0{Tm^k@JqB5uo(SQOeA}RUS?-zOla^oR*|iMjM#yZ5IGuW zDawVVz|@XGQZy2AUWi3@cukSOqwJXyJ^li@QtMKvIV^DNdY9FNQg;z<6}oST2%B?T zf*5Pu4BsQMOJlo1@umThFF(EOjn>W5AgF`?IO4&Ed#1g<0B=S(=dba&gR=(m$v(j> zaI{KxODGhmZJUzJx2%OYs5`Z?u;8bfD@LGqMCV8*!(9I2N?8l1h2O|=mSNVUE4CwEr~9MZ|McgxXfygbcvpz(dER3RQn~F~P8+eorD%~+ zf~7mw1hE+fxag!MwUV7{;SrDMg`Ybh7PRbgj|nB^uD_KSw7v`aR_t0Mtp7pn8J>_?POq307)IR%jzVAO*n29-Zt|zC{K69 z)7@KIJFs`kEG}Uaxy{5Ow(w?V${gd1mXR8&ITTMFUfa~k033Y{iG?^a1TGGpTE3;X zfeq{L1H7(G0ugw;W^|FiEQIG6)I>ouNFSlX z4v8^mx_}Ik1_XwW=Q-iZ@%3TnX$aIPnv0J%s$~enQHd8S_%kymQ5=qFB^yx{OL!6Z z%*@9ovhFUV6*vdhU7AHJc`V}`)yl7Vbx6T8CZ1UDzu$^R$?o2BWU2qVCwQTZvwN!%H+S`( zk*TmRUSy(Nwu}#8dZCGpcLlXF)4JeO!~kGm^0TTx5CI1mdOA9+5w={+>>EZW;#^WS zy;&SoyX6P%GJWRCf`YDL!=81+8*~9<+$NxQrGtJcC-eAINuy5iNbfS|RC87NwBi^L z8AUC)BTaJZOXP#gtMl&=CQ;|$+piBoP62j{?28oM+_WoU{!TwO90p2_v#X8%B>beE zQbdDuFBogQX*RISln7SS6djDy3|+sXa=hwH+DnP@AY*RG1Y2&S%h1p84_U)(%;`H@<;=jj|P%vEyp}$ zizbF`M8CaOxCvp~*t;vc-Ksw+5UGXsDn`Jsz5XoNgEGfGc1{%Gz|!O*<0XqAXNpQW z8UC?Zh!4<{DnHnwI(_LBI|EWGVO}$3xy)Awk~87#)uA%TLZ{t?+1g*gQbmo9%H+jd zYX2j@X(&&tgmf*&+%RGj$m)+}E}+V03pN``9%pN>L*iW2Nu=v$irGtM&xodvH(Vg$p`O_;!RrgsZP>PEz+t;9*m%V#3x>BM{-u73mr77pU@9DH61|FrV6cx7e z36T9J837=vCe8xVbd_0SM&k>V$lX|MA#wj=CvPNM_B=fU{$V~n zcGq`KZ#R9I3C^ob<1F+Y;@HiIM=?-X@t&v2%rY5qnrNAKJ{gc*;)dO}8&oCzNZoqP zH5)RuT7cwx>TC{8lXRON&K97wax~q-BHVC=CCT;^2Izy)5T`0}&- z1gjn>s-1vXu6mwTJe-Do?ZJWPnj?AQ`*eSP_B>(J zeB8c@Wnn%a5u44defECw0{fk>v!lmbc>oroV_vOH3&~8mn2uY%-OvOJmA+Y4H;WfR zB6mQjO3WltvH`eh(cUzB3>4>;=U>0i3fhSjFMtPgZ{}4>K)z6#OC^x0`MNtk&lfXC zazC7AItI#ppwe@Ou{Q&R9@#}I_2z42SHKSeut$ZqU5Pl~QVfY?&Hq7ol1IJoc?DZP zgGUwchp-T_WoRZZq$EoV`^-xIYP^fg_}VpT16)Y&B4#>Zwu-ufQ)ITC>yiZW-&4Mv z>JPb4QGNzgu5a4{Anq(7sazxqA66W;CL-sR$bksZoJDCJA4b)vxrlO2 z;erwkvAOXmRhpf>i`mEVd9adHWqQ^QBGR|#wJ(7Z+N$keu)&OllMhfVlM!_Pelav>c_vo0NH*2WQ@nqC9lFJ+5;R)p-X!tF0wI|TgQ5l9m zjbh_W4#1g7l|m4qR+JG3c9KIB<5Z(;fH*|$cDo_5z~vcHab>(ipq8jLCAWEA{YqQ< zGkpbMEasK4b3#d0R(x6aJzj|f@nxA<9(I&N<&kV=u6$A>e#K6hI!esynf3T)9P)ehZ5k+jxG{lX< z^)_38fudsk2y;6=%#L^Hk)GHzkTC@1hN2TL6TB7Vo?;HVpOq+X*52hYlT70$Nn#~j z9lck%C;!lCc0W>O+$}jH9Bu+2(>*}A6D583Lh03=nw^s|pdlJCYtEc|02ay|#NQUZL6)%Xu%)}km zHD7aKw-RcosT)qFZK>`Jvi~~FL!u{dv|1wowxehNM@ysx<8x25RgCn9uxq zOOZ#pe0zLrH1+Ou7B{iAqP3iY&GcX$-!o)iB)E9?fy8if2gN-yX6#z!K*NlI+QnHq z-hR%!gG@7+q$I7I2vua6;Z(G;H(NDvoZ)n4E~a?KaiLiq46IA+>AD{D zisYkqck6eX6V3KnI%9k1Ie#pa``;SE+6b zhpla)wM^Y@5kukTm?s(q5oJE1s95I^p{WqZF}s+8u&xe1?QInz)mRyrrPAYC-M`27 zpzU$v*qR}ieY5bVX>AxEP~-Lmg=$s!SH*tiTC2iUw_VxFF4R6;uk}4|C@fyc`CGe7 z&&Y8uQp+LX#-2&iC?Iwo|t12FabP%<|i3berq|z)o%NTDgvjmjZgqG0*4g zp3!d{=Z&0W+lW2*wilrxC;8n96f~S|*^Xx2Z0_oi5lQg=TD22{xmtPCuOCXyBg4@? z06o52-{F%DhI4Bs0=-`0fA6)1_YDefWm9)SEj8a-s_`s;AkKK$(Il92uDOr#R7I1E{&1IF_RBtwn=2M1I7FYL<>6|tg_rm6m!SR z|7KL%sfFof2kzS3JS}WPSW6ggAsaJyd#sh;17-+TT&q+2N>L~MC+-gG{77*-7(&U18NE$rtl zT|i%WR6W`aeNB`bdNIQd{T9<kqh3Y1#4UcgKWnWU zng-Yr2?E>m-WkrkVT+shmSn6guCHI_kb0UCxEEZ$NfZQH==dYDottf$G0PgpCW^>= z-o(T4v~tFw7yn|tr+ePZb+(GQWABB!w)U3D9UGN1N*tT4$10LkV8hyAl2}m-9MPpf zI4JEFZzuaDSD*p`5KuY+3E?k0y1NuTI5(E1Bp&kH8?r)fAQ3Mg<<58yw<=JV${pp$ zb$j2oP8kD+o7k#ODINvnW2sH-J%RUU)}G()DOnaaG?zIW+}!BQ<96bz=?`u$xNYp) z25in$PS$Qe(9QEbd++q03;?*Uo?UG>th!1*$%^MawV~2*A#CJ8Gp8k;g8IAA=33%{T>JXa>9zr#hHm@N z&7OF-S#`~+e}?-IVlq=L3P=~`g`_LHqB2%XL;o`x8)f0vO$tbxW`(5ByK+caA<4UV zM=SEf`%57_CqYk#fz2W{BIVN7@z(xj%{m!Z6{@;J8g%R1gd2plMF3GWDGYF7dY&1l z&HnM0_Pn+W=P$4#)%lU_sb*e788;@^xj{W<%`#$+L-FBZe>WopFGxPt$eYJ-u+e}~ z(9&B{PfNh<`n2x00RX>ncKs38=3PDL+$19;FgZts z5TNIlUS_}v*MJDunk|SD^j;*R#RG^E_F#obep^K#X2N3h*1}@w^9cLlQK#Vl5MoZj zi8u$sV&*nQoq`Z>`Y-mvV(1HqhMICge#6A}0SeYj$zs~=>!RB3|2gjRSk6ZZ zsyi0{_u6h*71nh1j*1cYr?CF-_%%^tflX23egp|SVMHs--z!rk=n-kuA<5D+i{BJr z{~<%q3*!&`vJ1%8hMU_N5XbhTK*!(Y$HET!-D?!Wzz!fo&s2$EVMqM7H=ygVe&c!P zbD(0<{Rm2SL&%rrL?wG+MhdM6;|9VF=<(E|#E}T&gj>J6oZtJ1tY#%tj}k}SwjM&p zW&rs;O983T`u_&?e`uCMNpiQm;=(#MmV;$4Y0?5c zKTy+C%L1y5MG;R812z9r5&Lv0k;co2WUV4LY6SO<{w77%QsokzUl3{Ku9NLuXqzsk zss07T3jh{y^`v}hSJG|7!~L3 z-0`q@kQu}=nch2ftFDN$U1KnvA*)?34#!|BnXz;1jK(5AF#0=`O*)^XRbX`Jk9AAGhe}ZUA6#sQAh=yX^Wz{v*O-$$CLU>V#Ck5Xgs^1s za)ThMaR6yoQN{|jbvBgvMR*pFK7m4xhkr0*HKN)AJ<3J~FxVl)>Le&sWY2s(#}@9& z4NPmo`VYvL)8Vt#rog?)jKdQsW9TlW>9(Q%rca_={jc^^E(2l>%@@0m{+1$DK^gB$ zKHTDos3K<01uCFN;cP;}{+3A*Hu8Q%y7|HdwYQ_rC9aV{PjucymJ=^Al_>z{7-dmiLlX?BIRBGVOJLhAx{OTaA*Zcq6Qp zX*f)g6xShe%vW};?m8_8Nc2QIqHu?`DbZTHeM{h8?5>ufl#GmgG1_7Xo|tdqVW0%aF#YD60xOH5sUMZ?DzaJc$pD&Z5qR& zuzQKzl);`S+N|!)0_H z&^)yHVwt>!aBOc;#nM+aatCic=SNh&eRp0=###v2`h4A;GXjwH#pLdW{^XGl^T?^w z%Q|m{x*C5n;C33uEKPB?c@*&?^-7!u3OB1sgMZ~ys>_FkVJeTK3SqOX-nMlUXv!r> zNSAKQN_-fPE3p#YG*Oq4K%(R1ZmtWg5=KP4o1(j}@h6pQ>K&q(P@=!qel1ifqbJ-8J~>Xa%TUQZ1M1F<9%{05{i5XT&OdK*>;{A9Z$n} zo0HZv%abG_XOTeLlU&*_2A~$2yF$mQXgCf_ne3#cfrFeDz^pRHrv;rG4k-PPD&TnU zjyB1_p(HU-6l5k;2PYj?l|YiO2p5=2-96tsrNVsTNV+`b6_|XVDc5slphOp}(tcJk zwlJ@lxIsC%M<8*sJF1S!ZP9w133VeJ6W%x6X zMx_GkRoSnemvg|-q?tG8hW>YXb}87gSI<*bW)W5C#}{O~6XDByiBHJlVOEk4e}7sJ z70-Ham;+H_IeTtsXZdD8YhPteS;)U&B*g6YbG~;07INIZke@~MZT}zRGclm!`Z*_> zr8VMcf|N5Y)%ZjSRF|7jDqRqax#g{8pK*t`@r=0T@Ww+YvXfzkjNW{8-pP1zb~Q;k z*|(Z+yWqN7+h;@TUumfS)X8X%*9||=2$QhA#?6Jjv)M!^>Dw&kz$3K$!nfHqXvDMxme}gaAmXu z8DGBwZ~suwq%jv%88fx}e8yaRx~0@n~K6*6aYg7j>_kI^|;Y{?qCE`PG}l z_mTB;aPtFlQLrjF=?ylU%kz93yt>cvpxZ)d5+Bpv zF$rf7D#}~cWtO)rLFe#=NAvr3fcu1k`nF;=`YFjFiV%qZEhPr^??i_|w8G8Rc=Z#C zL=SJbkK^0%1KQz85no6f?_H0T;XbsrLc*ff{pOUFFK4c0{?1QBIE9tcn`5N%kVudB zv`Yw!Rgn3PuSjN_r29n`!UMl5D>jL#i_b>WUe8{r{F=ap&32omHs3GnW4yia@UnCA zA(G9OPFF`q%eDNtyGCrTxUj?JH94D#%ue!tvanXRw%60~{e2%jk83S7;Fv;6f+SGD zRx0hzla?~QT6@6z!-usZcQY^hF9M0ROcCl%!ZU>ME2##Zm*9hzQz-ThV_Z+8XNs&> zI-@-$#cZUc`eKyf1IKx_|J0kK!r9HweJZ^@iBu)999i=oV{g_P_761@96I;3kziy` z`I9P0H6UHyBLK&1@yjB>a|?O!w-Y?#L=^1-5KnzN44u@ zP?D9vBys}aP#1#uDQbi|d8KSbyF8OYVEdCaF1FMA(E;qpq+(S8ELaJ1C-Y`YwyT-^ zm&sw3>m&ft(F3O~F&e9C?Ll+eEmcyw&f-2)3oa^pf_XO>!&zT~#0+)0e3qnDnkTT{ z9;i436F(;Cy@A{<^4C9oP3^a}=cJq-1VcYA870C!aOH&QO6V(VhhvNdGCjCVv+DO3 z&k1zmUsV2z#SC_Ss@^8cqqW!Sj~z5^hKv~7s>D)WN3i+kKEKq!S7emUE{r?mip!Wg zZxtN#hW_+7jqrPbcvMq@(J-=1c>z=R-9Wucv{=75D}k?rFYqhY+w{MGzFziszTXeG zx0`%#y?}JWe?muy`r!h;xX~ztE#+==k5~BqqX* z-Fwo0+{Kyqd^5HQKmZ1asAxXs#t6EbAqcgNH=rahSm2PlvPXXk5p-O+I#))TvAAD8 z(9+dfgD6KN{}Rc4V|RYuYZni8@o>B!tln*Rzu!;4puZ1PM|=6cE5Al-V}BQX?0MUN zI1O}AzJEG9LEGKd>h^d!j=Z7W>FRFl>FDWdH*>sf zUJq#XmiMQDA!@H^xRf;FHrIEi*@FUU3;E|h1vkl9L^O_YP*?qP_wwVK!86zVIlB8( zx!rc=@6$CGt2?s`?i~Cb@!w1t(;7=LS&7;K=yvi@JB8}9{v{A#GXt*KiTD>imuhx{`7|1q=tYnu!xwD@}h7VGdA-Xk~aGeuoP zRlWa7$B}*eI5z7z_n!9=y*=BCu~k`j-dMHQ{@9E%(qPDNe5U?w`m4-9BWYiWhWo)% z{L~mHlUizBF3y^;37hl>MTz3lLDpde-|kC_ifVO+qWf$kNWbAQl7vbDc4Nn1pLqFC zgatYG2<(&OOOI;xZH~w~qA^s?&l(l8{7srtjxvd7Cw0131a-(y7i%&mbE}~Q2uK$+ z#u+QnwSUbgWq`eQLMik>J^8Gf5(1LIQ%u$ zMgH41kjqk#l;VFb7L)!>Vupf7z8lQuZSC;a)TDFZf9D_r{+MRmaY(I5jQITXFlAM+ z&F;n_YY8ilIh8rX8wNsf9CmQ{yGq8f;#sO!d@b9ZpJPEs-eXXp=(z@}Vqs6_SDQv$ za4y~T`c`eX=b;;(MU{Uu%M>paU+)7oeUYN-QN{eEs^O7~pFA(mglQovG;LOf0mD+5 zZ^FF9y!k(WC)SgGiJiw8>|@M%Z#%cczsTp0?N6@DZaNQEd_0lyp_Z&C~=1X%61be=Wr=%AFJEiu@COQ?1?~QsM8U}!KroOD_Xl~ z@?wZlY*L~#s~p;QhZ~Q3%z@mYF8uV{$59sLY1Cx~HF&b?Bwo!G$bCl5l^=J_b2VQa zcmC1BGvJfT?JFPnh43^w9ctG<^WxN=t8Gk$)3MS|YERD?{8{yBYjLU&`2~>u9 z5zEU%mg}hccGBXdzRtKzB+o^NClCd1C}#i6jTcqBkyeVKcArm9TufOL#nu}4XMOj8};gTNh1|#y)Y_ zw(7Ih?PA^km(?Y6exb!hldQFgpC-i?kh!36h6I7CCW*#ct?`W3384nl4((XlZ!mze zjNnT^DiV9|Z&kfdfVwAK7tjOhpLlcG*NVRPqq^2?j&1()ucR4?J+X9Zbq!U<^dt?zF*MF-433Jp8A0wp*onpw>jO2&%!mKB)?bNKb}hMxw#+cLA@tcmMR zxpP}y?(UAJ6n9Hb5F`0dEGZgF%&@9#k8mJ>ks!-meeOUE{o+Th-j}K+L~BA+j-UL+ zvOrxIURfSr#r|RCV`iaiW&jW~k<}ujJ?F}Moes65$8l|lm?NIx70`GTDLF9iDTxslrsQRsElt=)X$Yuw z$hj(!h?I`WtgLyI$(gdts+A8UR|^gJ5pq)uWJq$F)4qTCq3~}@2Tgbz5@yRU!qA94 zx-VL`p_(m4FIq{c+z{y7ml7kTo#3?GLD^PUR=rPt1y4cUh|FI=(`Gq!_tE0($>g2F z&(-SS3uQQ}j{D!}^6NC{tkp?s3d2Yl#+EM-$W&J#0XYQSNkc!+QEL1reXec9U>YvG z^q}F*-(|woTc2b_2J@BJaRl{F(#NqD-bp8 zojVdEX0G&bRp>L=asF;W z1T7@w>sYzO$yIipQsZbE;uPjN5y~y1f8Mtco{3TciB*}w0+8sPju#OJTwjq08yvvGlm{Oj%+y8>w& zF1heqV?M~jNI#7L6=K|MF(pA0Arz>x_5P}pad*oZ&Qi;T9qJbV`K|joIJ4kykOSBX zkHBDk{aEphfe?hVFF@TmIM~>7;A@cd1`WKtOsZ1A?==`qbD|ISexxK|Qljyx>E2HK zF%AOP?&Xvj@spK?nxp{J3lEe;aFa8)+~}Ni&7Wq*g5FjRDSgh+2ekA2j73%?&sj5h>AVGN=Ppg@&|Bk!{VRbG0J*JLNK~%#v zp5S6ick;eTvzAI-586P*4Q#0&-1dU6V6m0DRxib-wU~J^8$RHgF4sIQGMJ15A}@Dk zee|EFlF$%`X$r$HP>!`F;lmwy+d7F>*4#-@W zGEaLix&p?GRqH7F{T5p`Db8Ub>o>19DUM;!u{<`fknO=h##(k{5nSbCKPs+V&f5b6 z?sZ15f-X6oz(lmdHCvTlVIk$Aw`6%-<;_AH zHE$>yyaCvx=kvcks;X%l(^pU{G~VbtHe?sM7)+?c{Q;;`QC_dh?`_I#bG$c+oR_lw znL)v5%(rN!$DpQ(QVF3LEY7p?J<{=jhe*xlPsywQIOdYN9^OmJKFa9DDTt&u+_O)W zrY}imU|11KRs%d0(pJJsB?k z_auYVO)H%2#CsBMPqA#UHf1&22d1Z+46PQHx~|HlC7r!0*^t0b7_hS?FVE2ApPv_4 zMK1)qSXmd@ME%yi(-k3)p3QK4s-vqj4bA}rX`$r!>#P5%(Kj6Ew&GC?IYby zj|4nqm2S3VHrMx_LLIUkANy*ofsI6%)HJL7O*$zuu~@^H?1+0_t~E7~#rydH?58O8 zT26F<=hpUw|EnO3M<4B+1~-K^&URA+t>>-=EvFtCE+n%^s~`~HDd0+D!?7~Osv0fw z&U0)oXk)<R`OOk1J!8)&424j_(McUgaSa1#b z>@gsbxq_E}gu0@J)>@hR9UqD#^!ln==O}(OKi+(7J zWJK-HK)KQ;6j-_NB)6y<^MW^O>#lkQe$G4)i#@N6DD2gTl4XkwmKuu1pt1?ppq6vGYP<%46KDB*j!J zWow;4xZym7E&D!*jg>e4l*}VYD2v0;#NGgpTy%i#XW%rtma2`h&i8jI?WI=C?DHb?y`Euh=0}+It4?3L*A_KI*Fo#lmVzjCm|t?W6L4Q zyi3ynF7Y8xL~Sn;r1v0H)~-_(epm2rlO1}a(Y4Qi*GYAZVCErfcQ&`N3;6QGg%AA@ z)@D1Uyi=`jc(a$l?qXN)87hmb|BTaeK$B2(twF|Px;*jU0V**=+4GWciXd&uR0$T$ zA|ljQiRAF zfS`ogP3RZU#|mlnsnqpzUhSb1=JjjK(u>tU-Ya-^%<;Oj*v~|%c7~7q0)rXXe6g)M zu^bce=kR4M7P_&Rs`kw1i^*P!Vy`kfe;|}pY)Eb!#R6?KHE(yxw2UsGQoYWAn*UY% zw!zf1@>BTHNTkA5^`8rS-i3l@e)k11s?Q<2@SQ$cpCw1kA3}{15i@1)mKE zBxf6M$)9p zCVw9pp4i91|r7@>NX_azJ9c-2!E=(HkV4NzfwM}5MP@`31@TK;>J zv?Hky_1L!JSfEU{S?2uJ+Cg!06aUv>BYd7l(tZw5UnJnLi)Jf*#wE-w8b;?lPd10n zT4Cijqr+aeD}M}m{OwIfFP_|3Kg!zTELFxoM*_O8W0oFbA_rSo%fg}u56Lhb@bGgi zoCV}N+msT5AboJKlB7GNrxw1zn6wWZSV~KJ;@wrt6orH&6l%F>=3Q4?P{AnIr~b)o zgJD8gkK^qIQ;g(#!21=?mF~nozNzMUdXZ4zHc?8$1NsEb5@kzi&i1U2MQSo_`Q?`Rt{NoWB&!)dY4F>BK$UEAH}3X-Jh#|EO~ci)nSEgH zj$JttjLZ9L=g^9dosYW5;q=@&tBI+w5M|)t005@z2z~_{2l6_LV7PBk;QfNv@ zqp1f+9BgSV<`zon#vl|3i$hQjj?A4h{~k_(r2ivDQnpyPu`@i1ppgd=Oy4MK%&!7h z?|R#K>RmtZnT0jO(ZakCu*hQUHwS-GP5`S&C`M(;Kei?6_aiI<0UkReVkIhdo(1|F zXlYROH+ns3)FeSrTl=uU$Qe$5&u+B2k*5=Ekg;_$d*+;MBJL5VSHG7Tlv#~_JKf}u zAzLKuo2!$Y2I>Vsizj7ODAOCcSyxk9|gFL}XMt+*}dTdz^K~wiXH1wR88MhFwOy zQd?=ac;d%Nqg+4>b(`y+q=7qOMM4Jqwq%10J7DI6$lga2og32Xszz|jg1!xghBUl( z9Ohpg2M=eAgg^8+9YCF_(0q<;d(=HE+(as}oR1=?PEiMvZt33`%8m*(f=IDtOX&9n zotfmbls)!z9nsj?i>9%`#aG50?KPQNdy|!F?L_BQ%{gUpQ#Laj0!CH%g2?Ff0DJyn zB`hq2-w+PrD$r{gYMO`1Ap}!a3vg zNHOgjeK1!RlOG~S%^DU!K>?^}Jl^@^;r_Hlei!mu$%5g+O~`DJQNnb^t-4Pye&Scg zR~H1Vv9U8C8D-gtqX(aPuo&DgJ_R@T=D8^j?(fG<--^C^NUX#ri>5WYIWl}7kBhzl zE#|FzgM))ni&=tQ*d7vpZ04?;Ddxa8dh5F9Qb619kLn9jc?yk&^wUks%xJ3?`g= zMtM`*ugjd zKLAodt-tog0((W|UR0mReNgz=GmfZNa2fewKy~ERMtsa+$7nG+hH0B9z8-ZY}QU}2HB=Iq4e+nWw| zBrElW4D4zz$lJ59XRc)mF0Z{JHMTXaDjqpZ?3t!zk7qJqJnoyPL1hzI$`} z`l4U*vaH)f4{HR!WJ27rlvD*|#lWoeGj*6RBLm_DkSmcM9(o|xDAdJdxMJH%1g)bA z>?$1|0&_d;H6=KT;732AxpCR3HCfT(cr!@HS{%Z$IM|vfKF;y?yEh^?5x_`skwR&~mg|QRnDz-jIX#(fD2#dSD(9&e*2!t@i zbVTo_j(ZP|duT_a)~%>+GcK2Jgt}%lU7y-yqe#n6*XxAmDNg`%0WCfGn$Sf!IT;nqg8BKxnK3}t!?SKROxa;%`qg6Ge` zIjk7X&CY4W@6wX_#c2*;{SF|kH{^720QnFKu#zmhXD*?4Mot$Hv11@JL=GX>J#Im7 z{_J$6UPpc7cRg1@zTY*83C)S5bB4jU7!3~aAQ%b#IN&wOGL|S&cAxhlSm7jAvfF^k z7M0r0>eGiouNd$Gv;%7X+2dI<;epO4ZA5zWIj1;}-fA|93)^+|Ty#lnqvn+n7xNH-TLpRZ?61`L8SNzdsqrjTY>=^jOeK2KQB zjXb1QoNbax$whuT*D{KVjrTjWni4rU1IN?l6$T(9NZO3NGZB?5%0WO4d6=;WgqkkQ z$VCpJ=gy^Ng6Fp$3^_-P0B?JzH~JeeuAF;-@A#LWgd-(_Uu-PZ83fivE?DckwGYOW z2CEYiLT3w#BE>F6oFgVN%M{jI8zZu>ga)Czde)a>Odu$DhdmbWWr{1`)j8DW%NyCB zrnpxxMN&`3`Jexj{KxNp``K@vJv-9k&U2E| z^|5A}7Fyp-Xav>Y{m$bmwME4lh@U_Et@+BQWGSjL#+x+6Ts6dCH9%7eJ_L_M@?Kaw zml29-dw#%RZNU%Ci_ZtWEIouX!yrnO4Vz$#^?e$k9lB|26u|>$Fqec{-F|9AF$3g1 zkXyYAyqEx!?dIj&UHC$C&`)jV)3Yq0v}7uH+mayB@L9KOlY#}Zv?{B_gYox-VT6Vk zWmEDE@n5Vu3sPJI0NA3RHbC4Ey|3RfVKdO0T87bVS&HT=$sl;4ex{_Vy)LS4YDu9& zyX((PcN4eA0lBSshH+|cS0EUq-58+`*Df!u&lv;=#KF~)w5xFd$(=F2NGhAjG&6GG z?_IyU&c_f2EXME^*^rJKAuQyG&%KZ%n{5Zxl0%mkgy|ed40n4_0jf=O8bs`|c#VFD zdn59QMdG5~=w+grO&m3W`vMM>%MEJ)IJ(@hj}!%CHapK3Q}>(|;6R&rg!tBn`42ey zF=Y*23khXDSgx`)5w|9&0|{)TP|nDeD5@-Q@;5xO*Nmo9t@1y4g@la?0_`)~FJHNY z&sbC486GXSo%QFtneDLfrh_xvn_4JMnW8+yi%R5-P{6zo$`m%I&-PUJ(1nDYUR}Cc zk25lzPSLoI_e+p0N83}Lnh+p^;#o;%0lLbPt_d|!vtY|BXfWM^kQpxDtX_v1AumN~ zVb><)y$K8x*wpjmerGM}1{jW1F)!TK!ez&59`@?HmIKplRO7hLOE2ilE^O^fwko=$i zEJgm}{Xsn^6S30!zfkM<2c*&47w-?Czd=*C+8^~KX)vYnT+plkCAJ1IXr-geaZbut~k~t9%6alQzP*fFqzV%JVbE&i} z-yfvL=dGQAY#6-7vNd`B31-4U*SGGeZ$5lG+a7X^Z~osV8{^?n^j%-2`kbJD!Ib0) zgY?)LY86qKn~wnzM4$bpZ}VZP&==%c)V7PU+?0&UfqM;KsbxE=FO@|}R{-C$LLuqb}`iS?EzA8mp0kWiUsV#|roq$_J^9YP(CF}!MVd|x9K}Yh` zWK ziP+KZ>7GaHlEB}bPXGUO`op(J=0BcI|LwcUi*JAB{qx)IO1`#5v*wUeTDPX3p`nJl zT{p21uy4zXO~^}{$q0V=E(c+vZ{k^At@;Dr4)mwP@+v$Aed~YD^le{L9k%~sYx)GV zv=1ed9Y6QVJA%zpGZZoN)7*Q@KYAmaPRVPUuStFRppLY8Vx`hI0OmjTQmx(j8NXx1 zDOz~t-Liy&I$GXxRnl_psrUT?Gh%U=Iu%EfF){<#&aFH27;i#)%d;4V1i&vQBA;hG z0V$WS3Q;PWD`ZP0Td)s=n_L9|Bi`=j@>;P1!3I)RGfj_G{+&9r7f zvu}TO{Cn@W<2|vXxWKk;^(*+e5x|4b;N={ABv1v@KGGAu{v$`+1$#FPvjXLn<@_gxWXe$EZvxD(u=X3v4;6g>b8TkC{LQ7m<7A(K%0R^nv6Hi%B zW_sNkvxYT(8<46t@D{>;;&KSx_sQklB;cWs7BMbN4rMc`HHxS?g)ZVSSLIsM;r+>* zku1t|e!x-1#>z4jKDybOobW=wOfcpbr`rM`-)6xAg`3Tk$En#COt_X((c1F=vG@MV zk=xdu`29Oifl{_glCQd@@iXNp;q{*pL@~L1vVy|YSXRRB zk09G5QsW1(;Mv*)n?)NzwO`@0u0pG>jG5F>u}N24hAzWkCdTM6P5X&zGff-Ct?if+ z^81>$#<-oQ2@bumnRjCke2a6)nGG?q!Z+0PGW==Oxm>Vl=vBLoi_~*%Ogf`$smZ2I z80hc@EZ%Kdi~$$ho0vH0yR6flV6l$9o@5(J`EC!J`nk%(zMcbd0EMu4$Y?xB@{f0g?YVD zIfysqA!#S2%qKpDHu$~ZcT6y)ATy4`zuCS`j8Mju&FW+;Kd<#UE=bNOFY1b2FDj-M zvgp~rt#Q9WPZ-!O&}F_!m55D)X{ zA%1KN%AT=;K174!yVJ>MF6`ZQ+d3O;D)fRX+)DjnZ)_$jM%*&vgrQLzdj`maBV!Bi zWp!(mI(1x1{J%-TXDoZj3ifl~JG)c5x#8m{wqzBTdHR(8UfvTq(@a3QY&)xmkafl? z)178RJ=I=F$&ErfZuFnF8>ueUe9OO3vZYR#G^#!$T^VF{iV| zl$=LHcb1F_o81Yi!66Zc#uefe89kj1R;f4a@2$KtOH&u@h#+Kr^9$(IZ{_(1bMf^0 z5C^5VTh^Oq*qW|Cum>k4avK;{9u~=cQq~AiJ16PFJ1exS(fi=en$&yg1_fQp3w^Z9kyNF-MulfR%}%g^#U-sY&+39!#GKQ)ta^h#hU5PIHXX?QYctQ)w^kh^c+G=$ zAM_LwAL5=wB#eaN4c0!V4HC% zj$KD43MfvprYpyrN?v_^Y!ZhdWmFRUW?W1H@CmwZ-~p2hQz6TES) z&Y!L>R`5xSwwBU$;yf)j!UQjaBNTTqeie$ySe6G5g9tR}-EqQW1HZB@@PLTG+_ctY z-8Q1Lhm2`N=fsI3h>vaSQVfR-jxgH}NvA!-l8JI^itSZ4>CASuI_1_2aYWuqeIZf| z-hq&NCYgFGHT<&Gsl(2WoH#4;@F34m&g}P+HY>Icf#5j2gqLFQ!+k_rKA#q{3Uv>2pzvd$;Vt7UvF6 z=iY^|D7b5<&E2z6vH-@u2k-4|Do&(gti&G~kD%2o&mST&wrv+q>lG)v*s36Tfbj+* zI^5M!1s@Bd-+B8tO7(_0ITbgfMTRf{IK5E-IWyf(z%Hb`txLD0kbH_MUYT54ksJF9 zDq#$P@s>SIP+`R9n^g^v?YxZd2OgEY=asDCxG}@)oeGdT6}@Dg7cCs+l)zen2$f5* zukoAikh({EX*LtJT6kwlPKl_C!d#<>$p->C+CQS`i`JkxH|I;YC$R6N3|u-1EO3}b zZ{Vk1(hpa+>^|xA?7zW>?XNf1-juU>#lYu@D-Szi8M#Mp7^#IVgr9ST7#3zZzvO&UHl4p2_HE5e2 zO{aCXdMR3K3RUFusUx6*v*2=c{_1M^9mIE<;Lm-mp1)=}&MH%in8GeBeB#9bC#W zl-}{>j&XduXz|`IZiGxAY8)kjDH%n!7N=^)c|e)~m0 zRs4|^yzrO}&V&ze*9=hI47Ur;g`M)qHZ^w*nz(`-UVBVcdznt`0g0#FTdy7T^V?Pa z=nX9`xoJxNB+RAV@3xCw<{g*z=SRUT#CmF<|3%Ur-`wT#3-5)!loKy${AW}iYqn|U z?)=3;GulINb~`4~uO@irVT8ND**WzBisHJqMYsjKhg&gPXuW6BY%SaHGClH1-I-jL zbxiG2W?`Lj^!(sCnUE7ekQI20U=c&n#9Yw>;q7{1lmfFNs;R=VB0RvBy!JI)ZkVP6 z6;I3#@)f(xTr_KPAueU!cEI_n%<~x197tG%0rGWD4&1-oc>np~v=5YEJ9n~>xd-XJ zlm*Yyf^-1Pv;AIhM=#_(xo0@-u=RS!k0EJcCyvd3_`QX7&D>RIrB-+442k3lmig-j z)b<6Lkl#xos~0Hsnok92`MuqU8cn#!iaHNaJe!MI8SxY`=3i_|-J1&l5kL3*JND5( z_1}rEP|^Bz<4P*5$J>~{!n8#MYO@2TE9Yrausc=+<;hVv4K{h~5Stx#VTP%=6u8A= z$81*6dGA>nv~ZZ2y$1LD*h3J$6*~g(iGDtSaY)ha-np$~n-CBF?5Gsd+5Xm@$Sv5NkPolFrTFmxfc0>+%Ai)P? z8pED{v)!Zb5oH~|`n|;#3BDQ;Mq9nP&|Q|BP0#b1eJahEzOJ^lZ!U;}qV}B9s2z>Z zjD(#_ro{ffw_aJWaNt~x9&5y*mR{IP`M`<4M6;r>s31-)2lZ3SM*rqOxow&2Uylxg zAu;P)L!WY&l%OILBi;qvbATmtv#^f$QFCvrad4q z;>Yb)LyA9ne*EnC*_wjiOEgscFX4ZURo?ycV%A|NiTK>@m|7<#(QqI2DSQrg^yi0- zU7tKZ{`~maff@7Xhi3GFW&ZQYv%^@8))qxOGNxL#`3qr@n(t+m+wft#h`nT?;G1^N z(xtm^5h|`ZvG)?#4Y(AzCZ8>3#Xjrb^qx+y?Yz(QJ-~uv5j7KM4($A!j$TKTb=KbT z)P`ZuceMIO7WI-{X<5-Z>#HfXl6nizwrefH**})0K2~K>i`(NnT9G@Ty+$n_`N+xz zTe6B4_B#m)fkwy&U`hWjIRIb!8LtkBvi%J!!uMW|D6!9I(G$xsR87!+>?JK})>}`l zdphka2m&|MTqREB=4~_y2))VLHR=Y|lB!;0?+r!$ zzqTRL0AgC9l|RUqv_v4bM)`f#(a)ugEjM>rQ6T?zS)*Xnr-~deg+BhZk$BfNleGAM zJkjkKS*SDZ_7Gg9n41aV@ZBQP4YT#R(L!THpeDuI>RF}ilvsyCo9VqeFR0Qy`&}Wk zTeB|`<<+h?TO$gHy2 zc^W(+$96~koZc&j!@V)XHGl3c9-R_TK2z5NK(p=X#^;^FKjQ_%Y$p#t3ju$zGaJnG zgRIFtMH360geke^iweabGOcki;-vlHzN@_AyihpuI=^D;`p( z`9TC5G;WnLtz&~;%v@RdBO7Lh0)nm2Y#xe|ym@e67f>wLZ$gM%vVS_x+1;_q>9Zr~ z0`8P}+;w}LRFS=BdsA}7m%N}=@o*H5+dmhj2=bfl2v|Q(_Q-*(phrd&FBrXJ4qL%6 zng}yd(vtins!@c2>AgkKm&ofzN%z^L2BhlG$bGm+DSDRXX*3g-hfCY!N02+xj1tSK9J9HuHxvH?$R|gWp3hw(V&dmCsvSmx%jx%Z#f)5%BE|);79nc-&S0+ zC^t$g%FfkozhcudAoqeBj8k{uzA!6g9&yy{U#~kcLgj8AESG{=%h54emhLuARi* zP(kO06mVCv#Q%g%K1}fdZR5hfMzMGW6p=9U!Qs?NhnTnn)9`3+G+N~G5>JS)0`@F& zVE%S|Z`kA^*7_WjdjJt~MPPC-_6kLhlwXGLV#jf#54?ZZS7a{jt~Q(`{jN4ociz?T z2UnUqt}saP#Mkxan<@WPH4smnv&o?q~Kas=`bJr?hUiL@7!9DH^HxzWU?q& zHfR-)Gn@!dvO{&VE?VVkLt8cN7#HC9-TCR+oAc>1|M^1RPqduWicPqV-HZvj@rl{m zDH-J@)r&FaCcQ9Ih+%iMctPGP45$V>n6>a%QtG(&f|c_zsvFF2by474>x!|X(9(4L z@ui5yaMBv;fJ`x{t^vhuUjv;mp4;D)V{V(6?65x9%{%SczH0qGq&>pM)Di;e0GeVZ zE3-GN_FiH-gGo596|1KB>7UBv4qbH6*>`Lu2XtL7=97D_7ZbeL)iG4Z zIQ}{OW1w%&(Q%sRHrm7%1H|&+Q$kDr4XYHya2fUWh}1m)?GP^gsGDXG;$%F+glXoi zrf+)lG?e!Zuc*q&dKJwjq@z}_;_+K5*v>Rxa`BVl2E#I@6InKvAGyf;XMM$_3D33# zNc)?0!gwEZEJoHz4^lWUblV5rdA3%kfBB%kD<=5$NtrkE|I=|Cw~caf0}*>Nqnz`^ zjWW#*bry-GxO^YIZsa3Ke?LjRKk43l#B`>~c$>>14PSP}$Z)pUjGnA4sc;_u^;m^{>Xk?jBeps0GM05jKO;Z-ST*YfajPTJt5Hp^O?Uv9Ye3@7dmWE$a* zEaI#bB(o{#aH$6g&fY^8OIk2ZX4++kc@(9SlamufIQiu-e@SFTD9KsIm#Ys(2_uDH zJbN}J|MT?CYY2ZVwIVlCFYH&%11-W491GL_>+0*bO|E$RP0$+sbhZHTCGi^!yU0d6=UHKBl;0b){Iw_RWYg$7&=$Z1^i`9j-_I$!)85+{&#%7Ls? z;-dbjt!!b%Kp5~5mVckAuPRxW4Rj!ac|>Viv>xn4vlkVM*WcZ49MYhDvUQf==@p64 zrjIqKcqQc(iKOHa8_NNq9|+dizF0Gslb4>&xLEhHl7E9O5O*XCYu#|lin2nt%LEKu z1ujq12q8lVl=c-{7UE(S)+7OJVy?{Y1i+XLd+aH~&R4jXYOzKcfhpn!G+Q6sbd)*> z<%T|{J6p^X`)taJ`9*03uZ)9F645LsafEj;t)_iciCzoDf<=v*Vj0ywpV%vZf|%#7NZ`bmIj z+aB7zxm7&p<-oPv(Xsudy_LV-@K(mwaX0(&x#49TUbqQlw|XUGdxDD@+nDS5VirYC z3+A=W!yyRmG)|4>YTY3T+#!%Uoh(z4EG{YDP157+M&7-fO?j(!TF<-WF8k z7JDgU6)+O^L9@!N#mlP;l2`nWRf-(^jzyv)Ef!6$=Re6j0bfcFREEbLYZk$gYr2i2 z#32r;sNTXdHT%unbI1xGWL;UGmjeWciawc!k4C9dMJhHoDo7O|b78*wqr-GJ3yp4E zF8$HS(J`U;V^;Kz=T5dkz;chRR8nQFiQp<%N@hF?wQgFlY^Y*^bkwT7)Z}F+rUptV zToZM^C(X5xIlHWH3a%DcqmBMuFJthPSJ{Wqrik}8blCnC6N-aeVr~~BJ8>hzOIU`X z`B^w#5;C0tI(gdjxWgQQd)!P3#0`!7)p)Q2T?s&KMh^ z0OSGuaX(HpmsxETu?82ViB}k|wUw}S6A~n#pPP!cxx5$mw8~E}d-KQIB3bi%D3rRN ziTR!00Ny0#Fhm?)>)x>+(+k#RV6(s_tDdarmgw|y#msj^4cuZIIMvWn7Nxp#s_mR= zpN3QI0-b7M0n--0u~ydsE8SSX#aYAYP`q7D`wArSAxTEsL))xkAlp0a!8i~(8RY>1 zS_2A9$C&q<6cR+qL+4=Nfh^^KSq~csI{*=n@YF}XbeM42P#{^BG-KwprI^~?#hPGV zPM;_Og-@M$n)3820u#RJ=0{}_HNfWg^pY)Q z^>F0LnAcl$?Gybq_nHO>{B>0^p^Jwnl)3!O4JETTt-UCXy9~^y0kW?LTT2QHA%QCs z0aV2uxucaD9x)j&X65{jtCU*!1a8EKuM;*aL1f_(Os@S-a_3jUY`ulk90ghHveuR} z57laFHw&`aoQ)Nk_gNeo$F-7b%_{MN{I7#Q{reA-!`~hp{PAS+AAkP$gFj8-Up_nh z?copZKmPsj@ZjK&e|YoN_2v1W`QZbClWb4{Ox~B>RwCY<3dkl zHNmNW0a$ejMBD^za$cHC$}=%9r9Z(|A0uK9g15GN@Z=J9YW&K_i%uCN=v~oKb=^SJ;<}&+p~UfC;>j?$E_6_kc7;cnQuo3`_wZ3q6;0z{NG7=QGufDeAfwc&m#PM3!;S#u-zY^n1NVLaz3vdv*AAoLMfz!U z0M>pHYGDJ>){am2>8TZ~Ci9x-CqDT&P=GWxl2&MC)D)Afbb3xZdI1 zJP_&vxIEi;9^z|nrLp&2_K;b~7M=tXkKMqn0vR9^U#qmy^~nvJVWdj`aWS+&v9@_I zIV+fEL6PSY%cxdtDeug#{F5N>6?$0v{W7x`gdVoiLY1wW$yknwF+sJYsut>q+#I^t zz<$C|L#zUe8E$qoA63juFaX$8a!Hh+rCLZ0HVa!Kqkm2-n%$aL!C430J0jVkjcX2< zt)1JW7nQ8%{em0yZ)XKnZgxBATJ>0w{6Wy+oLvm4Q(RiN5A=gja_KRb(b4p>pnORV z6l3JvZE0J&B`zn=T)~PkNX){S*;H}!OT&$aob48Q-^@T~ClCF$>il#6cBrtvhAk?< zL@tAXj?>Ev6{_*J&J=zjI`~40c?h)CoKSNQ2q<`V$Mc#NcmrVPdr7{$x}cfQ~OVuf*VF#10R~?P|_6 z75Rh~X4_qU^KvLez@OAs4Aym1CC(K@H4@sWGfHp+u;mTQfuq_UgAL_gV0B6JAD7>} zJR*F`rtZI@Bpn%d4QM&X;Ci3y0UI9cjyHzpC`~g@j_zN7Z3YgdY9_x9${hUWuja<7 z%mWFvLF^l0KsPXc^Iw0xl=)T3vMElZ`YUS0gb7^@KxQ69u??w#s22PCT!6= z%LOy4nHY>zc4@FeY9x&%_Fzs9z)a|h)oCe#?;J);Fq?KN2>ZYlK%n5EXYSDs9X~Wme zmlhO5y2^ZT@K^*>*dw_b#0_JYB5On;Sl9t1o3|hV6%RIC2+ai6p(9wvl%mxG*1Y4| z1w&&fZM?5$1(sCQK)hmDHL}iNr6{?ny#B4~CEvT5YCWm`T zbJ!zIjjSOvhFc9fGZHq}uq-!5An~rQKM4qz%uWGp(AaOuWwwW3m0BxBw_<>csHDA@%LCMzEV$*fyTwHZTcUPLGP8%ewZTe{1YG#k2-MZqd8Sc}?!+BRsx zmq4i%^m!e5^N&|mL}%^T_2%R=st`uf1thql?X7R7c?_F=O`&=*&^Q$jIGJa`ra^;G z64kjGmQi^Gy(!Fv9&A3}-}b$iHm5S6^p4G}r6&BTO+SfhbN9CB`$Veq(fO9=7%w{sR>3upT#;_G|8>)62eEBNbqdFcJIZfKU@-cFgVYR9q0hKxef=YrlA<8iO z&C9xAe=uJ=BD~*18#YRW6cd}J@0~YR?slQWXj7mfO|r8>8}v3Le|mXgne>5>0@)ru znPmlU}jJ!?`p{ z9fkV0GY1CYU8X^Y*A_BOO8AU?3qJIK5}H?wLf$K)@1?hTq4bxwTr;cnvWb}M4Fs+{}XPUHGH3xYm%Q96^GJE}Sb@UJh zQr$5HQ9v%+CsvmsY;z`9MKw4+Ep#WJ5xUmZ)=}7aBEoHePG+~HBRO@j?3MzU6U`2A zhc|J#01@htytlRA{r%z-vU}_UX+jX%5YRq=o*Qc-n399jqFe-DPP|w=Z}K^-?O6%? zoka0vC6#*X$o82*+z?U?3~rb^O?;<`cMWf+iFdVs1x-BQVH*$COJ{B4Vle294={Nv zwGC7N$(oXJHc+yrrBUFW_w->Zn6^Mv&L{BBefO)14xo>R&8lU=!E;=}L1k^wYc26g zZQ?cH{e5L41kB$d)p!&W^D{doSIia52?yN{0!yZCICjo7<%MeQ((CT~JDKQ+yKv03 z2KV8=ymiZGz>T*|HHoD`@N*c6?;l8ZSarEwFJ|N&%j6xaa08rwD5+3fidU2usU9J> zRT`%d)TnF6Cyew$dWLS7dub=Yf_@pAHZZiT*d3R3+C13&g<7M8p|sW27kutZy1Gzh z2)(KDbZrs~(8F^A*z*O%hP=*a(i8=V&84Qe?rgQa_04=O4<7Atd5P%IzwVHi9io zMe>gF(->MeFtMOz???^7Fzxj1S-NQd7#;A`u6x%YMhNmSeVzue0-s{wJ-g(VJ)~O< zh)vS5_2eB{%uZ|7z#Ktx827#1Hd9HHY8-~Guihc94HPU(t0osVtixfK1YkzYw8@X4 zpAo-ikC+C(>@C2ETlO#j`@h~0`cMkB;H9ha4(HtN2J#Ip_?TT3jt~u_7vhM#mD>E{ z9I_2Z?n~3oBvWsthW9_pBH{2Ku|zf&#G2Y5BN*VAM)srWi;uhai_aCg5JXmXb~iWz zwv*UB=ZbD3r^cF3*867{Tvn|W+*((CywpHi=z2ps;A?|uL!Uwj6c3ZM) z4iKVQQjNr>jl83cJf9H4)UP*i!PrsR|;F6IRbX*d^9@VR8Nrbk8*`mW}8v|yO~PK7TFDral* zXF9jQO5jE$@Mhq>TlTPbw91!~Dehf}y#^$@#e=*I2k~!v@V7*adt$SCS4H4)qU}@a zO^;1ius*$)1x45Uc)#!}g^p^9N%M3S&}jlIEXu-~!!n8FBb}N6&y<$1JBlG7{h{JP zu62~G0^oKB@zp|+On^vnjrY#-H{g<%Gx92}LSjIXFO7t5LBfR8go~`GbM%=4dGwq< z&6IAmfty#|&UG0b-kF$cJ?O#?fYbpW-I}E#35*(jBELux4JNQUkp~jKHTcM^7p9?I zYcy*sO|SS(#mLJA6@nE3#xPp!dizYZrr83+Jt#4ppkR7mk%a_rX|~|Pqdy9d6g`k3 zP|9BBpQ3D!th%~y%dXn(+0-q?W8YL`eKQ1P0+qs6-){=aSvCMugO@Or28Czio3_6W zEV)>EQz{oTR#iB?H_W~erORie7C}Zc)`48edy-3X&mh#sNFxwCuTqM^1fz$vvrI0_ zN-nvJ19yAk(b%#@9j*4$Ug4q^W_g<;Dz9D=O{+Q6h7J++@`goWJGWatYjjo0eP5Qc zHHyt^N)qzUQG}QQNMV}EDsw@Mt_mjBL^CV@jlCOdp;a{UJ*{3PPXD*xzD=(qw%@$d zx0?5|D)RfG*aQqxIxvI|V}5?t=7nFL~Hf$*FOZ4P%8 zm-P>T+95gT2s#I}q4LP`hKmNluvvg1+m$(2&OD)*Mp!I>HIRBi6kpbbrh>^@6%Wzv z^f4D<_;M}S2RsOAm#lxhec3`{63^U%4aRjlzgd%0njia{*TcfG4=l5AB4ts}c`x|W zM=kZg%7T7;xQLd7b2}WMTlZN(%C-*{3)mkDhy5qUy)5 zLcH&aWwmaMAVzK>i(C=*L02^T@k}n4Mv(RNW`v43>q=4`wj~VYpRh2XMi=bgS7Dj{ zW)@mMr)iijWqVZZ{vnDbRmy`+0yDNJOSPdKf?D}elI`BL@>SdQ^jB-%na;U3``v46ty{5hcmEW@I!lF4tZ zm?v6PX0q}V<0|RI`L7EKf^VBSu2?pJ@0+yyZI9l+zc?E^P39dZ2*SU&rz*kI3Kd28 zcXgD;rGo zM^-zUXRL8fphy@k-Wddf8~UyyU5>WVe>ZdN`s zw1*S57IKbg>gt8lPojiJnlM+*lu_E--VM=@CD}_?ZK6Y3#?#nKOIm4Ax6(JKf5oxF z;0N*8-FY!{amGg$VAvOOau3CoY>$#=ZlQ1ozVekv$Z^i@j#W;d9YGgT@=@F4q>Ai4 z+nbUrzT^e13WU7!xL@wMxJg`Az9Zm@KiMM(vVtCERFHx>=q$@&9#AV7(Aho~+ap^y zf0y|v(PbZ>53bbEymWciII9NKlCNH#Psw|$%GhfextbZj+0*dE$DG)tqx%R8L5e;f zzXMiu{dJ$ik1=6!d&010f;(zsnTqRotn3YvSdpag;T8KY*X9SQI8^DRnowjWSzXYW z-w3V0Q*w5G`R@GX>Gk>93-Xoy0uP1fDY=%7xj3Tm_(TO;GQ;=n2$?XUqA3vw*!onE z3&FK7;2f9zvO)?QifyP`YxSJ#Bb4;;Bj(SouSAGKuB#Cpn{?90h-|*PXS$N$%d0x* z9dtf5zvGoOXebua+i8fbupFGNqCTDOPa%?Yf4c7kv4Y#nGD_6mO-*OQ3PtUWHznk2 zmva-B*!V0=)M??IHq{wBzA(gFz;0FFgq^kJj^_N%q7^>c7Tt6wd5MF=>D0h?uOHtJ zJdGoIVT)MVK4fya#Cj_W59*Z$;pjQX=!Kh*W@KKP*NfyB$RB;+ zTNVmeXJg2}al`OnK?OX$2s_WN!{W9o61IcLYiw~L3BP`(ss4+pt}sH{ct z(3HBf))6|#+9#Ful#~^};{}_?41o(S<^fJrh(2Wz+1iHuH|D>Z?A%_$a6aCCeGR2) z!C(AnMaOg`vLy(aOeSDbI{2HBne*b1e9P?jCDhujc&5qyLi$3WFt*_pg`#zaC{}27|IWXTNuB!UlVU%KY9QjBY?;|B*+YpxQrz=W>-P zp2l$D(H6HAi?)|fz$VP8)m-t^r!c(^_uHwvkY&& zy`)wH(Oy*8k?D#GW!A0jFWI+F&V6#Avoh-6+jq=@ByVach#kE4feS-bY+4ieg)vF!?CsTGUZ4K%{58xQ zMz=&Pl6qmK@=f9%(@$;R`5Ig{k?OP)EABc$-oCnOdFs|Ya{U&RRZrbxRVOj)oq;E^ zcLuPSEhW`V3Y0&qrcY^`iwv0jNbV>za-5AJ&(U~C)UaUj=-|4f866f}sxcXu`}n+* zSbP8$9fIaW4< z4ei6-6&zh04P6HHqWbsu_R5kpKjAM}N#s%1V?$wFbf|x2HTk$_x`q^z^{FIOxm(wU zuZ3C4Pr;cVJ=f&P__k-;-wtMpMkl3H@7s>fH_S8qp4pf)ETooVY`t@EWzQEq8r!y= ziJcovY}>Xyv29xu+ty@aJGrrKXTq1y_tmfJy?XD~xu<*gyg-QGOi~visP;i3?Ugn2Y zWazXMCuqN8aw1f{>fU1;2PLHu(3pJ1cERKYJ>Ca^gKGoV8{e3 z9At*#jDbqT7YS1w+d=32p*KaOU$*n~dL-!HBIx75HuB;PZ_;I?LaxST#vsry0ZFV| zVvs0k3(K2WCpSLvfTgwp#2qio32KRuIa?w7)d2`i5j3?BDi5q^Ha4I->RQ3s^8{*> zxbB6Ejf2phLBf+*Dkg*qEf`q`Of`EeBYcQ4{?Omg7_n@$3jJ!clFZ~$XA#|+c(TMw zVjJ`=lV9~caW<$vCX+s3PoyDQwC3nL6;=Ca5NHg)I9>gGB`{H1FgE3HqJ2~Feyy+% zx#}5vkRnXRq|u6TSI;D=w@rc;%#pdJGEN>SQg6BZsSm2i4E`CPW(+l>c6 zqfWMrspOpF{p(;^Q7;gd*j0EJ7XqQ*Q;+RIrY39&wrm9Ctl(g8oL4l+B?ZWPXAP@9 z0n0^4SW)|Wn%3V)B$@+uyG>bws7{le=A^8YbcQi`BH=sq69~oFq)rIM=HN%cg>Ptn zD+ThPL`k3`LYze7GAB=q9xAbm^o(qhDN1xONX7rgmD~hRdZcM&q4g1)Clcc#OD$Vw zqaYuAXfd)=jdmS<>|I;K^GU!zW1`KDYhF#Vgf-L0JK~{qxCrHPzE>m%r`K9sE32^g zaWM`K>@a4F;M|eqY&$(MTBm3EKx?gw>mwOfH^x&5r#(~Aw<|hlimmER(eLonEil+S z5pd=vX>AY+j5JjdhHi-6h?ghXGR)nmLdqI118br9HwZc&g+qim9*^E;$FhMsK*S2) zmM_2Y5?}HA0HL5P9hMsPP&jmvb8gq^YJ(uUWp4kNM#EYfC?nhU!}%)IMT*di2x~olod?kD2^mcwI7yVFD@JcCje`(-v0WTG>Y2A;am?@|ndVvVCn3OrCG%XKEgJGFESSB|PuEUC zb2q-;7`65P6EY{@>N@q{XiOHDbg%^}6oUsAw>`!PvT*mZfNz{wyD72N5iu}x88=Fp z<0=7GIFRwp4iBj+%XVb!LDLWbX4b{|yCAT#O^pJLgQYU9DN6&1)Rv#zcg8keCKZH1 ze0fW1Lm`Yr0*$6u$4o6rw!k&`vpI`7;Uly9xx4+zqR^_MVFD9Bv%R>DIXXO(?IljE zS{J{O)EM)3R}MO&ULrSkm?I(kLEyTB1M_HVXm=wS*xII9&4l)Pm-U0Pw)!!1()%gj z-Rrz%l6apN7BYvP1Labd+8*RT18D!(XJV@GK7Q_({jq~@boMp0f7ahVANQB_0pbn+ z_qW~M{(j=Go1?1piF?8O0pd@ZvqOf@6=Z0C(_?>m3g=%h>tCFWMGQRw@cfBO5a|z) zb85~6aGYG5@qm@7rR|@Vu_`DqG_YZt{>8yvnXg=$JSBDhf>BRgTbp+(PK7ZfafKb^ zc9X4V+HIbzpDbm(`Z}}jk7edspDe~pDCXpeXN-!M=t!zvjfYUdOF=J9EWUCP$^$P= zqQ5JYtatY0w_dwwT6SBbmDj~8E`Ki$&u;v$bXT(eZcq8Y+wDlD5mQ^^G+PGywGf7= z6fg5><)_j-1*TZF;C&e!w1h#%qZo{0!Tx~Mu3;(L!W#N&Qa?A7+BQ#jDD86rO|F(u z0yGYOJo`&-7^h`hvaQkbP-0H}8k_n6P55~OxZ>3SWmSt@io#^mp;QPl%f&AN(uK#L zuttf@tC_h_Hq$?GoyW_Yy>Ne?7jV^-lV%tThBy(HP`14oD)g5D!;>`XSL-yX#Cjul ztz*T>Spxw-RtJ+-B%vC;t@>SRiG4&f7|!KyePVSoRF#VTM z2dPQ0A9LVU;Q|^H(W0T1rR3c1khF=7+p9LHrzFs5e~*?{K?lqxwF3J2ZgxnDv(roy z0WXIJxi}wOO=X)KEFdryl(h5vP?MMJ@ZL+WgU1F5q1E&p{P@Qz^GSTcTyw<-4>ode z;;B?K@}o)7YY~i65a6kY6HMX+1FmM2dUB^~iqh4RW-S;8ycJ>GKnKkRdrHRveZBp* zsM$MMZuQQXe3}Mo_#ctTNYQt}A-z?HQ^E4VDvdL(PAQ+^A5MsSEp6N9Lpb;$D|zY4 zrm3Ek=QK1zHa~8f7ZP$MNGCFa01wr)T8w)F(gkeoq6$#Li=o5^>IV`(p1HV5MacYy zj&x6z%=B(UpN>>@CmT4o8X4J{-~|D5LftNd7Yw*w5|)NuWf7mD_3M;}PDkE5Z+}9D zm2FcyB4o6c1V1u$87p{2sSyfS|1g-|(ogkh&i&2|C3!k*$W~z!5?l0G6Xy*diR{L% z{f>mc*(6DJP4qel?6ZBx+RBkwi;|6*bzO&9epPUz+~;Bv_J@XA}+dda!Yn7i`l4! zSrrsQZ9Jo@weXjw98Gf-Fb4eH-#P)YK=%h@Y^fnzs9AWr5ADvk-bitu=f0%?)B{St=_@rQ|lkDu>W09M{I)U zAJd4t&e;1nS8DYp*8QZT*8LZvz#W%ShPSpBsybSCQn6}OOa439LYK!T#^-O%X_QjD zGc=O1sYltM(3=FL@pU4`7{&??F<8c-m`e8{5qzcYCqq9A!0o7fuDep+R3%rzWdIJX zNNH#Kw$^0mtrCMHe1LKk*ToGGzaNnbAAQ6H=^=)w z&9y5=4&0?&Bfj6P2lNz=FWP9Si!^?DW0Z%dW~Lejx(uDkycseI;hMriiF>&DE8-3< zuLtok+kI4MzPvXd@fF^9z(d_AA(anyGtb@m+e8FWmO^fB&|pn0loAqw)nn)aP0Y5* z-ZU3R0*{2{3H~C!D2cA*U;$4a$%;MQ*=({aD?10vFE~%NSstSs;t?K=qx^%jGmc-% z)-1Y7D^$HYpXY4SiL`v5)nrBZYB{98!W|Q{Ntu`a#y2S-Kvk*a`vv!lbH(T~{c`ul zog%~mgq*iqdJGT!L z3G$-2&qIeftBx>SsBa4h?N^hxyLC9a+@JLC^x~<_)Oniq?dS-C(vYi1n2ej&vFT zYL=UWg9)Zyoa*K#Z8?h!1_X_7a!e`SlL(dS8g4Rwi&5*MyUZnm7d9{JEYok?6UH_l zLxJSGX^A7_XY*|2 zoJYpPw#O-+gny%KkGZK830$xTe6xSLOmMNbN|>?4Pv{XPLnNeuB;@4sLCLaZC3ojp zVO>38i39G2Fg)MPOuYZ8myVd4VPr!9wHCpEJ)z8 zK4p9GPO%|zSu1we-)0~dccz6w3pBXP&Oe>jBZBtPd5gs|0ybAP=;c+v?!(;LJ$e@; z-$c*0zhtm>{bH~cTIxA+S&%ZIBdqSIN`#>t4g5dlnV2NiSw;y;L$i{Q`0xRnN|ox` zuB?PhSqw6S+mrz6E$ZvR^(YZTC8mmu40Hth?j7~m=|5+btdvjHdrNR>f|6DPcaO9r zR?Qu$Z71}gUig#9($Mr}0?B6c7r^MHHPmO{WK3F+V)j#>Tx|{u+r|2_Hnxp=*U!Dw*x0*JiZpK(ywkg}}+O z<27Qo|53#0y~o_HhwRyJtW9W4GoAUgn%PK2W<|Qb{IS46!S%ALN@#QBArh3xlRnMN zWklRQZ*%bO%+vl(orZI*YIU{d@SE2Bk{qRXE{)*2c1Iz5JQnK^gpFH|bu69~Fnl;n z3V+$xym8|D1vx{+I6XXqu;YF8q$HsK=Uv`UVhIG_M+7prC~-dn)5E2TS+m_%^Q*!*$vu)CW zm@8qoAfR+5n*|8OrmDvx^pBXoXo7w0E@oePgp0RbfiP?y$Lh0S_t#pKZaRb8svjoM zq1}NZiEu739}uY>|BY33@6X6yH4ayw62Pd%oRy3~+eUO{v4g_kFO}MvuJ-9HG?a5_ znRvGI$Ueif*2GxEC9Df-J2iT3mPlXKPkXKtB9J)m9`&P~4EL$pB9K=DxqL_QqFo=e znf$y?&xsX*t0_U_yr;uRww>{Dus}(<5eeX0XYxb9?4wmmJB_Ji_CiF0S;oe+%uGsO z&2=mWN#X)vQ#a_~rJZ)IxthGT`nqPLQ@h~PQoLHTTLzskr=~@aI8*BN`9Vrc5k?hM zRADT$iqDHaMu(FoYpJCVQ(~p0+ZZ+BgW@#-SIac&pCg(F>t@R)8MpoC&n8;$;x9(} z`zc$H%9rLJ_*H?FBhE=HSgHZ^63<~%rlDZ%C)$Ih|Byu_GulKG+LW8H4-gJbHb!e4 z<6)$Z)3KyAI6@LFttjj$W4l9RqI3%pmh0Ne0{Iv^b|$?31@T=QL}BzHGfdF`$UxJ1 z%DX&=BmJj$1`(pKybmTMuXkK4o%S!g;6(7}+s{_C4o))&twQ=RxI1n$c|j%(vW3d zT;erLP;*|)Vjm!_881MbexzYnWT+u~-}Lvn4GX0Yqv?=-0{lza%!p(uETL_hf%>3% zRk6kieqJbOa3^jra#+?8nKA;FJKr)?`i;j3DDqAc^UP_3g zO1acxaFId*-tolgs6Uskn)A`CrbE8)hzSDiH?kBO1c?Mt`gA@{52(Q`#NEebnr3Nlw(*wx>`Oj9I41e zSfN*Jbr+*BguwuU;eDdFwL+X$?Q2aiL!s4G!N&%9IT?9`L_9U6pnKltpw7s>d@Kq; z$xY;=LYUQ^#~cBI_p=G63+&PZ9r1EyAI2-l5pFbdGtFUb45YiGh#GxbN+?ql zo>xPu(x#XvRR4)LM3!h8^}4$lC7MJ#F5zvD4lAJ+kC{rAc<^h;BxQ|7_*7DbN1Tp8 zJW~>9sc13w09Gm|213jPoTEr576(T+Drv4z6hTo=g=JYa0<{hh!yy=paZ@b}57+~q>`XJ3TWkgvHV=(?PodsChZqtKHPRMJA zJY67TnnMje^K&A0!MO*B?+A~CL*-0E(iq9|=jrgHE1Gy}eg10fX%f{cQ!laBb^+Rq zCI2@}xXmW0!ClGYGvtpnPiK{5T{)Cr%orb#h0kzPNOuvl*XL1)a029a?MEhrf!8~! zR5U&NqFMOvB#e=oU8ofqd*WMRtgzy6L34Ld6BrwtmYxc8yoPyypn_FeYBHtAJxI<` zMKTDXJa*ONqjGNx%cok1F6%blkAnM4U9;_hU(fFm8yI)y(u*$6OjSC^b{!gu^$=sR9BkUqgVl&moE29Z`dCCqI6F*Zu8zTI5SdsK@ zuhH56I$_QaQ;07#%HFb6E7(z2s%fEVo5A~yR73ct7Z=aabs*G*W%G8KW!0ZNrw%ibVJ0iOL-_DBwYPbL|d zb|$6skvr4^L#m$5A?2thQiE_QN)* z1jJ7n!1{<1@(B3*ykCs2l=r+QJbUFdk+sR*;?A@ruzIQ0$XsA_*G0c3AdNf_=w3RD zbNh@se~Pm-gP@`Wph`GcYO^HWXF|T6_*eo%n46C$$9F2bagPI{>Gsfw3|9eGCRNyV!C}?9G#xNdM;ep z$u|ml9IJWTUwvm>23DMHNE#Xw8q}I~`fcYs=FHd0W9v(n2@o{Z_BZN{JH2ocXthOP z+*aI19L&{DHVCe9FOU1JJT`7%pnzl=g$(zNN%v6|#d<6Mj1|oSXF9om%}54(Wa>ex zl7XLMPsGyrX{U+T`&!{R_i=CGh41&m&56sVPu)HpHS#PF$pbr@y`eylhFh`EDt;Xi z3gc78)aBOLY~P3dVy$x16PjIt`iQuwiAn2hGFPs0v81b(6mrmMeMhi#n;&&G6dJu5Y@N6<~8?TWms?Hy?7z5 zG;;4H2yD^FEC)oH%8pW^d#0NTf>yV>@z@Lhbi499q$`5NzJESXv;5+6iS>AY#0x5T zJ;~Eh3xB}S@?dN~YTnuQ=;w^la+jRUcj{jPvzM1?T?e4+tWt77ODHBjs@C8x(VHfM z%E7DP- zD~dW}{f^)>SGO|Nq|fkEiiPVlTMheD_4H5{snr5MHa0E{kGN+_?#EixOrvjFi=Du7e=w;&zr?I&2`{67Qcv=b)G zfx+y)2e>r;^Bw(%q>>y+lCYP=-n+R(j#Cy_BzO^#7qJ5ac}B2~N5a?a@LE5vlEN+P z;w_eJw%YdLt4O+7z}R>VPOok-cPJgoP2)+Bl!u&ug=xzI5S*J>{da zmNZ2~&qeD>u~tY5x|Y$4v1`#nvSu0cR~j1CEX*<@3#)_@eGxM-J)>9ci4j5ilh@nR zYqev@`X}cnD|^vLV*>F*!Jf-a8kOrwNUMEJDUQhEkvV}qxMLtHa;+JeupvxrA` z(Q#vXt24Q5Tf(wXDu!+&R4wh8clxp@>pVFZTaS($5+64LU(^Kpq9k2J^5-*YvI{xZJ1VL$6{s1A@!nLSwWdn-)~puB)-RKC zQ_(qUKR0||uS{PrRv-S&*gk474sjT;mYg;|OoCid%V2dJj}v`le(?hna&?|8jv850 zj#8^9m^aydM$afow>$4rc1MEfKf+T5yN_CNB22yoyc2X7O-sPzxJjjtoBu=`II+~h zYlqf-Oj0Ir?(B&7bh_B0UL`Y&Z^1+@$!IOg?Dox}@6P%_9%9TD5WLGt&Gps~D8l5N zPVA(&yqV8i%sTzPE03>}gn#*9D_%SkqM@pD-8IW6W2q$%Jeog~E00HfI&_^@$NB?n zd2Zk?VcY4>tGz9l+qOdHF^8uP{3Y<6pJS8RFGv^B{+>JP5DAkF;^H!6?ldfDQW|Xa zFx0p5aG|-Z|AOu!vpI}`cxc{?cH~6>BfRur9ELO188V)Y_DZvaRNsj4HHDk285_aE_Jt&S>2t#(u>F3cPNyb%9BZt^ zQV#zZKD#iP*FfJ}{t=kT9FX5eiKjOnB7-0%=+nRA+g91DNOXli77rbRW|mJ4i@y zxO5szWQ+D_+?}|38E|Gx1o}r0duu>$MmKWmc?Av~`&&WmH!KC7nQbu}ie6ZEy--Jz z${SS0Sx^Tv0fz0U@K!JnWKa@HO69_G9VM+*iKn^!bFZ|y6Lf;-X>;4X4LEo3S9^oo z!h3zL1lT(bGZ8%Wy2)=wGll61$9g$f$V|Gle9+_1- z6)1{$f~H5n56~3~?K8;bKkDse-`Z|}hhIF6i4k=EDu3&TsyCOmGf+=NeJ?Z@LFUYG zv|1BD-s0dv4Z8Qy7?F*Ul-aGYLAt7Oc}~#wS~(y<(3M!eZXL_(t~HB*%tsM~xfwR(`4J>{nSBc2Un;%feuL{7%sSt^5i#~C{QJ(zs0!sEY>;gp2l3bZyp2F!0(T&4xccx@VawA$!0^&AI>kA@E>H`o?+Lbprq*c+h@LRqf6-BymfOyEm zc3Av3rILN9SfJP(C8c-vqnzSNWy5Ie%mK=6QLWKDfJST8kNZ$WD#2u)T%GIT$NPy08(#7&ox(K-#Yr~=w0!N#-Dt}%}Pmf z%3#?QTaMk=f8Rg9fzfrgr=YZpL1hPqZ@u_=W>uivsSo(tHya+P2kWR9OoOQ3bc}x^ zJbyrm64}NUbt-lR%MR!f-<%=FR)TG*ab{nJBtst^?H((^+eo!t@k%ri|1{P>9gC2fu)ixi`8AOb<2N9Pv zN{D`8(<3zr_-fP;0N0Wl{L-`_7h!SLopn|oYHjSNDK$8vU>@r@YKRW0jf}SZg+{aP zU9YaItz|!+nd}?ZWlYsF8wxO|smY8AKL?ZirCo8thIvZM^&gzHnm{%mfCqQ2#$<;| z85B#|9Y|3xB~Cn$8K>3OrlMCi!*)Z%lziB;)iLX=8*){^IN}bh)+jJmjCLJkKRAaz zGVg81#E_<`(8hq!TSCnesECj>@`VSpW-Wf?6<&=SdEzwznFZ7Isy%kL@){3yw_SD3 z?pTdY5HMW$mvW$ql>~PlDLB}$4)!cVE}(jY%m&+eCS~UqyU9{$qm6+avUw}}<{1(I zT08f=>Yp?(dcU;53zc@CyP30~Pbh~UB@(_l`glWfQCzo;2#QLjXIQnSsfS_yG-uVc zHAdlp82Haw9{oYN)t&SeV(!`X^=Wc)(k%#oPdlwK;Xd4vFn}unFgjlTt(iBe$XsFnQ%p45X z^O1I_g?3WY9uAN$8>)*4A0|jZ&<5B5)gNib!Z2&vdvG@(I(+X$;c4E!9?}$JI2A*< zIciM?GysRmHGQrjPZ`}2W8mh~<&Rr^md!mXn{{nr3c!|bblJ8QI*zfe);i6gbp)e_ zN0EFOVwlf@hgOTDzlLTkCc4{1)E>*&B|mF-{_2dTOzlL^hUI0+C%yk|qwYxMxU1PP zjguuJ0P9_EsuG&)T64+LLtw(Y9EzK>eV|W2t3 z=~$yx8EnOX9FI7qIG6d}KDpS<^wKrnAU9=vX=eH`O_5;)9w$pI3C}Q&7$>V_VuLts zV<&~VsydeCdYO141%u79I450WMQdwhO;ojfu)&k{lp}{TnJ}A1->o&pTv~EhR#_*mZwcZq2r)%Mh!WD;DXir@EsJ+08{_UrEWWRJ6KKbU&(SWS? zm!nc8G~pNrl}F)1xwhG%g|vBZX3~1rglC^(>KyDBemVArr$lYdb{CC%Jb;3Hq``C;9zjNak;mf>`K zAG}p0c463?M3H@oPiEyv`>=Codk@bgD{N!A5}N&pBB_vbBTE0~)w#f<>~y%wJ?a!I z#iY)-PAUF;3U*LJ*Pk5s04J=@&i#aV{vr8Md7@;J@Zt^8X77))^Nui_aUqgiGA0FM z8w|`8b)Gc3rQ$fBU2=;fl=d#T0Mb;rI!70I?Cq9_+*d)Du2zU6jE5T}S4n-MMx-br zwS?*~?^?y};D+G&m1>Pw3~nlrf)7q1Ejauw6TjP`r<+kqr7#%MD+yl8W5@9zq^!Oy zjuJ7_>jj+mh}=B7969kxtvj;@P^{sP{f0m4>tHR1*=upqc8@ z?Cfwlr(r<`8Hm#G7J-G4-d_&s=B;|+ZnZ*j4F`5u!Z-0usvWl*q&!w{Z&~(snaHE% z-UFzz=-+=54u>Mqqm@N6o&T0faZd+2f0K$tVZD{egk)db9FIS!q&b9s21wnJ1;s&= z*TF(1TByjK7Lf_&lbyM^4jxMk0anwFtwUDm^vt&Tu-mucTV$ZNW?NRyC8WVVtk#Nr zB#8y7x%aqUVX2`99b1F2m|jy)d!y!G&HIj{wp4-PcR z1j>2dl_i1!)`*)rzA1=a{E^5fJ^4vgKgz$IczHE-7+ zdkcf4aZy6eyk{hHi!TGi8cDM=&AthA|w6ARYv}iPch8 z$m%89C6>1cWo=fjC=RZXtWJ@wq16?m#xSI^#77u;wWe2E|SbXCwed+%n7C0-B5)gbdhb4WQ`% zOkE>|y-I-K!l7Fwg{9ICa6f@*y_`k;E>1NXxW(1)& zGBo!qeV4xx*LG-R`%fl$oBJF7voArq{%fx!vU3clZ6CncFoHvBCM?}S8vAVppok_+ z8bTT~4mWKOX^d$5Hva5?H@38jGy+Mr9@_r*dkU9RRZZgr$Z+_iu2`|7r^Y46^;B#8z6pCMCMW66ef%sbUQFV;!^Abo8}2JPb1A zFVaIT)kNRhvZl8vhLSL7US2rw1!nz$5mhP~C`-q*UeeCupy{p!w0$@}h6(sWc7`Y! zb*D^&2HB|YaH~UG@pIumk}s$E`)9+4w^9QFE0b%P7cc?{`)L)k-qhP5xhb624CbE* zTg(!bb2tf<i3e&bd~wgpe3e#XNz*B zATjQ3{T-&ogAZkl6T6u$JrOnCWx?*X(1K`DD`I}Fqh8gWVA88Qe~~tg%kyGeIsV&# z@x!+Ac$@fj0M-3b9_z7j#XQ$|-dQynyi31}trIUS)R$$=7NL_RGB_*R?i=6CS449M z(gid5+WZ5v;gu_X9dnnUeKn)Cf>-4y!;41?alKhwJfW>t17%%$7#ofp3;$s49K8`R z4Jqbd#3TaO?$Mnon3k36gAg^s%;@AHadw@m4XujBsLY5J+!LMA5o3q3mY&lGh{dq; z5vh=S42#Bph!XroVF~ePM?6={ z7kTZ;-c-En)hYI5WAhZ?H@pSY&vY0bIMZT$Dv2!<;rgM?r0F)38q4p#qArHBw)YcB zmi?%yl64$e@^G2i&;9f4;p5!qCF3;DEwI7qi9~=LGTX{xu&5=?Tzu+*Hb*XpsI z23LTSuYlYAKJ_8>ktY`o3G{#o1}cf(1qJltT$u=GQKM;a2Q?VNMs<@3lpNYr4Zv|f?^r0!0daih3dw$B7nj9;22BBd` zz?2^ViO+^}jb%6<(10$W%=hvsch#XZNLOB=usKr1ZlyJ>PHknTnD+}Hj`1s8c@7iK z@c=(XauV~ieHy_&vHjD`-jtkHcl>ud^YLyR7Wk_~hOF^6bG7uYPMC=WeA?z;yt){# zG|2tzjW$NWgZrOUOwmfE=mX{#*T6hz{}kr zA1K^rlAk62qR1`o*y%ujUGMwe0YtgNSX+!@$%`&KmDYD`kfJUjlfAM_Nq=%NV5}$p zE`$%9D>;GDrQ2N8b5B*Ui%Gn>{v%t1 zT6Gn%#J2S)kYKTz+WR^wOh`1bJ8HDik;r|kdHYJ5UNIp)Jp^Lf5W!HGPj;{u?pu7Z zbBM;szaBK2Wv-k`5AMcpU}I$%-EB1?n?dj0JH5t%TOsp@R_#fm}fMJ5olL<~LSvBObFmM-LgrS0j zE9M}LU_y#1ghbVGzS}~JmqNeue>DMfAK|O0aB)PG^yTzR zp7jp3Zr~$(c!U*+g9ROtLlRz4VaoWTMY&qV;qz6(U#qbMi7d zh17|qq{{9e<}`vRO4hb;2h>vfQI+90Vm^lM0_gzkvY=nzoIZODm|fm-rf;kKr&vGs zF0MSYPt~6-yd@jyC4Xh+b`J674HFt_b^`!HMk+#Hi$;buPttLW>?C%*D5W)zPN=7O zf$xH<9ot(@eNHSL!(yB(<0$qL&HfRa7I4+KewyH9HPTaSR08q8DRj4C4+Fz~;i^{d zq3*kM?d>MPv6zg&*o3w-93$zyY)sE=<9Z0q9UK=tsrfQ4r0jJ0Wh2W*rARGxi^A4`0kCUTqMEbW8edHzZgGcY9!XCr6E)a<}gDiPt zL$je{mt})}RM!^(6+20ZBXcb$MS$bPNypmhe-GRuYCDFXA^EofZIH$)*eoFONW%WX zY)Kc~uE#JIw8aua(rF>a;^gG`oWZnlet+hHuTNYr7f) zuMH$o%$ zBcx#I9SL&zYM?KOwao3jnr%MqY(aJL@wQX_Sc_pw&tw&u(5zT$=r&m*w0IsliaId< z4xPFLdH*C75k0z{*(Ju0hZN>jfetCpCpJ<=vGD5tJ}zFCf8}p=0EcQ?@|bG)^GlIi zCU4})+dPe3Vp(=*Alcz?((2}$r6M_MEG%aKspnKOb&Wq|IF%fC{TAI6-_&o@JEs*Z z?Qb%V+TCvP=^xT;LA(v?4KQ+`zPJqO$*pfge{%o3B@bMO^%gWUsuT3Hq?E7S3F-*3 zc$-idBg7^5UVMD&~PRhN0 zZrapm%Yeoi!d${ZGw%<5nOy6okhj$c+-eB9Df>&wd)N$5UuMhgB~iu}wMZ<-4ZB}@ zb+d^6UV0G)V+WO9&~i{CGQD^9O!D6)0D4o$E@Z%y;betUDhflDleOoAzMq(ZKQ%GD-2yPHIFC|R328_NY)>AbUo0@ zDOeZwHB`u9{}-URr*vr^n~x~P;rL_C77=72TW+TVcKCspjkStZCuW+KIbA)0D))gC z%ABHNu?c3w!q`X^-Z&o)my#w@%62}ETVYvmJtnQb@Yj!;63I=-b+g{;jd3;nBoAGm z_}56%gfSa+%?fUGpf9|(ZLTd>riL<>txZJx2au)4a@bAb==$ljxh`W zjpaex8`@FGbCtU3a{cq`pTXD5@x4Xy& zM9_lwv^aIuidN%Twd>6>yGKm1UVbm%?`6h6cxS5xViVPT2m^N(r&c?yWb(onHKR5` zy&o}(#D1&881^dvLI>#flx-VVx9Y=Mn5WhqEU`7DY;!q`iBBfNiVlENGn@>+XkJLM z-0R)iYHzi-XLvl#T&`$%KG#>rPXA>$rCXHMy{X;{t&pG0OX;n@4Ns+Fb7TH{{N$3T z`*QbtIC}so006t9qH+$4mF5cCC?{VS(qrk=1$O=3{8}sXw+nh|$fVbzXvn+G)~Qi; zvn{)Ba506S!U^&h5M`e+Uap%mCs=d3NQ2h@bB{=n1t{`?kC^UE@HsM5|-kRUC*IDxAT?34Se zesr+-5P7)U`>l4=6QgY`)SwO-lQdkvA~JuP`IH@yt$1lAoF}V}0_#bpAYD z;rqnPMvICNN!IGgs&(CcD^Kh(J9)pK0XigwX{{TTRIgTl#)fuRgNCi=_Y$@(2P1Pa zvlp`Qd>~~qL074<6J3ST6>LDD4GHBWn3d*eG;~lI4ifVE$@p7q8Nx%XCisR@-Z#{z zT*-D0!_q!OC@*Z2%s5q63a)G@pYkF!pdPLie2$Fm? z<$cEi>^=6?-r-uoAm?+Y@8Z(;OXP)qRv5zZgb(e51UM5qNviD~<*!}qpJLXCy7pO6 zVZZ1@n<~(SV~IvwW9sM5a`|5JyI-$D)P6K{Nq@6oqn2F8Oh#S#V~5KaKT{ z?GV$o5T-6Z{#8Bp4u8~i854;poW3(W`Zuj2>SBM&Q=LQQ?N7I9Nwo$z?AA*;SHomA zrQuojFx7_v(DGdrig4W)_YpVSL$Ugsbvo)LT>|AN9)8z8Hq1)sK@iRK-YYr)XAXuC z%)=`mD;?U-VQd}G(bba#`}12l9dB5q)c8@&H5d&7LZ-SEM<6%ku3ijbmvcg$bFJJh zV`G=&&Lj1rZM#K7N3=@DB>&mdb5l*JMvFl|;j8ECiA!(_NnmsP>uU8vu=i`~bDigX zzbIG%+0WVk{bbZ@NgB*+0-F?s$Ee zO&ib8-)V zX#QvgtZimxH_lbqHRnR~q;qADW17f9l=rg?4co6(2Kj!T4@VCN4igyCm@)CwR5Aoa zU9cgozkW}I{t`okdKLf8gzK@{peG~n_b;n^x@YhY8t>=CUwlBmQdxGL$uzbg;nHB_d*GMV*y?oP1Y8p6ehA_yyJb5pIG@&8XO8R^A4+ zf`TYx`~-8i7-Jv*pKG%tkE|n~tRtA1m?UXE+S}^C4*Z`K7yPi^3V*kf>!1H$)eo?c z9zvB}GBBdzwAh9%?DsU-(nVbJkKFp8TCeXk-BpifUsXhWNe-W_{$s6n&$$fGm%dzS zT2q$Oy9Uw=+FVQ3m4~TXzb;l{T4#hgb4S}s$T}qLxfH=_fYL@5@MJi_e;(^{syBGc zCQH|;5RxhT^uMY41yh7L63Vd!<->nXHWZm;uc4QscC=C$lv;Q8MCxWGdrX8p=N2!f z8qKX~qcL9Z$JMQw7vszjF>V^CX!>v+ksl5UVmJ}g$rAAIwx1hQvK`%?no563jAk4-7;#A510HraW?s6pEm zJTEm1jd70Rw2>CdhH*JodIIF+m5Ml3OKKD&TcR0!Fg@vw-I#a`P3L}V^SZ*MQ%@mw zgtI0XdTX&dH=;EktlF#x7lF-VwC;Om+Vq#BT90uoO+F8tSB9jU6@eaFceUo}k6*ZP zQnmssHcY-J>~-Jjx{)9+Cpbf5`4&@zFOB7NDCWwR+Z~bVtogwvjBon|Gu7bC#lQ&VVZfd#zz``w>-lMsUev2%|Jn(_ zFQB_QN(}{ZbX&Ee#RtU!$^20z-jpW(%pj&T+C^C0fmD7dke}O0Ry}XffBKtRTiy7dm z+Pe&#m)=DglYJoQ;w|y_t#;D)boR9hZQcw1^*SObLCNIN-vG7XIuNe+=n`Hjb$MA2 z@~WNjQ@1Yd!(F<6{D2A5e5?MCWz(6#b8Xlh}qBHPtWTrH3^qF;VGYhGzhP3EKK*MD6V zbw)qOF;3?gZE6XC0@1G3jaa z0EIw$zuIK*%icw4=1*y0T(zJDQl}{>KqXy~nt{`-5rgewk8 z{$al$P8)oEdiiEZi2yCc`>q`-bGv|Mnz>kjdCll6wJa^5Dprn;IEb@?8)B-OE8trm za!gByxC+RsRgQ+XGeM4N$%dY0A=CdpNk(j+jG7OKXS+OEgwBw!=DBNJ$q=k{r zJiUmN=5SX#rTbS-7G7Z_2hhfYDbY)*Slg(b%Sf9wGwtY2FznWFGY{=$W}XJX80|DB ztP`*}x87O7Xn!mYtQgK5Gy~x<0CkR%{>q|oK;7=%Hd26=>|&o?ByRpa|AG@)&n}Es zTld;4z*c|(kL~f9`%)m#cSD$=Z8RT8+N5N%WE5$c z-A5C$FC@9;wQguZ&MppIl>;!@a zm8ety;CPx18g9aAdwSQ7Yotl+jUyg+ymH-vV~TvuebmlH=c6&Z|47S@<5M%iw2cjN z_YQw$_son}3dJp}iJKMXeM%5Xb3S<9kt%9U{AN(792H!F*{(e`<``P`5%Y{l8+?qT zL3I=TcfBl#ob|kGea;Fp?G&J;W+$n(vMVj5pof3G^fct72cN*Y9 zQF*V2J0ZD_@t_2jxWS#`JSfs)ggXuJpx6$r8F>pVllmD62%V5TkSNZqh^j*taBZfHVL~QBt#npuc za>Y-)N6Dt2NJT?pNGeA2P;3N=1T{o~h?zZo>0(vzMntSyNE>(;mFV-Jc$_sHVI4xl zzG-IGh3J|t7Cf^qrB)1^+wB?o0PL%p0SO5b^IC_CEz{a4Rujl0Fq<3dA;vZ^)MHQ$ zCb(gC6n2r;HNQ2RR}%`Ov&J0L>$8hFAxBZ+tt_Q*X=LclwO)>nF-^7cV`f|xtz)J; zdotT0TPd>t)W5F{%L2MTa_gPjd@`)~U?-_fw1fG{xylUvh)GT*GtwAWr8WQ6OgFVK zauWpDajG_U9oc8|>ln$TeSpp{{ zi)wzi!foZ9;KxFIWzl7!K0>8NT^ken6#mesyFm(>Yj2Qp_fqus{3>hyti)AJOlwrmW~P(L=T zrnwseihi-3g@Mb4*zeoTN=mNGteEaW0b57{Zn=YyZBG(>J$Wswiskczu)w(UgFBPQ zWa?u!Vx4s!$Iug3%SOA*?V<=KiQU2w_A99jhm6uynWHLV1UFg9LSC=1TrkL;Hpo~3 zVbrX{L!+nGPM+}R$jBVBUOz=B^4pC2_!O*39d~r4$TidLL=weHDm2g3lw3913IFkK z=05e^o&EJL`45BngMoQs=v29lZmSh=p`{P?0rjim*$t|EW_R6-ST7kZ^zwMgvKu#q zL{h!wO|Lv5$Hpfz^TdE~h%;x+EMDvb#Yl$cUl_ghbwyVO_Roe}Z98`Xp0DHU0%X|N zE4Gzj1647w;)T|@I7ME!(_tj|MpV|+e{+B&_dAH^q&-O}7All))+ElD?2u9DvCGA; zVTyC6SzU6$Amf%?^IJ>jL5)>O1aCv~k~P*39}t%ddtp9~oiv0vu4J0?B5P8!Qr;qm!Q@w3ul(j(q3FuBXLGSO&4&X{1B8v2 zo%Yt0<2gE&B8>(i4{s-ChrgY`%D^ALe><6XT!J#$nR4lZrmSxx(Xle5Y{E2|4y@2g z<$O|aCq7JTgXPCr?+z||@-`;PZ1D~x`2dEF6KC681kMxSY1NuLVAzA)brb}4e;5NG zvv^W~&VgaAEzNB(mPXyfl;4$JkmRp|C~6n-W`Ec>Ct-U|Is6 z=&bf+QbEoxqHWsuaEd54i`>Vt5lCij=QV1U`mhd+?&_vWmKPn4u(m?&X_*P8VkF3O zDWt)+%(Khr_T=%*Nm`)(;aP~ZTGjHF13rre#dcG-u$t^87uN;5G(DYrS~#GqT`@8V z-kXqpN)-Iv()WWYnOuN9{iLAyT*?@3}T@ zLl}lIv6YA)skg%!bj0#^IH;^ckV0RtT}DN6Rxy!VX?}=rMna5t^}(y1V#N{;dJ%Bh zrs$Xe*GXmU97b}*jB1TZCufV$oHBYTkPD)BhF&qVgH}ca z&6&`q&3f90H0>@b+A{A|%@+LKlmH!`IK6px%c}|OaqAeIXRRX#1z(hW46stQD%>WGn0nL&jw7s>$pl4Ehp~ST};MV}l7Sq#CmSJbP*B3Qv z=`##+O0>+WCB?`*t!|S`!F-SzZZg^Aj_gJ^meA}PRUnk9Z8{suijc)CR=)q;9uIqV zK!voYln&_o!_0 zS;7fbO;thOPmuHDSVucnH`~b!McHKC?Q4tsH*a&G5I0BdRMd15%D0mas*I9)&(qXO`T1*fekXle(a&&PPlK?Os zx(9lfj6ZXi;4FS^Xhy1>v=@pj=orV92r~T(su!{@V-t^{(irk$x|`|1D!#@S{YFmC z>2t@zwH;(R`L5es;IoTVxg+VUZ9P#jncbeXNn)%ZLKIjq0ic11rZux7{vlF{ne!;l zI#bqzbwS=^&{Z`eRdvs(GR{zqMAb*0v3HdW!ONW8ATolVMV`qx6OLtV;D+|4;lrBn zMlE##LQ#v0nZDTMq(GMuz;&oDYN=%=x6~$zjKnNuuwTvhppn+gI@CkF0y?^oXrlH` zo`CX$I%MJ4ha3G`%!ag-v!nB)_DjQoO?Y8rE`8?p%j4PaKl$W$KsMbLyt})bb1Epr z%b}M9;0E1Zn?V~<`xjp4hDo^&y6N?J7lxy)jZrnx;8?tRJ-zAPLZTWZR}{YX&&?e-Px7Ko#(UZPjYiC+C-c`|{|s(=X@bs31pl$IfHZURE$9Un?$*hODNzY{**ae?UQGM$w>W`&=1Y6d)e}?H z@G|e5+71|kGbdj;%K%@X#%)yt|;22bq ziL3i~1*tk)1BUDgO-}%{lf38}(R{G56kBt4Qu6I>hkKHhhQe~j%*4G7rg(KM21y}0 z!*ryUWxG?gY~7a!51YPXdNVVp%xr*u@yPZnDf$Pmlo%kqs5uOKa>H+-H+F#}|_+nS6a>{$q&G zbA0h&d_mLtn&}kI5Cy7qR~lgD`qK&h?86YRJH?P(Sfi~Sl|X$Q#^LL(v6D%7453=J;>tN3TwYB`-(11N5*?@Jk`(4a-SW zK~@aR$}mxf`LZ$~P5`-(`QBata*aY=N`@<58;PK8RDoNiy*(gqdxNF~-y-%;O2 zkQuqSo>8Y)4>63LFjw&!f|Mq3o~yXHI|waJc8)-ZLrf?1Zsw`?=(vaNXw>GanyZ4V z<+;?a8O>KmF4-v2veWlE;Uec5U@oAgN300Fj%U1BL587VrWaR)sfq!xg{pKz zhv0Hh5z&y{SJ7*#8M%D@4P*df?jN?zwK4=SsA165Mv95FDHo(-tZvg7akznv#TJ$- zd`9Rs6GlylwR-B;#*iZS*JXh+y@M<6cndiez+}<$XW<-5Mupuuo%mf^v#_?z1lDf? zVZAY@iwDSuP=Hdg;+FY@-Z?qChKL;tnIQ#)To1SfgZXpQl?NRSjoij|L2aGReT{v8Ir2Sm^_b3PYZ-0ggPT)SJ5$Q;JJ*v@kM?PL225 zbD9#F9E0QO>;eOj5hQI+zP1sSCFLNX#yrf}143;V=HygB=(%@k+2Hw&2V>3=E5N(n znT>u9#+8!*@Ez~`EF38b^kQwPjv=rvaly8}+xlQ^Wv@0NA$GQ)AXMs7q&Z?TyG(Jt zwKF33N^B6OtH(nr#sq?bci3a;UZ%9_TfIZ=zPy(GX=`&0wn*B^IJ-bn<_4=Y&u&)m z8I+2K0&3mm)a1WBBmdw3NB;EZKmPu=&z|iYapyV7>FU4`O$V)SCp4keKmR$PDy>Du z8;GAj`=kBJCuAv`I>nnb##}YVU^PNhiarF7B+_13JD(AXX?tP7U~9pT%}YoJgDgFS zGs7TClnuLJi!DEmv>oHLEsEg88_X4O1!X=K{zzRMf32>lI+(UdD!u$su{gko>ucU%9A57?CMdXzY>c9rp zQYh!-LRL)?Ir(dz*w>8aGo$i9dWD3w3If|_c38gh37@H^x??Q3;Z2ic z*PB)-&6%dWKt?46BNQ<2qcVld>2p0bJ@g?VM;B+l*5jPaW-~OdBY%lD%hC2EavK6< zQ9K*P96(oH(-omMY8GsH6^*7_5HiQ*o44yQC*-B99qihaytN?&FQvT1J&Jw(Khbs% z56SCp5*hCFR<5UHA?2RxPE%YEJUk>{2ze*A^&0v}YxaV?ogBG1*SC`?c{{nN<+Twu zxVU~hiH9O!4(!=W~BA+WZgysib)EcGAwtRF-D{S9v0>xzJm_oWm8fCju)_S`QNN#CLw6X@e_I_8|~mn?EbKh zRvVCSWKMHANqPxYo-T&tzP_G) zJoizyIyf=EG8< zFUYf`ZI@!XsToxx_Zq&^%68N+mFt?80P_;$sSdA)Kkycu1sZnVOut5Z%5shNhz~Y> zQOmpmWJ&2$Te6UyfLp}S2#jSV>>XBN8f@8tj)>f4KLsvn3p)W-mD-fEq;CH+93N@`L&;=M&x7)gV6!v?Mb5)C_rday z!3bwF@`{QTX_*h|Nb4t7X~O|9|8cO@)}3GQ8%DgMg)HxiWfauW`ikqC)~i6h9~PJq zi^JBb*jJ2^Ily*q@X!O~g!GCRDGmvMU(BRf6g&edmzR~SH5D4kQq8W}JHl&WS_D?%4Oz5X(tNWO9(u8qmqQU5oRK zK}+eztaQ*9+!U?pZi5F4FE9so{VJWlzi2T!?F^+jj5{Gun{z}(_al)!cD&M~1&A+2 zF#P1&tp3&2FtBjTYYx(OW)d1E#E0?OH06`?ORN9xx9~4V-(HTuH+I*ElmbF{HF_e@ z^ZD>o;6p`%8TkD8)JR-kRZLtCfC9GHBTv~tW_o*dW({lnb|6(<;4Osxq~#F$?~}8I zO~6AREn-~Q9LjD|Yf_{36#9rmq3e}thYu%jCXy)I`4LAIFILyF@X__FO9@ZS%LHS7 zak?D<@>LNnP`G~C@;EKof(bWLDq35Hx#!k#5w)aH4Wq1zRr?XlST{_pZi@7&A|P^H zHN4O>F6@;R(Z^I=+mfkxn$AMtL`-}QqNsu(iz>Anrzx$BhpU8 zmqJqS&_?`Pxxb@G?(5eEiGR3-0wU2yB(>(A7u~Ga5zS(5Y&u04eR5K41MM}K{?>VP zDA_E$lC=2s$K(2Zd+mhgJGy5neHv^m`atAIRnl53E$c0MPZvn2DjIP^F8%Y}!0$PE z%@(XS;uIG-d&j{1w*VC8Eggn5QdZxxx_t~#Y-OhA3O;4H>BgIJDKVqjlD&c|i9Ld0 zXGkX?6)SRVUbEE|eSY0`$zoVaWw#unPA?GIKG7C)f;(ur4imjx`$zI9D%bKxE z{&%)VuGqrNyZb_9Q{C|FM#U1cQ;4@8$rxDbQ~Q!D@q|!#1O15Cagy2`z0V3M%a^>+ ztbWZhCbHFEWmBidpg~kf#cD2dQnP|;e(U2ZubS)z@+Ijto07a4pn(qHg^?@MB_sN3 z2#6`H$xCW*?qT2vY{}szOIZ&)5q9*KEc>v7hZi4r#3g+PXVYx|#Ie4j?`#j?9967_ z@}luztkk|pVJ)L4@=g?z#?ngGdj&-eS_u)S&nY43NXc!h@rog4j%!v*&4{7H7|db@ zNsEH@GtJRs{JMJh5jNG}_&^_jgwYLfP%CGq!~?tRm~J^4NRmd*wATMhc}0s8 zs;SxXuRcqk{Pj1j$pW~Iv$VnK9b;(s>hEJKHk$L+*1Ha9r-A- z{8)7A!ASGyQ74k;M;-VBljzhr81e>g(~ny+HTd}fYYR$27gR6P>ovj0A&(EEa=VAk z%2mjHqH{iwgp$<%6ehPjn@j3MqSd6&^nxQ8!wT0VSKGinSt3qHhbMMc(h8#Y;C3!` zaqL3b?|=O|mRpdtSw4Yt*W@+uV#wp z%tE37GL{(~U-+_QP_-Sg^UTjM?r4jUAq~@V-&s*CtC@byqJWWW5bov;m$m*7+uhFU zn}G<}HLRp|o0%1X(k<;K^BYNh68BSF74m9M)F?wZ!RsV-`HHE4Jb9wk(Tu^fYC9(*OZStawCN3IO+7yOn9 zrW63uarl?*+pIEQR2EE;t=%4JnO{&|G&Os(teINMqQ`C26(KPJ1wx)#)_@>mn+Z_p zU{=_gU8ky2>jvE*U4=aiPH!JvpWvi@Uzw*7a zJ7xO`y#K_aMwvdPf0cJcE;JKlp9?pu2LSfQYSW!|Lp|1BNP#3u+Xk%~Y)=3$86=nW z@uy$j3P-4?mW55j+cJr3F&g=v3ZDnc5un`(nKSbQ> zmqvP9HRSJHUYez83N|HJDYm@>^4_^TePtNDMf8|CKM7>k<{XJ#PB~qv*udK-=K7baw3mbLdU1oj|o%Y9u z7G3;9yw%&Tec3F_j}5=2g^hf_<3*m)8r2mf0z^qyUbB+@N?t~VCq3;>uy`Ke8qJ!5 z*2J9CYgzZ^Tn_sc{5Bnc-0Kq0^|#jZ5v<|ZsD-iAqP2svj||f7S-Eg@#~+fe-vfN0A#p+-UvZ&{sl;rYZyDM}#%`E1?3ELS% zyu!7uU|DIDW?G8qX&oTWnv)n}^tbsaLnPBzzWGnH|0t>1HJq_H?8CqbONj8=riN-+ z$wFSQE-Rzq9Rn^NP=Eo+=}pgjX_#NgN4dD3IX}#y>&Q$&i?gil%Hgh(S6?4nyiP!B zlmx#S7n1<OuRM$pj^3%7Azy#3ImjgK0T|094hA;1+C0TIM_8xjV2UPJ0>7s2Z zFYe3Pxu!9fxDmFnrH5jSGQBpo1Eva-Nq9{%S=UTeQsf8*i8DqpTD@<#r`V;T|EKS& z8c|czU5@K7cGGLRb1`5^gfLgAr{{8y+dD9gN9QMT*w2I{m~JfK`eFs2v_(!*x=vhz zgH7y2W-vu@2VoZu(b*%lx1w|6L=h}Y zY0E(mXX=lLmL8H$dxj+w<Bn>Z`-@Bm&KvmsFJ31E=eVC@!uG z)_KonrG}p{t#_2*_<$faoMEwb)2nsD$RA}?~BjXEKw9E5F1lnRP3MhQV$u71ScOH~h0TCT|byUFzu~Xi9 z`!`DUhB!GDH={*{=({+*(Yh^Wx}AVsNO{v#Zb>1I43X6`Sz3`B`wJ>ztnkqdTg^~m z#OK>p4GPM58Q%{)DtTYmvVr5q46S!6K)(S+ZT#7x7-*ku6J=)u5 zJ5lTP?&su)h^8nE8^uyMAdsW|BU<#x8WgY1`O@79>^ms~Oefj(8za#>q=%LC-Q^9t zOFBJ!ukc}e_sZIva&}!a@Ok3O!%iq8eB_FeMzC9EXiv@+LPwkB0OR=&cS|O|7K&=F z7Mxxc?9V6iTxw?u|Dj(Tkj`Qh1p8{$+C8$YOJ7NuDDQYl~cY5c|&A>TS_l zQ>Y>zAAWrJ{DqN?(H%e)n{HVds39^ZKlQd~M)I8e1pocm{`V8|6Zwgd3vxli|C;}h zpUBKivK?A%HlI(sL_9M}uQ>`=j94=jasd1!gc4*jVre!*{`kL<*2HDbffTld=ld{( z19At(!jj&gLGmcm4J}M(_dl6E?}r|dqT9?ZmxhMBk?ub~n0JP5hWPO`jV#+FoOaaE zYbsXo$$om^NWqa<-O<$`L2xYfn%^?AXfhie9whpCg$2lbzGWV8Qf~ML2CTm8uB5x;MdhvDwP6{t- z+Zr8KqQNl1-ZtH_uwfk_c!<1(!rp-@cjjkp9-yc##IIe0f2H1-k+^>eH|~;}?drT# zQUvs6PL6QnD{wBEaYUu$$U66~nWG8)H2)4{LH8UfWzB3emJnf)OKA~c{Pv4rnfoIv zc;TUvoe3YROfo2@VyInkF6@*?wyEJYXyOW>Gwm@|-DP@a4@ey8)_U!rpWm+2M{j89 z$W3$dRv4z;@3xCE^DRvK<7qGpv7XxJf0xALTV5V#crPqdPGr*f->5v+Zqu#1^LP90 zXb-^I?TAFbn&63t5$*zK=iCb@itC0VJg#7Oz!lBpM9w zjhh{087_*;?V6m43z>HvaAd)#ZfZuZV+CG7!XgX`PUd9a{o~5}&kyE(Sild%lZDKE zZM-Dm5evzZOpGQZ4rUm?11^&d72gMmKFXW*d0xRO&&YMW`~`bVJZ*15j$p! zf?oHYl|c)Knb|ksejj@X!na~a06x)A2QUsPy4|;K>)7TAwma?|L*1cl2gP#7w2)vU zGYrw(VmUq-wUM>awjEV+2?hGvP?KqApY~fLx(CEfM8ekZZ}P3!b({Ae8|ceU`@G*2 zg@Huxb)UPv^hIJY=9~6;XC%5|z<*)2(6%{;F`)X|J6godv}SHAgK_0u=UBWVqs8`; z3--xvVE0swCKfO?-;Do=)GUFI zV~fx$Tls=IOBsAJ2tRZsOk#>14F-BtC^% zu1`KW{P^(sz8Uk!2WIqvW&Y#Y^8*rr4C%CJN5)jgHh(5;fy6sm=Qe!UE@E%9W@Jh` zXKCs9Emml0Pwbrpasw^}uE|HGtl3BXo8Gt6Ydh~VeGib}SVYatnFF`}rlag=wn^Hz zJhfvO^ewF|jsoT{A43N0VCpUAI&UI<9m+}{B2MMuEv@@7HR6$vtXi^?)wHnRNk|AZ zLO#@U^6!#;@TH&d`oL$)JKIvDdc{a5u`g)R6U%^ec_n4Rw$fJnv13}%jO!lRdi!+R zR}ky%$A&3QDptF~Mh?}YpuFs(7>-%~`CtF|=ksTu^MC#0pRg`WXFwGv&!0W}oKI}J zOugOTHn7j#01K*AKa5Fdgiu3UF5F1rRSSU$UD+6A&+sB+k9In8IC{ZMwgQL7t0_nHQ8U>p^RphV~`tVOi;@#9t(&GOuP)sLA*0h(q zJp`;2b2A|ve!GZt#h}uuQfQ$uB2b%RZS|~5Zk1SvLYwKGIxVQuJo~JW+0Es4pxrG) z+uQbLXQTqEfSho3<7<4y1@g6gR7#AnUohYeM)x2k&6cQ3S*II&SIK@7LY$!tqK3v+ zg~tg^HwgF}Moxm6Ude{s zQ8cl@Ntly2ym~=Sg=)}krq@0bZ`1ayg$TEH6j(KkPXsIjTT=cMCCPy(&<6y z$-9Lz{}FnjCUbIDRt3+vHsY~Zu)4eWm(Kh*lG{UFjKFX$ue*eu^Cttk)buO3W zjv1}w)(~5$7~!Ldg4JErTR^76E0bka%aR9~)^JGfjgI3{Y18+pf5ju&w>LzvLE}~_ zb8Xq6XA2@Rc57T3I?UPap~~s=DRcpMN<8kmJ5H*| zZW8u%ujzaeO$}GKluLPbXh@W_2 z>t`qF^W@%uNF~94Y#2E^aRfe)&vLHfMWr0mH8W*6@%~Xs|1JeN{p`|q>)-=TT9on( z-cD z$o};!nU4@Ef|nf0{;TQXG2SPoX^osqF;JQJHKRE(CwGef{I=%$0RY;}79WMr=w5Jx zaq1563$s$@0n3Zx%%YH2gAl$WM)CFQvr&Wi`t_L`gZU>GWbbr;7<24_x<67-ZROOL zYcguf%3onTQndGUL&i;%E~BlUzMH=fx$?eqe#1pHAFO+d&C|YQd+4jXTv9_wN!b*d zR}s@baa-POFbGWarW%?-8a5#(480Ng3zs4_xC3FkZfy)}pyZai+R`RDZ1Uk2_t7>k z{A(0zMnmmpBOe^hJzPGx5nvh~04{Q*$m1oR5MKrCS!Cb*c6evVSkTEYJT%aP~NPX zc8Cjb`1z}F zn>c4J{I!%iuD#S09HJ1_4d%C|C~&TI&Db=wG#$QwDWWx;bcQ-0Qw*wW(Beb0fvqr} z55FnLaGRLyusPT5JKfp7?A#yH9${l@34wF~O|g)**_(BDFEO3LBpf!1)pPvx&t-BS z93*_tzp`y+?QKB0WMZK5x0S$Xqn8+<2$okX4s4xjL>T$-bDIh@lv3t@4Tm?dbl6$c zqpf@L)(FS!4$yVExSri{y__LqSBFrP`tVoqpMkzPN5@f~+h~(Uu|-p0T!)$yTJdjK ztssWWsIODf@ch%EaCMw-1Imy^)lSx{X)YlhwT2asbE#lE z)4b&3XG0B!WlSfs>?}WW5h*^gX3~Uby8@)WXPq$K#~h21b<%?r&I{f3L2o@<>(gJZ z)Q`mszdoz-cK&}pj^nOTE^Z)Vk7kr}p14t_xuMQtV<|4*d#@XL57OVyQtwaVoA;Q` zG#PJqIi#h_P+v$nFuFle%oaPbb_WOnr8O;?W_1fNkVzpdmiSi{6PKE1H&L(1lYH=t zmk;jY@O9e;^KNXwej6x;2k1kd#t-bb#VFTTv`Vuixu@4;0e>5jJrFawk`+Kv^-ck1 zuEoNuQqHcW;p3dN!Ao6|Rhm0jTzi5OcLy?!@JAMLRtl2Y6m($fL4vdQ(8ZD#%q27J zvco)z(z9pJo*}}?AO7$MB5OiP&N5!EKNxKoTln4c=X3Huk6wKV;g6M8!^lE? zUdyIxp#u@jBig1#>%mU6dr>j{9^;S(?US9e1W&I?gf@MwMa8QquSp~&kJwla2>n2? z#x7&cSWb>TnQ^i1RW1J$wm{sGEUb0IDJ#kf-7XU_a22>bO(TR1AyC>^Y*~o2MOc#r zu!*@cyAuFocI>fl5q7@9z0`<}mJygDZa_nN4IQNpLb+`p)158miG4O@#r&dlg7Os8 zja?=P!!&(nN+DQOw9S&%H%3Ra6nRcA%)mX|iZ5?U0ULb<-L(?qU|;v<^F1UXvc?ix zc;?OhhXnI}MJt8SxkiWuaB2yeuX^c-8MQO@vjEYyJ+yoCLGhf+0k*uQV|%6L%3tls zmGRobn{8>2f`!aDWVi{k$|;USrtv*&>RZ7R+mx$k_uQ3RGbxQVQ<&7>+y~ z=8V?^^JTnt7b81yBf?8qhN1acKQIz<`U+-i?U|p>+x~wuoZ^YK zL38%CsKR$hMvFpOqmnNg=*WItMmJ4@3hT;gPn* z5q<^*ch-9Za*a{lfsD=U1ZTl9OR!M;gS$x>TcH5t0lc{vZ#0)#V-&F#7p09?7_POI zuyqp>B%q(WinY1C6L+-Ek1l%i$GRd}`+O*ry4%Fur&oYCi8%}rhu5Ze>_d9Nwi(zg zaLKwSE4n4NdbwieJE8`-*bYuLw3J0#eR8TjIn{m{PPH?1s)YqiJM_j{T?edmWBnE< zEu};8c0KJYki>^18EFq~yNZEq@305sK;&eU2L#$0P++!m*sogQw1oLwGL=h-_>crEOr`Hjf@J%;ADqFIW z!arY{dAk_0V73=m#0YbmA(#oPOGV^j+KJ1X+&&-B-Q6{+l%(A-7fH5rvOWbD9aFj4 zENxA;1e}pnd((!KHhf{Bf z?Ya*;qD9In92P#-1&owdlSGiNn32$Iiu*8d4yHJd65NM@WRc{YO>rLv@4+ZOthZFl(SlQ+=qL6^Z6bIezXch zqZhM35+*Vk#n^AJH_*pgX%MSgQ&i|YEnR;{xh1iG!&_hk!FM=CFLxA*T2aU&9@znV zki=w}$hDwI!Aounh+7CyMfUOLJgb@%nqi+VSt;w))Hh>Z@3d>5=&!lgUVy;g)HM^j zSUsZ5pJoT2?(cv1Z1x}D|7QQ~9RBgq!KVj5xj%k$aInAs-50Mue{*sAJwN#A zJJFOk_}5SS-?7v06B{`=`1IFF-RnqvTqkY_uYSU)(F z03Y(>HVO?$LgviOw`&Od)G_~}3pL@awlz0oO8H^FSo=k2gbhU7I6m7?Por2pyKZQfjZS!DqRxr(iBF`0;QLR}iZ_TcJE6CRhJ*@qH znZ*l24?1a~%2v%}EXTx{pjuMh2sI^F2QD_SzhS5$R)fV1H#?e-YGx)F0BmYm5+!J* zmQsVw!j{PBpVOLVH|AAv)ZAcSP=$^SvWJBDsJwy z)Og6*ZjtxR3~cS>f!|hJf9~H7HP+X#MFp71Wf0JDbaAFaHQv^l!Y@PzUr2Es0&TS? z)bIfT1Ym2Y?fay_3Vy;OBb1WOKV&w`Fdn(|0z?zVYD^yp&1^E zgwYiM=Gj2VPHf45Ms0WGwjBV&Jn|K!j1&phaI>^3R>W>|j8JZCy@HD(mKS0rMxy}q zDeNhN`)#{_-mtPNs7?>!n0y6s(sht?CH*J+TR}j@m zXrs<3!41I5E0zOAwLJzK%ALUKlID+#Z;q#g&)MAl6>ZWrU^k%#&;Phd-HtL#dkCpMo+6fBC_1oZ38)P#eU)5e9Sv;WvN%a3S-{ie+=0M)d<~ z#Doc54?t^ONQk!LIUW`0bItzKg-zI^ca{ofR5LLcsqE5Vh1A$Ime_+i*#|SBD^{na z1iEt&Ex~NABSF|Zt^fiB=N6WRVwAZTP|PRIP8ckfOsp6HfwoTpEERj9I{y6a>KeSxy?Ec|7dMyy?FW(+~8y1l6JiRnms9n=dUXhICc=;NY(CJ_V@lC_g*ETEcEQjXN*nL1S%H#@1{$v!R*h^jSSd=bYI(zi z&q;74@S{!o=mBanDk*IVJi zOwqj@KdW{MdC|*w$Os2T$u!NWrlUf#Ur}E&%Z9qZgasimX~~*i6Oa{$e3D?ouu!;} zBLGp-b8;>dU91?14WcqF3VDa%Wd3VNELl$S2Bh(pm<~AulTETlx*Ij4Z`zFitPQV) zx!5La4tp(4gG^|SHKsv;fugD~(T%{3-JSAbi?pHH*G#K6DiiscA&gdfu_hZ}cCZYC ztx{{H*sd7hA}VS5lHtBXgCFCY!$NScWS-{8TdUdDzT9SAU{;R;yB0o>#|1K{DH}rP_?4G%uo) z{EZ}DgDu_VN}3H_%c5X47OX|>KW!Uy;7g#?3i`aJ-u&ZL6|uE;?B?a`k$5%j7s3_aLYLRSSFj6Rr4mDS$O^4@oKC5W0S7@V|`raou9Og?VzBD=*WT=Kvcy-nr zrp~#_tbf%9CBW(>kF#Cn#~Niya;CdBDW6vG$y#MXKWRprx*Xi!0I+g0A>cimyvc}=#$l%6zV`Hp3_DftY zk*2;SX2(>j?m|?kBqpdJ(LgSOY2NRtfqnshY^6N>Lfg745|LnR)_mXdH2!0U&K1K3 zO0`77P2D1BKYSWbH%F7Whpt4hIc&ZR!roG1t7_MPN$=Ys@}L5TeZa_h9}&HC2W${+ zFrgru);LmZG8<+Hd6EXY@t3l4E=>lJG`WqNP=`V`x`=kkmOTI@a``<;NRTBq1l;m< z4M+=hC9480c7kCn@p3ieya!ekum%gN*2O0s`Gp)H3w95a|og@ z#j-F)ou#|8*tHH|Gr%gYbgPV_H54dqV_TZL=$gs7kYV#;tscc!Ded}@5;3c;GPq5*SPzSICM+t#E3J^Tvh&)lhGNFg7{yD#Uv4HZKU#*` zd}{No7ERWVU!^UTssfYumx1pS0+`Z16R4s9-8Q*eI$=*;rUC0O$E#%_*GKSNOr2ZY z@GKId9gr(?Hz}@UWw2=*Z6L?OEr7cxavC&30sO>T`(yVJJwIXB7+(T8Xdx`%1@LJ{ z19>p#3LkZq>7Nsk@qNqWS&f@H>6N=u^mwbv#SZJXIhdoc1S>;_A)n=ueAd6VLte|H z?K*#OS)KwzZunJcbKPSjhVxu_2F~;?Fsc9(*+~v;ip_;3iiJ7ut}N&>T7=X`$R4-- zubwjC^W#I))uw|3&Z>igCb#p}v`ArDGNA41=cp@V|v$K<=P9x64f^I>B zNn7lwTxMC%LM^>_GwvTbI~Ndo9Oha;{?GPyyEmAQ`?N~7MivM^IO6*+;7Pb@Tf6mU zP|sN=&uOb2fbv@^DwOmi(m$eA;uE&1Ym^|Y7hU&|#Jvf51>1kw=$Ff2VQQ`1 zrcIOC;Mx2O7by%WY+av8`(H?Pbt{-c_EtQ**kTArRoJVbo00?thJm{}zP9+oMj(4- zecX8UkX0l=8~6bGp*&TckmwyH2F%Q6=Q6v=?ueJ&m|3VY{gGivj;mw|?-5lJyon)L zPh3MXlQgIk$cG%jbX0aBvwrlp`|wf4P;taRfrWNnR>fWJn`~M*T^0>0@30VW1lH95 zxpsg7_K+nKd%bn|Vol0%}_5P~^qq^1;R(RH%zjADEP^ z1gJMjAiP+GEL-TfAn4(mXBIXcF#ZycPOkZ_RI>Aj>C#zb4aY+IR_bEI39ox{y#NG&n|{qzA}c679;dW0bls@TR?4V@pdG+jvp^fD)p~GfbzKv@ z;iak0S+n2F%x!}#TY~&OV#xsD=KlQk`TWR>Ux%ZzxDF{uO7H97WA}XwaS2%4eI3hi zH<@fTqca}Mhkg z3V9Z6cOmNB)Cb|keC9YBDFH-xWvlUC9BN;pR!hLgR;!Qbc}87EmPJyy-GGS8II|$; zRx%lERN{~L`^&P)A|yGIo4WQQ)&>dtp98zu8;nwO zsz6udYPmWOA;e@Yc9rEN#=gQr;w*4z!8_<$Qy_nFS3?a7M9^uyeQCO&6jJ3qWXGVbl!WUAq@mAb**HD(7l>Lf93YWANX7!C6NecLj(#5Ib=oJCK~+hBdQpx%32$+}vm> zNW|SDA^nix+ZL#w)My7ed$pSmC?44sU)jFPzANbYFD^QY?(Ol{&?T)+WmyJ`e7YdF ztwE@$=7xg?8LOv!IoSYnDd|-l5yZx~!aaezEu|*tz%|@abudvTK;jYI9{2QqfV39f z#B>W(q+oOp3sM&-B(f4RT~pEIqB+!T@!6AOnM*nBPTz%F-Sqk0+=$BMAlnsy1n%8p zttM8|K*b{YQZ&k<0a!J%C&8h1a6FBdAy!wbSaaRdQc_2)n)CMF0c+p67sn;j+IM;q2< zH6a0V1xnkupSHqW5?}_F$&dmTN?xq});CwfNzGH43LRQaougNMhA-h3oqmEC2YG)l&B#$ew)wQc~y#cAC0LwO80sS$w{jK`dAG%>iC)yP*UI+`>CH^gwwuH=4rgp<% zhus;wwX@Wt@VqB44UYFX6EwLJ>MZLmsJ~Zz>E3qLYAn#_#Xlu5(Y@PgBDdY-ovP%-|z$tISd z8hd-eiiqSolGVe)kibuL8kmYj(2rLYjk5mS(79_C*yU22_^Mt06(iBq2ZLmRnCnR; zU5fAmHNTcgyIZces$H-5OV-EYTDa9^b!{lSV~eBQR^nKoLw?ltA5-*o|EsA}=ztR0 z>Ima}-DZo8Y_$m}8q}|~7(D1O-sZGyt_HSOz-VgpLc3>L_sXaeyO4AJ7LvsntEvn< zrg7Il%`dpZyhF@J{zDI+oQ1$7!$s9eoBA~weg zYKKmHRBE?&pE~O3JGP)~ z?~~8{w13fLO$giS@}9$0XeTNa<>t1%*)8+17l)!XAvr`@-Cl=x$(F-JvKd!q)0XS- zJ=n!~(oN}g+ah7DvEvPCYAtJp_9gam|Ix&ugRqX<8y@Wrj^j#DjF-@y9bre(?cx$l zI+UA%^u7lO&i_Mx2}$u=|Npozgy$c}{vBt>`kob;wX6e6$a8~|N3MT zA&{xIkOBj08mv2Rm=6neRM=5^e#xRi9E_)zG@T%-Yjx9roHT+PWvD zb8zIy!TNmt`T7VfcNC$wL8RUemq{aC)7JD-sAqu?m*>1;4>O$N>UbJnLA~6e@ru8~ z@^y``x2*VXn@x!hrwh;mezH7_7l3Asp>lCALBN6S0TdAJp(*xO8kMK8M zqd#L)-@q>c1}n-1adT(4)m7d-(m=I2v%bFR02J8AYTWw6x4nqfOTCrwJ$$gDWsJ`(<(w3K0b=KZef3JZvQ_I@Ho2?xE>ytK zc8D5U9ECc2wH;mtO6*VMebq7y`!l@cc+T6G?$Zk#>bB-aj|#@^l&1tUvFItaQbp6z zVLAOoQxXbjGV*!wVn1ualkJ|%y<-i&ll^|FsAk4Mk?s7VE>33CAYL&ePsY#%82JSp z&m-8{4?g>cN|`72V5k_^ih5%6&;1|Gb^0dbPZuEoR~5mV$LJ?UWsKS3iK@*cHSt)z zJO@yQ;J-jqW7&dmU~5CIdk{mjBI4{;+hh0o@pKTjGgp>;5hH16bw^%ak(rvs;uibe z*@|MK1ep$-8Y-imjQ?vA|3k4xQ_8XOv$z0Me)~x{Hl&wf6`ANm9K2U2x}EM^r)T)fjMG(OPD>miEVo_Flo$9K?& zgV5BHi;7P%pITgqVi&zD-`*-4*8E>9goP*~|IaVxgcH8Ef3NdJ(La8Va$?#^d)4mu zdq*?>HjdC0_SP zoHG6f{>0(eDn8K`7%r;ehxPGB6wUizU0%#EbnopCN$#yGAaHx^0;7jjZM2ZxK^rG6 zOuqfu@8fyDdXmmykFkr?AbDPr`qMqaTb94o_sH5|L$qp1zP95Ul+)jH<#EBraW+uMNaz_jYFM181`~_jr!|Y3`-mArTF#naX6LK(tZc0hSZtOYfHZf_^u`c$$LB2pwe)a-7~v4N3J^D~}@7naWjH>XoDTN6zvY-g2q`RJ z%`>-Gn#0=~_0Rj9fez7&)a3**#%r)g|MnK*rzdXjZs!RARj_&X;^I}vl!N^jaQi1j z*0Ekg7)-MR?P#Gv3)I|_u`=R%b}pqP?X3M*{y7rjD+|_bqnnswhH4^F&75H%>ih6@ zV}pn!HI0j$lPCF&MXvZ1A$ck1ff!EE=oJ}P%k2i$r`YBkX6F$Wb+lnlE}ZLiN3}?c zoTRWA%w&T;fKuXkA6xVitoVSI=c+DXl^>1QzrzUS_<`Lh#$ zyxyqLCuD5|H9{lQ7YH;G8x7e>|NhU59$GL9|5!Ggd*@la`(;jYa>0MP7MI0doEqpt z60+w;f!qtKJS{1MfN^)1rPPhKFB*g3clLuhL2icOp23D`cewMC1`x_hzj|9Vs3_}k zXGxqWhuIXwH)blC`a9w48zmYjp{ItqiIA#VUHC-anL3c*TF4`y$wV|5oG=h_{j+TJ zK2;qsXo6)VJS_=F*lM-|{6xbB#A#o&UlGRLMu~ct0MSbnSxV!rm_+BRPz|n7y-Bey z2=F)G2F(#a01Euv!U6X2g+~lP^=%k7fcNW26QV{bOfSJK-OCiLat5=->((V4@C)8kTlCs8D09k)gfuV%dn=JX_P!jHF4Y zrH*YJQKKsV8e7l!g28kgHlmO5j1SNYVTdNB8S+78^)V6%60Ikji=VGJDvOo23-=)X z3k&OAT`$VAZ0K$%0|T>G8OmV;A8D<92CzV}=mnK-#^j?$f`-K(G-EATSm}1Z z*)#76tacJPvR1~bEs-;b{-V^OcMP$cuqkdNB#-AMrkfEp$U;bs@WWQ=+QP)tu=fj? zO~xzV0b5C-sGmg65X_sX$q&Mqlo!f+{bK9-Sn9r% zy-r^p0{tV4y=M*rJ!4>?WNg_;ToLONU*{l4xNDQW7X_6*R0`rr@;C)Gk%fx|pB#?c zXv4USSA@+DuYX5k{qw1$<^a509NCt#5PCL^w0dTZ%GeRX~U~BZ9|}|NL#DfW!gg@ z883Oqrn?Xhyg}3KiG?O;h-k|;)?GyuIgdC|CvXLCWOCgh#3kXnS652|eKWMBnV2Wp zV%w#uw3(3N(wb*pmTG1~Q|s-m>R5+CMAgutCPp`!3P_Gub9DOh746{Zaih=bbQJDb zThRxR__t^VMd`+<`bi)({-L!9+t@$a>Mgg#)JI*J$nc{Qhn^~q@=fwyXK-2nqG8ge zVVvt?vPv~d%cw;59-~rcl#Xexi?MzL+=<7wCF>*>XXP}B3~a?(J!&8&YpIK|;xdYq ze6h4^%RD*8u}zH9Hj+pq&<|hlPbVcqu*X@y(l8yv<{F~GG0(DmEJikhU#GvExfjFK zbQeH)eK~#XWvo8FH?7%PJ0HD@4~djH?bwvx|Rf6Zx{6WyxD^Ak!i!?&GB$?XtjlPJfmCY ze{gegK+{y$P;%zkaUDm8srt}GCzf;S=?-S)Q(6Rn{=Ekrp+5AM$XY~SD{rT@bh@xs2h`{3+Y z7-NAW>@2>OVY}LTeQNq)Ea%$OR&aeWKil+4Xtau8M%=hsF3_s)P_R`>%Z^clHj*Fv z*IFnAYb>9XEeop@jPB;7_6Mbu&4*XC@_$>bf6Y8KdJQQij^PJTzLtpC!Bqe zkE$!#W`5g!zVxr3x$EC@xm{{-zs`3ySy z2O%+$?ycQsQ}I;SQ1#F4~ri&^h~=S?(~Tm$4Vgqi{AOzx>+^=m8_=Y$YGoc3ocGYg0=xUY$F zhmS?}Al0eCF2CH|NhKLDeZ`uw$((8~;gXZwA6nbMiA)z+VhOn5)?r4g zKIT-4#RA^5!o$zwg_iwi?U~bvqO;g;xg)kIdiKT`cAUVMKY+kEXkj!XFOA`N zt!#^RYVnFxT%n-b0J!lgC`t=S8So|P_#$Q%{ z8ct2{q7r`4D}>baMO|+8mmryt_Tn|-9y;2)1T;ss2T1X%B>tVV{8&}mn{CNqjhgjf zd7-r&V7CDc444#dqjz!PryZPtevNIoe{W8%UrpGhK&Xb#oP+!29>d#Sb|V*q=jACu z)tT}Z5p{b5cN&mI4;6Jzf^wRzKKz*9UZ-QT*ZD5~%qzPvcE^?2BxT*3e3)6^l8{Pc ziLWyor*atYd-L>3B3mT&f)*IM2qWc|P{BJr{1zS3?p1RKCI}P@E*g8;6sbB&1bK3= zzkSxOn;cAqeBt?#*Y>4CC+ZQHOZ4mZtUX}&sI~$x&+r!1=O1PIMlof6(e=4Zrd|Gy z_P}MW@>oR<$TIDaS@v^n73-RK25ODU7!}!RE;?XL9$75EK=8_*@pzzAdsUFULf4nH zN$B$cfieyj7_x7JAc^$JPzr&`ui8pX5Vm}k3Pr)IWYF>Wd!;U0a= zwtgUGdw$YF3RR%+(~C-ZxMOO{#-E5lG(l^1S9&xngQAxJV!3Px@~n+7UE86off1VE|&Oxt8Pnq-#74Y_xs zr+7VD#5*a_@4+E4bxK|IJbG5)56V)%E+a{8-foiVc?NLDiYBK4F#>Mrc3 zD@KVNTE3-1>Jl8qwAx3=8})*cVY@q?!R{TrSSj5%XjuFut5f6c?ylsJ7cKNpTlGV+ z9l`vgJI~3q+=XGpS?O!UnT9fBZkD=Zrz(x$xQ0duY6eiNi;5i`7|Y}1MsOP<4|7t1 zMsMr3-z)H2QatYBX|{emnLOykQkk!RH|fsHe-41XL*CS3Zr)V8VgXgJzP^bksbBqM ze#Xz+-8KOkpX=ui+x-fg=U%M;^guTHl}lpBxqjw4(gWH~it3T|5wz4UMakds8~n&S z3STR+o>k;!Ea&Z_hWM-|&7vxCk8hhnEU2mnrL`Zz8dUoRsDcJ6Z*Fl029neB{mj~X zQD57rE&nBl{z`SzYN~wyN&rlC3p0_w&Y*4GSK{v73r&N0vbG27nx(zfoG<8k4D8&< z-8}vBJo$FJ(P13bagsBBs z&0oaLsKm`%K}<>Qt=G8%G;BBYTp!$A15Tjmt&J|v3 zg{N-HJjPi#LePWxWGk5EbvE(IOBv;%arcx!63_q=aBzD-V34(!dvMEh6o{tHoao&g z1)Sv)9w^8;G7v&f(_YAD#YymNXg3LJkXa6VD^)$M(C@<3`!2!Q5RYsFk6q4T;;rMBQ&TlQd+fa{_V@ND( z$UhoQhP9EkjsZRbG|I{dSD65~xV+han`MoJ0?Qm`NmO16GB-}!-mXeStCbN?HL|Sx zEI&CI`55KCe>pf$5~Hr`5!Z)o zX&-(saA|P7Bu)gcjWetni#u4G(!0z0r^tTuqzH%7Vo%`RY*iSk78->mi*!%m9j{%J1+=XO1T&LAmZe??n!l&LRVF=Q=Ri%l?JAQS7EtU|Lt}U+gx9IEEz5b^ z^zb2H)2JuC^R#u}LwP1kz2I9^*{LUgFyAc|8+HoN%wfwUDPPF#X*$*yZR=;vsrd1W zoJUJvA1)qq;Fjh!kxozGC(lRF6duz@nz>7ac=-P6G`gMqy(HlI{M~68SU0_`A=q7B z-g-wPNN~sfa@t%YjMv0Y>w8r_t18ra&jv`%z#(9CEHN!4#9{t}rO$gyj47+yzzf6$X zN9{Cs6HqoUZ(}On3q5D7-M`fypO=+0$&7E$DzyGQgpmUkY4Y`w?tTUlLpC|i3M=O(Les>CN&MC;-x8vE8e63oV;XtzX%xd6K;e?Vu80xi+&~ z8Fvu_O_^*5v0__M^3O>2~4Gd!|vHWH`Kz`&j z9a_UaI0|&;6)HT@k?KGfa~+=J&9v}CjsA6i8#aIjnCOv(?F!L@^39I_DRjE~M@ z82mh+-#>@5Uk7P}&TxP@W2B9(3BM^t0c&? z;!4R~V}Y}G^`a{erDsxXV0MQ6bSZovuo(udzC;IQh=kuA*#Q@FfeT(%;SGoTW~IZ< zkcMzh?kz&f;xOMMfK}rx!Z6S%BU+aRQcpgU$(557Mxhc;GaFb2rGrvDG02bBn9Z}c zFv*W#RbWOYDN(6C)kk{XYuBlYjwfB|UG%89xjFTMc5ZSZJL^dOvuEaFI=%`t1~*m^({YeTT@O$NY_-Tv!TD zbFdRh(z)z*kxvHTtz}dENF@tgGPs};EJBUGiJ@-kL&~H48(j@gXC;cXXi^)w!>D+| zDnZ7o>iyT!k#y?l-|88?-g#nfOs$%-VMi~^M%8$J|AKu6!MylaQu*fA8KW-#&&%U} z#&7XyZLx|JpG;N5E)zM@jhJ3#d8GS-R@vSFoab;zPs^bb8Q~%VdZApJ1Ea&Jk{B~J z-#>_xqDdGuc;mnm<`@OpwXI86+%5(FKpVDEkbSB&^iQt=N!;oXR@o0WQhI;Kcx|`r zB%`ueXJL4jjbW|oYq90C-2fWt3Atnt;S`;Y^*Gxdjp?k#sJ(l#ZT2^S-m4~8Tu$cN zhei$zqb8dxNV};>51qadLQUo`CKyajz*SE)Q4+tZ3Fiw#LaGVGS|M!O^#LnUq6f%? zSKzDFK-e&gd|1}m8Vu_%8Vi*`*f@3WF-qKE6u5>|;sT+>4er0mE3pTmkvcE{qsHK@ z#JaH-nL80ki$x>PEm>toH<=o*o{8CHy)0=|MTE{3*@3?KMs<&8G0qn(y&SxBiH3PNJ;1T-a>6c09R_$g z3^dS$uOoG10L^Id?dtuR?4_MaKA6Qre$m{pCVBjnKVGg2fLd^_AbUgPsyxoqu`4)jr$YhQ^~ak$jKTYJr4EiqctA-1N&EIA8^aj|Mm1#!2NW2V;uX8r+>%Y1+b@Syg z!ne&nFDycjK58QA1Y2`jMM*o}j98ZzPRrB$Z9?!i;Om=0E5^#ykyuVJJ?iCXH4Cl$ zggLRNZ>5*dUEqE`7H;ovX2-RnYIBc$?>E?&MgvDLCOBF5_`obfhNG=vCo4-l@b`>1 z^tRLlN_ogyBGi8KF(AJ9B_;GwiEEm}Jux>KL^fS3vVA#Kf8rB7^Um^RP51P7Z3Eur z9(Ne_Uy1x-O;^L}N6nzM|E3n*#vrncUE1TvRCdmw(8_oUx7Qp)^#qYIf#3y5X_nD# zV4k>k<$gly(x@ajqc_s#n02dTfNJsW)l``HwgBXh@%b>Yo~a7Pf>R)I66I*1!U6LJ zw-pJV0EkWkP$Is zdb^MzFj1!2irCwQPCSK#rl`RXP`bCw+Pj8hJu+}~+=UC-+>Bu~KO9oYR!r?G4hRby z+o7S5rxWQk?vag+R>5kqYoZC7E$>G0z}MTsU9&Ie96}S04+di|K=agIa6LGXL1-h? zEesFwDKf>!3r12|<+(wH%C>ih6f(QF3h(IZ0c>8@;S1)b)}h+f14W|aKViJ4yYASu z(pbF?k$P4eIhgUC7e2`a1jl-Pk5>UJNQSXs+fPIk0&pD7!I5rZ>t$pZLs%>{%I&p> zCmsZbyvv)sb)aJCP_gAW^o82Qm2e49*y%;sInz4_ENL_7Tv*-^T<&bmR}-Iyq+@FE zb7f8~_=&!A{pZ5!&MxBx`wbX~%qqG$EdMS`uvF(k8GJmPhlG9F=(2J<Z3pUWMR@ z*@!{NQ6jKD2~6BLLEx`>S_AC_5Y<-fG0i-5gNfqbD#`s5`WFasbOA^v4_xT#&q9j< z$tiR&^5VNvKV;$U%-`HWT~F>Az(3p^VJ!r6NCK_4T;*M5JJ(GY?lQc-jHjk(2d_j>%=b}}RC ziVN-0rxfSHT`OBQ&SiK_D;mLg)m8aeXfmjmc$r0vp!>(QN2h1aHvB zu^$^&)QJ>8SGLa1*@2ullPJSQtaZ0=lL4HKm!Y3^SRU~d9f3~QXVzHvIfZ#NQ>thP z&aJ~8J?7NHOSUkwdUq>SI9PtJQBG^kG}PKu;4%`h(?)HXE0oa1^rMki6&zs=BG;u%(e-R%aye#6sSGH43}ATzh(nwDLYN0Y3$~jGkTjK z6>*f~4$(lA)^wPQK4S$o5hvzIom*kGs))ZtlOV>b!6b5W;V{-RUZcM=Cmp%d#rcXS zM(jFQ6gU;j=hh!NBnNa8OOgB}CUR;=(~yZ%&g-Ga%>IkNnjm}F{w=z=h#P-X0-wqw zLgB;=D3dY}sgoHm5hp=~alXS0SC42!nqoGsPa;%O?^&ebI8Br$ddVNPq~6#;31DGo ze}}+^Jhf=(K?14U)Cj0>S3~>0a3IV}(iFf*7{HX?76uoss1!iF*>6htVTd*~<2P26 z@AhzR=DUVj{)Bi_wm;vCnP(ve@JeA0I%!$>PjBpKWvv`s_UPdnfqj$6KS)IuI*X)c zdyUH@4*%h6zG24utbF8grcPY+p;5sJV%ZxkImC?m}4cT+DR8yipJwjIfblkr!19xLuGjqkGrIc}s( zmX{=`kM@d%#Hug7_+=C74h9~;mMN+5_Rd=vlILHRLsNb_j< zAw;M{SHf>$u2WDj+;l+|I|UwP#aAD1;f7Pda2NdKn@4$X-j0($5Tu5F-MpO#Ki_@q zg@#g5+UGNH{cGGoMC1hs4{pOeA773jVxN4r1z znC8H*;xuW2Q`&6I7cdAW(}-khg^P8ko5?)!*>6+b8BMl!zS0X3Yr_Xsd)H$#q$aWd z^V%PQ$+9D`9Iq9`eIQNF8ajc2aGyXc-dW;$9y~2 zUIzc8e+21bbAB9`>4%Z?)Mj@>H=ko+cD9y zMu{r>DE4zUeX2LY1_b}(6CdY=S*sy+Er`ZBJ!fCn@5yTY*@b-CO*L7sFaF&Od$9|A zyi3=nTI!UAVl2$j(aC1d>OzN%Rv?cW2ctn-AL`uxr>syYbi`1~?4UWh?c0;2$y<#g zLQvc6Q+&Oxg-curb-M~=%r*j^A-0iPS)0MY(NxVE{!PmIt%y{8xqDyex=5nLGSjh@ zFIJ=sijO{(;>2?1M$?Jv%?XH7AxgB0W`lC}4J0fN&|;G%*8h*irXqCjjuE0ePqZ)h z9qPQ1L~~Or3gYMlEsKx~vy(Tg_bnW&&DiM$@pAo8S~cwgG}tPI%&1y6n0csYOs&*E zH=a0}GfH)&hR4hhAtPlcL1yKIrVxa852-q4Cqd;jorSn}pN}1Y-X*6ZbT%94t5E*S zGy4f$o)6XF^LlH|2-j1H`|^P^f9j%cJVSwgAc6}vljO_9&8TktJ!up*V%4P*C^%dK zVgX%^y4NOilGY2+vr}lL6v$>id|w0+A+;mGBQ$~qlt3`;R3y>`RrFLy+Ab*U_f^fW zMbEQ?b}|P@{uxw4CLW z!$L3XbP2ObQDTy!CYV-tc^Ue2C~Gz3Hdjo2UuekTNKIt~6B*DE)VUos7D+=}-TTOPG=ZkBR3ZF9S|44(N!vYKD`~u! z$S2?mi*Y~{SJPR*&CF2Js7 zdwxY_&LS_zj(T9g2o7`TT$OfRKFCNEs{sfE9!bq?bv*e@==xvD*lj9}XBH{8 zID9%!eWQpK2C3 zT7+W~43(r~S}i7Mvl!zMYSa`>CenGKOdvp1UV^CF4-q9b8bQePTA};7fHbiAxOCeH z9^gLjQM7FNk!9h5_HbQ*!2~p6vq&I?>k4e2X9U2RK&RlC=LEpGCI!JTEAKe}6I>Dk zCj`MR{CQ2%fU*2?b~t}#NJ`&Eo{B`Ky6;5q1fkamjJMh?%y(My0td`;b77e^Z>uZ@ z$H(G&z?X9>F_Z+}4%3s<>Ghs+*9Z}W3JW+1$!(OHCB5{AQ(rXOUzHhar-KqnAsm!R7NKYW!#bwTvWZcTJ-8NB4+-fF;z4p zvsuYcoAH^gAObJY4v4oBqgUcl&Zm%0du`0r)s_D>X493Ej4AcAG~>A^=Wwq{0^Va1 z=+Yb}sxZ2KJ#6$&t4t!B#8M{O;Sw4EP(S~;>XS4qdONkn1#0!NhC6Ff7FX^X?VGOq zmo~_N*V7*~}u-vUb99Qod=lK(OuAlJ^c zGQP`u+S!jw?)Sku$ArKQ=Y&As@5F%0{mx3}@5O&JbK?DYMhNVS)Gs#S@Q&`)WP5eh zIP)rF{V&8TYgV*J8A*oDNFELbtDKk-&?k|u3$V;_H{pH_Af-#Mf$>ez#0I7lG)pER zRYySgN@ryJp@bOiGeLN{Z!8=qOBha818#Oo8x&QJfypI%u`yRkxtJpB;7dII(tvsW z6xnR${MZT()x=tD9M~KkTb(u9KFj&R32r5VF_1A%Q^rY6=8giY=|FRbiMSi8uN8jQ z!4l3jVY%u?*Bas9tWUb0-;LX2=c6uG2Vysdhye6=p~+}ggtwZ?R_^q}i*d>ZxCchM zhN`fB3Id~3#aw?hdW?;nS2LmvUway%MuNd+%WBBVQ5jAVQZY93-E$z3$K_4CtWidi z`0$LhaEc;>$a8iE7z^hJhNv5pL}H;BWm6}qmzo%w#a1~Ot0dN1O|FfKiMp*Vx;E;j z4p{s3XxgFGfzZmV&hA)sU@V)A?lxFW;F%IXZ1j5hMoA$XO;e}nm`V}-@4345!3p(8 z`g&FCFzQCz84Hazu(l1Rez>c(zA!6V-RpNoLtFVaj|!$Q7+Ys@WW<#b8Burs<>4t2 z(}sx%SZ3^m!!jbK9Ul?*3=T*kJHiMu*Zsl+LmwdA*0Sv+EO?BPxRkT3>vvHobccXH z^w~`cx)Sue#a3;*;WcCHO;GkK@ln$Gql-Lpg#qMYq?qMu@oozLaOLQ*lthY;LgSyL zn41kRmc0_`LE5;wW<;;AHj9MhLy@$aNr-PYsQ!PpM0X5}ZsfpLcbDDSVv&IYz#e~m ztMn*Z3jMd*@Y_=7f*}J_Sv}`Py@q@P_roK}#`u)XSaTMw6vWzKqBQFArm&1{bdg%< zPGJgK;SP2il7RxtQX8^IvkS{rtGl`xmL@F7CMUEk;!RekEVKj@VVp4VfBx8$&)JD2 zm#{Si*ZC}@!go3SI4`6ga-L6t>%J9G5IJnI^s~qxe zpunQaJ%vtoHTB9r`u;JTGD7y&3%pp)ipegvod`XLcPH6fxaC;(Ym{YPigCHoJ*(Y% zc5oKHfG=2*1Yw9irp-eA(7)u{e;%C?wKrZltB(eZoNR=ldHP>{t>g`5bFi z0>L^XhT$}U%?l9u4vrRdEL2^&h9KzIaw=idrGpXR4(miSO}oq!GbgGC#8^qiRXm*Q z750NWgO}8=)&C)B5CIf?kqK&=koAcFjD<;MQlqahi9k5AFH?2~X{%uud{^%&XOSEc z#tgu7{4E^XG#SVOWsb&eV8DBc3vERFd4vugf{1J8IxswN9vEhjM}`OH6Q=qLK6cll zA!rr?WSn5HKBFyyBAtX9Q({`=k*6}4!_fmm3j&P{iR1P73}M-_)x)=dY@#Dka6smi zMg|$A@1fNq1_~p5`VrmP!}83OV++eM)@au9yEVyL)x0<(<=x)#ZVvgAwBKA~bU6Mn zLhpi+$RXpii6+})+a5`KEZ{h}-GEFAG!pVtbKkS?tqqHSV33#-QSdo9p&b->wyU80 zUNA9#7V(aQbN?oJFZc4N6YHQAN`2FP9`xo#2sbIv-R0W#JuyhYzv@hquS7l{`RX3~ zD<(PkkmULl@O>q-&->y1YX2Dd;F_`b`e5>E@(q{g-i|*0aT~^B`S_5tWFV~P?NK5S z_bPsK7oFLmKW`NL5#~GH{IM70Lw6w`$;JWhsS_mo)*XEhEayT#sfw2a?cVbU0eqAI z3%9j>apB+alsXc_T*Jn&nU0}-bFX9gc3+~yyr%Zdq4E(Vd{%}pT$aYX^TNn`elVHa z!U$Z}h9I)F=WiJMO|s<$lfC%ok+H#0_w!HH7Dk0u!g|j^UQUAl`qV-zWo{8|^C(*P z+O}2e`662P&fcIcqD>@$A+#wB@el-Edls#OiPeR^^+;ClZ=<({(Vgyz4HK_j*qwfh zo=2-~yRd-kWClpI)>5?WndM`ZqIm=j2NetvEx#b`q5!~UQ1)>P7<`Sm7l63MW@25)2DKt^(qWvw%1U0dWZXlYqE`{6j$8!~go{zHsLd;4UFs0Pz3CgfsNO-{+8c z2q5tiK!WrBZ*B7Z&zkjI_+7s6T@P#j8wAzu_>kTC@Uye4QKNhK;bcf!eapS&I2wx0GurHf|Ec4Cy545 z8U>s@3NShJ|Lybsj)kV}cPziTq7Tmho`=r}0+*fP1DCxjh{R=S{BN#5=LL~3J--Sf zZF&F8yYhp}3<8%KeEr`mtB=z|C{Le>r*E{=qc1#I>6U5arf%YOOrudf2T6&KJnKRA z2|AHRyrj(HH_&NNp!6*;D05|GJy~&+5+^VV2QnXBiz#LIc7Qow?E?Nv9zw z`hAQjQ8agi+6-EY%nIh)D>|-!{p`0ye6;a4$2*Q!K=i<~FO`cvqWp%+d|@;M@W?^V zW*Jp1pd?cpr#ZBt!ZOoKMO7I$)@qJC zAqB5tp;Uqf0woJFb2l^fqYlbN#dEaQ%;8zTr7!XSi@90pKlDk6WSud?oI?nV_!x`8 z_BxZnh#+G*vy~!&>bBKaq%X6=n!5?SUtudz=Oz?;&sn;Nr^n#@cu_r;Xw!ZDhbB6v z7xS%nC#G1I&vK2Fm}+=F7u?1 zobT`0tA}_Ss2gwDtY!gC#r!CAL1G{MTbVosmG;cEnkrx&y+i1hst>Wub~BhWZdzCg zu|Az-A}QV5Tn8((6f4Q>x9=6IEtSzDqQxzv#84Yzq0elrpy|*W&SgyLluy7lnn`8q zoI1y8T^JPmDaKT`n6zy%K6-rW)0rJ&nUkd}ikB^U(wb;ua42uy#9k;Y%x}o>C1&Mo zcw<4@6ryf~?xTUeG8shXm@hRslt8Bx>GG>ptMNEk8o|?UQ$+}C<46Doj(w}4Xn6ou z>ST=3*X!l`xjW@`DGN8(F|f(tji8qpLYu<6x2O!!Q|$FYQb$e?uRKRF4wGkvm5{sk z0)1}kEmIyM4ET&OAn05{M;wSVZ)P_ncHgdXjmePy_u7)%&z3*vr54Z$poilW8owvJ zJOdeegGVo5?uC&|ap1B*fm9h$X%s>|2`J+(g;b@n*p3o7jnD!jAQ(*fxCmpSUR+18 zJB8c`1|?ink`je#{1I>8skMu81q7G4&jV`itW&Y;|hTozb zgWqmM?vhlq`;QD>huR2qWu?5$**=?P-nSdMg_%OW2b&0Lr$~iG7%m?$!NR4SH^gBECqYl9do#9loQseQw{yDoqq4Zzl~UNl5*XM&}8y7ymdoeLo%1MM3?Ac(=TSv_tK{Ozyy9Ds4u%|Nf6NTwFg_MkRd z<*t0yA;OEOY4~NN+jTSbKmwEb5~%M)WAjb5VTBgB**v;*ZP%7Xqo6E*blpxoU@TvK z`E5Bj0^~QzD=YNDz~C*D6{jlNb^#FqLkJ>Te~u`aKLM~$>PvLKt5C!5es{fE1Z>;f zlV3w;0TekZH(Na`T@ADNbWV^k8=rem2>otysaLKiaL7$T6ogE-1jO$uVJq*Lwa<+D z-ha*mx}cCNb7<6`5ekmEQV+dk3GLHpc(B7*|FuxobDG~Sh2?0aO>6z;4w!AE=q>KC zd-w5Q>TEE)Ht&@`-TyP1Ur(i3JbnM6%x4;&D@@b>^so0OJTIAz)LFuK0WVUTGMGr! zLAldJCx-zF$L0|T)OUg8n%zBA=jir>WAYB(xqX*bfvLQKE@a~=FQVe~d*JesvMHC- z+rPaX&B4X64yCL0*;T0Y_{3RjJ$PhHyg72SwliBgplA z1B)0L;ch@T3zMk!b8bnT|2owxukJ%txJ{(9%8reud&KAmjaXWk)%=W{dWJ?jPry>_ z#-HtNNab&4VP9wn2dt#JmDGujIe&Mqc!Ntb=v15io71y8iLelz^@ zan*3$G5XIYPt7j<2pV@?+1tF>e3!H~wBM-}V=C`N8#p0y1@I1BTycUwFiY2HMfMSs z6(2vTrHXrGz()PPURtndQus*vIbZ6w_A8)(pK+0hxwd|1g8aPt7K-PCe*%rD$bqR^ zT~25KzTo&Mx99!heHxi_8TOj!brRg*h(v%{K(uWd&G&*mNqD0g#Z>$nTLg)}mMm?B zs}*uGr4~1I?v0zC5839*P+{!7hOtLrApR7zY0}nqHPC{MSvZ#=sAe6Yvv&)ODkye> zB|Da{x@jyn!{5EHCCQ|H592@7;1TH%*8+mJ@`sC*w#doT&8z*u+Ur?|`*4p9#Y)>; zw@TsB58X$fMrm{*b+h3>_3khjV=jUg<8(J?K2w1t{uC9oNPOW%!|TE+Ka|Qn{iiE> zJ#(XDjrv)>8YXh-K2n_Q@gGStttZWumgCIoK$&?wpN{;)T;>jTTnSRV=Ns+I%(V0G zxanDF;?=0v$R^b3kr+U)VdHC6HwG3WjQiN!iroxA#)NE&O-JxuDW(#F zu!?dvSc-xz^09|JMdsVD1f9-v_VLrf_tgr)W6Zt1LjTlWiYE~D`QaNe?rHKI(&(D# z0zbGbsMa0n=Nj1h!6-p_|7;%9UAT@Q{u&%3=QH8hUG-tpD}fI9MB_6@q5rpYwI8t% z{Jr9q957+_+=--RlOJ!f28O|B3&T!=GcH>ZVdEJCFfwoX%NT2*sSOYlm~pXdf(Ee1Vq zj~613OVjVfw~=Owv?5_C_MX?ssBE;1Py(%-O_cH&WLb41Q`};#J*Bh0)%H+ND;sUa zoBJ251m(-^I!s@SyiWq-MC0U2BW%TOM#EB_`8xt)LW9l>Tn->e>{tq$ACVAUVL!$! z_N;riH^`lAi;>Z7l{KviccC*|=vsGaJpD&X(h;~@nH{nZK? z7#o-$JFvW#{8hM}OVQ3UTj`m+G7MiXzMhX)pO5F~73&O(oy(6z7Gv+FSGAK8)06gDXi+kV;6XU7PZ78PL$%@oS8 z_Db&{BtEEB90K`T6z!r2$8d$$2iZgW?Eq}Iz36MO3ce-*=3) z4&ad!Q1+BfJ1pNnIqH`*2?3Kw`dHYJudL2CdLvAx@F^(ETgqCF1lL+8Qo9W!+21t1 ze)O9brLH9Ews{j{$4_0M3G9yNi=|E;dK2YZa(ZJa7^FxEqP%q~^SnwPoyp*I6x_)w z4JWps8`mBpI=McXDvh7k2x`KvE#9<$fd{8qRaACd~ZJL z)T1@}q&O)2-Fm=Ya9=m)=KTF!AHTo8PEOthm%m{ek$~}VYCL$s-aRRd!Qh zwvN@K7tLGaQ@C?Qe=uWiK6RXxMOd<1T}&`A*8Gr4(P-;g@4oTd)nTzf2QPhR06JVN_q(VN217&?6mS%_&m@YE6wY_xWNkvfeb zpc8kLs{43e#BeoxuaP2!Dj*OwTey%A%y2=>mm78RdaDAEO*bjU7;9+gC8&YZm`*%j zI;X+>a_-&S>)rW%LU$Jic=I{^ufF8dt56XY=Z?s>p&;FUV1}e!( z^yU-LeKFc!iuO(=?0u1|$JC+hs~;gZ;9oHg(nnDivYH&`5wI=j%44v83g|(Tf@MHb zNz8=OYN}hnM&LQj83!Q!N;jriXIB(V!Qob(#ySFt(SX`Md$>C0I zAo96GvT&zXT@%nMrt~skhNg0mV!E)DhsV>y`VJ1|&0E~>3C1Tyk89ke@WMZl`gb|?(R~c1{c3RA{%R@XN&(-4Z2N2d zHmV8#Ig9>z@%mDi0=$4Z)L&X0R_!RU6Un*jma7`NYU__}JDr`ZczyhaTRxaJb5egb zCYcEw$Z}6}z0+ald}y^C76om$ZXL*B?j`Dpr1E2K>07_ag{u9-iT7f}S_hR*zHMJa zj#nte89wZIV!h$D26!TEeDG{eOR;iLu^SytUObzG@Mc4o-I?FHSPZ#k51!#N(Am70x{N#e7rhL-*QBjQD58`(F>TcJUbx+px2 zM``(o)iJHSP!;^rV;IP5S)^dD?`GzN1u0R z&Nx-Z9m4iWQo9(?U!>D0^Yd3FjnS>1Ay|@jxQyR_m*S@`xmP4Wp3?DbNg>yzKCgcs zFHW9Z)_r%ul8v#1OBge|Q&x-C86K}AXOzbjr}Y+e3>mY9eT4zAhohRL$EHNT#G`5h z7TDSYIDuOgcrG>bjWuWR+3|{HqZh2JKY=pv3M8t^WYqFdY%p8nv z%;tz~v)Psp2*!m1FU^KV4|xixW9_D(rctF-EJyC=X9AVz|0R&CO-2u#mIs$ul>r@= z>**jenz`v1B=RuC3%Jv%3~4u9;v(Ci8?Jfi2!I<|D0(t0q60UO6^+j#*^pU9v0~mf znpN2Q!QnMX;G^E;p*f3vgJ|zF^D6u}mPNa+ z70|Azv*u`V$q7HJg`CKjhm2t=_=Fa%5%_U`{k`7FQehli6OSu<>u%O9mo-p3(Vw1od`6vmvT zFv+IiuO`ExM9bmmJ?mqXKM2<4cY`s--8ok#@!EXMFMA(c-d(_M(+y9;tMo(}c}Rc` z_&&LX?(oZ5)bnxibN&T?zH|rOoBhIzp`*x(q{aJ)61p4tI`8U#jiw%qUVqfqW$`E3 z@~1uZB{qu#`(m|?>hVn)JgQ>UGVq@j9E_sOa-rc48*RguTb!OBV-L=E%w;CS+}fs*!22?!0~D04ngOf!XZVtJJ;WvMYXBGl9KEJBgfe#mzI=y zYWLwtKdk6gCttiHTk-2QD!M0Rr1sN>Nd-h?K8G-zRh|{Ub71jvXm3)>4{$k4jJmz7 zu+?a)cCn`_wVP(8*DQ>|&-sFS9XcCrnt0_Q(sVMLW$=ikSTIz3bNVx+zvZKPap~uQ4rnJ4*=u+(@e+3z7gk)H4>K8AUK}OBd zne++(M>f3UlSjFY?DfX%jtjFQA%H6W%*?HUhk^Wed1XrqW;tg2^eDHpE9gY18UOeu zVbkI$Y2NTxL z&EZs`D?2oAu9TSQ_)YaVca(%MXLuf@9ri>gANtf`gbW2V<{E+}D-J$w<&j z#3!dYvyqIX5j}S*lFN-gPK8%F1(=_Tr^SV;S-9W>vM{y%8d>tXIj|!G@CQ1bqmax_ z+DBn;p$1oB6QcnAILf2TY2ELh*$#B2Ao=N4DPF#;Zgjn&jpg3|?1c zb;3{XB|R(_=Kap$d&zTyj|le+bC=7kJ8k;!2@bK?9o)W>( z0>i7h?crY?@)%;(9me9&!;#I7B}4=Vq%G?k)WMLCa$V89;5S4H4OJV|0g#WaHEXRZ zh=_ON-uN5PV@-%Sl>=WO%e7~1nmAbfMofMk3@S_t5D{g9Z7U$=4B{6Iu;;NH|SM9I1~^a zt&Eq9a)8>U=KJnf#W$DBnCoi&Wcvdr*1YuBE2(v45D>M1OCQy5WP8rDe_`XTSWAkTP<`3-(*VMtyKLN-AZvZ#E7(g|ZS7F`JJo9gK7qu=Mhq=nXG!qEw zZetN?TMjg%Njyj zDO$S98U4_Wq&7PgC^=lD8g8WG%*T)4+eU*G7pHBkf9Sw$rY$=L1L6tx<{-*1whbKO z1y?@^#yJ_&PduN$^Za&0BVyz>oLV61>&r@hutD2dR5oghgYD%Uol;-~NL2es&DM~I z%{iUkn6w_3h`8u}%sK0=$Jr$Gc-TtwVX1sE#3++#40;T2i(>n{k(Q@kn8!*fWBx`5 zB#9RvQb5)2tJ-DpI87GI5{?xf+-*kbcK-Y_gKt%l2&5&r=c5qN5V#_W!~S5_fq4Xx z5i5cEZk`^84h|<~^y8D_VEX4`=si_L$ehO0v;pFEe0pVU-1Hbf=Gd)U!4BbW6O*L~dWrG8fRy*|anR9P3K7rWX`S#SHrh^j|( zW5GI`ds9hWP!29{NRyk41TwI1g1SXM}j>`k#X*^bDFeRd-GtCZqfua>WP2DI2>V!Wnl`EkJj%(G1i6QiJGZ3mCugO zi^l+drsUn>M=h&Dq9_SkS+&IALAu@NN{6Y{N_i+=B<2ju%Oy_L3PjuV>=B_R@iNbl zk33WG=u0%khx;r#INhbeuN6G?1gA0$aYRIz6%iDNA$%64XtLgAR7{c?Ek6D-Osp0^ z2b(*rXuZi0``V>_&F4Y%d{qu-UTN#d!7C$}k+!&WQLoeTFeUW4z>HCGl4Kh?OgN_! zXqIFlEOeV2#p^2e$doqkLNf#<+bt5bSGnOXe`t=v7|8Zy(=pYiII;S_<`I%kfTN=N z{vQ9-I$7TqcYkN8Y7-`ZCMJc4O&af6xh9Zo>Rl0Eq0ezomr$A<0X+qhC0Ys8rgqJ` zlWBS4IMo)P)4!AlD=!j-+b75fj)zfcL*c%;SmEujnCA9AdRtk)?;8%)ZH^gw@00uu z0^mBlhKf;a<CYX_NCDy2M!iT0D}Uc2({bBD)?0$a#E!$Hm=pI1-3<#6CDptPehadEClG;r0u zwwWMT#Br7ouU9FC(fG6S%ERRgIWPavLRs`&_wuVL!RDnpu0<}?l@%`ad zcPm%a`1csyVEbzgfboRrF;ZiH<-fl^exC6@qd*h85MpoL9$(vZns-O993(ke1}3u$ zmK0(?)|*-jKcLgII3wClyNwBgDWn_YK3MD2TYAo|;CgGV%So$!PPBCPjFZsvVqbb} z169zQDVQ;zr@(%+lyy4o7?+Opo&@kU5EF(;j_^KUO8t&#WxW|VCX`$VkyQlaRWawV9Dm^e!Kd{dr=UwD z=*7uWU7~z+Jm_z1*6hxCyxOU!B=k)HM7k4=Le9EpaoIQ{Ybpd3sNr4(_#rwiC@D6) z58wf%4aI}FAUxRoGO`QGV>^Q`{wRLgY#Y37E+js@q(mkD}n+Uu7|3<)1Gr_`~16 zmKm>f*@4VmEY?4R?kk9$I0wJ7z$lx(<1N70S!mEWhm&dv z>uLCv9>VmKfzcofE?B;^o`mgQJ1A)d5iR<5nd6d&Yfaa$NZtGTET9^9Rv_wMq0wSE z%q8NabV-%Mp~tm!H(X^w`7zlR7)3lmJ4CAv51WxW|3C@>JZ<{_rl^BjK-!4BEKV{{ zQ5%;?EGJot*6D`zq!ym?wA7CH8CL=YW1weu;}Q{C&EFsFQ^c?N)Ks7NGWX2*w#1=$Fg@jm5p?=vXF`cCTQ_|bxIlHw9FpDg6B%P?O z+sw!~YkIJP;HHon{1<0znk~^1E1{ge6leS3W8quDC9Or<*`rCsHs2p(S;sC9=Wa$n?z`eEUdW#g!5O#ygY}J?ToHSM^ zv*9bqkD>(TR896o@DyyyB%I(WZ(CbLFsGU)J8!6aS$u%^;zB=v z@OAjWT0;-}f>2AAES^tS8ooeJz8*|k%WVMmR^r>2(b}^_)0l+7YGKJN>>y+<vDo{qQ~+vJ=Lq_Q(+}hn(3m7sWrcs$pirtEM)F9{7bs&g8cASRXsvz= z-+hAMas0*;*D8vqRiFUD3Cj(n>S zF9WEQbez|$N2r9ogAS^`11>9<)K01ku_h~LxQpUH%16*Qzl6xf{-C=9grqsZ*?@93 z{xC#pplcSDafuF^T2Bt|>E)qZuz__$KZ=oL#PW+c;w>n=Xl;(wo*|=E^_RMl_f!fB zV1H9sA0Lz{`6-6N;d%QP5Y|iQBs=+jU3H$73D!ar+D;bFY;=ZU43rW&lmXh8XOE5u9en zR91|XlI zS{J_a8RiC`FgDcSCB0_+$Zks}Z|y!!SQ?$g;`N$YJ^37(vIIyFGCcaT-C|EMY;8vs zV|<7ktUY6Ldhf$VV8|AWa0OwO&I=d?BxTq`Mm4~Sc3Pr|)*D3^yQu;_*2Q_76I=5Q zzJbXpsGmUpMPefUC?c3V{(iEr`TC_jK(&O%4=Vkt&|uH-^>FoZsn&B~ChZQ-Uy1yY z0OdGhtb7!Q4q7p<@Xx3#3N8#*$WF}1MHRG7B9DP=06nKlY?h|H_iBC)8L6c}UnS56 z`Qv1Sjg%-Ot8(0d)sfk=D>kzB5l zxQKiC^A08s+p{@Su|ngSIVy`u@tRX-|s*wPrm7rptkH7O}$ zay7P142Zs_&GVNeXeo0*hr<4&6$KiardC14=5VnUHBY`DB)@(kOhE6ZL%}q4`AR;( z9DpxVQ;BA^Ke!Yr={OCiHp*l9R|CK|a! zr=c#jUpagNO0OPJ0o|=$v$18VZ0es*PPL%Zx);(CX95g3>hgz}CN^VZr7S`2k%d*S zp=S;J#1+=8nK|79x+6v-N}_ACV90ZqnNC5fGa+IXgCJh!x9eMbTRn`h0jJ z|Ev~|vXmgxV}k1*vUCW5?2|ev0j`lwu9XVU|A7(p!BFNUY(fBSNg|Sn%#e0(2p%_x!?@ zwoTo2={BS;6@RaQogR@KMLs^P1_&!soVM`~qs_z7ZWffz9z&n+j*7~3txB>`w~bC? zYD*~P-TFzYtB@4HI`HXj8v?Ne7Rrr5qAH~+BY>383`CI<{ev@-sb+!VcW0nS?-1JmueRpjT_x&n3=KpoolJk8u6lp?#)k(&zmt&c4mG?Lm2+{b~ zvAtL-W2WQ?v6sT=XXE85uAWaP(kU%EsU`}i4$4M;EqfzFbor;t89OhvSpyNPlJ2G3 zwQQkJJDH$A%?OEnJVdT`C?dye?a6TsM%>{5?kGXAVqL+Os<`A8XS7NHyeSnZ@lt)F zt)m=vN?))^YbM}>)DtXAVIsq;av)mn~d~G6qO|ps#P1Aip?aXNJ7AxL! z3^hu{xdfz-=(6tyzSYUo%6FPbhzOxNxlk_}RO$-uR$O@%P@I;a^m(xqdhP?~*J})C z5D$Oairg;}^O}$0WZH0=s?*+90|=fasshsX8`C$iq+nrXpAK=}B;NY2YU`Fzpoo#HIr28B4ZYU`2{seHW|=i-S8c{`}FyO^l@o-f2Q& zhW0T=O=HOB4gn@P102u6A2?-)urem^6--B9v>84;;_adrC-5*<>F~^tR|E+ zxpQ<;2`j?j@M!+vx(oe5qg;{eV6d6rj>KQx890~cFY2h%t!mhQ@}7)-dKJTzuQ+{n zsD5|ZKYXV)y27-#y25dzR7|+;R!GZ#W-PgK-#YsKFi!<2Xrytsu-e#R5qJT@#}^_p=zgKw5$kC2)~}KQ@pl(^ zHE_Axe;zp^WTg21D!E;K?y3HK@pUIRcn3=~&r#OqmlG5fg?BBnvn4j%#w5p0TxN?0 zez+5b=oj1WZ>R*kgKkN*+w^q8)by>qZL^xJFDt)a_Pnt9f@rUWCXB^oFOTyEPAQ|J zF;|teJtzBDPC2j;+gmkLpx+DQTip-K6mbI`2|hJzx80-u%m7tsj60mt5);O!Khi~S z)Lj1e?)MwJjth_#VKRo524Z`Rfygf`FLlfZ?I;EGVN6yp-cK6mBaHE`vNQgAw0W;c6vXq-^!oO@J69>Cx(b_q-j<^QVf*}Art~lUyfjrfprWh& zrSo~$Z3pIX%{!XeRpU`^xTfLNzwEyk#(RAd61uRM=mdJ{1dp^@EZah1%CoemH6G&Y z8#N}7>xW&nQ`T*r{hQq~pyCaur<52y9a`iP_kJW7Kut@`al}QAf!$%W4J%4V2_HWu zB0?)fX@f8|!|Fv}q*F03WKb*HnAh>BPv_H%xAIWIHteTvl;vwKcJbT~vP419K(uDqUwt^DqKt;^){#4|KKw|J-PB)fcO#QXP=GH`Q|u#6C|C zM>j+1Rs|D_`3XeqyJ@F=rRXb4T^Cyc5^V!dvZ>(~NZQY#98Jc%4>`cm#!j!MpnuBh zEB}QG=C0Djv?O0u!E0G1-an&vLb=o91=_6M4oxu5gj!~BEQY?m&x{fXK=Hb$964)JN! z6SN#hRW`6y$z$wU;Z}ZhYgfIXcl-ut4n0awPc#ULk~o>#QFep*(s_V6GbcwT30yZf zar5u9Q#pT|&b1UNYc2bxX&H|Kb@Ke(32Ct}N9DMbkkZD+{h>u0r76z=0Tf$Z3w1z+W?(0Fvikr75@^2{hqG2r=V@R53wDX7_%Yt0>li^YIoj^IYfc|Kbh)Vm?Be{D~1a z9cJ;OCa4!vG|(P9D$OkwCMVvz(;^4Mr>?VFG+-91aqLsh!XVs`L#V=c58>Xz`#>H=ZgN}C zh%;Gm?GSV_FUgQ%zajK2Bed?ehOh1eWP{uU&!8FkFG#@NFvCwbzHIBtyON#?d{eOr zre+x|OO$|6;*f(eBfcW;-DA0v5}MrdgBW1v&Vk7mCR8Dvatdz26pU^sRbBj>vR+I# z213F1q7Ydur}xtKY;QK2<zKPO zZ!Sx~%$$#vX?(R9uiiM89VdFqB3NLQdC(`4IZrSd{C-#+45ijg!Mbm_p1}s4TE`y6 zv)8!B^XmB>9dMV5ErljDJpa?`tdR^?-c0J2{lz-DzD{B)HBiszszw$GQ*4)p$>apu zujg;nu=MP>F;(7u9UidRD^nhmwuMZ!sf^F!9(O?7lVhA6_WE~J<3JeAy*Xh9^sh?L zuhR0XD94VnVEYecqbm9?*+q7bJ!(G`$lJ6{bb8gaZ8YO88;_bUnbOJ;r-x)uhol{f zwlGSBw)&^{;O&MeY3KkKyf3q1jxpER`2gzrXamH?NyeWe8Q5ij4yYEJ-{r85h)WFs zA)cY55sqV?`lonesP^|np1Smq>!d~ta3WG6M+-A#ZiX!$HKf;z|5-gJpp;;t>zJ-v zA6(s~$#zLq4I9Z}67tLV10LiwLWWOfbM@$iwRSxUHl*%=i-ih`jj71MfRhO!`v~OQ zKH&yDa!IM*?@+=*UgjO%=dC|q0=v7=9}Q8A4sBwTdFG-#8)yZW_Q9bX^ikJ>7%YM6 z0!!7pwhfriEKYZ6D96u}_aZM_hKvHf#tfO$m~D?#%b$=+68@3_m3hHlaVtN>ZTy6u zXqy>Aq|04TSSm-EO*?H*_ytqy*xLP}pJ-O!Zr`72{qHd}>9^;|l1ZiN34FxJe|6EacC8hVpfE@iqqj#svPzdTqy~W z(-Ll-IMdl7aDo^gmsMedn%vh`c-mGvi;+oSl5xd$KjlIHG&y!ml;W z>Y9}`h?1R;tCjZg&?Wt_OrgeS~opY-rn4#ueIr7j7NFbZ^`*oSuqL?K28eMZ!nq@ z2HSsu?x&B!E^CA`>1?-%w;EZO>9LQ^ABuP0>8Yd7klBOC^on}IBtnI?hwRRCRR`j1 z&V?mB&=51Ax&=yUvwf<(uqa)7-uJhB5GLvw) z>eyd-7RnbN_}7UTs$n#Xb>y^}V?Y@geM(k|brOx-XgzZ+{2kKf0W4AC#);!^2a}~d zuj?6&8ksZ0%4=3(?V;P@fe*-Zu`MWyNuC2as&5bSNcbnk&P%fB9cFybAIByH((lH+ z8WDQgX$l2vWZ;yGF`(4x&Nx-=>H#qjCJeIO8yjMGzBNi@JGc&A`?q- z#!ssgG?uYwJLQF}(ZJpxBBcXf0V+mfl|Q zjb6)Eh;_09FEs@BAWA9&dNCP<91Aw-HghJ@!Au&ZB^J)H72CZm**zT(1AY)>eQYMc zoSYR)Mbu6xEH1{VcmQKcmLTQ`UMO7PrgiwSpcG-SGr98Gev?05-Hem^vAw$d(L?PO zViuwQ^uwor!;06^6;VTO=9CE%X}AA$Or<76{Z#>_fM{xgk0@QOQg3_Y!A*1*(X$|S zJYpw)R%UvYr+S&vPnp*I8%m#v?CAlouRsUz7Y;?w!T7zyBP!r~tJLpmlD?#aPUJ$(lhLH#_(oR(_5>qV zs%a_-^WK>9uX}CPyh$;$!;A>=y`+Hl-p{};WZ|{A9qMsEF*`NIfZ-8Ll?VWMK%(8+f6PGeN zP)?$OFxc(b!lT2sghn%FQIeC@&9_j`+zwi5x}Ti&8;3;YZh0Ex5ul&Y)9)|H`t2+J zCG#aS3g1Tj_8SYV-r0Ujfo(4VE%Yd z(nEo|Ey?w@rYG3Ax{&oHN8EMNl{{6W+g8eUCR9d+Kn7Y3{JDi&a$m0g1t#!{GkA7U$gru^Dy|t0OsX^1B z-Fs%-?bB28)vZdAF=c;aAwTxGA?HeY;OkVbx5(jro}3T1OaBI{&-INh%r`8?77eQ% zEnZg)F)t!`3voA3bs|a} z{`NYoJ4QqaUZ@*TjuuN#5onS|ADBDO6bva`gmf(Tcd&qc`D@}T zVckSmqCl2XJ7u8Jbnr9g=0nLepG&k%!(EM5d7T@sW-i!5NqM+wPYc~7S(|TYzS^Rr z`DzkeF^t3QVSV{@#4g+N?7pQIS7*$FcT3_MJ$Z^$@f?+DvsEE6c(Y+p56n4V`ZDgF zp-#YP*(-g%&+esql_YOsx?|pEcb4{@VB=bpQTUT~8$E!b{S;`J*fZAqyzU7j z^ZH||y8$lNg#2;mI@+J#VmS|)>kSWThD=BAXTCOM?IykcMlG|=+<&-p-`2Qw1}E9f z?MQI#~|vniFM*xTyh?Q!>WVL#kk z)IrB1j3T0_6TQ{%$5MT_4L`bZ{$>Qb%B;9RPj5vRuv>>HY5^G|&f-><3wU~g5@CSRLWwDv! zIFO3U`ilB-ZSF-xcBRgcg_p-^iB_cml}e*%#M-em57VvL$9BjdUo!!V$*v+f=&ekw z$luwr%_{ADD>fP8JQ{l&2d8P7;WwU)n9F-17nveB_RB0*yRo!93`PpUi4hi=!~171;S)n&T-969}LBt%oG0&!MW3f$(`pD-%r zgCuU-A38r|OoV;!PC;4nx0E&onM|mgWg9jb_-Ss)o{nBM^x&yGyPqu=o z#9DXMyVOI?$eV7P_>|n@1{c&_@~2O!_u~+DG~iOMYe@I_S7D7xe1*zj8DCe4IA(E( z;9dM7ZE}4eMR86*un_%$C_m*hJvW5G8#$xAZgXc7eNw$jR3plJAO(IMTx+s3G0KvR zj+_N1TM4oTe!c6vQ@R4u`Q?8MX6h^b5*Ujld3=}oSjk#nS3kD0kqJzLJO8gw!dgav zxDdJ|qe16OLM)&iFn48t&VB3_2%S`qJ6y;tTAD|X;Z}T8_PaMY&vvTb#4Eea8}hOZ zFUydkN{B*{w^E4KpI&F44Wy2JKC2syZY-sTdZ zfA1S!5kM-T-h#Q#3Ra2c%u0;cttXbwTIxbWu5H-}rCOwk%TJ40g<@l1$?6-Y0i6^f zX+TEOp3ww)*$lWWy_^^Zu$F>2jU8rH+#X_%a^5LX&-MHD2XI<$1{Jbt=P{UN+Fkq@ zZODQ(MX|-;;j3U`IS>A2mKw}KjybeD^Xmy=UF|6l-yXnn!)=0Wx4?V{Qo=Q4=`M0Y zy_`$R2PWx9Ch#e;)%D7yCOq>Al4_*U&HXCoXuoZ-l28{8#^r^%z!|0lN&Zbu?f)mi zQ~~WIjK6$4YS{FlHSSF?O?!0iuWpHFKWTNNM<%_d(vDRc>;3N*xo#q}qj|@iLq(5w z|L@1cWsBVDp+G*Ss-z7YV_0-jT{fj(?wI1Rqb{G}V(FM9hfM&RRx$;N5y#TTU5kId zdvO;P2BuA*XDu?PC5Hj}jA6YiRdvv;qQJnig%1ObQ_HSG#cRaDqvZD`KW5UL@zid- z0i>J4m;LID`@)1M{g`6YVU_Gz60O+t`zy&eatZeaP~h{CNMvpd@F=OsJ?MhxNn=_| zk%nQ1AymdxfF<%DrW5X}bl)uUE!)(i-CBbcveA6D4^QHVu+{XIn+SJTxQ{jgrBVIu zv#OMwzrBe-x2S}+pKmNaSr?c{Wq)r8WhAN@>3`RZSum%365c+umUQx?c~h z;0J0vB^7|mne#KGG+D&o!SpJ5fDOTXO%o?M>O$%UHNV|`@|q%<+x-V7#RI6@RAl)o@Cua@&o3 z{k*$Y4;od51EK-e&!b#WGIz81R8^dvfL#x_Fr8ajA?Z4GNlC>-9E zy-3cO>)?}~px_subBP2Xl$Q=$}>Z|z=?x3%9=5{V>XeWd^( z^$ZrmHQA!N85gab-u)JoH>0MV;s%`FUY%dQy_%-+uU6t=qQs<>Y{Hd~GX~_w2WD%B zWRwqrxjxcw>m|gnJDQv!o-#FwbH>772%-GiOF_XQ3Q^r)ek+p%*IE^fjq8@C(@!r& zRECqrRC{EKUUdyx+&3F&h4I|~p&Y_(e6qv#T36pRS9{j@eV_IS2U7_MqyuP*g(&pd zEShJDsR$O~w3MuvV%I;H#oaqd_>udhZDq}`0p*fqJ(a(W1V&4>!T?3Eyc%(!b*T|y zP8Jl%< zoX4?=HYp`rlnKUl$SI*Y|ArM3Vz{*WIwmEL|Ik+sb`YoOg*X|GFrgoPSHlmzep??v zQD;$wmGuf53rI&TV8{Jjs&<@dobv2vLk;?6Oe?bNEI;zhQ+#5>qzUgf1xWKdf+|e@G_S`y`L6_5b-ej+;g~zk!H7n^Des;s%-K`UZ=Q z{r~L!dw1M6mMD()-})4|^8A+Mw5lZ8j-An&$5kXHt<$!nBRR>P)zc>fk*F%PNP+=C z$x0{pv;P)09t2r@fK?^gN{C*oW3k8$U<26L?;T?DU3=ZoBXED8rQ9EMZ?1vPFdlDp zKBT0}P+v&cWOTi(m??H*^bX(xiaAb+B)m*85V0&Xxx~NANp>Z1bkk`S8To@J&mXK| z@U`1U$K4o*{nAlPAD~Zp8b7h!R(rX=!+Dq{$-Z6V1>9qu*+b_{&RGtrs9I5=BiFjz zt3uAMq2a@fwBAQml9j3_*Hk)!(`^nUQl~#M8E09BA`^lRm%10=>@0L$K?|y}NZRNy zmqqE|;NU=KIC=Bt4PqQ&6qAUi^%pw&|q#qe%$kx`dWK z^XmB~lX<_xxzMR|6%z}|sToAR%7rCn*kJ0jNTO{lHgPfy>FR81LY4ru`xfx=I@M?|LRogvEl zaN%pgl0s_WA)Db{m8O?mpUw0P#M-?ER6GD|85FCDav#Yz(+eeZn@c#}Q(AbV$;Jm2 zVE(Ms9UE751g*3a6GL%kKd?a$=x#xbUEJfG)a^lK_k@AfvrLew2D_%F??DoVM}mfF z5(GuNCobU5IuM;_lJFUh$a7!A;No7}b(Xe3v59$G;4C(|mmy|WU-jOSZt!JsH*e9Yo4a-#RH+9cxQh3h_ zZfssQAvjd@=`S`7nPWJaD-ncynYnbl``T{0tGPy(CYN?^fGUQ-+Y}EP2{E=vg3h z)}z+b4VWEB5wFuz@43=pnT>`5&N9alQKv0L)ow4=0QGV>q7W25wd`rg+w}}g`b&!+ z5iLlH;h*0qyj}EZFv~^-Qp}trI++RKsX%PDSMkf+zCG-b-EA9GO44kYiy+-Os-xhd zqAFLLrL5@|5DH(m(f|v`T4VMBrW>Z9M!;Upf>$w65YcTlaYVOO%!obwhtFdK9q-b7 zxaTynRr6tmwFo(d{me(5!3cpG#DY}Wi~z79=0ndo7-BpMFdurHMUZhe#C+)S7eQnq zhy$r`83ACQwE57xG%t)LaoLm@fCOK^4S3ecAq=~3xO;0%G?v7Wv&t*x!=0V!bVoaW zlmbH`XOpiG$s*R7W4~-4V2oTyV5>@1ly5vu?RW>7CH46Fx4-~`Z}Sv=vm#SevO+H7 zk(sbdk{HYrSqK6pG^M71xJdyj(5`+sjq)OdW|+5Ak}`h3=fJ4XD{##l?KStx1{wGZ z&PgVd`v>H?9On9h*~?a4l+s)V>QgVXuS>QTIR!n%$yX%til<(Qq~^rngjt z)WSz_Bi?@(uvwALEIfe7Rlf-yd_9@1({QSzzzUfc(op8UT20kvl5Cb|qsH?dcBjU% zEyq$4o*kk8yZhgN{&n*FKX-Tkb};$ZzyEpnzo+nzFP{JB^Iz>Be}4XaclU39efRB$ zi?hGe=fD0fE7BYN*RQ*OBWHgP1oHg(fBs9*@G2Z1&E$mfiAMbqUrhNrQH&{xX^{>{qyg{y7`cNawI=zk^{LRWbsKTDPWu{1H(E+^=+qV2 zy*S(LZDR+A65xGy+(KvtQpRGU@NEIe={B8`s5o-Z|c9_;vMKX{xO*)wwloLq;(&eEl7XzE;%$`+i2vl20^{BZ& zP>Uv_Tj7oKJfRU(pa4k~mf3Ba4_^85La0s7GV@L+RC8k70Cf?NYrRKpz22()-p3PM zIZT$SAc!cn;-x4+*f2BD{BI{jHUsm%mwMf1L|;0L8BM}ZqfKD#7NN+DBihpOX+AxL zAbc_}XguuPe3nekimXllt!7=_!YcEX6(K73nwJvV^M-4k&hdrHR+W&|3u}KqjtMX({WYYckWGD(%Nb!2-eB#KFWQA(D7So^xGBm6Md+ zs$Kct8Twvm3v0VwW_E<|^GaB#FjX@NiFII%S1pMbnbg#MnC7voAf>oS(1xp}61|7;>rmIV;KQ4Ya*+X`CSbLc}21RwLc0zBlWMtR? znC}-ElV7;4Z@mX~DPe?f8I4f^B|H=f$Usxyg95Y4*Y_x;LgE`TMOTX9@O>8aN@fU> z^OG1AnWWurN9s%0KcK;9QqE^c6p^|Vb516f9qQZsO$60s3(A>sUspXXuy*OnTyGNTMXC=sgQGv1(6jV3l!_usfZc%=M;;C5cg705@I| z(>`Nhuu4{OcY`qcp^W&CO7~j8MH8>tZ?#kaNhYbTF%1k16jcR87n$DJRh0K@q!rDc z6DdlsOnsjz!f3b`qq2d^4wj)8DmGe*X2C!&qG0A;Qnzp4ZxZEgyqvYEWsWvocNkX_TSgWP~ux(IDUjn68w9RYJ zsehcPk~P+jU2c{?!$PN#vjLAoR}qp9&9RpAFgE$`k6e0}*=fKQzVYYc8wYxU!23oRxX^wANIBnwhr5NO%ypO zQzZeS{XPc!=IK^F!+(W>9me8j!+zDBbbQfPi)6XMOra<`)LdmI9G>!cl4CCKwT@=b zjXoH#A1@jB(O_qgz8XS)tE@Mm&YH@MebqT7!0H9hvs~qenq^3ErftiWkZYmqpXn^a zoi!kB2kl5}?7!F>JMRxR(5quT&uLVpmFw_Liqwj#2UO?`kQNe*3X%EIZ;sam{e$Xl z57BlFt=}-pST-?H`p$S`_-^YutaS=F3*+nz(*~pU!5?3o8zQ}%u}qUa{cafJrZs7e z!i@&wxDOjh9(u!i`IszwM6+1k2XHNdB105WL;{bJQ5*UtkjpE;peMyLS`dK*3)=1o z(M(93BxR9qvjG@zoW_>qGooQ6+zY!m8qhq!MnyF%vPkpbdn$NLK6ihq?z2m@M3mSRaG&;ZhzXI)EOc?#=95q3m@ z6#-_+ES5Qw&D?6>zON(F+g*BTJRF3rlEahEfoS+KGvE)}cLXfyoCF@uR0(w$>fg?6 zG6-if^#;7OkYQZH7wAW@p?i?DdNoPdoj~%AIjxuG{=$}PW~h0yD?{Z9?B@Gz5cvDdvF8cw?u#! zkd5}~s>|TFImrme5)7Xvbtj!6yfoCxQCJxf{x;A?X1k;VDYduk1_G!P)ef+SH*mQi zBh+*By{Y}~?iUx3-J%}|V}i5}LF)&!<;JK8rfBy#$roPFfftLTO)h4&iWPs{K@d+k z6XLxE+olGwQwUWs*lCWE_$Y}tO>dOMo7x{i68C7>%2RdRSyj2{O?u@6jNUV892J1G z#%P!h6fH?<7-;7mzMp19nnYCACU9x{{g&gN?BjkjVwrdFELE_nvQ`+iWco@i{WakG z9br5K)b9{#Jcx)n%udl2vBh%yNmre~f?+F)9TSOZBFek;L-YL|40OOi;&$arBMiK z)K&cx23jE#7W{H#`oP zhP6vEmW8M$S&6`*VS^@axAqUgal&W=->v&=f(R)ft&ewK`FB-t5HGTsfE8xd&Y4;e zx|6+fGZZ5D{zlr7jEXXZ#CcFb>`jKSBCi9~l*nj-91(^yV7=;2wfgVUjQu!KqTn#% z?-Am1tj?p0rfDJ7q3d*(^4kD+2UK6-OMeZ#^qPoe;kN|RPM~UGt&?a4ZlE-aR@mIS z4PiZXTV_Cket@pnZS+A9wUQ?zB`$InPa8J+aH!zz#A4&gD=XV2v~Gdl&ecS3tmD3; z%=i}51ftMrCTKi#`q(>ygFYS1gQJ05gKohrfj_DNMx$ZgLAq6pWs1sz#q5UM2XFsD zvs&&>4>`qQ0<#Y23mw|sCGiMkQctVE;fDngj5o(+x~{AcUVfLBsOBkoeXewj01DD`pwV;u*K^T8S>H9 zYxZNrQ^*%87E4(0lRO+WjXbD~ost|Z*nfmAct0xE)c zltZJh-Ozyr6@5pj3x;aP?@z;7`*mc%W3%o}lNi9r1Ns~cAO$YOz*%94Uw#uvn>+8`nr(lHGjM>!VfckdRT3UrBfjRDxiR!Jhz{6PEhm@Pv z4OcKWy^{oM)BA9{a2-NJHN_x2U3qXy#|o2WVaZ?_1aeKICZuNy3)me*5H$S0;z71G zl&pfp?KZ_%C5vQ0iWJ*uE0%u%lQf&5Z^9}hdJt)|#z<)?P%+K3KkObpc?H02I}&;jS&8ii#N7&QApdJ)1JOkj07UI^%`_mx>|nucnv z(WojkeM7G~K_?5GWhC)(3~P;D>zJ{WI9h0T4~!HgNQm4KXu-f*8ZBt%vOi`nQ*=*+ zK+al;e~7R>u$|>0CQvD?{(V_c&X55>jlP7TG$_2=y=mL) zz@qcisZwb+Bb;mWUK8^{CtNy1Mdn2`>pGANc86ky?g+TrC~gFN=S4^{7;p9vb{4TT z=Paex58UpFwR6iRMQ632>Ix@Crk1xXqVmlNl9d=INvsnP%AkMG0li0zc$ zw5{eH<4Jti=bNCNly()M=Up=i5J(3VIqep??(S$j02%Ol6$v)>R3QN=EFc<_Osd1p zyLtUxfc6}nQJr)SU_<4R^qOX62E%dz`gB+7Tv_#mAX2Brg0u!qE|8#Ukw}~oR*2-j zb2~leBJ^Lb3HhiGLf9qiUawxZ5STR?B5Z7 znf?+BmB(QcrVZI1RJ*?qVvdDy$tHmqo0BD~sT{mo`JEuEqpQTLR_p24Yvy-C?W?CR z8VYXf*>n%q%(OER{#ac9X&2Xj=*s3ZNJ$%35y!k+(`cB7hRO0Y746!L77d0uv*tFn z$=YlOCa+uvb>p|xhAJXnWLf*71+ivWVnJk|I1^ua$jT?3fCs8D>uSnQ*qh!Bot*{gOY1t(J}Kj2^rboG62z_W&FMa| zq|keit-CwVXV%Yn&m}QhoK(#c64*>Jdx6Jvp1A?~N#9u4PTt)cn<+hBqD)u|Y?74Glqv zJl}l>)MWi-o5QC-Shqf*Uoz1 zxXW&&wZBtzdUkPnc5?jT?DPnIYkHtQ^E^c#Sg9`V5O`dmf+?Bd#d|{4xkY0s#wP|oOB(Q%~kgd7ZO}~ zRhxQ88=uPO`bz3m6lcuoX%OSO9Gt15KArAN!IN}nx?>r!gqq8;6R5eH%E9;*imDrL ziqLm9=BArtqccBHr;_Kitj^fbLmzDcy;X7T57v}Bn$ug8t#EB!bUB>hCH4-d6$3Bd zu0IZa8V8KR6tOa6h*+BHdMgW;)GI87qoW+_&7q&N_AY%tb=7rlX01oIMqlmgH3`){ zHj#4Ot_vX60KFPi6xkG!5;o(JxzhICp!P4%j!)m6P1ATC5=F8&XEf`M9Icgzwx8I& zV;^|6s!WEVZl1~EQL>yRY~Ea6cmN`v=|Tw;JW&{4U#yXfArg&TScH@_bKJaK1p7dK z@`-PlDXe3o&%SX@^udA(cyi&@naT-IsrFc|aEskCQY$CNSDkEg#*?rW}mA*nrV${n4R zHA(KvQg=o>g6F#S2{)FKoYPyHka?FPa6z-VmnX{4K4mhpRTcT~)L&(EZYy9oAMd~W z0HtZcUc9!TqXyEkB@miSCZJN<{fFY2`HTmOo}QPmaA z%-8!0g5p2*^;m&J)%~YS$7$>FTKx426xwRr9are>$Z1G1AWP>l68C9BvzxL^&y1Ng zfCQ-@?Ed8hcSrNqZ-=#Zz}nPb4$?A%LRp=&zgRM1oIQMDetR2c*Tb=Y;+Y4C_G{2w zDk4F{2rj%@p|%-1zdE@(ui8ac^q&rJpzaiq+w3B3mnqCITVs9}!b8k% zv+na1J64b89m^H$Sluwq$OhZ7y6snw;EKQIO#>(T_hP%E8I=@E#s}FADqlGjN+Bdm z^$7ztChd*3eGkgK^Vu@MGKV?HK!Ee}Oi3kusfnxp&wD5%cV1}Me-j< z!3Da@VtlrysnHchEXzpLR~9yGNq!C|d-Uh5rYY4^{XYdxH2U6eLd{o2fB5JspV@(y z%kbXmOA68B?S(TlGs$r#)VfveB|FB*xr26Ply}vopheiz`0F zYEHmqU1|4PMN7>ght1bR5aROI2YHa?!8Rpbfky=clXg6 zMBh9b)(Lep^lc-8KK;3Es1tSBwf^QKc~wP0*TJhEINw#pgf)R(SO*E6zQ6kE?eW)V zZvk)GyQM=TDHnz-U&Ze+{M5Fcuij;bRiJ8Z$WIk^ym>5Rk8b8(lys~vpO8VDv ztV{%()(l*hpKT7!_DD&F5Mh`}}9ohb|H%hbqyw|lel0>Zv%lzsbCb2@hyS*+fk>XqzI!7_P z%kD6bJIWykg*oVr*q0Ww8t71dW2*2gVLK-1no3<+O#9hMU)Jt6m1Lz+QjrlwGE6U? zUMxc_k~p!&8+GmePPhjL2U_=d@aD}M1a(Vd64A5{1nIZFJUpDD|2lrx<N9{S%`-@Px30h(Vs0h|1}YL7T{PSL67e&_4@uw3-kg~*shcsA2J&{jM& zl))w(q4R|;v90!4LVNPxf;vU(g>B9o?Pdx6xSIr~u!jaqaF{5}QSs6QNlC z2xn?kx}$P;3DTK_XtT!1fU2!k3z0d@wgiKz31S_|H7)2l3;{;IN}m@Fs$K?@K&B)- zIAPfwR;|ZA!hB~V61yng`@F|u6JF^;6R~$Vpp1RhL&|>V=h{K|nibM|FzDZV!Rq`E zkcvlRsP~IubvyxQ0(0WzBPX=HO zS>NZ%-h#kCFYF5o!w7~#gpA~wr=>Az7J*RR zTub*JMT5)8@n2S3QDnd9Q*P-85sWmjP(okESAu~^Nnub*N zSgAxu8koPmao9V+M^qBSInH7LOw`8XY9pn|+A^%jNjH=07}-HEgP7hy5FLZu!vqfk z+Q~3`Oz|L~9s_+o17gw`s5}U!FZbA61nMYPIq5+#J+8ZlvmOMtiwm!D+JoSBaOI)( z4AB5KeQ8=N)gtXPz1Le+g7;!W-6dthkycw0$)L}bhpE%1TyKNxFAb}{6kfT0n4@3d z>>k-2P`9B@fq`H{TnBXFrroC& zuD%_(@z<%MWEG&t7v}@D3Er12`ULNdC#z97*BS-CIPGaUtsjQ4Kfx0H>cZ2~(7sVu zWoe-bzBc>?mCUG>%geV+;2aFm`gj1Lc|d^-;P*JB*V}Rxak%}^6%=pP+L-WB>&C1L zaD1eTx8W>fx`?*e({*JB6rDrnwgRrx^PSVq>xLRFZV9V18VJ8Dx$e1hP*P18X%1V!tNF*RBi#-JyvIwrMWI46<eq!|ehD>m!tJQkVe6u#g zT(Ze7Gs}S5xwg5qQHEbGy?PRwQj=gwky9cD+8K5=fN7K$dj{AvB`M?gdk&!bap1*P zj>bTH4*Ymja85Fr+&?mB?(i2{N!D-G1$EhHwT8^`V1xO`nadU~_DXe(dP=febc=bX zk9|{HnYoVXEfuUY;-{(M?Ebq!M+50N$dw3t_3ITTSzE{}!y;(CJ1b;fNOM;WUP?pi zY>p&%I`^EsG#I3kuMWFiO_y7ar6fE%LjQO7zyJK}Y+CTpM{Q2(g-~RgU+Yc9Kf2YrX{aaR~H~Oz%cmGDt{vHVA`Sbt$mw^MV$OSZ$ z6UHZcNso}^!G0*ZS#+;=uFI>xOrbSQKtLcQD02Tu2X{5`ueWka+xR|-^f%nx^0}B$ z1_0NtxdU~~rs`U=dfEIKW7%C>&%)viprL2tFd|7^%u z1H9C<|5+f=P%kwwaR+bx(Mzqrjb3V_m)hv1HU#GAr8au0jb3V_ms&_0z0^i8wGDWw zX`!vbS1oXICWm6_sP=pEQ!{0rkE4hcnf$bunGE|6_f+RCj zB`@>KI+sGR5f0ZFvSx>vt;%LgXmj!pV~-9c_STXfP1nixV1CdG9>JOj&oV&)2YpITq!bBb?`) z;b=jGH}d{Ue`PaiMqB`LQp{OjfAkvZ+^j)8=blA$ErZ$RBnGk;W-E?&Gs3s!J3JsoCK zk_;Wfms+J{^EJpuI9L5uCC!*C6nv{C{{R+AIPx>Gc18G_OtT6fPOC6^}P&Br)1u(=27}T=HXI` z*Vb__7h^0lytaH4!mG?VD>{=BROSM2TM5}(6rzX-xI<6NlI2;qjS}GWF42P}A!^DW zWLM-9miy~PNFR&O$(#x~sI060pt?B)&E~o`URorQ=83~j=OivIFmp@#))DNf-m%X9 zrPFTbn06E2T{i}jNnMJKtBW|t96R(!EKRX^u8lAVM?JTY$zQ4NMUIma3!d-Gx|>sy z3}>CT(`u%3cpb63%+`w0^?s|n5(TJ?zQ)lF$zomC9gq{>XE-&<$z26(64zk&c*<(k zv`(U9^O|Y4YF$hfVn9+~^>QEm5nA=n>1{+pcu@s&-AUYbrq^4VhFwnYQ~-T3-7RN7r4nQ*o)6fL@VZkvz}eJ~fJ$wu$aLkjJzKE5 ziDZ*PkO}SdeG8iK4Y>zLz~CvH4=S>sWT51Q=Ze|5{QC5J(Wf`^*y?>Eqy32Fi+uxq zbz-z(^rS4KlJNl*+3gql7K~Vum~3urhE7Pna3BX)CfM-&AGi8c&RBSXoE`Oc^;p3Z zeX6{T!>>D&zCH#TKSkM$O&8yKG&F6#h}TY~ikBY%R4v10KzEC)9_d2oGc8rbBu4C( za86?)kfTrKChP>6(d03(J5~~V@|DB}$%{K6Fjfd8JXs=;I8JF#eDr5QA_MAxDZZ-p zS9__hDv^l@C*=IQAgRo}TNTW%%tJ4SevcT^R>$G5Zu6jw#qEZIv4%rcBJy^qU1$Cv)N8 zAOpxNQaq#cLdmU0p8SOA`py$g1 ztQ7bsyZ8XjR&{G;-?BN)EOlVU%00uhGav292R(T{NQmSt!`Df-rM0@D-6!aq1kVwH zKlWoP)PK>{)myNn6j^^sUK99k=&y??)kIi zAOw2>v|Qyi7Q;2R{_KF+37?qeqZ)2uyZYu0+)X;XTbE`QH)~Hu@2f%e{K`+3>-kv= z*Z@0`jWsiiZP`v!aJ5|Seou0*=AWtm@Zi=a!#KA7?k?>1H@d77{lZUYKx~t`rDj;y z&y0BqXiLuWBI$BMTPm%%hW$bJzm6Gdm8v;Aeqc^>bXQR3tA=Q-GRwvTj2zW*zMug4e!Wk<}RI0Ek2GVz_SuU~c$E)@`jQ=3%kRLxKRp z0sw-elZPbJ?2JiXjx!E`*bs@_8(ka#)+qu8#S{kzvGK@6mbHP z!#ELB)R51{pt}>Q;TA1VhovNGF1vThXvBN+M!by}1Qtb#vxz#vV8-)q)lLl5FOexS zXH{RVp!tK4HeJ3xBuN@BZ{-czN&wyp_|e=!?bJss55kVQSdAXR;mRIxkNxnKJAITx zGujsry;(x2W~04XzHCfkyXR`BfcEJ8v~Gd+xh>tn`}M;bYbY3W`!0R?0BG1ixPOcI`Ry5x{096&@f^+#0K0JPI?oaZMjljLKA zA4Fx;$9ayv;W#CV{YU1TrBAvq37qGbByWidtn~KQRC-js<~X`hM{)OysmPN(^u<)p ze|e4)roGz0M!`wSTD>kh9MbzQHJsNk_1!M=h2;lIX-3l`Jwh+rmm_Ll8yYv{OLYVVd-P{Vu(j_u&CauPXOlC&S7PD^g&vT zx8|dI#wC{(tUvisuwi1bisdbv(+KNGP3P(_h|bEV4rZRb6i&W8@3(oRhBYU+rrrRQbCIbs_w5PcEM4{kr5nutnrhy;geyjLrM&t(S4tj)?d!ub z=J_Fs!OyPLvQ}?4wY?%)O*L_K6<#Qk3ghMOTwm|V^)zDH%(?jLjs}%AG)iMQc`1v@ z6n$qiRPLEv_uuNI3ga#@F zRf{;Cq6ACAL(nq-HNj{B3O&qHapmcA4Xw-*b`R7HMM)tf;r%!KznDnEQ^hy+g7%H}$9cXho+B#uG51++=qS10v*VcD(STa8CTleI@5Bw+ zJVFfM`k3gLk~+9*<7%l$=xnl9MeZ(9eb;C*si@jv2gC&{`0mTs2M20o&-biUQ|53x zG`UrGUmvJ9jFaa_^->2|@ADYn?|$|AmFZ!Mek2GBLFZZNri-qz0G)B?)RTnWDQQz7 zkZSp1f)0(FoB_l*ItVqgfQf}lloFg-@s&m>XGvmm@whtxz0eN2*}W2)yEYxjpOEY} z)d9YxFE8|Wr#W{jbyC}uW>fT10q=lmyG5y%tZ`=2Gkx?@?KO4N0n-j3?h1$w6NE#A z+_;y|t(=%sPibYhclFvgx`4iFGMiL+y!GlmTWe-(Q}8GHXk9B%4!5gark4 z3}urxD3dOzGdbSUaKM&)VeEY#i6su))EZX<7#{7#e1!0w&}s*^hwv{2C%uf%fDoYh zP($D)d{X)|H=Iay!}hqeAfq=zoCvD;ZOE{%xFDDH&e*53cJ#?M0>nRd1(H-MA*4lC> zpw0vm=$#eH&9k>I4-LEScoEZ&d$KE=jJrCwg_CSInnnQ^A1@YI zkUmt049;`lHrNH~} z;_iUImF5Ub3_T7S+<;o-O-|Q=gELOphIEB)67)!DAMS$^RMkB0WeTfrw=qHndEO>2 z4{yNi)GeREnPo1NZleqd72oGEZZGXvhZ!$1qPR@4JW+oklleqcL>Sd z2*G`5L=Pafoa9VRV+Bd)(tcWQJ;%6+!1~qIP=fw1!twBUHFs+&y~_OojuW1s+;N}u zt3ZUscp-xQ!`AT)>(F#~eqqiMPcz9`Ttp<+DL4evrjt8@VwOStvdBqW$^j_auGw3f zA#zKg_^S=t`G*b{h_H4o(82RSh&yj+%n6F=%;bq^e5qfB(6{H*%IH;jH_QOlwQ&q- z(Rr32Ra@OS)i&jJlU2WAYJFr}7g?N;i$W~AShD3^sboGA1yd1xj5eEQC{kAdo1v3; zyXU9>zmqmYv(A*K4jkdTSAS`Fum4)EOr)!#VAm>|t)MpPTuHOlnRbw+3J!X-s@>F( z6Upy;c#6steA#u`@EaKsI#$PfhTCay*d5nDgC4R-g|ExJ;B3x`2-8y!@ zx6A~{pW0ObrDG!PY`J2^kMmqHwkL`px3lAwd06TzbfOBVwNJI(2-IbBB3&k0Ytn9+ z1gIOUR;Y)fnYTJCPQd)C(Yoe4r-(y2=fvc zk`)b=119K#WN{PEI)MaM%N)uCfl%1|$yJ0Cn$5po*0H+Z)CJY>>j!Y}X@h&lc>`b2 z!E-|qfJ?10Y&e>YIQ1zHj_CC*+F$LUwE*zwM!eGrFPCjp)is9>Ns4nLtjIz=@ohk5H~Nsc1*%o^f<4 zAr?%kYx(PhvGg07NWw2kM6&4qFRbXQSX^ZQ)NOC_A=CrPwZU*lAUr2~CV@f+ZnX^! zK2$?OGZ>RjpiG6Wp+jQLDZrNOU$T((Fo-a-zar76oxC=)KIn{7{1MJ(x1GE0o@hn@ z=O`x}<(Nylk+C?jb$zEvjlLE9CL8!q;HojlNkZCnt%K+IeZKh_7J2XdBzu_I^@vE_ z;ZXH!qaplB-OlFbTk+;d@yBlyc8!x$EV0`1@4gO4e*Mdeglg3y7?P}YAfL^U&S|J- zbBB3qYJ4QITTX4mftjwm*Yub#@!cn#a8#s)p^1+*_Ye>ICb!cNule2^wNF=|_wazE zO@=e<+Weia0yRBXOg>h8qJ8k%?L=!dyCZWuTysOLO{+2;4|nrE5aSVQEf~UlJQ5Pt zWI#e^K8P$o6rI`_X&yZ5K=S;c6W=h24#h!VphA;;T#~8Y?t2r&E1Ewj1tbtpmrQEu zuvMZD6IQ{*q;ZA`&ljKCy;>k#rmuk=hJ1Ku{{rp@zL|{gcuax6PCPqa0!e- zF+D>PC=W{B9T>-h#LMoO=@nvl;G1r)aHaU2hrU5NK9(doc9~|IvKLo5XejF?xlZ6w z@p7IeczNvYR@BBJEj`pZiI0%vrrMv`F#eO`+L~S5#RArcaw-YFCdrktUH~71rrHr@ zYHb?sU6GT>8o%tTIfc~yDbc6pWsOO6_lTiZ{K7_XEY0cQw)OD08jld-#Oq6?$=$ZlN^Td?0v@5S$M zdZp{3F8WAfs0g7)cSE!I2yN>e{CQGvoR~k$tW-xRE5HpE3|Fz4oqhbLu|3VE?Szvu zyUBjEz+8%b^Mg%Uvwxx4DRFL;Nal(t5@*fgM)+me-Bja7tjw&ex^*k-sl=1#oRYw%k8=6zaF$pF%Kp%Y&9673_oK%lwWYxy zD@#D_L$~M5h+h28lC>$!P7!r)R+7o7(@NYSSfoEq z7`*d-SjrbZCe4jqX{31}|GXC**jb@#(_y0n*uZ!-1S~ z00S8GdYxrC0DAo%>=}S@<2nV$;WXry z($s7t6@dG7@o4w1)o9@VkcW znz6#xav|bZlBrHXCx?(eKCXs%{=Y(oi~$V&t^%`|_K9WS$CCuCSPhYU(N{V-l##`_qU z50NY$4P!jGD?S(S!{$z}Sw_x~SQ<_R?||}UYW5Q0jhosi^!2jp?m?4xB2xuKFHKwEt-xlVI2omDzBQruk@`tID2Cf7d)&XA*brI-T0;j~JrMiV zAE-k-T~e`8_Y7ev6>6M3tA3=BnaEke8-A&6*k4s@Sc`S$G`JZ7 zQcn+h0F%xvghc(}vMBpzM$GJL&|@X;w6?ovH%>)fYIOcd z^XT)$-NV&i2zo#FPi3CzaS3RS-RW*xy0ODm_wn$3-Ycn@*~$5Ka&~zecpF=5j(;i$ zD|!p2OE%-5mAQU4jh9SEb~I`BMDOT!d~|`$+!C^?YyW&El!=?MKthfRbPeO6rt$Y!PdMvxCf(0xye} zKwWgpJwA z^K)st#cG1sU@W>GLzbbFP{UGW-VjYPf0#GPX8ki+4D1~%Amn~?MXm#w!~R#1r-Nr} zPq0;}$8@?u)+y}gr_sdps)AHSjOsz@p7BJP9%-b8Ll9r4js{iOTjnUN+nm?iq`y@7 zp+dxaTI?q1M=r#*CLC@j_Ou=SRrhbPk6VMZ1s{7myV)U2S1)BGbtZI_nG_WYn<@#3 z0^~odq6$i4aEWFQ;m-K$E6zw{=TW6dm;8bD|CV8&N?7gPKEtt`272R6pzHSgLmkm#LYZs7FuAU|fTY`2Fj2vpnJSKAlf`&M8< zQYWD1@>b_X^pIFiIEWgEB(;u8nnJ3QyKw8SlIt(Emu^Ivw?KSEaTw%~X$C!e#5TeA z0$?PW%DTAZkY$#hXEL%0-i8q&FG?#LbhoUBHwvTK*M&J|B+)(h6s}Rmem~k5!Ig!! z*b0<+pS(?JoCiO65s_qTFDQ<9C4Giiymw3Da4FhVW_%_S$7s*23-VR?TlJ^W@zHKl zv4$a8w>IR!kK_*SL)=2afPt_KJD>8de96#cLE&9?hmV0H5UPdI>=Wg2i@Zz8}^^;c*-9yg!Yzx6zvs&imu!I4i_5&p0_l zC-gDpL5MfoE?<+@Bf>(!6TpQy;wuN8L@~&S>VZL7AolBKDUv;u^$Re;P7g2s_0!t; zemepps~Te4jPx!zDOp9=-;Dq*JI&v3GvRlcA{$LrjH)|U1(I**6p_X2M!!sq-UFNQ z%h-E5NHZ5wbM=!tvqevzq+iKpYa-U7d_*=9txXKdF7|&;(QNRKJd?r)yaV6QLXiIl zpUawWmz^&2_xnNL^;MFeheldpeOVh<~+dX%Mg0@zSJkiFnawAP~~!i39_qlurZGhJQF7opFS z2shK$pA+}X^R++O*lBfE;M_G7|Ig80Z{Ja-nL|i3fPnGMchChc`I^NmgB5_nMo`}& zAG-I@idszTq%?|0mMFhl2`CU-9w)50TA@N%RT^I9uM~u@c`eb;uzGCwai>! z#_`kwU)zJyT=(81=|!q&^Top3(I3p5_}sAG|`6fnnfj!iLT~T7nDI?&HOMm za^Rj21l0=exH}cM5u=Kl4ib*r0^amvl`5@84^_dn^{OyDJF~ z%AJB@4XGx`T|dJRX@QGm&=Ue5w_DmL%D-hekz+_yRa-W++AiYE{mG53vjg>f=*yEDEC|+C;GaF zF4%SXqm7>Yn7j+pD`AbTzm1u%3H)aaowOCUAd*6f+kegns@wzK3M{jYuM*#9SvMm< zlM})-4Bcx~d%*dtu5ak3<$rj%snuWDPcX=j*r#nMy)Xo1Z8A0oyMkGgITsX%jCF7P zEzTCAd_Jy9PfWv4er`nbMVF2n{4_73l>VuMkDbz6Co&nQ;0DT-fH)cSts4sNNG8w>P1wPh*eo>ponkkK5x?pE~4+^bNTcU0NLD-scV}{pdVw z3&6*1m;doI?o!*vJBod_LY}r)z)}()fXz%Y16ouCvd1BCR>MgXw>bku9GPbP3%sVt}bp)=F<;yS?;@Z zJzUayuIZ4q=A%8j7<{>YyN0ZbcII-wLpgPYY1EcOd)ywbxpNo{={C~kp*C}*F&UxX zMpclA!m9A&)4&LVQFaNW(V+8((pnsO-D~RQ-jU@ zjNl0Be^Y3p)sySYSLI5zIj{WM+#MzTPa#^gOVf8Q5e;bIX$R-UnO#+f%gEcro-{e1 zRxkI?#3deRXRMT~y!<1czmSz8=0-x(McuyUm+8ZMyF+y>DT<9Z68lo{iM!_Weupu< zv8E>v!Um0G3A}xoI2B&H1zsFh|UMZ@Uesb-)r3);g!y?krM~`m;5=T|Z-!KQGz4{wD@t63 z11eS<(ZRlvRS;{!N-_S1eg|87^SRqymvN{iNI&Dmk%;&FsVrqLu?a2{5Q3s_-SrGe zdHMi6RSX2)ee#QWMw}2dZ;4oU++QAK3R%^1Zdpo@B$92#VkvJ?RHxqHB-lGhk7bo6 zKpIz?gX!d4FzF}?FtJ}@&Vui(B>ft^2%A+4`mU3F&uu1r2Q07#2RKB(2oQYnmrnT7 zBfxJ*ee1{0<0pOlRY1{%g>-(4191ZyW5U@gj@dnt&#qY*H`)Q@cT(yNOu<@+aA6nLF+8nWg8lKe1 zeV19sHOI)LT|PT4ul3nZR+MAHA{>{-t3_+@Ma$aH-`F$#HREz5WJnKa%l-JiZzfi1 zEHnNs_I>B#NOCU@jFjXmL#yRlSF0 zwTQA+ZN*7SKsuJ|V^J}psRA{o^nsX=p_pOc9WBM`1iswc&YUrrFc~3&_;wpb^UuC& z22P2$gag2`wW0KuQ~IKPU)D~?jCF>{FiQ3m9@4)rzjDX-CXp{c-%-}_9R3dR2Ru>y zDKTbm!KItO088$aKBo#7;2u+sW?kF^c^rjv(yEnHs(qy|=mCCpq`|ZJ0a}sU;|#ov zWj;aGcwkaBos3Zs5fI{Dv;GBk59dv?8MW8I3EpJLyU1AT`T%tzut!Uj_B#h_t1RX` z4^i*pDE>6&;>oduyUCxAW~b80TXWQc&M-%l7J?5uLUwUfTpi;kv70G*g$KQ_!O3Wz=5-Y865 zLz(mQ-rgoUxaT3Cb_Xzqn%7HW(hBlJRE&`x90Fx9?1C6R@ zJ#w1>ltcPlnhP0_Rbc?awwLA%;N|$}Kkpcds|7{Wo<~qqO?FzW{h?(cW=o#@k*_40 zJVV@+_E^k=I!Tc2b4DmqID8)(>eoi#+2g03!#7)Hu$OEA#*bn7B8Yw695kX$1I(IQ zWlaoZt*_TDH^t^3O%~e%mwk^O^zAWMTYn5j-T3=P+(KUQyW+Y_mMWDiGmsC~w~{=b z%19@hoJ7?o?Aulg@N!ha2pIV9L%)+tSDx5wrGfEO82(NGe3FAzF3-Tpm4o&khw^AT*refmYdUSe-& z5|sF5er_%OP=)g-koP0t$uJAR@AYOh3HYSAqMQd5b+t(HJxGEV_-wBXx5^1#JWAST zOw9pYuyRuXzPcy>>4ssS0e&tI@@wa}^t!k@+hp=LeAqhyUXWR>U+;1oAol_W(f0#Q}T-P-IwO7OZGj9mon}2!37O#cVH;QQ*@k(W`BcM9IkebD!^s6~^#KS!eRTl^r+`razm(_xqiDRP1vw5WbFpIWg@uZoYLWw!3oI@}i*csMfibiQN(}7<&ZLi9 zfXA!$!iD}T-)E0^ZR$-0pusm{!>R|&DY_toNSrwxvF>R|W%Ec|U#8}6Y8gX0t=yMc z?nGPv6VQ^KN5D{0iFo??C}Sn-IQ=b1)W%xG*!S`7JpEnA+J%M`Irgpm8@ca_e=;{X!f-u9YKwkGFR3^~}tET_0!~Qz47brN;8-IQ5#w2Atn*E~wVZ z)Iccto>df$+nkUxU{sMkY@e^o5U@v*efIS%Os}#un2^t4g9}=P90sgT zE1XZE<@rJ->l(Ci2q{--q#d6VKUC-iz}|$TmjxZNWUxECgA1tSv(dg4WeOKRm z>jO$e6y%Klp`EerS>lr6A|4IWDJ@WNjG>;&cEDsw%^k+$pO4Rq-@WAFb!TN+a~|VB@kt~ zT3*SW58_hx4K{^oyWV*Ey1ywn(ME)xu-;IdAr976($wv`c>Aag#T0IelC!gL##b-{BM3 zG8`LNaF6LMk>}3i`=^iAmLN;uLxxI?32ya#D8@+@pbFNa?7G63rG!M;s@Ix)sm zAAQ@ov=^$pRqCAKRFLFsCKycnrJ!?mb?eJsHmaT@`5EsG>l};J=evVWY{U`kN=rXe zNv=UArymF)axgI_{wN%dnj$FmV9LaM>2*Q7@AkvY2BFuUV)rZi>9S-G-^UxUqvp9WyO44Hh7=&U~+r0 ze~EU5*{y%e+sBuJmYx`g*%ONtlC|*6e)pZTk4D+a?Jo#fZ&9z@aYDHs->r!wqdA1< zwoG3P1gvr*#$1~xq{g7eTp@VKlKcfPo3lVyHjo^;#BXjNKzS>rfWI}f^Ei!4z|`Gw z^;FDV*$GZ@)72 zZ)e=#ujHu!biIWV%tpoy?C_0b6a_rRXyjgW3LS~B{)&E53ZqPvcxI@~g`LbK<}ZEt z&1$#nbZ{%{kz}$6yhJTDJ>`wF0s&(Aq27<3*dN&MzEdnI3%09wH&&8sJT_S9ju1XZQqeE`T%G7pdzw~KjRl^@6mQ_kF z6VriGCFX#@4aG5^M0aQuN5jqWoGuIuali#dw%@g~!4_mN!wnG(orHg=sp|$Inpi9H z=6(wbTc!5mI3VOk@gRfQj>^qmg)}m-%UXvs`XvR%_uu-TW8;E@stTE9D}X2o-m25e zc&Im&>e+Xv$dSy$b`eJj<(L`?J^()?MVLW@gpNvO@b3l<+l2M*!27vnU*)~Xlmjxo z3xybwOQOPFWcqWIAFCG4LhRyfJ;!3$^Y$Y1PP+D$aQ{F##@wKRc)P31%(-Li)UwzN zC9i=>1SjxgwSyS=okQZ3?@>V$(KW+RHXFk)MccRcHhyYMG!4 zI`)^W>y(U?qA5YgNJJSKxCYXLEd?EFBydJ6NWEs7ubkgDFz-q&SO*W7@x$zpB!3~` ztcuJH^s+-{`JrD)y<8YJfQg;rkP3UD^B_tv6C<$P3;Z{rwLbJ0!#6+lpB)8#>cMB4 z0QTdTv&r-}OW5}^@`$G?QaowV3S^Z?doEaJUT*rctZ$3E$9flW{4tBzV?%6D~vJ(#3C^^ru5L1P(Nq##qn4;)wC`<6^Be zjT-PpMJDOFY2Fizjsqbd<0WcgNq~>tg%v1j_HNE8WLWO>(ektj!452EKWS7ION24n zF;w^B?S$e!>zJUUhJ)$qJ)i$^I>LOcn>X-`{{9OG;-y&--mIkNlGhAvxv_Bfp&Xos z0Bjb9K=TJWW9Q=ns1bNl5Q0rCzm<*0E6n=9+uBgPBgDEuW@k$*t-Ihy_K;#>WteyT zu|S4@{1NWzg>E6%B|09`;ioRR)<;3X<$mfz2FE=&9unII45h*wh5U z2o^OBh?X-EwtwlOW8XcJ{uNVrA?koJ#4IWgIxZ$Fa*9}NvGmH44NZhJWkYy|j;+`dSzqO3(cRHJTmzC}m@!;Y?p4HAG~{Q^A&!|z z-E8p3EL6(50wh+I*M(Ma@5+I$$Bko4Is)Deh|*<}H0sLBd%X}?;cgCW{|!)ms;c}7A!n9W(-Y~43jeU%C7rAB3V#9W@@mtc5xIAnmgvC~W+aPBXz;nTi3;iY zExkn}gk1Ncud`*78VAV4duD{$-`|5FcTMIkY^*8;d+)PXD9elMOTtC-e}0c9sfd`P zu_9@C>m#URVzvq)G6g;d1M+C3p@86NjSbv-#$JhAiVt=?|f2eaxPZ$A35uKYl- z6|;P)jzQpOZTDKZi*+c(^ebGvG1UkToH2f>MTfx@J}=P9NsvW*<|An>nP2>eLa9}o zA&--Qc2&v0*>?2nSucwYTzHdjrnza!HXMQzKgM*7cRggMc>uu&1(qkONmtSz`}6(0 zTrsGVWjF)%N0_hpY60D6Rf!9hj6==iGyCB&=mBJAKm(bn-_M(8(RK-Lpg5*SifZ_#N8fDYEN1brL&?e!~PqW8_5&e zqh%8p$gB5>Jx&0g@O54!^qWvOD(Hj(egBl^Gi5Y;}JDG}0C5 zovF6@d;Cefpl*k*eno?Dpu+=p;Bgw}Yu@v4=OiX^Iw&SLC`I-KO0GcVV>pGc@?}(V z=nh!oTTmAd3P(09zlPljqhK9OSDcw(#Rq`9Q5i$PSLLu5W_$D-gG|NofZq&D(xqI~ z9B`dX8d5qY=vV7+UE_atyrn}@ks|Xvlv$ilx5!n5saW#6vxzlgVFjXJuLAOj_Jn=` zI5V0*^w@8rkRlZ-vo@nnj(jO4#lJ!ps`{eqD(Kcltl^!PG|yKgJ(6v0)qQ3z*EqXK zHQj@6B2KnsLJh+QR#Qxu3sGE9HtI1(>6}1ZDn)=YZf&=-UI?-jKrz7t5{!{dTA1&V zjc4y{N~yf#PELf~yy2f;y%xR5GwOBVYPEtRFDphsTD0?q4R+CFJ*!*_a|`)RwI@Oz zUm5%GTnc75I51u2EzxsFVjj2Rmi|1T=K%eUJ+lUvHj|&c*$r>ecF){01Db?~oxudb zxj#NZ0^wf8Z)m4A+x6fLgF6Pkq(?CGgl_II_mryb=bSx8uI$#&a>uEyARtxotfk){ zcqN3t7i3|wq@Ps)49u$`GfXq=43z5|(y!|E447_6v>sKCo!H^|_A4ScSpOUJSf>bo zYEeYSA+7sw5W*&9)bziQw6lQQrH5kLeLLD2+g5)dN`+T=w=UM(JnW1HLTV~*WlRKb;lWLAMvv% zRch=kkhp0;@=c`lje4~g9zV{dU4|by!kNZsH+FCm$Vn1iUcua+1MPaS<|w=!ChUUF zII^!bKN){oL_qHwDD}i_sz@!Ux#$1~Nw@)|jPp&DB$#IcRCCpOs${Kq(XdQ_FBURGw zzbPxrpG)}peKgy?Wv2k$#7DYu;4`qF85EJguQM?1&~0E(O7VTa%m6$C>NN<+Bh*VE zEi)Y4f6BEe4Qv~`vp+ioD&SoL9bjApoYx>mG6Rg|`WQk+fwK%@WwVEpy1?FY%*-$o+9&8B%4vFu5+x7O zicpg=>yX?-eO(An+-zUEF1D72REg&ZBiJF9a>?sFq0I%!Ea9$)F%)8UlA)_mGMXn; z8tNrtF>5X`-76;NYWtOE$V)kE#<`UrvN;6FrIBgE-eQ5B2ApQbh$bTv8bEcP+QBCM z8u|rYOvl*3r7oJyOy`Q-bL$1K-(%@TT!bYX`3TizCFY((PBi^MeKm^|hxAZo$htU= z#f~UyKDmvWV9#SaYMa49iNReqC1h-39)1SuckfM?N!nNwfXhBpJT`N$CAHA<-8iY7l`Kq5KyuXQk z7i_wSGC?DwEzrtU!BMfk+U!u+2JN@Tjx!4zCD2S25{z0Sbt%>R8{u$MAMn#DErphj zB$;HTxc}V13C%@G=zicS5v(m@C)uM=c?*nlv42;aoUb1sF`M&MVhq5Qsvu-0IXnFsUTJEXGtt>Y+>qhS@ zew#J9Q<65Mu4eDH1T=ZSq^`$&#qMazS}r4%pC1@mz<4%RFGR23>(i%dP?IM%nx zc1=iea}CI;pq?VqYV^74ck`JakH=%rJ@8I+;RxIsN;L>2Y^^|^!y%q3eb(J8!43+e z9(-)o==E@M0G%p75({cTam`32(X;FM4ACiG4CDsWVdrI%N`5@&<`>SKf;;&)ctR8E{gxjCpGFl*{;*602k1X_!S+IAC@Wyc&e}4S<5^)aKsU6mV z1LkVlpUTYKRX{e=S@Q#@*37EalttrRJJ5h3BDJ=b^%JRJNFom9N#YPtMivUUR1`mv z!0((Gy>b!1e^_W2pmqlaZBeUG(q&P*h5NXQ8p88iP%2Q;y`=g+?uM?jg0D^DxfOS> zFfvs@WgE zNEcMeLGMD|ufi{@6g%toOG;DNEBkQ;%-0bOKDuo_ynL5CTMTZ@diCaCMwCpPRT=YQ z$L~e9BZcNk&a_UI~Hgk zT79+6-jX@D?vo%fm(oTFTf9s6Eq4IV_m_cMvm3U)t?e?s(6t8_1OvVbYWFcGG}tBW zX9FFz->H6^j5~{qoUI;(d^kOlr(Hr#8Zppc-PIZ@VG`J?L&w6ntSNRK2XWf+39>RJ zTXK>wWB|5B1bqFTf-FE4G;z()lYm6LhoY@=A0B&DCAVck_5dUl;SnT2(UbNHFy&Ixs zR#lR$P<#LIE!q@BclUySlUAsljM;K$(NB-!ZExXzVlfj9JqIo~m>}-B%t=me;Ji=D z8JXruQBZPDVD3w`9+-jAialIo{w`>QnW8q!!Q6lXKh1|-sgF+$N;mFzyeClC&m{0! z7j>|jR!L?o`n`^L32K~wZY5aCG_Z>{Q8P)uK#Jxy{4aamwN}de>yBO54JJ`^X1gs+!&Rlg*VQvwq@_)Ypy|p@esb2j~e&eK8FuxP$1V(?I20(~=zPy_0-)^XVp}FLR_5A-w8+ssgBg9!k5B}4XL4PjYed?|qjCN#;#0|O z#AV9TRG$_Q4NQVjuio-sW;2n0&xwqu+O4CNe<~YxlRfoCCUNE#g z=91`6Y}(fx61I_ow~%0_<7)D4lOy*Lw&soYQEeubIB$m|T+`$Vgz=BQ!=%}J1Hk|N za076A+gJXc=>dQ)4^;-oe~A4@qx4_wZU?uPbu8SOA+U`fxN14KLIJA~`K=CkZ2K%z zn3xWM>BudS@lMia!%KU9$$s^piJPqT50GGRe7Lf@G^H3t6CjG7q5@LY@-hwMB~Moe z9BSj)BO#qKYp)(2GKRSja7aJp-D|8P6r){4Pj!1)LJ;hV3QS@kYHI7w}-rtwHe ze7U(fd3*RgyO$Jciv^{!R^2W~#Rse@O6)Z{(_V|_8bS_E~`Qd{WZ1qam^P`5&Sv%zSmB`7bDCx?E3XrW)y)oZa& z*wpgNa--Nq>as$F3{(=FzBf}q&aag6s?u4*=)Fb zqA%G>#dx;hA}aCyy%!5|YV*L0Eeg`ln|usO&Z%3f?Tza{hGs7i_o+X9qOl zIb^@2gGRe(boffA^$@`jSD|V$$vT#wEn0QDRjOX7F(gEfwR}ta^(gA!Tz%~|EC4fxF&y?`tswGr^*ABsAC?^D|W5Uz^fr zsxo1n-laPKLK`+33ICW!d4-EA*#?G`>qUUkI}H6cRs{V+?ehgxzPr9^7up4Kqv*uv z4NRzXOWMLvw_KPz%ICv5HSS?$n@YE)q*jp)X4|=xp+UBc%8vw5H!J0Nxwe zbM*8xeSW6gUbPk{v_BsQzE>_EGX}-r;lDp8vSXUekuW@nDxl@=sB3-5;)4u7KIi8) zLU7%EZY6M7qYFD$02-)x#BT)E4Tjt?N!5m$-(i-S;`Bk+tUSJIV@Ln|`YK)q{RMvw z7+7()R4S{xtTbr7Ix55JMntSY3!X@?;Q^Gm4CNQeR-yaWc|JcUx@qTSA4V~D|@PBNay*-^B4gL5V&)7z` z*|cwqe~5>Q3`sDY6?H}f{%A{Vq2C50>kQcOABUoWHy4cZ9n@9<-d+HnDw_*Q?@^Fy8^Z_B5d-iH1ZL<)S>CjE7S=?I*3s4yoI&oQgx%ThMU1qaHB_R%&>q_B=c4#L< zBkkp`o zG5kX1^?%Og&&%J(Zd=8Vta*8=LhIp)m$y_F#B@kXuDrW_eC0`8eMLqbNnZZ1kL!g; z%%M-rA-s=Qkc18Wby3mJ0WKf^?{@Vkml^TdMJ6~B$}LWdZO}vimYXb9=}+pDYd=i; z`QVOi&GN}stjDcH_uIxd+D7x1Yx5@iPDh;#m6#*EFQqKCZc1W(0=wB>oj%I?ChVFM z(N1#2AyM0w0Cb}fb#T^Hn87cQl^(l#hl5O}44VuF8Fa611GI6$3~q*)LTo|B=-`po zJiXNImvXeeE(+~@tG=PwE+NpT7_1{v-MS0Wp+zBd%Ey!FszrlRya`K+UDFIjALd>B z)A1T2%#|Xy>EF1K_W?&i(<~KHix5--S*Er29)Dq+{LY?(g{(OpB{x?=58I`%SFf5C zx^i;^L~8l0vAXk}&1*~PpMQ;C!4;l|q=N3>7*gK(CI-xCG>^kP!|rf*gnL|EUUAf! zN;wZ2NCBvB!ZR(%MtziX4tp=N5>$)1r$Ri+yK>(W#<`V@ z1`}U;Q-ZI|-_96Q{-e?82|k`m7Wb%RnbK~4dv;< zSo7aB+3OwBFIGMItv)^nEcfRUo8J~Ty#(!(#6D4=*2LS$^+j6<7C3hYGK?`g%{JeR zRm2w)4^}vm8h`JtaNL`tgL?Qk#O6z=`xU*5jS=1+DZSWUOrQ;9vRxXHc_ENlz>cLf z`sWxoq0QaLD+*zn>KF_c5}xR`#!i#3fvp^(EGs$3Wi=&eFs&F1M!Auw*~WlVBhZif z1({k8O>E3*7WKdaM*`v#lX9iAb=UE6(c*Aw@kAzcn8l(=B#%{?cMxiRBX{d8W9Jq% zSB#!L4bTm6LihO<8U#V>R{g5!jBAVUD5>gL5;m}gSb7Bc`sF8-tg;b!L4#7|lgyN3 zqj^5+8HN%`Z(>6&(d1;milgjcrsq9jh1DK(s3dfXcLeVDdrc*_ck-cENYVR;#N^H3 zaPO&SWzgP{PLQm}v?Asx=FzNy((5h3rXo1X4P--K$dM*RHZpR13uDSaenLlnTmvvh z8glawvHMyW!VBv2e)xE+!|2qB@-J}sOPWq{lNns}wN}JWi_RUUKuaGp5HbIfg6o^N=4})xSU9s?EaSpew(IU7NEicJ5WRHe8=U7xMlS8IE%~!d5g(Pc zfFtKQ@T7XY%O&0gA&(?ZO4xKmw8t-rA{W}RpSP6n6&%Wr|9=GM1DQfL!c@B2>h`9p z4_gE43!g7)&s*mpo1M0a*grO6=;aL(Vah-;B&#lw>`Di&rd?9KI%j`D7?wx%KVvTc z=wgQB9q-Xw4v~5Ek@>)_v&%GQ=2pO6=aYtVb2+E1-s?1&YAS5CG*z#=29C-#ejEZV zHbkVwB8gY}-Xy-8zr@f@XR>aj;Q-5`^cc4ZBZI~_DbwHewxt&0a%q+@5LYVscRa?Z zisero>fGLN!x6rk-C(dhl&~;VOU;6mEnuSNlIq4s_?MKUcU>8o&XTkDcqY6&$}z1P zFH=U#Y4-e9R5S+Cg#$Ef-Q zcS{@lP*fDi3C^*=B!01+_It!>EW)^)i+b~W5YHdJm0_$8Z1+7$dU0n1Rsk)?BlB96 z8@eh)zA$$rw5fl}rPUDDW5o0bDAaFOHpj%PICA${sC2k0>#7A`p)tF5hI9%b1WU!F zmNk*7J6bMnvXdHYjuYMRN9;2NDQOE>VnJ(ybcv@xwC=t}pl+TK@v%6yh-9y$WYGV& z`1SxA7S@`(2^=!@gHrITG;yf_gF_x!b*na^1z%eoefXL-$v|pQ1R6DwDDyR?za@0B ztQO|kZOq8y;2-fKJwx~u;#)X(|kzAW!>a_2qjb+}qWi}?4+tFb zPnZ4XO-VVU0zZmHqc~CW@mfo*TS@zl#Dyvwp2ZrmLqP2A$%y?U?MRs4KFRZ43XuRj17plJuH)3|b{PnIf1uvM# zBcr{;I$4(sHwYtPcFp2osg+UDTQO5IBwQ zG=@|b>JFL}K;`WNX5dN*h#n4G-bRRN=Eug1f?kDT7_a5zQ`YwdeYb&PZj3%YkjVHK zg&svj+wfs7@*GU!+BwfkJGwUHPfhD*cBZKt_aXX60_Rtjx|oj>QywQ1SrEg74X!H`dI-Z-vOyMpm%Ee<7M_=^YK z>%&f7rSy2)y6y&{-ic`B^(G5jhK6KygU@m!qj5hz_9Ku!#Shh9djKve5e)= zTM)4hwzYC{Qrp%H1+I*kha`Mx2V%U;vtuPjo24fl&i7?DHj5Kj?Qbds>{9VeEs;q` zHva~3Tka|A$NaR5Pc?i&=a>H#PvXF;7I(mZqpt%4C_U!Ab-E-qXqXX=*L?SY}os;F^R z!0$VyQx+7i^_kT(N!6n2S=ZH99szfH$)hsa(%M|A={s}A`Efvwp^4-74fRiRZtf!$#G4xZCAjyZc;8~PVlP}BemzyGMn+Y3zyb7-Ex0q zvQgOBpn#JM?&Q0>%-tfXqhZ!3rwx@%0s{ignJw zYoG1Zy!T(yEyd9+Vpd<|=OFFUzdSU$y{p&j?YC8b0&k;&J6je>PGIoB>QFA1=d-lC z45%A4qILw;h!>5sH4)ugo#o@>FGT9nC(Vb4c*xS&{@LwpO!6K4WEZ1w-7(l-xgu6SVz`CN7_%-#*K7sk; z-veLu%sbq|OBA$DD<5@qLeQMmUa6>qfFQjA}P$iWIaVB-0<1g0129^GAQ@g$K;i z=1RC3g`K6!{5Bkr2%oyFVE>7b)tikesbrlrO~$Rj^13+p4LeA}jBJuuk9(c~K-8hX%M>Lnc&wrdCUMn4D4Y8K51Bw_ zzm$cXudqfh$elLGSOH1HB{ zVoNGC&(xUQ)Y=LE@owfm-`t)3^)C4rgZYDjd7|%Bxs7g11aP6H5A^}{tK``&s(fa5 zJ&0H@7%lYTc)_w;H-tn|z2!--JR!%%J2G=ek8p@HXU!~L>;uI}hUQ-wz4diPR|fXa zhFfhrcLAQSB=|;D*4V$Zha`79h^M4ENhlU7 zlyBA~&Y0|wQRuNtfUjVRbEa9fLX z78A zQ;7Z~Ad-+bMPNVgF7=&ld-mz1K8SyG28n4SZAF^wlEYAvLdI6g+>)z%iVRHCB1ZYN z>=aF0H?eYuIZsr%@XnY71ww-pV%+#KMxbI=m4vb(0mC=jD>j||qQ_PNBW7?<6+N~J z7(D{yy6Eu`?%3F=Qe9DJ7v8e9ZZny=AMlKyUEKXTwv=ZVcfUPoJWgxAsp(q6*1Cr( zHc2fWaYGeQ3NNU%d`lKPgsmCg`mKHu(%tyJ5G?@Wa-uzknFB^0<~)Vs)i^XOI_n@7 z$d4M5H~4R==W7U~z??sq(qVQr=GMJ3FK?>&$CXTTUSvfowv>0sVKC#ARx7``Rw%l1 z?b%$cP4nV_(*R-P%T{}9%JCGPN|8o`kcW38v%}wwU}fOLZ{LlkEtjB7cBWjppegIy zNOY|9DVs1&rUNTpmU&KYfEz*45d*IFy*(U7bN+sAd1?ByxAZ2%}Ll^#;v)4 z-rL>g!uebR0efFoE;_3@nN*Ooi)fqnIh-Pj%_8@4Yy^^7n|Y0zrG8uoMtgNrCCiHz zM_5~-=Cn)%Q!x_cxfIf1TU*&>bbIo6<|Hjp|L`nCS}iMi#{m>YgJQd>TUbr@ii>%{ zu1rs-o)-4#YB!9Gg6BqLpArS18~T1QCZh|mr=Qfc!24oectdMKNk)ob4jZGS_j)Rb z9f*nQYaKEz;&-l1+Yp8!jBNSeC+cl~1|6~d9S$mM5v0)9YnM@xoRv)ER+{hQn~@OX zU48Isr&zIsgI)w&_PC%bRY2Z&&bfCo_+Z&a%M=|G;99ASt;0xem{F}U>Evt{no|ZZ z1#&_3&d?iXcF@X*pg9xTv{{Y2;GNw?MN?b7tk{gd9}}R%Bd0e{?sz$ZJ#HO?(@ZW8 zTffF=^IL(zbr#uA#%Q3XPo+NQIi ztO!}WV&(ha?s30o2eb~Zto0zbPMPR5#QLhpJ=NL5h?-C*x0PT(5z+zzMHd3B7*I9p&SnFU?{zfvfPS4?354?8McnvRX#jo}1FBWYE*&%S^ zuz+_ha#j^9+@rG2CkZE1)ny5JKS9oqV;#*{-E1c_6lIfjx34Yk-@M6zO6;t+I@?~O zAdizWB_~EI1v~w#)=Q&F2QX)o#;OAPkyd2MsKCrn&DG#^!x6ZgF9PqUeZiZ!zRoJNkq&di&|-p! zeAFV@lB0{Wm;`|7&>eWUWcZo80%!51p&6-i(q1UCpko|YBFOYFsGiAc8Jl=Sa>kGs z)7?x5R`E5y=r?k5PMo60-s%^${k5(ZR?4O$?W#5jS^!85u(6?2>=a5 zG_8ph@eh$oOq@q?(wedktPAo1gRaT}sj7QMm2rk@B&t60jJ+>q2wvvw29Xi`B=Ss# znQ$y?12?p<#~v19H)^R15Q+Hi0&x_Ak874U=*mbkpncE(}Lo8>6bD!LfKzMV6~f zE=wv_p!qFVldM)+E+_6CeO*hU93%l6k8Imi4N$*x{|7-X2~+_u*j9};eR6*Fx6hCM za{Bp{92JG7J+@shw_lYk7A=Gqv0#V$3=jF(oPiFI!y8#fxd* z{RSs+&%9~Rxq4!X8eZm^Q`-SUaHix7XBpr#)VPh>8jz&kCV7K9?5rS(E0VrvdV_=T z+GH%SSELA{`lJYf)KkwmqFw(;VVtx9X z7I~1Cx9)8W430tRmbki)SCFc+HDJh|(DVdAJIS-Q5zPk+OR+U)CnewBcDN&1sV^*N z$V@!gV2W4EVvrP~(@#e#xomc-mW})J;BnJeOm8OUl$j0CEgsokB}M<>l@bGlS2>hS zcq#!>r(3xlB+n-tQ?e`ucC}aJ`Z(^H+cE`b7hTdCxw6KN-hDQ@KE4=@$>{Bg`Nt5S z(be(w#c1llU(BJsKE8M~zMyF}XF7#5M1d;Zl?GV3es@AYyMVi^Rs|v#)@TbhB~Tv+ zxo0OL;33W@Xy4?7o#3^53q$JpSAH(VNqL$;*-M z06nY~{8C7H%W_hekQD>7(ofW3zN`$06F@FxzPA^ET%%BzlHrQiMj~hvRp3@>Zx4vu zUau*^w+MdpeJZTWMz6?{mIv!WI?mz{kHx{OjpE}Se}6oe!bSjFh2Vxc@Xy{h0USsZ z_FYX2XGm#}^>KLx$c$XfC)DZHeGFqK%vHSlAf*YM=Q1wt_CiaOog)z95Yq|0n|SIy zIPPIP8nwB~`ljG&aW3^GqxtH{B^xDLcDf!XT;x0h%muXch!vspc*ctr)EF)7rf}#MgHn=2(Ee+5e?aWC7n~v$kpYSkO7Fff7mwH$`HVyhCy8!DJIgUoRN~T zs!3zS;RZGqTg|EP8KH9~jG7Q@_0+G8Aw}-fRe>_SgDY-%3prMuWYP0y;T)EX3cGV! z@w>EQVL_J>tltR2dSgx(50DR`087P+JLVI5r{ri35jz$#LkbAF?r{qS^XH~34>}qe zzni&=(*3SU%%~uW&KL&YVl+6wgJ2}|!+_TmD_Evw)qUQFV1<)Z$!-lMTh@9rtIr$; zvtmFC&<<$mXOCyeh6j3|v=!}flprM_1PSJV5F4%)cX6=Lnd*J&w$>sQO@?DxNs#Lx zMLaGsnv?9ei-Q{pHWi3XkZvw>K3h$n3>XAulAhCJO(E^D(nk~(`aEGh9C=86HFqhd z6qn*?W@Hqd8t=E~G$k@R2FKIc1qL7^NZORVwGov|%0WPld6=;WgxW4l$*F+QbMMl! z!Sfq8#+)NofOow!8~q%ND<=WqJAU(%aHJ&Ai?yXXhQPYS1>5>;v3*x7;g%d8?4eiyIsL+P%7#RsCAc9lmGOB{ICB-{_w}&|Mu4}UhErj=OxMM>c9|92d!@> zG@;c${xP5`jYY*9h+n?=y?x6kWFhM+#hWz5Ts6dCH9%8}-UPQK(q33QpAm{_dtty} zW5JKjOGpQUEIouX!yrnO4clOg4L^;v9pkhOir~l_%oU+dx1YFB%t-SA$gSB0K}>+n zb_;UuPD7zN>Zi8z8CaH3TC!EIT}hB+_^g|iO~C?LT32-z!1xEkFhax2sxA4(=r2}k z1u3ot0PN6DTOe+T-q-J#a2aTAEyHTIEJt&dVi3I0+*47#y_TrE^nyZFbKjq-=_YQE z5xJ>(fpKbnS0EUq+ZeG9H!d%u&shWr#KAR^w6Adh$(<>_NUGY&G*dDP_ior-?_-Dq z7GwB|YDvef5Ein}XFVLAs1!`&QIq}4V$4I=h9yv8uZy%l-H5^+(l z%reo!C63y_eF+E3=Z3Wa9DQ!s2a1BRo1KgK#NX!xIM5~@Ainis{sWGFN?C(9QbCyy zCUmhP^2P>rU;}F@lv8pc%esi1{54PPC8PPosQgb}Az`h8!1kH#m#=)nXR4|07>}0U z&gS*q#CBMC)9BdsrV&bWrYSFwQAxoF1N}ST$##vDF{pMgHq6T~W>E zt3NKy?|r@hRl$|MUX|>ROIrFb-q6xF?029dUw^Y?n%=#f`tPF6fBRobidXMO&76$o z((M0IuilMFtGBP-jiA3#ELlQY1Ap~yWO`_ts-%`T_3YKV(alOTHGVm+SUDDS$^O{9 z{oUx>XyfmMnSd5E`JY&KQgyY0Dt%p1p`aVrd|(XM=Ho8&%KQR4R!OfQEp%)QdRqHeR7@d}~ga&9tnQ$H*|__HT^Gh2v#2 zQ!Ki(5n=(p62i|DV-s?!*~Gm0vApn0rWBnI+Yt5{bO5m}#|i`Qo75$J|2Y$Ly?8}F`S^Fg{rzLjsgqznMfX8x zg|+5tP4DL8>)FRsU-fD3?@8Oy)}Ulh#63j-D>M|9|nZ$nyO`YJ9e}Gms5~ zT&!4;mmgy$9CUqyPksIVo9X6|Q+)IPHeMSKheGLwm6~&c{smi-Cl1o%W@xL3!u)&; zh#>myulqJ1mI{4EULE4l=jmmp8Ie?9zxx8N+$u=8g6 zHQG~_Ycxl^x9N*Y<~1NoN}t-2h3o{}B8Em_EGuE}u?kaf%MNrzn zq?{$U*>-4BGOuYxg=Q=_%wmXDvSDzvDR<{++~6`kcmW+9Kp>bU(EueMLXNc&JS+0*l&yd&5w z4MCC9FwMQU{9`b}$%MS2VnrI}gF4dsiB;Ng0L*{vZMAXd7yOnHuV^95yI~mxb+o$S zx}w!8Q1AN%X2jyKbt?81V`K`jof|y#068JO;YEr=0^k=jDP{%FK+5IIQdXJ@jby1} zbM~Hao2vkTWW8;biVm|(h#8OHy<7RIr#11k;qY6 zVB4np6}{aG;L&@KIY)1aRKaw&^n|bf$PstZ-VG0@3zKpa?Q$&;*|tkJ5HdY$iA-h7 zzCOleA5g!nR`5_?H5XtF8sMrv!zTiyLOVdHePe%2%9L^vVrz_3;*hah_PsR3a?%o+ z93->`bh38W;yk0*Qo1oKE%XI9MQgfS@4>;%l98uAJ zNhFUQuk>gE;!6?q-?=uce|0qsEZp*%gS45MgoX+6VSF}C`Q-e{>c9I9{L9f-R|D{k z-8CSkfDm2|o(S}OKK>N=P?2B;K0Q7)64w_c6IVT;fX(&9Q`VE2-dwF&!y3OWNL3ej z3t>NLIfVZG&7y|9^gLl1n5a>$ttF|ooo)buj+Y0$Y`uxRL2`x+Lh=dK~? zjP6QJHf^o}X{X^sA*pw0BYv&i=O~i<`n5sgA8(<6NHh^ijk)JlJL`2ovzQy3P7wy5 zoD|zYbM>abwQlW8HVdyLEq?v>xIW)pJE8dw?paEodK-)05cyFpX{D8x)fT;{4J1?+ zwYVi${{D90_mo_+8LNyq#YN8EGcf| z%xJb?Z=gzIhhW$m(g{e#iX5BAY;{GSU$<+i*}r5d>tQFtj{b^eKkne+!KWSZlD>ztX|{jj zSl`h1wg+&IN>)L6(ReUcYG0(VmeCV=FA7OxX(j8uf}#eEgoxAUln`{J>#}!zppQSn=z2J)l`~V~fn9b?yPOOpNh9am zk#j8R`%epbLyHrtsoC;x{*pfV>rYyf4@$hQrUqTgIvV2+@e4F#So@e(O9X$HMedgq zlPO@N58Z3n=SzD3qYgN$m$jvdA8PD(vZ$AAK-J(&JP}{Qb6~#Moul>~1iOb5&cWx_ zT4^Q2*yfMg0oNQiIeUL)q(QfyVe<%S1HvN`hi=DGcNlewrEyoG6A2!vdi)UK z;{#2?0|k)Okq;uvPerF5jWiD)bs~9w(t$rRiB6q^K5yVQ{kS1hy|3@FwxASrLG>cN zUK6|=^7t?+w|&^GT!q{xI_Et}C`tWKVRE~(xui}cT1~o4FF1lBtZ+?owGBLwCE|3n zcw%cMtswdUZs$@Lhc1+T|J%!0Zb8y!8FbXzZ-0!lRt`C3?bkoXQE@J=ZPkhjMDL z3{BOYF)lY%@Jw7P4B9fQ)Et8c?&1e=keJzB(@NLnMI~=~4e!CNgsL!>qqoe1uLL(K zWj^u9mBIG~zhiQwv#ixQ*H(BqpFh z$TQ1o5M*pK0SX<=ik96e1woF3d79;f&Wzf$pipd9)mg?^-UZyz?;7nBCAr|5)8d2` zbQQ&-*^c5mb7(WR+cw7EB9Jbq!mZSuZH_(zx6C+U7)y>lgMvTLf(66q_b5+{?6r_FV}g}pn{PngJC~>L4ddyQ`FiDtTh{3|ZB5r_ zY~_MeaD2CH)#SrAySEpGQA<0Y9rJd}Rt~V5!ArQpOuKHG&2JuuJa+n?E3N(=w|gd+ zH(X%n@Re?1&0D)|15I9|=^S)x*GYCAOq%I0+-QQRcWU0hr>wa|3bo*+HJQW*&_H)# zqYk{w%nzc|epl0?jem$=b+&6CHp}u|&F^SoBj4|Nk!Q3*bp?q4QPP#yEM>Qnmr>zK zPqPy&o(H%_v$~)aG3RtHtInLue!qg>rah2*ZQ{B9)OtRGH5?nYFqT@hc2M?_LApIF zXO8apL!D9)S#JYTKL{wfKe1Et7higG9E**1aAr(9=v8-Y>=HFZzzA-4tRnk}*wk&k zx#O8Wn3Dg^Dv4ED*c|PC_Lw;!e2w)VjS}&K?89T-{ah|tZluFvb+86m)bUJ8a(Tbq z6}p^e7IWZ)&5R*l;o4TPtTak9Ek*RS4iIO}NenUin|zc$lIbho{Fm8(lvHdEXDkl; z&~w5PBD}V#p<0%*kn`15X*9fJz{LX!&?7lrcRZJd`GtIxi}}R)VGdnKCJI`dWKCBN zca^-l`q6l0X>HL)EqRhUe|E0W2oVycuPM=(g7F@n+R zUAsNSE)D%ZeP33Hnwsu%Tz{~gUelh79!nyGxk5cXmwViN1JihPeiDcMOh|%h#{#Y| zR`5z&$VY{ zJyLrkIwwvP!LpRL9CUxC{(xxdKIyb$STa#gO&A!|-nJ;BcD1(3t!H9P&ZRyRDRJh3 zkb5GTI+q&0dDN-17Uf|RXGIovG5ocYZz`4`%kU8mG2BKBEGW+)4qvD`*wU~MI%B=C#?6di)i_0MK<65yaD zgw#m>v_yr8Ia@t<@C8|i=$h%8jUwj z=jcq>;&U6P&GFf2vrq$d1ka6j6(>@m&EvNWFI>?q&u0;6i?t}A@DV4w*kasyP+A2< zbl}xd1s}vtdFSolDAgO{hm-P{zyne&A8bdtS*JjvF(y-l+hoQ_s=1nRdQ-4Jp2%~lohkg=ZgG(N^j8KSmvl*+H$QZd{`kq-B zQdA+kEhn?KlDk%c(W{n@0?#4F&|wvJQ_bs*dwtLC$40kpb)b9f0$C29^P7TMUDxdF z?^z{X-LIz6wHqVtDgq_j0L1?d7bkfCw2kl#MZ`aud@qHEneSdEw~Z_|hnD0e^021J zl?SnJovqFmtu=)z^6}xvhc90l*%;jcRI%}vm4O-}Q}RP+i)JJ*$q(@F$M)Y($PeTP zLN3S!3I8?!kRQmzOtKwXY&Ktx+eADwO0PKzH;h;_6>@WGGb{qL;m>RNn_$N z=RgYE!pnUa!U4GlW8sqCqCxT~(={zjXZJsuyzGV^k)qwq9hZiNyOHj{JeanIZie{r zIE^gZB%Ef{&}%AI@XBs_;7GxdSl!cAFF|lDb&R+TxoJ8_R&4~}3 zr*sRIas;Jwe7PeWUoBd+cN;ZAA`mr>lE9RVB3p}6HRBwU3z>V%EJ4$3cas&PT9J37 zHobT^0w;wRwQY?KE74$>U}u}|SlF-*5IjWQKwbQ(3$p_s`fIyum>cLbZfnK z(9f^d>7zHawB)8Kc_$3h?snV7nE4i_{qZ=Mg;-DR{l7`#@eMDJGrU)pDJL>%{5L9( zHQRLS?)=SuGui`ib~_@`ttNQlVT8ND**WzBisHJa2#+h+J#a-cInnd9WzsS#5XZP- zrelw#n#pBZ$J8!m7S<_8pX`4^CgcSaZWDNnU=c&n#IWcdR2jW6N`YAs)f7Kp6CPko zUi(t%H%!x>LgQu!S%!<^aO3f()i7pd#8WKo`fAtKy}1Ai z(dM3h$6orbn1;tV?gz_bF_$=Y0cbL2II=R z&arq!MvLtw8G0C~gYq=Oi4RgCUo|ZdMzaM*4dV;`)O~QwvW_r?*7-Lo!0st)O)Ow) zz8U`!saXOq#}=Viw(>P*yBc zWK7%Kv%n`~*L{ug$7)cn6V@qV(>XYM*S6NE9YW;*h$BF6Fso+g;YoB>M_Vd2m>rQr zzFY9Zn8q;jPqusXJr*~Gw|;LSy@R(#gwa-S&h$3R&93Kp!#dR$L&^qia+_}@a5sl4F$im(NOWffd3k+y!-cTw#7~o@wwYEwN6T+;Xdk9 z_!#WypByxHee%iS$A>TX&6qzvFryDF^B+%M9*_uRNUKFVGNxL#`7>b)B;Ly^x8cKf z5j&eTBU9QrOP7w{VuhCG#NJCFH{ep>ntZgB75k`r)BAQhZRcI4?;a8yi>R46bKutB zbd()UHc9)IyLJqNzN3}JQNaA=W5|H*O})ij=S`%qLs{xW#Hl>Iqg5BCMm+M7l?%3H z6)o(05)uN9kPr2o{Ig^qeCa2=I`G-@&bCymPBGF+>@!+)#4_Mq-bh)nt+ds??3k7` zG_`9J^u4_FtbGoXs2 zmoHv?%11U`rrPdr>)GdSfCW{m8^)wHLa3oFXKtkMsD;3Uu5665V|bCVM>`!k9Gze$ zTY*fVc36d0{vcb@HUhCV%I~u+{ao7Ea>L7t0_nHQ8U>p^Rpf9f^x+?j#Jj1Pq{aVR zpqN&StZ6TIdk9!5=4L`T{B{xPhC!uMrO-lSM4%?c+Ui-Q+$yp5g*MZBby`rRdG?n= zX17<{fp)hHZExF?t&s|-0&>FDt*`MF7s%K0Q7JLPe!+k@7~O*`X|_OJ$~xWH`%-q3 z5aJAF5H&QkDmW??e@clbpQ&N!7I?o?_-DLenC;}NzCplW zKXMYx^h(y`o}!5bPQsL2^YRrr6{<$JnO=KMyiMD)1|rRc|#Ju_O#ogubRF~Ua^1*Pn<~jn_j~64dFDvMg5ycBe@0i0@Fob4> z;fe=QFqzaM3Te=DMm76F6wz#$_U3R;xFpD`w)}Y}tBkptw{S~zb}an4*-^+|-$MRyr`68x@M*fC*D6=((k1pr+>M! z-8%S@CM`;N`tl(reomv>VI;U55SWZyk|gN(yVr#qz;QaEnxc#Y6ey;gdxmJlmmA2J zghv7)% zwV;NOl4V_JUPes&#BF)A!5}cvn`&qVY1o9EF!V;`uUv{$?+%3Ry0tN^fs$M5YD=5s zu*v&d+(+BE@Q+cf84b0YjeKx0^>F#%Mu2H}1h~k7B9E7NLVOjlXOVsL+u^+-lLu3v znZ0rkAWNq3D6~OFu7m6gPT9H~wlGuQrq+!=PIV#AOg`r<1TPU-Xlwk&K+WZ%mOE56EzP@T(OpjT)Ag`~ygxws?s2u^i zt&=fOSnY~%H_Y%_?Ou}KU zST)60|5PUT(LuuZ{3F|D)_x5rmrV3j{T{^{wPb95Z#xs5id6`R!s z#&xJEp(X#4RSIIbjQTnzHP8RtR}OX%r|E?_8ICYvE^}7XH@&&rY(N>ZsLIKD70o52 zqgJruaV`~XXPPg$_{mU%ei_q=EIZ4OTttdbteG_7-nIZ~zq3vl?_-X|$U5mk3g?Ax z`=Ga;t@Y_&uGDwM1m8X>^Je~kI*#MEQ7&#EVozq2bDp?Crn$b(Vq+;T-v_T7`2f=2 zPg3ts;+qec&NLZscR8e?%TQlPIWW3jQOp)Qv33Ut0i_jPGR>+6U?7u1SS;}`N+zx} z&2FP!k!ShfXD=T-z~Sq*4d&h0fc+*=3=hzcc^ZFYzb!_&zM*BBCCS~rCJXql5!nMV zlS^3w6jkRGVCGsZyej4FS{gpgNgF)WCRt1K%?;O{;Kbd5Oe6e}MVys_WHtpIn0k=l z>^*d`qy=-yOuOtbkD~PA#fuk+aPqs~{f@|rP?EEZFV}C3HjFL&=H<&N`Ol*_pF{X# zsTH}AdSTycZfG?e!Lcyce_VZW-sFn6pTr_tZaQ0l`0;N3_Se6jk`rD*#satLoGv1h z>IJyrgw%urZU%@+aou)-2^1P|H6W*P$>$4gGwRIlEqJCeaRN!F?8!PMF6xik$`)1( zgaMC9!EYIvsZT3emko3vf_X&Sv}irpiDoYlvYrlV!F1=1Yww_&rB%-n40YBlS6?XCT)8HlX4O%{ED~NR<0Xz8zjFp?f^Q z@t)Gcj|w(Er~va%%G~kjrjDeQ_G)74oVf>F(gV3)FzXi&Bqzf?xQ-7PL_H@2*=n#4 zwDdg*V0fl@nk7MTvVZIo?py%Tnb547(Tp9076za9+HJFR1&VFX+k%SRVlQQ^0z$&x zYgU=HIKDa~dByKorO5tYSR^{qV$pPZ{*%lT@TT-YWw_muW)U2@rrS759Ack}>Mbl& zv)>G#LsGbsb!B~C4iFqF`t%o@2IQEE&5a6D1;|{O@BZL0-Q7Z?8<$IWG;(xIDE|0b z;V9c6V7bRuDyg#8L~xZWB{Lp{S~pj)Y^Y*^bkwT7)Z}F+rUptVToZM^rxoCrIlHKD z3a%DcgN^>%9>(A+ud?@{O%d;H*kb!vOehX=iQz6rcH%~am#_?d^Rs?nB;@oJ%+}g7 zKb<%I|FS>D6KjL!?5!xnXGlhiLRq7dFB<5`eq2U3O@a#R%C!I*q;xX^p&KYw_@Xg` zohT~6Y?Z<_03}o1d;Ds}CzV#r9)Q@kdv><`?42#UM^QHg_$Yiift-RCjz)C+juAPA zwRgvSO-PV{e(oyP=JHE=ge3$~>2=W8=>7kw7Y=HiMNVNNpyGhx+I5jh*T;_^m!FMD)%cMU2fX*bM8 zlI@(VPr*gYRBkp)Q`0RW6~4I|2P_%?s;E+;k--OhRbihIvMC2rKSe>E1aLttT<%tX3`e z;ojbKx`%-ujlxjt+2r?xiA+W@_M7V(`dBFqVpU^`3Z17**WW>IN$g+$78pSA9Zu2f z9fhJs6!M5icEBDaF%rEN!a_*k%0vKFaYycGrTRxq zhKpG_zvC*U7Cr%vxcVYtvl2uW9zf*U&m?z#9n98SIL%RzwJvLIDRW<~ruJn)Hk-4t zCiA|GL*uxsq*}8|ydwW+|J|>Cm>m3hfB)+jlYjf>SNrd#@W)37e?IuZefZVE!T$c& zpS}6?`r`B(e(=NBqF&zOryuseW~bjIHga(A=U*muuO;zup(nDM;MBhYth$6o+yw1% zUK%FliI|ttpJ1yG5wUy0TiZQ&atS*%e&xeOr}Q@D5U|ry7~S3N#0AZkrL1VRBDpn< ztp?y<1OONh2K|Hn<-B@G7UPoTyj~6f(t!KJ8Mz0LS_^*bVk+>qxDyv`+BY=2MJ>rs zCst$+@@z*V>j#Gt;C+7FTA=|+$efw^b`4>lTIOGLp(dQwrsjsM$Quw7o_zU8G6(?w zo_%g)oTxLZk4vWW#$=ATmhk7g=^|CM1U=Kj$;_afNRa@SN7_;hY@SnhR-GfzY$5YT zl>WdhTBx|eo0et4GpIlTnkp=_-!|7l`SMzsO)iDKC)%n#F}{OX1mp(ysH@l8*5CVN zf-66hjVTB+N}YPCYEU-p2vGiwwkT)d-VdPH9U}V1VHCVbKaCE++Al&aY#`dk@!5WQ zYQ?I_yyp3^bMuoFa&{DL`nj45bxW(v*HnaP@wEUFI*5kr9L~*(P#3`E$-eUtUwbQ! z<#*XCvyd%32__!9fm;PKKqkIcX`}0t8#cp8mG0wW+5*Me=E3BwV44L*o=YsFTCt_P zGrRJgAa50VSiAi)vsZ*3w9-PAt(wVLj)^frwWO*RYD{hpTx?)>!%#!40*e`Lb~GPV z%uFx<*i>>!l%SRdna_Y9UE!`5AlV`4A zMHnPz;mmBRxcR1`#(mCqi@a}UU~4B2{I=TqbN6K8!Xlvj@GdvUtqbmT+vw@JU*peQN+V040I{=1x+W{5CMNu zTQOMIO_exT5Y^h+0=cCHtCviY(UF7 z2G{#s57_Wncf2t)N82>>LyUzD13gFrlj+Xsrtg(N;XiqXK=d*nhdO30w5eQo)RBCVC^4T^g*A8k@!v zdoU;aU?z0M>a>(VcMhT@n9X%02z$>JK%n5}0U4`L}{LhmHcNev}D3<(fmsqdKryUI5!vgAtBTQ((EM&Jlz7H}m60dRhnlUisV z4?8kX`uD>$ghI;MjHo&@OtGxk#ECCno9QH_4BdgDh;Z}prjD*cK zEX$1%NW81-o$z3$=w6PWRXc^e=wv)(fP-SmG|j1|gF>?3P+v03hPuFn1tBnL$(mjh zkR^wFl3>EHP`H^R08!FYaxN2HtQd(6qB1QCd5_>^{%uGsSx)jAr16HB_BjKSO|nM1 z8#JTWO~!xLgxA7cY?C$ny_TjyCN#$y(;&b=QB|1eTHwZRPkFyZ+R*Gd)2fNeM1E!n zqm^E)$p)AmEJJUr)LJRFD+aiTN?N{TxNqO!hxq2O5ZoJ?r#bT0YPK~GH(3{$)uX_! zg*PPm8G~Af7X(E8?fO+f)eUdxr=c_f?ko2S^|z0hP_6QnK=7S#h=;*aiCG{+fzK%WbK6@ znQhlnZN^ZV7tu-nMiQ^UmhN&T&4#XIQLqXN)}r>GwhdbFB~WSweO_a4{_(1c*jhVw z^K$YTRR|;L0uo%&_SQSoJcdobrck{Y+Bgy`oXnG8)1bj8snxj|mQi^Gy(tVs4>q6g zZ=3I>&8ZApx@0qJsR_Sox1ZE%!+TrpBlB%FKJ^i-Nex@cJ^+fed2CG}Y-p!Si(Swg zy$T_4wvHqrlw)Wx2ZYckdf^;CIBuWp9d_3ZGvuIwN`i?F-!V8g z53lwa{tOCsSdW`a`!zi2=%T9@$>s$kg`((Cb5+`OcwXg`l2&?!Hkz^TeR9KLzGUJ< zgM&f(Y6yi_YrSFWoU6?GSA9?dtX}dsn^k_QQKlqkx@)r%@>=TpPjr;&!5RSD!6UH7 z;f=ky^I>NbqdFcIIZfKM@*#4QA+@R<0hKxef=YrlA<8iO&C9xAe=u(w6W(p14KGTB z6cd}J@0~YR?slQWXj7mfO|r8>8}v48{^;V&66t**1(H3yH%)LuOWIcD2AlEHhf5?+ z<*)%BlM|1)$PGULwg`p{Rc9GXJWAGV7?wb8Sb&|LCDqx2DWYW3b|-`jrD;(#MY`<< zkRWkdUs5QDrjhU&9PM57^SvQz!H0VX-BkKW-iv{%y7{A z&2MSPbX`V0@UpLBzW7%&32BYiS}v*P8CU@MEby)^eR&EOM3HtxK@XliQ`$ z#C^X$k-_f5r3vOBZI%2yAqJwA$83kMF?Iwz=@m;noJ*tBQK)}Ab6^nOWg2vNVX9|Yi6mD8n3AXwp}A$nx)M83W)m_p}Da+>-VfE z%)c>;-DCQWjGoU0ruB2>Op`XNWE6syn723dm*q#OgAH*PIDf zQ4Nky3*E_Qgl=@Tbrg1<;@tnh=CG1hfyJ=f;`{rey!9C>Oz-6B&!AO+II}Ju6|qlUh8kq*CXu*)B7P8$zmq z!430S6Mxpkw+-)E6W@0ID`?^Y4cmFBUOH?<%Mc^>GgL0o!saEUN~f01Ah1~Z{6}4aKkNAO=4*f z{2WH&`x}xSR@>aJXESoiGI_@;+yJNVODYtX;x*+(sz=CemBuLqHR{^&2?M>5o}k<1 zUfKz;pkJm<8yH$v?2gMiZ60j?LakB4P}=J13qJQHU0tX$gx*wnx;Bg<#Z=d-4YHC! zK*J-txc%Bcg~SQHO}uwKUK3PE1+YE=zY2L(auP3bNWf-h&CZ#+Ch#TWW;4_(nST=u zB;%?{A@LDZkb5HtHRN@GnUYv5kSD@$23%C#37Y>dZQqXyqY4fq{sAFw`syRP_;Oim zbLgVMQsFfq+<~mG@MX9L0lX%WBArVR3<5O^>w-jE?IvooWQWa-*AUSYuT23I=m*$} z{YD?uA{u!FYv!Vq`E<)hAKofNJIUNe^6J)hNv&HDUT0>Yw=QtsQ)YTcc>!5yTqvFo z9X<_?;Gjnb%iv_7)PPsAND%gFfYWGLbP!%GXPKe0;4!;ptK{uJXjGf8!!9prn!=0; zeW_g=4nx{{Ivrhs?1->Hc0*YpKh-?H_VoyW24q8w{TxwI@XH%(VRYH4m{FUq2+qJA zRBIN%u2}JMuyoZz?mb*mLFa7Zo1HWXrqK%i;Wd~5I5?N*^YO2HJ}wB`tGrOh0{JRtzB#cT#TG8)+lh!c-*hC_jy%bpsO%TK10A z5Dar2ou8zO_7BkkkLo2!F*%po{BsJ~h6DGdxlSZg=TgJ- zA7qhm_zzej8w+AhZIBTRa7+XH(e%Z~-TTGoikt}|D?7V890A)&?4EN)H<43A%_p1v zvkNY()(SpaSAD!xPg>~ah3$Z^4WbQw3L#W{rJBtXf^yr}l2vnn5Y3WmBsSMT9);JA z`+65+%x*@dzAB0ByWOVwDVd=_5c(XFVn2-Py2F}oN^aO;lscBQG*sumjc@@6=zj(% zs=QKDazqpt^MZwKI2Taxy5wd}kBlPpUCr-k!7%ro3SSsh&Nk%FbZUW>z>P@Y&A_8u zwi=Ds=~8lwqcbsTK%!eT$jfjL|2Bf(5;5+H&FWnjfrp8mfyCa}VyENnO|lbU>>Qxo8s(h_zD5d>_%uXvEVwv?;_;C2V`)k2X> zfJjVzV{k4}(`|BM+qSI}+jjEAw(S$!wr$&Xa$?(dPI&XaUw!x9`7yoso|&qyn(3OE zUaMC-VBBOKG4zwsnH{z@Si+Q0N;9X6DVHrwdOWElQkA;Wl~BU27&! zZ)b*7F8bLofh6#5=c_fb6Z-PzDgH*H&g=iGL}@45)9G%V;xfQqZx(B8`TLl$qY{P7 zP=;6q$rv(kxUyze!8VPKc`X>84+^&66+uhtF5L)*f&Z!KUUZrR>#yXB{EcejrN6Yq ztL3_6J6mE)h5ufHeUZsWh*E~y^5w0pFp~hBhHX5cfQ@<`ZMS~SRd;B8CR?sOrJ=g_ zxXt)3(4@mh(hSL*Q4fD8w4JD(;02z~E{5&D>XEDjOODA~lx^auspdGYgWI-&f-sUo zcW&OC`wWfI%s9D$s_5Y(!&-eTlj$1vBPdJ@z45Q@s1aPfc=N%8N~>_SyM&Y|wMH}y z>kn#4dKELq&}oIfp)70Ty&hm&1E#tl{>I{o+TpGD?VP7OW>xn=X2o)QvSRG!-4KOQ z!eWQj84*V^K!~es%tHI9qxa$FU>DIBuD*@rrL6pqSu2AB^)IxI_QWQNvmO+$3lMZq+bY#HXuIm8 zsmzr3Ukd2;T2D{8rI_~J&G%g6n&Tn}hRLXhE{*aILiju{Eh0;?dcp3qXp@!>QG{Z) zM3LG^&${ZYZ}&3vsbXhAFSVNK1Ai??_t&R8+d$W&EY2)%&U$c%BxMGRI8ab+@l;& zpADVW!axVOW&RXJEeGCYHoe=#ZujtVV{yqIV^Kg3>|B*g-8Kn{B7N!LRpa=M;F1U?-kIskd67m9XPm5md{^%7=flD>|*&Qe3j2x^mFq$UH)*ac7uSImjJq zZ}AmbE?t+5y7=@jshLOQio9(6;K|!U=32Z*8L72n+2A$UMXA3NOBZi-10>Le*ovbe;ap*vXAz`D;4d8+<# z>i92{TNoVSlM`;B+II|M#(HXVg;CH-j1bu-R8!E+0r=Th!tuQKr^h$U1f(68d!NA4 zaMRKl6w!?p;&lHWU!A440jeVnCPkK}AExqycm$4yi80q8w4hXP-dPY;XK$H&p#(+) z`_DnX)1YpPGt6i!sa2P-2^xt-x5sSn3@gVl<-b+ViZT>P$u)K6(sm%LdzBp>Jsmte zy`6nL?<2e|clw0)Jfvz&jOb%1dH59jQ>Jcxa7d8IRanV>0c+(#JCe6OgJm5w=&4B< z2-nM2E(3T^JfjludxkzXJ*A5j$6VM7j1uME5aXxSUu4vgy**SRx&voQkG+f~yF(0# zy0b&ZpeOs+sLvP9wo!>CUrM~>5NX;>Qs%|z>@2xZ)F>_Ox~Pcs+Ojg+hDOW`3glo; zn#yO|j^KQnz%JFEWLGt{uFYp|XaReHHuJJ>38}w-XUV~JeSGYF_AUI*!)OUhz7i%+ zm9A=SxXshGK#a+8kr@3fX5)%oV4T z)*Soyd_Mp}zK@|nX&^*l8bVOBd^(I6Eyl1J#7gq;w@a6FRN(6r#Lqb2-iQ6|1BU|^ z0bQkUAu?}9WxRrHH0&s)33DZ$i)_3!b2k(^{wvHSGJOl|*lRp5Ujie3dP`T!%`Fo$ z1ugUSjhaQ5v9Hv%t7XHD23t9{af*{0pHHW1S?Hfq9xv`8d_e>Ha0Qi%Sv84sOtU=o z1r-&I?d!?J1C~GDM#V;)Z6pe|A%) zvzC=Dm3Yc2o5d(_D5vI>)!V3ZM{PDak>w6*J z24}w?@%bfsw*7^;tvXYo1MxUzslX3UdB`lAY1`UtCLX7Xf`N^PK6an&hRu00-LkoP z%prKv-Yx{yOc^ONou1Xj$*t?e%cf$*7(4L8KgIDq0xZ9QGA30^+_C$EwX_!1;uIP>FBhFpB|xE8o^`d_+I|pwWH@4I>+Mh?c5tZX>6Bo_s62y zEj(M-5zt)sz5(UGA{?^X7kum8={WSWl>*cPKftR?yP%4H)EDl8{IL>WOgC}@nQp9G z*7O4n;JFZ|{-rYlBnem@xW7DPKs#G~_OCteA*|GbJkf`9b;&SJZ6og5GfI}#k|c>V zmetYOZ6tf7DZDrJVK^S}Jq=53>P_9IS@zQI` z6im0)zY=&a4mU~Oxo8T%y2WSxsVtEqXjW&fv}0y{;AN_$V=qC2bh2&d8(!X@px*s} zd*f%@1Lm@NA};J%)LU+;By2In&JK@u%yZOh;~-|MNL59TIQFfs1Tc#q3~w$}Eh_(M z6X*%hM0|X;G6*ERA0F)VgwcP6PIF^f|8yqb9)^fy88nL2Vj41)AvDo3aIelUevTVF zz95417-ai<)O51Cn(JX*C2c1>kkoZI5K6e^l{jWl0`Y~%4+uQf5*RF~=7aa~LKV&R zTUlBPH*n4F4NmN;%qMicU5B8DRjs#>-NhIo%};!&?Dg?|OkJ2Y*kIfe4p38S5qb zkSRwUN_*0IDZH+N!1AVW#qCV^=cv^`#0uT|r1;3lJ;B7i3pw&h zxP8;&3hDF^+K~QGPD&v;#HNch-#`@1X<~%p&xv0??p>nUqpt^MbX}c@sm>_If_gCi)&Bv z+;7-|f|p@tjpkcueG;{4ADukRI3pL@;kv0xj9pqpL=s}W+6wB*Bxqb>u@}K%c=cu8 z$)MXMuyGK%^LgzCdY*DfdocMV2D$x|naWUl$RE2sB=i!rP z^V=>0cwMg$PU}OvQT)SMZd?-47i0acO!sj)7*Pp@D{~Lt84ZEX#QqP7caJ?;%QQZX zJHi)Tn(`d|C8HhV6!P`~ClsuK47Bg$n2eyql{;YjIs^dCK-Y+C9aGd&0 zv%8uJ{8(AfVi;0GJ98ndch{gKFZ!W%qDQgiby3FMo9=1iFA#ydUDzi+rmC1xpt?8L zHsHF@7H?+qC{q~6Ni`HgILT^a*7in?thD}?h&gc8-dKn!Y=`>U>Ta-bKf!ejRW(Ez z8zjVWQT^h27fnLc4NCN9E86v>)$=tmwG7U1T8`+-X+_eO^U?L77ffvHH3zx?H`sLf zKE5DEnqli-JT5NU0RjbJvu`uCH)R20Hj%azufzDI;M;7eh8^_vorvJ3Vv|Y4xXWge zm0HI@bLR0KQW&Q9Jm{q8fcC*OHQ~Vl(y>R!W3PoX{Du*_@I*-)*b4S}t^qsq@;bhd z_|E+Mm>^Ky?z$-MdQ~CwU&{vWS4vjq`o;M*T*9td&#Z9em-WiwF($;m@5{C~{cJq29mu_p#?3(|Q4w~IsKFPf|9!w2mPMuY!)T!Rf8 zUlutMvN()uw;qr@FKksoE|B0mh-f&o8{m?m8RW7V)% z5*TWuX~>1r5({sJC``iyS3ZdPL{+O7c)-(IPe!rrYscR zkkziQ^RGMji$i>uITb#%GO}?Bcm=hgIdcWytTvm-J$OvlT+KEgxBU@62{bY@Al{DO zIOejDIhS=5pl%=5bkJtzija{DIjnauvIPZfCdBnY&3QiK|V)0$9C;}#9WEEkhG>S0UuhY09jry?A>_o%g-vUg@lnoIVzkzwI9kCT_*y?Y zX&J)p-!*Fu6R;f4L7Km3SQie(DTeTC^p?{PqL~{k{RywHWJ|q-)kY5{HJYoJ8^>>; z-oMwp-jBv?tn{3}vr7eBl*AJjwh~NnbB&+nlp2a0oOxN6lUbj;M-LM7B%L{0Bm#&8 zB(Hv}dc-BBP9|mz0DvT16A4!nMxM8)Rfb8zhd7pB-l}PlnebhCuMKwzo8xrXfX>nB z2oq!kS9%CelG(oG;*3&)8=0scWg zcE;#?M{DfN5?Zuj%S-G>cIqVq2FW!x1%_WU6jv8W3xTp12=sz$3f{;{@Qt^pn9M_{-Ih>_rE9f zMD2|+D-z2(Nn^RWf#W|AFOA zPIkcl1Iv%?L zc~PD9m#v3D^d0Bg_Fs9M0yt|-emjWGRLMD@(_`&}sboU$=OKG4HP!rLGF(D5C8=A| z$y=ZOt#GxTgj02eK9mcGWhIb=J(3H?j*VRmPJg{y*c+*I;peJo*-6=~le8Yk?)JY! zdMUcYHPP~`g2fy{DY)d86piM-aV*$jYK5y_rK}992XAE2f~m#mHWOfAN~@NjXmlWO z`>hs4LusIkK~tw$oB^@PG%GgWNETE6YLHt~rpPUVU$JTV(>H&wmpr?Zcr z6xll5@2E5*8sZij4fx2&#+bar$;m49Xc8Ey(Kz{tsb;04W`S6&G>52;rlhJGopq2^Wa!Coqdu8v(7Kpt@tu7!6) zT4QY#BE8&A(q!sc8uk@jx50VjyWe>;(#ITJyb3)X<^)h^{fL)Prbd{95;k8P42JbB zK8^&Ftxzo+?%{d1r%suly5P1U&K|rF*)(fWgI#{N$&o_VXMW2PYo(2>ui>VZ>zXjP z>>JksvqrCN-a?^@EU^HcuWvJ@RO59mmf{3jRPWss_an{tg7L+uN7Phl{kJN)>9P03 zUSiPN=t}dahr5?S|IdO*B3dt>>3rcb{Dk!rYH@+^1kSlO(_hJ7?Q5*D0q90 zJ9UBLoQg5$gO*Q6s%r`<8L4sdO`Lah);+DCy5+uIs!Rmzj$CB@!{8k&gM;&j#+Qa! zTNRW_g!Bk_k`x96*^3R7LJHj+6=UsiLjh6OcQD6(3DR&uCln{giTh$JM|+b1ik$D! zYQAI`Bwa!?`QEKAwOgDn)#gCusjj?Q0wXNHs0J)~9q)@mx`hRdyLBs-y9x>*wn_W+ zlFxI?Xy^DyPD?bV$nZ8J(S9TH@Iv_|qDS`hyF;U@>zahs*`9<|LLUbN)Ddw1pdD*O z3GC7?3jQ|=L1K{eKNjs3549=fww3YYVdR(lm4ww(T^lM>HPZ}Mm~Xt666$!N3|o6d z>0zCCV4c|Tve9L(=SYCBdKoW4w9e8!o{cWO+NmbB*zp|X8&r9EhB1uQ#RDrzRH6J= z4|1i6!O5{2zcyWG3TNij8azYn3N)&m2hs8;wLc`H}WOhW}# zez-MVeJ=V0e~A=Hc)30RElijaV(#TVh(gu9mg!Cy*etCJ;>aX#>1L#OXJVl5vtwM+ zxQCco_|C#Q&)hZ2Jy$-=z;5VZn)Iihqt7Qe50%NXUcw4#56;^Kvs64K&sPm`K8{LO z{xjU3W>smQF$n)m*E~*@oX#5@IL&v@F5CaNtLrU>xdxOsRW4Ln)Jhqxi zmQMEA9N3&n!KaT3dG?Ecnh2{v{PELlESWaLa?1A2>(^fr_kd}BCJ{?jnN&f7v#AV?L(7&7@-Zy>Q~5bkmqkqjzxA=r|0u<&Z{*Y z!7+8ZHEp71r!JciARQMna}OL{kQPtqx(Y&jYAtRG#@oZwMtT0L>ZV3r+0tCvNA-1! z@sjfwVQ`gotOVX>la|GWl=ZVG`X=K%J$IHl8(WWAPw=B`gsI`{DfXLLl9yJkSth@~ zmv_LN2T#`ac9}%!`|$KRx19wVdBQna`$=#dgI0!`2rH^&54FgYe3HRk??duC+ zq-f3Mvf;*g+!~LA8l;ziJp2%{6nmXnx<2|5jot`_M|7WLD?LW`#hxNC$nhHkRMdqQ z`plMNBv(1FT8Z>)3zQel8y9?Bx{pO%dbb08Pwzsu9KQ_qhq#C^u#|LteM--3A0$y5G2vQJMt$fHH zbLW^NmY0yW)t6wk;RG%Ras)>Lg73%;9F^!9=Bj07^Q1^G4Q^>JVl^*1v$I8svzU?| zieUrpPUj1^El}|k0C{7u3bEjD`8LxDT%_N=QivG_1&X=Vec&MjkJYvABPowDkqvz* z$%G^irSZqfG<%^hEh%Tn2{@aU6Dhn-r9^#WxG+{}nRO8KOJYv8owV9tEYeYK%qv~b zR(27Z573Lf=29_kE4QUKM`D4Ff3ULH(+@}E@ID=la)Y0Hn>SCrzoBB)Fw6#xz;C%H zeTpJ6=6We|mDhy9cm77v&yCgj`TYC00pg?7=jrUwa_wIut+m?UIa$i@|CFXy7>5c^#1dvdGb^?;_c$onOOI9#nM8SU6SFYxtBeVU`~`Oe_a@ z`w1ZX-&yYZP-;+f9Z>P)AAep(9RCv~N0UvERYt`i|Qph zqhKD9!m3p#2K%Q}@}g?0h*~O)PC+PAPsyCzJDbA9Rk|jg$&JRzV2qz?)*Vn%J2rV; z4e0zPOEWQv?@&)Yv@9p&@8c+g~WoBJ9 zLW6u46G62R6=zqiuSULp>Y)C?I8Oa8(lD+J#t;M6{?%DzIt42DpR0J{+B!Gv4Wj1u#_^?88v$F}>3d!dHInOvjeO?Z^ zm|E9PoWWgN5|l!X$(n|^X$a*3WGeadB3FFkU38}8Y_h`LJU!NxfzmTB(61c>`&a=x zgJ^{UscO+f9V%iBO0~g(9N>gxRewrjypDrB0QBTGhFoOA=o< zx0GYV6@D=ijgkY+u#!SMqMq{spFpXTny@yW)5J>9Ck*9X{>B&3)jzdq`770UGw1&W z#n?hsa;>J=F}K4jb*)XLZ8OnG6M3 zTVy=i>u7T%nzJ&!;PTG4!N&;Zv=T*mA)b2&8YM84ihQ;p#kw*nX!4&hY669tcnB4V zRvGbZK^RXr_C2nYL>siBN@SnwJ6fDnJ)||W$Y-6UsD2{Rgt(Ip2+nf_z7_S)bPz38 z&~g;0m_+6Xv&hgML!qzgu3 zpDUCcS*k!cV4wCL8?8Cf`nVSXJmCCCxRkq5pH3J`#4aKEEDG%{32il){Juo*b~y;r zCC3^3WXnCviKG~zl$d4dR{s7&X45P@ufJm9*tvffj%SI~WvE1wA-Xt10+RZCq{UCl zVa1&VoXa@_KT9`tj8Ptb+dl-SbkCCs_ZAA5kv1~FVu*bNh$ZDk9fLokwU{%ZltnzK z_}x9^K8cSK1oSYtdjk{xHGv_zw^qzB-OAQ7yAt>p!U#n#@uP0RnqbsVhgw>V+FcgH zb~C0$BzLe}mG}ud4kf469DOvyOR*yT1goFE_7Badpp8dpePnH&^Y{1#E`417aNw!u z_s$>adELtKUzcz0q4o1-9iQrSM-8o zw7OS_>Zu(1t{IbN_GZD-30_M6L6a{YGM$m^HLcic^4$4K-Dpg|o$TDhx>$Av4s^f6 zCxABNfv1nPn1vt-Ytj;p!k0@pz(+8Nxm2neU#<*D-3ftx4eznLBlYCdt7;P+xSGDo7gYEBf(lWy=N15Q{p8R3RUH5xs{h^K!I zWo7kj_5ObUmg~fw4)ZT%z@>Sv{a(D&<=3*68B(X2YmGdnJQePkTeo&9!Ead92*j_f z$i+sNL96^JUu6pJxb8T6jgErGySU&j-D3S6HTpE07fS1>*=nMTZm7tJ<$Mm{uM)g@ z@W27PNrQ^x_o>K3n-%F8cBG5QJ#0s}mS+>ZMjyp_s9RJg1_e`@KRM<2<@7^Y4P~;@ zS;tERaxz+gdD3QmfWNc-b-W_8%(lZR%#)s4K}&dQ73ttUqvrCt!4^G&$sd|3sXI~3 z@?ySJP%O>AH*W^SzT#*B;aR?hB;(fl&Uaz?>Z=4S zIHh-6AWc=h^F(x>IM>5DH^9L89<9^srzq4T)N{7$d3iFxPkkggZ)DIc#Th};(Je8P_D*4Y}+rVYHk|u?`!bjM_W1r5K%=w%jg2b@~ zXpR|^mp-zPP$^yllSEt9&p-MTw*NV4e3sOyC3Z8a;&Wnpn3%LFy)O_{3-EpE8;e(} zw!%lsk1q!b=0{4oTzUrki9BuiCIe*pYFFMcu?m~|)R>&Cj%YlsVISw}*MvK%yul^#H(lag8z7hl+o^?3t-d=(nOrM z5KIhm!Lfyyz4Q5cWTAc7{zrAk(|9r8`q8d>VO>a;D&=H0_^;&Ok#OHuSG z-tXPxb-&hcO~I`?I`|iQrrF(a7U5%l&NMHbk}@=D_?BydFr?|*YGa5|Pr(cSc~BuU z9h~fkh7$tRs9mH198~|!QJGH&1kWG{VqTQ-Dfh>ATOeDZ<`h0Q@bc3!QwZ2};TNl( ze3o6TR~0@dWppf(($=%?16}x9*~C(4tXt zg5buXQ8K(>`_4Gy!fKT00QkwgN_NV2%Ch&KqJk@wh=C3S2~y7z(t<1GuwPIbdi!&( zlEQrIu~!}n1Bf#l8-@xE3Ya5zyHZ$z$Uz~yvu3oVHSP3ZK$wVc>ru({m`Coi4ZF%a@64K9CI}^^jE43jQ4TE&3_X zRBa41p`+M|eLcVEspOk!%)}1=d5X2$zNhsS6$`7$p)e6dc`yo=dWipB7a{7O=q-`|PB z-&%P)^d*;9EjU5T=QKlzFtML6Y3&VO7jzr#?Yr;R_Z)cOm_s(4{`fLMc>ExP0 zliPg(192RNFviIQ&$&v*c@YUz3C|Y1)R?KC4bPcy%Uov>jPRHA6%1ELVmo#hdM_@% zBcu!(+7GIER}F-mjob_D;EA~8IJ}u7*g7k4FjhXf8TK)rpxDvs{UmvJ=M^@XPp{G2 zf?2d0PG=X2q|LflOF6ci6Jk3Qk;g5gKeWbg?-yiwrzT^n=7xYVO;<;cyQj&Ek=jlv z+P>eiDP+ETj9n|Hf^zgUHcdMJs*$?&oF}xsJe|p@D{b4ESE7bZh1_l2=>|*abTFrt zC=F%D*+lpxd_E^ZrK)%8g#P zx|-EC18Af#N#aXPMwZSIPuX*mrBLq~P2FfYlf0Syt5k-GRnafwj=g^g&;Hq!UwBQG zBi*!$=i&ghAuP+mn-f7}*0WgyfTlRXM604;wsZCNI0y>VVO>XkmqXg2ktpL&ZI^}OFD%Bk$SYfkJFe!FA88co20})i zwsNbrzP`i?=n2Xb$W;lyfY6{TtgQA*$w*6>5&&>*C=Xy%6G57(zazwqsji8tU;^Hd z7Mqt$3qi%0MF6Cy)Cd=?&u6i6ToAoX{w%KsrV;ZU79b80(tU2j|1gy{P5e>uI1fHc z#&IjO(P{ZWX6KqORuAP5YG(;FRH$pKE$Euk);Q~a!8GWLdq!Uo*vof4J?JCYvyiE3 z&mg(ZSEG2%J%V4{sLwU9=uzjC&(9{f%b1c0Y+6F2(FMmvDQrTX-o?P|LW>wr>Dgfe z*+tu{;~?+jtHb@ODppy_@XBD#(r~+)@TbeW%ux|ZDZjqXxf@m*XWCO{cfoq*oeUS2 z#8OtUoL9}S$^KmhlPp9(&{O=DV+!Yk-x;BFVOH)k=q*NDQgGIfsRS-n>?S(v-a@Rs z*5GWZ8RqE!Q!v^(dA*4Kch$W}9+5{vtSyX$2I4eE=7XXEhmFtT{d%(4QNOIf~BmFDA`f zz7n{AwXymd4Kf>ouPrrgCgl`mb1?yc067GK3n1TAjvy_ zR~z2^UY234T-N;6G-zOd%`AJ#9|daP+j70;lFF)%=^FgHb#c9v@=~Y+fRtay2I?67 zRA;TzC}WHQLgLG0_sE_nNk5%)Uccnl%r``sl=Nm4y2{71b%rs)Kvm0c2LKP+qCLZN zN^=AOunyz}KUG8s65sa<@s#Q-Nk?Is_tQG^#2`&8D$LEKq{5m&g5r9Bsap4wBs3TT zGr`X@e_X@rTfAC3tc3`i?JlS{wEUA{<%RWjnuEgx#bC8gA%yH+<{FY00{>-WN&#|Z zoRE%5v&%~s$d94#YD=vnMn?mMj#}{U;K!09}-vsKe&eGI04;$K;BN7RxC_z)H z?8Q+;_*j%3QDBCtLE&?g^|6r{9uv@SP+CiF$N2O3dl}7!s?h1nbI*)zvxVWLAq}-` z(~)7{KTe|&#=CSND)nfz0n}=~1o)js>C_epRg6Yc)g&Un?1Ot|uQO4}GirC1iRzx! zkL~5SU092?E;}y)HK7=Lq&_Z75Qlg}eap@D%#x4ig$t%mae~{}zb;I&$xn-|vxFX@ z3U1C0x6*afGl4jUqQ^vu(JSBhfNX%=;w&LWtTa`NERECo*F_~s2_ID!31aS7{(M~Z4yT;9Ia&RBmGzvMLX9d z4`-RcTBWJARyNkMzRuo4-OvMTyAcUDxYQS1mf7ABtqy`?lh(lwrvWls?2C)ITY86RSXEAG`(E{GG%G?8gv8)WYq|s*k!DL_~-|A7u z{03|7NP~j3HXQ-jyVSwAug4`6#=lYa#hPH@gOQR!)8UY=T?Iqm*XDtd!>F zKgTw`T|4d z$m!LbZ5edjbz~d9flkyb*K+_~E~bH_5%m2)pbilOYGqtcQw`q60SduT=gjWcENa94 z!^S%ysINkJ72>FIZJXwV%HI2c@?UU{NTGNQ;4=aw-hIRQ?Q<39&Ou1JwBxEc^r_%4 zI0HJ7%#+Tu#4PdZ{?V3FG4?mdy7@g2P7uYl>$SIJbs|7>ud)FRV>0fsU(s;M%k6uaFeYJAS?i$j3Pl`3Gc{(m&F+H;t%0BMR zRm~{zGn}m*ZeO7JVtmAypuy~l1A`y~*h)17% z_HS7J`2!SrC<1zfAhwMN%X1Tw@fSkWmrs20WH)R!Hp1;*C8rWtx6(e@=Usc(mSK?| z%Uya!x0HYi^0Cwt|48`lm9rnecV7NCC#KwASNy!#?6Y?f-Q3cbS5S8^89Oa^W-muy z2>Gs!$%7Aeko8A*cUP)9BD*hEC4Go@qn4Lp*v(qAyMCU)@1r$uhJIg+$5K$7ED#_1 z{^R$n;8x($x56SzgcwopoZmx&OkrZ;S2nDyUv>A%piwNe&vjVps~gsKn|md8q?=C5 z=uWR`?gQE6rn%YV%MX{V^d?lj3ijzHv7k0 z8SvTtJ%4!?tf|x?x!6&Tq-RD;L#XTZ-0~#x-OAX@34n$Q~IQ%{G>K|=m4u2X4}SyafG?Mqy-YQDkco7}o))H*!s*B#>QDUOM7A zef}){lQ~`+JAG34KGa9n4FMe7AgWV~CZYdY9nDDg->AxS3+60+wumKprK+LqZG)(r z2GG}xU|uuUb6J?Fo62_5r6y-ZF2aS2RrqQ zOMc>~+qGE)nnynw357=um>y9(^01{;4PHBg1~qEe9J9jj%#2%0E^?B17J)#Ps|zvZ zjCoNnK!KirsfTa8q-f${0-E;F3N5ncreKpHd#Oo*Zu}0O%SSi+J1;MNjLpHR(0m+G$<@G$jB9fhC%$6VM*TaL3!6(c zP85lT6hs!tYUz-)7?Tu6Dg#K-Gbk9dB6-+;Bi!_WPSuwyq;lh|7C0FvKGuFgx zTe!I3$P*UkH(+`fv+Oc!v>O2{qH!w@%{?o0S|mp1{5{FAvgH?Dj@h zM@bDWKSeYOL12TEfWPttdunJeQ63=r^MTec;8@N;{0C1@uNMlZeZ#ccXh?gYxAf|x z`5)|Z48Aw4rh5CmJ7(aI~KQkZAHs_?ol5Hi|s1H?s4x1wHn+5EXZ! ziwmq!cgI#Ji|JD>cRpcJS;78OvIpF$3e~5m= z&-~nf?fwX*{tX?G#-qbeOsjeJdtWOR7oU6kUr2O7K5!Fk@ZT@nQrI|q9V8XJuu1* zQUiZT*yrP~=Y_}>-90XS1|iUk(TJt)!Bb9n)AsGZp)@5Ca^U;0PgmiW(VAUs`(|n- zENc4jgsjz2b!W93d^@>pH?*r8Sar&8_S6k!w9qN#i9Gx$FPg;WaS?T#Y>eK9Wn|N1 zQSqy+qlSN>h#=9jP;XY3M_~d+0K9zyJ56I=(_4Ef9z4BpjoyPClaYdKqAj(TD>~RqKWk#i!A_Y&nfDWSPUynl`8`yi#~fmG58gCOb+d^Zw%&JPV3~FC0{i1DQbWb1H7aNW7$+R6;HUq;L zUXPB>2j>E@=)35}8grOk=OyX!G>DG@dOf28S<+#aD69k7rOQG9dZB|GY@8Z^Wf;b^ z2Qw2A46^`kg*iSg=-g_+=>A*V@9FwBl0L!6v7{hO5^6p~p8yj@Q%qW@I0u|T!@K&M zS=M6YM5dzrED-H}17pV}zI;Wfa+7r$g}tTtc}iw_KwKXo_{g3vLwLUV7b!-4`ZKSL z`n*<1zNYzt#4DYbs2H=EqD`9LLeb?-VT{^K{PK_TaN)W|D{#znmrCGJ-$VcddR6BL z$?2^dt@59wf&MlC8!#M4RL(`<*YmJjHi>Nw#YpB&%zE`SEFWGrjJC_%o2^F>C9!EHhRn!94oF z+6@`4{X1Y3evwm5>G3X=Eklu6-ku{(aYn!cwBLB6d!T(>>o3&Rc6ZSfsiXU)y}f|S zvn#u!q{u;uB8zl~X0F9|)mzPS5h4U5*U<#waSRlIh;)rcQK+AU6JNMUi9Bo)y6l18 zdHrNKe!-@t<5q*MljDtL=_YqOH7#J40X=?EIZ~tMFu%=c7|-k_G(+^>nrU9#DZoqs zUr6M5k718rYZgq1OPC_4ESJDQ4bjZAZK;TMS?)K%1`BZD{9EfAK%a+llT6&Glb3}m zI-YgG`sq@fvjN+?DMJ8-IDL+G`8!3M`t!Y7t?p28<>hmDZIpADZ0Eejv$&V&3{q}$ z;hSGzou&3Bs5`r^73JA=U|Vi=1Imlrz>ebbDyTcRp>73_zX_cp^)_lP$n0U>Ihh>j zS@||ivPmJZGnPgU<;!P7^A~;U)}4@Xb+}lL=0<)GLqg7c4}Bu2H(o|!Pp>D4t5du` z38qlzIZE0?&^S{(ZK)^(=#{nTqkl#Dlxb^A$j6Gq)FqAc!B=| zwLnV0dB4D>v#7;u;aO#-BI9yIQ$I!_^ySnUx4>GAizvvU$km|)rR9*R$hdL_DjFyX9 zQ<~F=tB%ay_T@C6=+jrQzm`lYl51|G>9ukW;DqwDOJ>_Q|pW4teh(=tWWykb9bKjQS zvjw(6t=1SnZ+vNBHLuMonZ}YVVZYe z(x=WN zF4er(^$5Cj(9rh2wrk}CPDy^X|Mkh$pWmIlJwE{G4)&1KEM_q&r8nqp2`hfbMJbb& zOSo@8&qnog2eh+QL`ho_sfD+weE|`^iB=mQ(JT|)A%`;t(sy#l;&EN3jGRi!v%FN+ zG~>v8hI*?fbN)<}y8mDO3Kp(laT($5q!wJ}S7V#wpCsZQgQuB{Xx_K9^<6=$z$++y zKt{i+{b_`w%?qKs_Ci9L*(F>7e;d_XnUZroCKlJv1+<*8JI`*-s?#zi1zXS}hNJ*7 zZv+y$jbawcs4lJ4E)HdadQwa@o4*(2Y11Vt!NW(y0 zJP|xae|Xr&P(HRjrDtr!7~oFgmlfSrM0{o5qc5m-LzC8c`|FF0B-Cyc|1zLyz z4vkm59fJKl6EQ?Phg%SDlGvVk`k;*EBZie!@omH?lUc&6ZK0F?k2c%F@N2 ztfx?F;8wIRkDF|4(`m!8_{yD2G^}7IKtGtH<ZyuoHEHZ|mzUQ*IaP`k z*(>tD_doplhsnVo_xHa&n*8p&U+;gI!aqJa_~XG3_J>~|9PICZ`{mm&ZZ6Ni;|D){ zo0aJ;{`ABCx9t48z(x)Z{`jk&fi-9m&(uT|6I|j~VEqgt3B%6$m8G{8Idc5qi4JNQ zNw?kqSQH&2`5&*dVLO(Uu3=gJh-#ceFNEP$Jbzw@bV|VB)qCT>AckQurkz{XsVm!O zrxyO))Iyu0;&ejL`9e;|e=D7^r)l5lCtZm@0Z^H3*(p42^`bRBXelK6R6ZHwA;?8s zcT4P7{_3mqHzzmeXMetUd-BEkpRX_9ynpxQpU>ajoL^mDU0k2HIriFY!J9rP&yj|i zT$V|4DH0yFkh&J|g&bVN@IK~;B?-18$v)$7tpD|o|8tVu)0Oja1=aQhq}873}Iqgp4gTTw{$$c z5fM$kg3EH{90m?2on@k2EP)ef@e)INTJLhg6j_N90T@}+0TI{2NqLNagj8k6)SuN= z^^@UoPs-bRcv=r-9Y(CXsiujz2u|C3v;KZhBzJ#A$1ak47sqXlmWpH}x$Q&=v|=iSUCc?w7zD0=Wo6~cIi(L> zn=nk4e6eH&%0Zha(2u0*K~eRE$JnV}>e2VA6}5L!wnW*2XFv814b(g4lqY4uZk7d; zOOb@opSPw`gQj*YDxrXvX-2xkfM=j9zlva7m*g>na4gCb785#Gtk6;$r~qXY!NKXR zDbN9?+ZPJea_54$u>;7pl{9eJO`&>8K?U((eVQ_SN#oLBQC}Pxl-nCf)ip5(#NWeQ z;Qvh$K4;M?O4u*m=*%JNt+Th~!sa2>5o=5OCvi{2T(OMoSM^B_^x4T-p@&l)sOLHh zilIsg4m0H{l;3<q%w2VH& zR(6J(ouOuDsM#56c7~drp=M{OX+Aqc&CXC$`{NTBYMh?Bg?;48^X*UFKvKPcf9Nug zxH%5AjW|n4OS>P_HsaNYN7lDzXB!FFYqGPA>}(_Tzwc}#;mhUWs4mm7 zhkUveK9hTr0vMB{9gReffdmbKxdOIubP8_*TAp+&sYGq8p0H`idYA5`bxZpJHaSK$ zR$t|+EF=~THkeW5L*^?s$pM&(Ci&7rGT7u~u4ydPUIc^3l997jMpGVLnGu{MkQ>kr zqNSfXqgs+A3#ynKhf@#sT+S3oQV)3PjO$DijE)Hj7N-lKQx6G8G3rH>{ zgx*n}00@#v^{AP79$6@=FO#h^AB;S{{`ZE#-P>a5G!=zdD~#PdfPEm>S9T~I0QV6XO@2GXmDNuJOMtDx_DDzz&?{`HUl zV_ulJ0sQM9{~VMt+(e}6&5f^?{bb8{}s9+UeC99MVjvnv0~A z<_cKU;pSjFOg>I%27@q_T48$%>xb!lVy1cc%Tlt5TC$1TgXRkpB_`-iLyUg0QIO~`bUo=*7f_WKH9yL%L{AGw&q4a)5PDg*dmF6 z$l9rwIN)4NQm#8$r?4WdkTrMd9V@g%8;M26zwb1JV9(AksMk*_U|dB;6QoXKP=Hdp zA_W6aRhjj+iiqhqPl*66#5s&D6mqqJdYO4P z2b-4GR|=6D6jLnM?D5J*3D?9_mNVd64(Ce=3v&u^rg@Ckt&5DD(v&5qRCZRl{fRpQ zEpTCwg9*U(3!A9Fw^u_|eC~PLj&K$k))Wfh(wWRwqD+{kMd;)0W!I-F}kgRId ztfi;Tg6VeDCIWS3xS7`NWqO@@5D?8W2J92CIJ@6b!f1B@4D1-L95e$lD1a}HlK#p- zUqG?!&Nf2Ojm&0WTm~NgJ@C#fxNZ(Nm9xZkGqt7p@o!!X0b?< z6@s>BuHkyLkEh9$X3*dm44v7efKZoxBe%+xR4i>)5;++6k5V6Po@tS9tkpMnW8ED! zf{mH>zxOI@uV;FP<=j9xNamNm(gnSL5fhc-{17P${WNb7>wDx{*wEfZOU`)VP zfKi6k^_jZ*8!&cFn4xVnAA8!QWVB=yX_+}kBeI_fa>ol*(u7=G9@x?XXqKLr3AtZ( zhP1)dd7ARoj3CAiXAgb9S zr5BfD#{zutrn>hgH@ujy+2JcKSkKv9J?}12tNy|D)CaVF2*=g!UAwNHCUG>Dc--^c z4hOC&@-^G3S&K%eKD+-w%Z}w!lZ+`7kYj&$_)BwUCOnrYZW&En?=bIDf=HP2!SRkz zQETK5gGA*h;S$Vt)veLj(6A4mXGEBYUz`o9o9MsmWI^PjD?pQAkY*cq3gSUNa=Xc$ zLU>T$)Z4gI01xss+sd5+cuE%X088B9PJSNbY0<--dU%lU zgcgi^02cCLjX#n752Fv=e8|)0hYcQOdoWH;NFz(8;HK+^FX| zb@HihZq&;ey7^QeHwuw5+r>%`Hwt2ot$d1XGT??O+Be=BX{$<8#+8MtQa+5Xw$<{E zjTuW~U;xWx3BG%(Y8>j@qwjj8j%qLv`tRTvjk~28d7)|KQY1b?O`S7TZ}Yu?*aR&a z?Z+kH)YIseTwKbr<^%>!R1`5Q4*YbQNv))r$ws2kO0dYB+G1o`!vlE!nx?$x4w%LN zT&QJj#gJFI@8R|>#GMvHtaHM*_4wiH(x9he7aviw=_XR%kQfpQjNBI+K|DbXUi4pP zZeO@qRr|stR?UTpcJoT~ajjyTF&ts>Kh3^rr1yoWg3jkWGA^Y`44azc>FEH@Rl$IS z)Ux3!hl{C=T1r+B2;SF+8;TJ64loo!kR@i7VM-DXkroBN(}!0P3bQlD96job%PAoz zUg0fGMP_ri(3@+#91UZdtm4P?ymDIjOn2sHR#P@oWcRKASO=EX=>EW?_s%47VVMQ9 zNL6+ltWV5kr0IuGa!Q$&#<)z4`LAHAEHW)OL4X~na^uvIeKuYANG2s`@2<(|yOX!) z;N2?XgDH6@D&e8xQFl-&uphM^@ahwB&k7I>uU?-{j*nlwBugO`grn_S@}`7H*?TK;+@oJxNA(5XovXrxDK|$~npFDw&UOW`shLA(9j+%hbji zHi!?Yh)+k!X!}57Xrzggn47Px_i=sIXH4BQmf^$3V43sdE<~QQczRH;>TUht*5ol7yO<5%V6Dfo?ujczscgD*lGGN7-N6+0 zb0IZ{^wL!kqbi~WH<61(ELK>f7vxS8WGsO&D%Rkk-dk%HFLU=u%N(LuzeOnWn>2U- z60Aub_jD!6f~jgDiDW6w6p!SX%t~d2fB!IJmv3(G{`!zy$6)?oV4mo^Rra8p5&=9@ z!iD;P`jzwO7F9ldx*kQWmy9NAdAelLt(`(3sc!kwDNo3;@r_8o(IXt<${90@6Z=3h z5_R)0%-;CAygLKuXTz=5&Ru}#EC0R#8Fod2P5ITDs#vq))va-Uio9;8!$|OrsI0N; zvxg*iJBX*Gx=AP&N|bNbBu<~~5K$PhO@J?8iDRZ%k@Ac|nk!lGJ45F|jg>(JZ$t7D z1s3h?v(fjOG#XYBv=})zG~7k5)~xitVGgj1G^`)qvriI{Em&cPV|E2>hd^6aIXh_d z+EbaD)FNw$R(SQdx{K9(Zomjl;{*q>@cx%hrUl#+VD=F1O-Ba6=LlCF-D+ZMwNuJAvK1tkC$&b z`$dmd0mEl-4;4LH1&kg6a$WRz40o*TRH3e@i%VzOTDO_Z?H}-tUtHdO>f6eT%e&7G zDv#5eZ)&=hu(j@?@-0$>N6e@MO5p^RhHuGWhp;unTff!ML%J*97or6~T#k3duyVkt z>p4$#@oHQ*D_ZLy7RdJ+k~jEosOM`4qrjX$o6@0AHRjg6(w$dT{QXL%zAvI61xv*p zav01wrNzn}t`&-|Tsb!9Yg2bz<1|3nc-m-hO*x*TQ_0h4E#%?DNT2WzBiI@E;j<5; zX~QKbf}JVXHfYNDHUb?heaa>*lODhdomAE*^zv-`sw01m~G0(1`aYi(g}gP}C)5vKg6^nxURRg0pw zA#dgn`}!udmvO5ep!epq*>FCaK)@dI!bWFRH&!mjm5r;Zl(=xQ@YMz!xoWS zlq6<3%VHzV_wh|ni1D^Qc)3-qSinV3YFzd-p)yoJ-uTYCcOv+~u#JW(+9$v@QW+bU zk<6G@tug83VqQ0=4BiUlg6N&0Gp0|_N{gT|%am@j76Z>rbQry1m!C=pXbijjF5-6j?pb3tZ!$V3@i zvg1-$~LKbhfa^r7~xZkq_S_hZLdJr3@jCUD)W0mBds%WW2O{kOG zNHCxXX#oLp`if1-Ni}j$tKK~^R;tEo$^)}VzM(EMQLt)+Fmd2iWMli7s&*4}Pytd1D z106Qv*Lw9AgEoWg5IAwYfOnb2tVmXPMnxG<0&b`*^BnSiYB@iabyRb;s~yZxq)FCo z-&;Jtag_rVI9O+OHls#C9v5Xw&a_ktcKTP1PQ6J7ux69Wssj3vk|bp`!^}|72x(LZ z&14(*x7P`ar@cPlN^qKz6X4UeNRzwc=?kwd3-}JOB$h>@EU1aoEhSrrBd|GN1p23a z!JD|h)+)4-4l`qDF+oH=YLINn$>oJl0>E_W4!m13{LWp2v-nEWj8HjguP(BnV;py) zmg%2RH5WzdTX;lr#*i01+(^}|;%j`-9pvDgK6@=}+qEnwH*}K=d~q2ncLd$F)*I!M z+09)W1;z>@M1cVl02+vBS`#DUA0m~QSdZeQv1A=s7vv)bUF8E(RrjU&clCC0=<}_P@=9jJ}Q7M&3C$^8ip#@P65&(@y+749()NkGYwIG)O zs(=q1t4fzw(bh46tkA;P}Q_+Lu{NHZnhfL>rQ zX041E5|x0DDXwMX#grRfn!)~CPeEUu;Ht$Q152FF_I7QecWPc2oaHDJix(C`F6v&i$N5zPe) zi>x(gCnVqA47ej%sV^*N$VxogV2V$}Vh|Lf(@#eVkya;FiOPL>@U-bGdNdP#%k%;0 z7LUxRf}(%$35fy1Cm%{C9F+j6)9&0BlIJtdDOeT*yV@&qbL#iZwJgEKWtX%@u8pyy z_neJxPA^AeGJ1ce|D%b|==${Lax}HzFZ$BnoL)W|Ur@AIFcrcXyg-%q2?MNLe>-5D zUBKN%qXLl)YcvI$0;rFL+%pSN;~~~3XnL|jPoRW=3E{_jFrWSAH!puPtzi^vik^X_ z{O9YhPyhVxX zWF`XGC27ux{0ISgX13B(Wv#4m$QV+!paHrXi9veWfB;aSWhz+6B} zPqrd-;m>$6f*PZVIrLT7rsGytZZc;-<`Mz4yyoVW9Sxwy0Pa4GSBIHUP}O9Gu67%n zrlshJ`W^ImktzTJcf*Z3r>J7{GP!1IPm(`b9D?g!MMOb%UrrZPF>-zNHDmx{?jN?z zmDB{VR>Pnyv=rlMQ_M-uSW%@h;&f{^7E{eBaT%ctmT5J?*Xp_38%>JrPuB^`^cJqT z;VtA?b&`4SpMi5o8O_YeX~gf+g4GMUj9~vp5Z3E+x;TJ*2n9$bOYWFU=$(?21w`x^ z$PAG|$aRlfu(p17x#HSD>&EYDt-N%hFJFqbij}#Tkf?kA7=l6%n6_6B7_2P#zICb7!CICc!kJ+ZCCY|Pu*Hg>dfN7J+6qN*9`TXLiYK*7II{>?V!T2k7+@e&OyL*Hz(z3 zwTVuHh&>jsu^!^yh&*C}xTx29n`mMaM@`_qfD7ev!x{jNE;sBWMZuWE&a=hDy=MhD z&?X)szV%`L1CD-3S%bGiLYWVisbodO%mj5{18XUiQ*tTtGV$E}HBamnqwz$m{Lfw? zVXcBd`^xsqS1#c*)KqthSIZq|-F-K)9Twg+I<=#zgwmKP$`fQ%B4dOC=Dk;@usMBp zqs#K1>ODEeZ>}HYOiT2*GP1uJMfGSpVj2_wbNhHIvBjq*ro1C37M6WOJGPg5cpH z`7#stS=*>#jI>~{$cNF1jdT4l8j}yB%R(%)u)(v%hmk)N0dsKA*rK2@i$9EXm%q-b zik5F#v0z`a)$gGr_v>p_P{kIj->3TTeWU+%!lk-d;ewQ*u z?~bSLci!gz@}E*R)HKh-4Shi5h zSLEf3|M}T(pK4951oH*D4>~KXRZnAiH$Pv`KAyU&PYd@>*oigLf&4)vwbj?cj zJwgA1Daqpp>9H%+DxxsA9s?qXKKr!q@L{RYSL7(@*o9bb3P$C?vxc8kvK`e-Wl_)+ zU|wo@s{Q-nF1!I}frhO&)9uloG+d*);=N5@79uVISyH&vmZ;87z%8O_1je!w_JCEG zdRw-jBUx;-pK2~?13Lj#m8z7p;5M5MO-dFeEoi0~i#4+tVwJ2I9IeXTSsFLEj1N9Q zM+Xqd*-!o%-s-^bZ zfAMMh1hljdC6gUJua$QMo24cwVp>mg?=AmWo8e?a-qLJED&~Va()x{+N^=0rf9!3w za_1-fmJz3DAF7T@iEJ2C(I#Qy5wkNY2{-oGDwatIa09ntyj z+et-$rr&*X@WDGiy$67o~*|4vVG1&*yFQXMa)>q9lum%lqRbSv2HKal_L8yIW{uq=g zWhKPM9H+!0V>j%3VTk3VAu?G=Xa(qG&7t{uMz5uGV^tdH3wDXtbhqA%g%6kmn|_tX z*k4r`oo0nX9L9~1r_D8@S+f&Q9y>na(E`MkBIti}ZB_qdYZw@~6XL@7 zOq%l9yKAHW?pN?HC*NETz&EzffRqA4cs_U`(DV89OW;C9YAf)?>A9A;zRFp4-2)0( zJ-}X zjuq8wfMP2mIhD|r=B688`lZB(Moab=5GZ zW-v3dHC>oXPnXpxSRU;2hQ~^eJ~?{dz7;R%8UAgu|mfpGGiG%6Zcsns4uN#eN<4? zppp=A`K%Ixj+EH6>aQ50*SKJ*P>g6gjKM5=k~B$JH`5$E$M^Zu&#=sU=Lh=uGt91s zgBm$ABp%pi$27~yK$0|azAZUNN*}&R#Ed3qR8f88-+msx`0HO9lMhO~wx$M6Md^)k zhxi2=F|2(|ixk1%MH0L1#AFJX>0{3tj`@n-|ELp=%Cs~z@ng;XP9$Z@22>5c!W;25 zd?Kx`CMKEVL;2yj&)=DE8`VPO>4!GvHiP^)omIm#9)|*F28xS6mICMLfy2GeL zEREX=9nZ&kpGoit)#HZ*K5Z9ysMlB#8Ry(Z`!^7t?+w|Uu&T!q}nyXHMfC_&>7VRGBExu8J=T1~o4 zFF1oCtZ+?oH4QwHCE{{4cw%EGjUf66Zf8>$hi;VV|NWIOw;<@S47zH~-k;*GW3ksf_xt?{CV9*ZBnlv7>DlqQD@z7d+YviY{~6}(Z4ol0 zVObu#Dw0J7Q&-Fj7`X=FuD`HZ>rZjq&8pt?M8K|LB~`~v?+BD`sScStNb;rMPccix zY)a%yaxaQoTgm4h%BjINR8@DzxZPC3H-4$G)|TF->KZ)q6hDfC_{{E#7OKoI3o+|8 zyw_eORMulTddobxN^p~0#1n^HS^Is$?^wp91VB0t|1x8n1p(`&IO*@L~+@j5xVVf9#gFw2Z5|2`MwmJF?>^9?qVJtb0 z3 z0QSZTJ)G)5J=a+Xfg}n$29+9YZU9diB$svZr=Q;rd#I-piAlq2S;Vy%jd)Mi-v`Q3 zL%YjF%=8knLo~OSZDXDLB7dwyN@BtJB+y!l;B<&yIDwWh)C<&7c!5G1IPF zW^;$fB9EOvaH-_K<8hBfI^!7*4!g7)t9$LX4ODrJdT=nTZ5P=NFleQ}va_j0y;I%) zo;2nXk;x^`jmgA6feN|{8@1qFdVLU`_OB&Pn)rwKtIl@K$9h}-TJk%Zn8^2gp2QI? zP+dVHK%}tcHFMFeR6?02>+@%hwh^*Q`)DLQu+}+qI`P`Kr9s6RVEu0xs7JAiQ z8?!|f5zvC$9V^H_A~tnfZ|-=c4yNRPu|i-~7PdgUpSflh2w!3SN3BF0k$w2Adz@*? zVl5petAjPjqK0xlj=jADRL4rbYc@6OkyW8gE5Lb2pa*l+YQNsmq7&TO{%cM zV}*MDRG7UUfw_7bi*;Lx&JL-)5}gAVieOnvQx3X6Q-46Tbf0wEF)a}&rv^+6YHu49 zQL|gEa_dDlChvs0$U@@GYeMdsVDg<%@S7)HI%82Dws1z|;Wc3&{+5LL(NNs0^&F zq?H675rCpYu(|%#3{C|=)1VQ-nuP%xvhYm z2yt8Hc1t0S43X6$ks6U3#|tW=lSmvB>rm_GvGveYLaAYN6Ka-A~C0$;u?rY!pl3fIyD+4{y;U zV^Cb^`=y!-*mYBSm`z?w2fkpGm5?oO3!$*zeE8JE5#8{4d?&Ab07nHk>cl zTBOoSWz6SuR6e`J!!xx9gue5B8?f@#;xMgRchRBrs z(AlD%$uao>{`i>`*$V4x)nVN4kkH<|S9%-dlUxgVX#!Q7A z0K0@xf=GBQ&3ei&{+(1NE`1L~W?DGjhbbJ8doUKJ^cD@0Cy^>?q6fSGa&p`aJtDGZ zGk08Q8g6I0e|#`)OkGd$#W;*Cnq3CfM1gy%r{{0|bvOuAs2DpvsN) zSz8AvY76me3-GTL8!O`XFX6#mQhi*lmr7(c`Z6UacBw9VKhmx7+QB%#S*MTA(9)2brsPAWnRd6^&d1DKnD&ctZ54bYHShl> zh{spF+|Te{8KxY_r18IAd8|67t*7%h`_*g@z}anyM7NsYh=&&LYR=B76Hp{qB}I7L zjNJoQ)QjW2Pc4fU(F}2nD`q-&SgMgo^U|kwNxiXFIeNMOl1#`E6mHA#8o?&kMH9`U zdr)Q6QY!^|M`Ts}d`)#I81;AKReGo8N7GSL4x3aZm0UE;}5(&iP|V zT73|Q`UiKmfKNGAXQWoka{5Ga3ETWtRZH#_nUFt;OcbwB>eXG0mc}*KD59Mdw}VwQ%T_y#e?8&`VJN%6A2zi*7oA zaY)|d-g>Nkho^Sj@#JXg4rMzimOG}202`TRi27G7#uvRdvMSoPp-L{HKwlMVGH#sH zZfivIg4l%!IQrd9e#o{x=H1r@#0qYAkjxX=k_dp85oRtQ@wAEM7Iq1FYFfD zHm5KLR9`!1iaE}iQfi&sQ6X)npp!$2*Rrxs3JkP7*xYJo5sEiq~sJNQHQ z#nIb3!W3HT-zWgPCodH-fT{6j{D-Gz33QGv!l+E;3u-N8&}A+B(3UXqDR#6r(UU}q zu_iaR;Z0*4bbcqP04jQmM7o$zsTNt99tp7)I{P=7_$>;-=8+_Xg6t)~iPtZH(qZwOMYq zz0Vu=sW4;urrOrzTo46C%{`@FI~t#B2|E@{W_x?idSz;K0_CdoSS=1U^uo@T_pSI# z6iX5V#%bJq&{cZhum@20*B}OXM0gHgbe1p52$c!L<1t=o<*beC|M!r3BIeB%Vsi7g_4_ zI?rvy6ljnzJF9GsjJ7obD~@Q8=clv>)QtFkyH%g!PhK7#A0BTg_??Z`75_{4UuBiI z|Gk*E*hxG-cQdEPO$jvIdwmKoz>fa%pt9?emxnJ7kN5SQUmWP!*DUidCdUWF0~yk2 z(aem=hHd^LGX)awMG>3uVY7*y&FYy+Wu2v|<+oU&rMj{A0>}-x6u2Uvq@rM-bRT-x zPN(g>%kdk@V zdvSdH72h-IGF7*~ZD60<0cKRnei)P12%(0ySlW@os|ErSy0SIOp5X|N^+DJ>geCK#JjDT#Kr#` zpqN&StfrURJp@-N=4L`Te7A^n!=TcslxU&RB2bfJZS<^CbV{s4q0RI`o@Z1lo_v{! zkTWjtT#c`=K)#WWN{JTsGX{5q);&m0lNIVx#_7i1m!hAA z5NjxdsG+e{;qinVnH}{L`XCt&_eKvF5Qh8irp>M zee*-%ZP2h)O1F*;da)z|W4C4|%nSttERiw{({{7=0hzo_2$4(XPe&=cKaweZF@rAP zP6@|dx5r5(*?Y0KAlE$S8LhJQ%pdnK(l0T(o9zf#KaTgvfvBKIS`^P1y=N9%K{J{) zhASQh!DM2KD8xa}Y1QoOA`522v^R%+!zMviwYi^{qDq*pc?*vOXUD*w>m7yH>l?lF z@`EyX5+QzKL+Tf2@$+QgfJmi+|G8%5;>THMm#&^EeG?y?lE(%{3nYbB*@EtLVZ>}yz4dR=t3p)n=pIDH+)%{`2 zu_x;ONI|ucQ(tY!sLfUW2IG-}y{B6;ZlrV>qKf5i52*F&7Ja_x^7!cPg%Jludbbh-5kxJ z9Ra#6(Z0GbNye8ffY1~L_aO?d#E9|=`}PgJx>t5B$Q$ohN)nM}Y^W3fq@KYd)%nTUoAX7U{$wQ{=1Rv;zZpMh*_{ePSn2hpKFxUI~ zX+4D)c1N?9h^I_V;+(PYS3;<;_EJ%Bh(c61nBVFw!?{)!V>92^pmVAbVdUe_Z7k4G zOqu@;9A3}TVP;W{w(g00EgZ84K-cBP?fikO)f_K&c?3nNkA4FGH_$ih=r~DJ6KzsU zwyZOZ>yQgVOa3jZB*buO^>s#Sp8j^I9PFr@W)R|JJi>%-`mDxpdi}KCfWp6`Dl6+% zG!>AJTEU8kZz*p((=_MBC&LYfWlSrw>?}X>B2au{!=wq%wgpJ@n{mQ8A9E;1)=Cee zuwLl454!VgZBBo_mVeIX`1N_2HuL}KIF8#!xv+tVJ)2R^dg4Zz=7u_p#9~~&k6t(O z0i?fAQtywtHy<&baWdZSa!A9Mp}vr`V043`m??H*><$nDN-LT(#i|BiAQ44ju*APE zS#hmsau@W9O!C2JFCRR@;cK@I=G~Zp{U%Th575UvjUU->i&3s`Xc=covQKZw0`6x- z_CU7KZ&<_M_Y+tMiOUbEYGd9+}ti*r976?0%3uE1|%8E2Xx6K6fTm?2yQwt$O z2$bd(Qx@W4>DMFyY+^3;?gYS?9eeC3!p@htm+E4RG6GYC4QR-(p`+A7C^z&m-PvHC zm}g^F%q>bQC{Hp~n`MG9OxkKz$P03*2kzijTzOLp*ywBMu8|lA z`?|ka>>~>i6_(J#Gp~PtN-*y?w3G;)tA$tqrxuX;s#cbnQ8QDY1c_cFE}Z)a?=cQm%Rn;P4YhYwrpj9E7y4&Sg;uUk09G5#UfK4V)Gl()siOc(6=zSyw`r4r7ciwa^6<7NDcNh_@e8~dQkp_#V*Yh7`o`5gK2LOUVeZMNhTD6y&yzI!-Kmmnog3kB2 z0{kLnm-S7?ZSl6g&*gTQ_#ZE z2#()gME1hkJsfXL9^r{H#SuP%f;*c%0=Y)3?!d<8W`Yy%m_=Bq-ND^vjEztL@&Nw0 zA10cLq}Ga9gNxF{D-74#irBgl2@=rHUB%i|JQNSKN>46(^T*mES@XOvl-i$({+-?c z-X!KQ1RP%5-m#DA1?w`f8Q_vlPgZbCbb7f$<~t$>Zm}JlYG^47Qk|S?lT+>UaH?IP zQ_U}6+Tu6H>N;Sh8|$|?Yd9T>x0`8So+Lgb$p~|3n^p8=dy7371|lb;JRm@8K!NEP z^L~>;f+%_D9P~Vpr5G^lVFO_YAmS08dge-p6*e0RB+HT}OrN$GQ@g!bBh1V36Gfo# zsTEISp58=Y!Z+>w$YjNG3jg^^&)emY1+!^f5-rRrhF~VF$|VuYSt~AY@BYPr?rz(t zQj%uFTt?Z>$>tPXwoK)Evotl`B2wX-);M6{SmVq-!*Jsa)C9zUcNq!82e3o2Ysxh0yah%u ze2Y``YDb}{5rrJ$kr}W9NsN|>ECoq2o^w+`+(3Xza)3WBlCqBB8RqGn<)T{892xz3 zi>`U1zvf=k0D-@*Dpsg${fsh~o4KK6_NKKLrE!;m`P4)9bzo~zVIjnGWg>uTaZm1P zC5J~$#*0}gzvnWh7CwO+as73~W+jL$Jc7x!--+)0CYY_WaO$HVYE{kt zHk-4tA@jZnL*v+1Ql(f`yd?kk;QOEdWq$bEgM;sm=l}Y{&kw#|z<>Pg@VAG5vH$q_ z;o-r-cfWu0)w|2{ANb*4zANhd4*&I+gYVe+50OL;4}bg9sP45SK3=G~sOC8JF9EAA zf{2}SILgLGadg51w7Zj*VaWaM3A)ge(GfTneLox}CV7SYC>X zR%?j?$E_tAkP4A9J>QlP_Nit5MHgzsS#4@=h>E-cG2z*l zk3@q2@E_T0E#m~8QA4+6{M{IRBW@)8*>2iM6(vB=G;lIYC?}Fdz~zy)6a$;*+@4kI z2-I6he-WiWFpFj~Z1ARKnehZFP=KZi%j~wzJFk3sE%hcBg?T1O)tngDK`a7tgL~B0 z>uu}rLo&g&o5{u$1R14Py_7X58)gJ3{{|_FCAjxJ=yi*TzI7N2p2eR=3t;UQp)O1y z+Sc*uK0UQ$)%>>R>9}+ANeVeTiZ;WynhkY}tIXF_glOGs9wf9E4c9xIn>C>}fXlIc z>mh#UtTg7nOV){jY~fKb@z@RADv$v(ceP3zU7y^rB}S_B9~Vsv6l;?Qld_B{<`sD^ zv5acPa&fPB<@W{oMxuwc-!HR#N$6oKEmWGSnT(~F7~@q-s_H_{$jzaR4eTcjHN+~g znBite^HIh01OtFgC2}GQTFRABV6!kKGWzGVqRE|p6`Xa@y%|XkOsY z+b_6L_jZy|X=k^Su2GLAN!JA(&e_F)I?07``#?VkC6^9!868ch8Ra=Skc^RYyQNL( zmav?>v;`~tATa}HW>UrVFAX;ya<&`feLVx6oji2gs`JnN+o8hx8m6cKD^lSFbevpX zNMDUNb*AtO!NF&uxb=ayniHz;fdUGi-Sf1j8QuWc`CgKz*B3~Z->%gBfq_dGFY|`i z*iQ1z$khH*CgFxr#=wVWcqkG^*8rGj0wG(mB?B6@*^ym40ET(uDoAN560G5RX=SL0 z-S!xv+}36V7fH-rh?N+%0??SCFr!&GAY+?Tu zBx%XmYe0!x46b*%9vSfkNDF1{SF=2(O2B5Vr1w>o%6psq@xnlom!zN78JHrJNs#q}? zsch3=3!#uSme_+iIRG=EEmo(50KRh=EWxbXNkQ0qE&&1s=N6WRVwAZPQ1mDDP8ckf zOpF)+ER~RP>H5$h8(Y{Fnt? z$$|hlKTAnnC>{!&!!-Cp%Egk%I?-tM8iXmNP zIyiVNf?1d&xf#R_V;4ozh(fTi14uS+K?2IwCR_;31jeCLu!KoTt2NfVI7 zuX+V?TGT+iVpuh@PGF@dxv9h*D_l;3ErA~->7uur&{c@p5F}aA;+8cz+&N8Qk2E#1 zhRhgtHRw`H*j&M~+-QNsxw^hD9GEG(m&0e(Od-#DFCH?&L6I{>Q>y5wknA_qmCQ1s zE-+zU2uxhErqcvO$swP_n=mXCuIC6ql+=Q}6_GAhjKl^}nP!=IKyWhmHDs17C20-P zc*9JGoPp6MSuNd-n$dSn#(&a;*TP(M$(qAnOHGg!iersw5MZFFDok`;;KpuG`LIP= z^XyxuWD}K%_nBslMtU(O8@TLX83w6RW2NX;3~&*pF!z$aeTN1=#y5wB;NFNd&XKoK zv#oi#$-2O-9tn0Wd?3o-kemAA4UPhG%oV-g-Nf8TuX9&o2D&td&&^-N_(CE=32htc zVv9*swN3M=>u7(_2IP->*RXmMu;D_2BI;7v#<*rdFUikZ0*(=eokowDI0sh6Uzi24 zpi%9|V?5Pl8JTm)+rVI$dlK#?Yo ztqFwn?No8G3u>!ZJ_JtZNFqWx#s+gh2rUGH#XY^jjZQ8v;AN{9-oiiZZ6EC&w(W*# zcF;g2!9@Gt7#*93t$l`n4+T4n$IYhw>O1M=vac4&c7u^ZQFN%eDoi>&uhMx*E44-& z&CK;any{ZQ8Tr!aV3462LVjzlH%y&%l^Or43rc|1iymjQ%Fi{*nB+{`wksiTq^^IW zql^#M0N4&5fHn3X9L$~fI~y6*@wmuo(&m+qk()HDmF)wk zL{CCvU5I0;b|ZmhZjHC-%9fl3McKdzz7lbvj5jp7d!SV+0oi~mj-}dWD7ER zq6i2}X0gnf?3Pv|_xGt5GaY`1u_NF~uUO>a%(YTSq5kdC zfG*gtK~~^cS~WOT&%iY(pI|bhUV?mogbD zAnqsvxtTue4=l^{|A#pCfayChdVX7AT0fW8G-66p;co+UGTS8`$*H|%Hx$5}sCR%pyphWV zh){>*8&mt;-7hX7yT?8dCj_Al0qq0mxiKb!1vxm$%9Z!!$cx4CCYQ6?o)y2}Q4~)r zA>~_3w$BV=hY)LEu)~}*@ktZ!8s4OdceQ^6P2A&QI}g=KXKmx6H|U)YFnKGK2~+^d znv!ugP_m_^QQ(~qbiF8;GC)+;CvauI`&C5;(8v8|)H3hjS*~EAvUcdT5_qLH@fz^{ zzBCa6`tOixJc^0AnO%@;W{c(cgKh_bMbp+CJ7tRUOg4AvyYBltn&^nTaLlxN_u)Uh zb<1VIjkioSiKSlfvmc4?9*A~Wb-7(HmgI^h;+|Ew0nXo-w2)jBuPD!AJwkS?G)^I? zQP+-780m#{4BaeuZYIEhercK}Ftn`LJr{M{Jed52TA_p?mC@B#{MMCpwV}!odQ+wG z+AxL`Q&r10$VvhM4NvIec5D9}5-0RF^4ZOJO;8~v!1{Rim48=7C-D-C1gvLP@0^7t zfghPQo1vD`_cy^nGA^4G5*I-QxiHA5hRl#x0 z-($p0UtL5O&+}U8Ll+E|^4o}T2eP@sSNLK^7V>Bu~c1KggT~?7_ELYJOO<1m?Fd8yL!!@ zEeVXa4?K|2x7n0{tiZg)ayoFf=T?m{KIn!|M3en2_{pfp5ho@NxTv*Z?TZG!mEN$7 z{JCb;nuvQ>F+I{G0rifx;D~vSCbA<&791<}gP4B)zN{ERBJQNzZW3uD*uqpq?{$XaFm4DF)87OYYb@-eN#Zl8&h- zZ^>eITB`=;2$I9N@9nmmN*Yz;&~JV94smUuU|C!>Ilo~Y4znZxGoq(Wd;tB7xHWsk zG`MAN0Y==h^#JVuc0=exQOFf9ZH;$0=VmvMZ)wKI>>_`JXc)aHX5_6<`v1-$+i>K* z)a^_#`Bo@+|AQ8KbpR{xO=zwT#}1|h|0|F4oARr61!(z z(M{ykSo6tt|IC7msRiTHINp%-H;CW+92A{r4T~JSE|@;L{M(K<*d2|2+<^} zMq<-O-ci_g+}FDpV|Ftt4OK~OKW#V7r(}i#LFhFk#eNvob%!nK?T z!0i^|tA!#N0g+-G@15mu!6hx09*FqX;3Lakn1*(((WI?3 zz2Y|&Bd04`6fE;FhS6fz+h?j2O;#B0L5b!B8B_a`tOR&VlNB!<`eWgcq6abrO3};w zW0dWYRaf^-*;TVWo4TcV?3-$=Z-#(OpiwFbK8L(g?)P%a~#?-smCiED?EGiJaRw zaJwfSjV+ti!D>J470&8HFK<&s<<%)sw7O+V(;-Ej->@KT=hK$Y8eNrg-<73ojbitj zl7w7YiV!mZDNIXIB{qoBR>8!YXnN(pHFslOC>e}=kE>US)BlG*yp69Tw%@$dx0(;4 z%F>6S*aQqxI?#j;LnDb$NJkYp4Xa!a4?G<)8Sr>}5^V0No&=(2f$)?SN+0ejEbAWt zwL@~w5p)h{L*M=c4aRj_zgd%0njX2E*TKTE_bf4RB4t+J@?P+#4_fNI zsajo2z^@K3rB~$ru~)=y)z?2yG2mTi<#m#>k`)7pRiYrTnth5B^60rYC8|Dt72`m9N^ar@vVpyp8^Cdvi##O{I&u&;W%#TLM@+=ko){GtthB>q5Hnm`F_5%i2 zF2LQYdu~$|NmUm`|Dr{SW>ith)Q~x@EuS^-Xzt;k5%VW3&z}-Hz%mTFDw+R>5%Y=` zm8GcM#MnwYVg74_g5cYFjw_Z7;QL1He$%6GzPUIXJ5Bl>D+t1Wx2Gz?(+U+u_@8TE z1p^R!H#vsZ<3>4nif$9um`u;Oyo;+awe?#2Xnl2hPRy^7noGBxaL7>DPgXRT=#Q*+ zbepioIgxUC_n4|xyPF<2^#xm7p(%b6+;3}9lLrH#ZS<6PynIQ{3t3mJsduySnV~%# zskM-EL{pb9t$q?DJko@@X{HR)e(K#2{8*H|bkim}q-8vhy|kp20(C2XbGlb7EA)OS z9=kg)mNw3KW&nm=At(D#Sjl!MY5ErOci<~md4wFL?EXlm^u-Li5R;GE9w(J#@5SDN zT=Se~w8{|j%He+5=fWm&QMrzQEB<(o9Eb{fl+c1?%tB`w4zotBU_fX4P;8Gpx%s?3ZMsFrnC*sNFs(Z#O39h`Vh2BBu zQ}a7sNrQ&sLO44O5fzq$GgZ_Vi~R*elI}0|tss_hb6Ez7n!Bm#j9;Osz3~==d~I`X z!V()_`iVL%oYST{W5*YUcnjFA>Knharrgmjzc*-wkG4fO-HBde?{Hc*@apyB`+=u% zL@!JcE7ONW)b4RkL(72wU2LTsP1QzDHjf1 z0JR4A)u^J#rihfZh)3p1J93>mx;j5Odvm_X)5owVR-~oiML2VGqeQfQ#qJ&ZgIBA{ zAPj|NCO3~tlp+(i-Q|TxOvF#HP{N$f^$b5=tx>Bn8jV`n328>=q1Ak(n zaC0_>{2Mn64;ECwQ!B5|RLQEGW5jYxS`6z*y^`efP4HudNO#2g#mxQ!^MhE3p6Xl~%8AP_WA^(m3SCgIFOBl|_+pph2X1n3N9wQ_IY0c1Zrf%=ZP<+O2q^$iqswLZC3V;T46WiWSYw+eey$ zmOt@&Y|-KR{=?F7=skXve7ysQw$^qh6?!{z5mOAv@_9<+I?s4<*Ocj53IhYki2j4! zzZIk5Y~Ib=;ZZx_(cE8+vND4~S)a4tSvFyUJ$z+;Zx2Q{AhCbskw>WZkKnmnCX&Z7 zTzIs_Z3}X7eR_S-_KWNoKOGT39aNC}{33mqDU9Z6WYuIv%adBI&bS1a!FT~>>rF2Q z18dg`VlS@KtJ$s4|BC*AVtJt1iV`kRq5t{cNF+NM-IY#%i;qxs& z)_~=msvZ1TVVb6Aqy1Q6|J4Tw#ed{Y11I`_itmaSTyd&IHOg<$ddrzmYN4xP$-Z%N?vn$RltKUAljp!>b>WLE*w1&k9IsstOsGpw>;!~e z9dFSx&%5>U`+o_4Bd@uH(43))>+mp_rtm39ZkJl=qs5u=vBj+zVm&61 zvaT__R`XJG$YJvhFod+ZHR9#8DK_>qkBznIZOE9SH=h3zq*`!zcD;Y|CwW&xLFnMM51b#WV$zzxFN{e-XK%0n`1<6_^VcwM z7~K-ENUD{Q%6Ex-j6bz~=WB4;idd&zvEi;O$lF)fEl=H+N3P$3vgxUNtm;%OduQO8 z?42GgW=l!clLF<>s>O5K<^lsIAITl1M~<^G`y0ac-@SU4+?8@fLu7Zhi9Io?K{LgD!=cM6(fn#Md z*w8-QUBS`D(a_wh7uCPNpRO!P^ArApl|&w8J=PS)MTfdqHj|HgrfWzc*`7*5rM-1c z_?n-k{2ZM5(Q{3njc+@){fEIU(cq+X>U~e6^9}P1w`X?d3@f2Tu|sA}*NbhZ{Utnc ziaBLj$b#aCVEnRkB|#-!b0>kXi8jeH3 zXyu)y=jI}|H#>8ZO6b4!f1=Gq?9*tx$J!ZLrdLH2esvB5tk55BkA)?2T4JGdl8T4o zfmUgt9CB2e18&42Sj={!L-UTQ!mpL>l#v^*u(BA&*(qPw4!cT<#wn@Uh-Mk)E1q4f zARkdSEOpO&%W~qwVqd*T4QXfx0CrOL)FXgy2*E^5VsU{GXFIp^$!J3c^Z6 ztim3_g7}2xjQp?buirMs0L@>6gbjYK-Xm^07v#(fzw>QFsGnh*kaybm?eD2-6SxC8Oit^BTEUzwZpk27Dc#XQj7cv zEp)H&L(T4zEC@pMw9d$gs;zAgkvYt^1cRvwVgt#M7YrPR2q$0bo0pC%E`tG(X&4X9 zL~#qNHsBu-ey|ZsT^8@U9Prr0SGqtZ_J&53v2RC6+4p>`9YSwJt!xAX{(X=v;y(Zs z56;lw8{_JDi~y@|ha154(3VeTgwbS0?$~+`tRadjLX%sI#hD&#s|c-E_4{Q4ZLfbWU4N) zyATGZN6Vxn9M&hN)g7|{Xf%smrAs||4hs?st=wZwtL9;T5@dWi^ZmtQAFsxa#K|Zc zqpD4`j_?~=O018e?en{9OcrE%4l;w#sW3-pT|-3JZ_ z#5Oi4Fp_Lc=peR{`_T%-JFJs^)k0IbRG^k5A2~o#5zV7P`LW`*DTX^@*h6OF_S2CY z|1njRtO4}o@?xYl!F#jEp5Q(4*;*7X(4ycMr#)+i_3aq(Ct9Q5U3uE-+ADokHXf?z zYr|hqC5&0QxqKS{=V*#H#se75Gb&_2e;^=zvu#%qhue=_L-AI$#>Dp;o3J6k=}Ro$ zMvFpV5p6lcy0RmR&JlB4fz;{6&QzX5#{!&ht70ZUA@Pjj1Ql#g??MJjBG zAxVUM?YDm{ON=Mp*juw@l^Jj7@Uw8NX{O1Kj)*$GX z7`3fd%lU5zD-x07X4n0$Ms`vQ>5UD*w`c*Ibhe)HCkDqiW`H|gtu|`r)uRRGMof0d zEF)^?+U8)RjJ(`L^<+Hf24G3EQzl3H84i%ZA}Q;cA-2d_E~@p+5!8Pid9gLUG1Lx0 z9#873Vui}qA6PPX^A}r5)^F_vb?CEbA#*a=X!&vJ(8A@cF~{g%S#eM9X%&pI?`k^> z*D1f}QUo)8x*9FkUynK(1oI$wV(jg=cNpZxLS7pY0qyRhR%NZsT{U_s4Xd*lN$zyc zoW3-gq}H!qghNfYTS=8-Rq>Mi--GXe{+IdTZx0T>JD&gR4?jQnegXgSv%}vW{>A>| z=ZA*}2jBhv%~$U(&wt>DfBCMc^E>?4Uk<)w=RZUeIXwLBPe*pNr5Er*%|$iGC4EU$ z6&;6y%})2@&UJJ3HxOFm6a)fFf@b$0=-}?A{tZ@6>FeJ|(f-D}TRs&R$_U~Znmf|Q zY^ttxo0rWWQ>wzX1x;5!HOunHh*d+FjYz6fpxS2~sCI424SK5u@n>WD8WE+2@n?}l zW24l-#T~u%rzo}IHbtpTQEF3^+8CNsl-d-fHbtpTQED-5ic*`R)Se(p4VAWzShdK( z84SfHQ0;$GoSG@~e3B%hF4Q}5$07nyHf#x76aWTr)3y*}O91P`Ho4~wVWV}*wHm*} z9<#6d0K7%YQul|*EoQih(xY9F6H>8+mt5Z;00{)Y^bXn{qQ9%`C-p}nDWb@xsx?4p3DX^K9=LZ9 z;!R5;OD+8JZ;rM8o0!wC?-&4tRDxvjaRd5xTKc_eec~6tA}di>a&b1!r=$dV0dJy7 z$?DgNWQ?m3TF!S3xPUB9+lnkn6-6;$XjF#k!5a z4Rdvk-ztR?&%m+bW&B8qJz8Lid~jHlA0+hWTHLHv9GsGQwvD6ozs-+Z5U;)c-Y&-2 zAiVax6eFwLR-z7q612twPg@PydK8j`Nw`DLnv&&3*hdL;2AAmBK#02VgY1fY#BzUw z6EY;?SL~KcHL9#DzR=#Bk{7pF8!xXj#mmgiPH+%cmYBIEeeVeMOz#xYzYuo2q&&=g z4_qHup|BKNr7z-=R@6;@BJ!NdLv+Frnhe}R2ES6@ixth9S@2?C9=kaeD`*k)owkwA z;c+4!3R^1%>;1NOC5bQ@eMyr$R-{~eai0{FZ0`vL|y%`{sH>thx@ zYGb3^te>J(bWC|;JUYD(1lj4}JzL$xp^fcVH))%PUC~rX@?|EHJ95TAX#W_6kE@&X zY0Ah=MacdK6d|i_!g}`SRDvw0wnVDym93oYGG2{7`)?^@Wn`ts}>Ib=8T#OfoalB0x`t0O~wcV_g&)02yW zD^ZQ8$Zp@jTQCt>X3*TklAN+~KJqgTmNiknqbEgQRKB2lAso2^JYq2TaRVy??cr>aH4@ zOlZa~zK+t$%(HF9?ArY3VdxL2A$@fme(yF9DMZ@uD41$Ev^64c*CVw2V=wJns@MaK zzq8Hrer2YOdQ5hg1c!KXc|pEHQjf1CQ3-|O=b6YUk1r#;`Qm2Lo!G%#Iy%G<@`@BM z`E9NBR-;dTMEL$Kk?8Y*?|)3)Q_n7EQw*Bwr!mV5myU~MAd(f5gA>q;WdTtN;*(u| z0E$&%%j|1$%L~gLgz<7ODG%b&PIAy^F9%7Pofq^b3wv7I8``}>US;%_F!;w&%BB8) za((?8JSlZCT$0x$z8n7QGD?vtJpQaAqZ?J6!Fz}BBGp4+vV|XKo)`>Pr!M^lgN<$& zdAH)p-KFO|5taU}@P3Lm;*5ANYM+^5U5+svc<IusxTdjYIm z%{7+7HTL+?fv^)lFqES@ZehFn<_Q{R9p0_W3p+QD9t`fQQT6n*!@q0yc5I9PcR|2%iOZzSjXRtdkJ_; zDatwv1)*(~R(yp20l)tkH`FdwbN2njobK$dDCDb-Y_6EvIYF8+Kv#VUT0z1az*bKI zRuu(KWozd|2A&*$@vC1AR@&LDrZdbIhAZuKWK#|MAtNg7jLDwbF1B-V8Lnh(V=iXQc8;0XA*{%Dj&lUXF?TWCw-Gd-_(sO|s4V7jxyxgc0OAq=qO+67 zfN2JElDG4WBPe!cA`fO4N04=ffKfTc(TpxGw_rGHI3n}l$&v};GEGP3mo}NBVd-Xk z`GYaW^ihV4{pOuc^Nhuf8Wb-~JZ1x_u7u`+&#WDjxP3ZoL%^?!UQwgVPWScoh7;BO zyki~i$#)uPpGp1uf5;--kMZKk7Ph7}#sTvHF-_dWRLB7C>(1ZF0sm3C!&m+9dof7JA#`ld%!*M!#C~>aSjx;FClxg zq0mOFLPd>cnRt+c-SjVVz3zH^CY}6-k(^hRsEjwqA4ZTSM4o6pkyWS~RVF^+nklnI zVEZXSXn~1FL$(4N7z)F;zTz9UqW4_X6;f7$?3q99>AP|*!tmbKGF?M*gPTp+v1V>J zL>QSc!JDLdw&g;rs}vkFE;@zFgUt~b5kdLzvIX<1&e zvM1ZG^|9Bcf}{RuNs~K$#14M8kYzR_KU=8V9}h_;Fj@_K4;9NrZ!|?9(0ur^qGfqe zNJX>kl2u%!gJ?`fmU&73^*Hd1uXgD{a{LCya+dI=#+g;=ZzcoiwI^lSD3XR8OG#Rr zJaaBB-5a(P70P4vJ&N> z^SoX2(rpo#CPNG6Xr`s}Oi#hXD#EjiD!tbk&7+c)kc01z0dr*1##F_CfVGBtUMNm#{ z;`%zi03??tdfkPzKCqibB8sI8-Ng@$DpzQX!Eo|&k+KE(+9FTR3<@V+r}2Xa8-jE& znGmL9;^K^ueRlrpvnz4;z?42t!W6C3Ad2Gsi+a#K9#ev;b_%T%=kP;7W46h>HcusA5&j^o*FA=xG5C zJ7JB7_SgF7{w`8URb;P+CdSe0wJX^^z< zj6W&M19?ceJff8^a>IwR_00BT{=g$@yc#rU>feb^oFtvp{LEa+M&-iY0f(#p%yPU`YDl>Wzz9kwlbO zYx;JVDBd;5CN)=k5umsdb#?H|FOH9O&kko+t7)*=UKq^OgD;Nt6DD}`y?!V_)_Xmr z>x18X@hkI%1^ELbR7!qZG~u`8hDxvn2Zx?z;z4VhdICA>4|DRugufX=q9Vt!&J%E* za7A)P3#-2Jgp?x7491ST1IRBh@U~cMr8%_eK>q{~+Z+>jn;2dA-UCYRTp?I(&Wi>4 zr6wMrX+KMH)U0V?V3*!|5PDso3DC41NJELvaf)z^lA8|7xvdj(=2@cb_HJMM#uhMC zCC1Z{d!LFEgU2Z*&!U#>s+7db`C}B4Css$sDI+_mBG00TJiQw797;&M3Sv}?NV>xc zNTXOpl8jM5tXdICGDi7m&ut{(pz5)qQbdv*uXv17J4PrSaVp11g(I>k|D)86=n09O zj0iZ@vrOni!!jkj&t`8;^5tK@pykGC zxn9f-_yi6ZR-{lB~1)7az^r((cLAnIqzoeF9y1N*|Pg0SbcNZFL8H$(P38 z=doDk$StgMHA3LQ=;W7#K1eh>h#8?j))gBRd`6`9+>UhwUcoC(oN~vB)Hm!vs0uN5 zBT_NRwY&|;`C1Bs(eeh~65QQrd5_ULV4lDRgH!cXGZhsAPc|pZCJez{_@qb0%=l0s z-&T+IH*S9YL2pyqO*icS`{j(>Wa4H)*Wl$!~pz@ZklF` zo?gY~_f6O5IQ7lmn32*m7Ey*h8)Hiz?-X z1s_-#J6Ad*qA(eH{v{BzC>BLTukNYH%Zx=7OpIWu*xIIdyF#ttR-9b70&#XWW6W8) zDAjgUrT$O^p|LSHOUkoTQSTUUM z376lLDeW)WxJfmxns!E|dLvSB=Dy=G^3I42jcffoDkD%wMvyIcya*wHxVfC%m1u2x zGq@OIM2F_;9DI5l3m(aUpP2oQ=K`Zk(8e>~$FSXzOm_^+eG-QI+!H;5)mE$&dKf!s zI#>49X6re@MMl=8Zl@9qzY#wVAFh_}hDon=e?Z`brzi*RlVKBxv@>4I==iY5#D)bd z9bR0R^ThK)RU)kumLjx<6zDp6U?dd<|dm0IUBSuicd$5^v@K@xohh$T6Fb8vC?|2yq-G$R6@K5(o$ zxc*(wbHmqiYapRYfuU72TS0HqTdmEuM;c&DtvML5s)o5?#Z(cHS1ehD!Ua05dnfHix6EVJa zvaWg08RE&ZR&@nIUpw?8u(z7y->qr1`uHV0Ov+lWoViD<79F1qGakJMVDaru-915% zpZ|if^qtVd!z}(vZ}aYt4eeW>lvKM@3M@vC+R$19%W6@>Ga|W(DIz%za*F~h>W<0` zb8^Xwv`crG13=ieq&O#_oOi!+ozRRIx8H2ry4~NjpwRKxcMxXPNB6v{I^?r}?o%<0 zPQGIIZ)mwa?pW_xP`%o?4)KfRiea^o-g6OHeaSKacOTdQ_Av~57O9-M9JAkvivK7I zMYBthp43V}VYg9pCv#dU&`}1uVe`J-^X+KQ1-W8NECJ7pl)YyXLP8fkk}*iQth#4a z^B95JB#B%|_|zilD4`r?GYL&r%pCj(7Hk9LPxWi|EV-cg9px)_&!No9rQUU+vc&D% zz->_?`Hzg;u(c>svY+$fRmIpf|B>xmQ~>*hfS7g1lRFuLE{~D0+(-a8C2}C=<|R@h z+zLib5A-8w(O3zk@Axk>A@Wx|Q>?mT2`iHI??fFcYuuJ5wCG^K6*jZe(fhbB3B6@A zgT@e;TXe|5i@Hl>34KD8WiD-@9hRcl0b6o-$zs;SOoSQzHA_D3;L&IMtRv3pdpMh6 zr}<{Aqv-*hqmosmq?O`N(if)#KRyBzr*DTK%no4|M08rwEMxtK+tFkErhNJl*5%;% zlz5)e4d`3p+^WrMqa&9}-_GXd+wtbe>HDuTaYM5+s;J)bZ@!G5{LMF8>aMl1P(We} zOukqW1U}TGd7xEp3V~#)TTXNc!AKvw*Rao5^x>lpIH~j6@Wc-__Ly+|t{B#s5d6U# zb;$65dw2u_l#vWWn?D$LuwgVy+51+2wND;nSkOEgPV)`K`Np`eb`?6F@8*3b!6Vl7 zFh=!C|OZrIe|=Lb>bHP0V~ z6A8@IAyaJ~wpOZ2aLxy^B%Z6J=7?+VX%KwFUeaI!(qog4;;+QVB^|}wb}`9DJ0}`N zZI)3-ZB%km)aQqiigr&Ziu-&-BGEG?5$%>h6v@Db5{Gt68Vb33?3YI+4B@zg6r+-b z;t-BU*U1=_AT$PLc@)BTWKs~3zYHf}?~o7#?}Vkoosxl``vwWTtXOv9U~9V|j@uG6 z)c#TxqJgwRrk5Gr?t8yOsOWU^v8wNHwY6(^S$-~RHt^>g2C)szu=*)f`p1?(JRs|W~$GF10$UKe+Tcqryr zuEZZ*?*!N~`fhl?_#ZgDCU6i-F|riuG+^)Uc#*y&dx(r*W_3j~^UnrT>Ln>^2qFbf zQEEnKfBvVbeaa2pZ}SF$X0_5Uxv_~Q8Zi+}m27yt6&i+}mm@h^V$>tFoS@h@K-AOFigk>d|B z0ku@L`lsVZe`|AapGouBk!DToyvUU6ha|XH8PMy6si(g#;W-(D;An_-PAnOx3wm2KYf3^c=2NKOU+j*2JgS)Ig^U! zrDHD{y55m*-Nf(>k@B*nDbbt6m#-;jw z#~-z-*kYXEb!`B_%Y+S0GHk`TNhjJ_nJVL;O7#*tit8i zw_D{FcKNs;WfS;1Jl6Gj|NWuwpE1cRmU^BvJLx5}`=hHDCUsG^K5dA#KJA;mHokpo zf{pz6NSdyrdqC6mRaZCs=%T?+oZPagt!A0bVv9etzI}4r-gc>t;5P!?FUJUQ+vYZR zux%1BzJh9}wF;g)Mq-EM33}}TjujF&>;jh;=Bbvs)tr5nnsK6*&Aqg+t{iu?rJ|_0 zAlDGCBQkB+vq=EjUFwpA&V+fZT97iX@FeZ@e#tqYGHs+67O z4R5)!w^1VUye_y}AHl`KZ)znfd6cqymK{lcJBL(i#S&Fl?1+|p4qY$cMq1?QPn;gJ zKP-J4h96h~&GR8$+g4geG(>H8X4Ojv6BT$OP zCVp_;CtHvIn|BheREer-)})w>Fb+V~crC(p1bel5;?*`hF>jEn&X^7MKmm`e!~+B@ zLb?jV6?a-AmB1LCL`yS$Wsk#lZ2i(nZ|AoLa0dUlF-4Z$uz`c6H6Rz`cub*?KHIwJ zK|>fex|dMBwPNWR_&l%OhYd0S{(SzPCAA7#Q8$9-nH>YGu+$KKNYAnT1FlK1E+ni0 zE~cc4%OwJex_M&nHB$m{(gRJt2_=~#r{XM2XXK^^@Mg`%l9dpW5sC`|U%cl6t_~s! z7OtZXP|n6+>~#qdy&Hl6*eX>s=K+%D64#%0W$tdFoTOAl*17)N1LL$*ur5) z3`{3>C1*@Q2~k&F-P>_k?<|Kbn*)0_1jrgDK691QHuqBJf`!bpOeKrM86?BhO0S9@ z@y(iWWy>w9RVC_MoEMgv&h{p4k=DW^e}b@BvWJtnXN3j*A(NQ`vz1eotb+Nyi1<-e zOqK$o+VP$9W~Be-$Q{T-x10fzD}KAO>r74kt@h68H~)_;2~{8%Z$sJN35r#D#0(JJ zNLaTS$Hz@MOS4DGF*$%u$|1&r6k;yQ!!Ux&2`JaY9V3Ns--eF_sTu&As6NEzmY1di zcDM#H*_wOYVJ@y-4{Fv`-*SK`+1P$KuY5a$_r_fiW#Bgj;&Guh=Nlls1_oiHjsqy3L_`p zF+?6RDoYf-u_!h~ev=k+_+JaUBF_RsortCS3dIF z9b4~96AdE@x#BVCT(0k$XPG*2Rw4bCW;}IW1o?IZ#fxG_-U_Av?;L>QXXH#U`Bo_S z=Yo8tU|)_P`FfD;cmo>07_oqlwryT@;2wntHcus%0|h&_`rSgbms&*?m7Pde1tk`c zi9i;;?v}0CSBPS60P-)Et*?zB$)#CS-8X+#{Vqn~|M<;zvAcWvqhG18q`cW)cXS9p zv!eIRp(T!>XoNuvSl5&}WW8gMEnO3~*|u%lwryLdZQHhO>$Gj#w!2T;Hm9HWoB1&_ zKPoHtimHkov0|@X>(0z8hcnTj5+({YX&GAzwN0&v^zr9SK})b~{w=LR2ly8?7DjI0 z2Om~-gq-FWqx!ju=~%3}a#$M)6xP9}7}~bBABQE#$8rG{`PYraAb}L9pN@Qk7!x>` z$urH70L%VoTv{c;GL7>k!HAMzSU%mSD8vzLL4l8(va@O_5+3-HnXJwGu}pqJ_Zyh( z)n){Bn(AhgGHe{wTDR?NZui^_(-|E`sI<129*lkt-aJj(qX38_LN~*gb?s(JFnpoR zxDB@avfImivwcNfGNCVACqk1B|2l&@wl;j3^#Y{+@I)TU048Rc*&er-SF1;&tW$DT z0JBu5QIi%j^n?IaJPki_39LttK5`iVY(r99w44yF@*agWSZlgvt*^tz^XW%zf=XHu zNI)Ni@ekD-RrB7a0_yExkqN3^)WOGXHwrDYOs=FupB*C(fVK(kn*B&dB2Tl+U!(`Z zs+&5|dAhKaP{QH5(yk5$)g|@xUYa9bAnJ$oaxL?C-p1k4bX;XOFm7ejRfBZ>(gPW6hFaP)(9xkvP9Ik-;`D@H+?N0tMv!u$ZSo zudIe0%slfCHby7@CcgR_2jDCMEhuMlk_;shz?=-`*>XcT{=@IDVCf^Qga_3Dfi#{2 zribE+b(n`}=4^m!jsBK!i`WXN@2Ls=pECiYjWjx z9FeB(KWuwkYg5f{{+O(uotd(r9+}h6ee)$Fs?!UT&*_2e;Fd$_ed(n%q@p2Ge_=W{o~d_+|kli(#^k^#nN}!7+0sPfCdPnlK9(pF zi%q6C#>GTkmsectRTHKy>?ieXFl)r*g6)pa+4W*bHke#&uXtszcU7r4lbGaz*u%yws8DKQft={EX!tfDG z+!_}Vab-kK*nW9(cS6LpVInG;5;N{P3y)^UPrwy}3!JlphqrATUI~GAv0uuxm9||o zNak|XvaEUdqt)gQ{J4A9%6*iw6v&t9>Vvg{ci=;pS#^z=CUW!FD^n2H8bY2$s`C1( z^b>QI7Eev6@GvNnHqH1Zw)!_hO+LHF+ioG9V?l>x78+UsvCaLt#XH+)@ZQ!;bUB zSgIo8q^wmH`6}FPZvq(RRqjaivK~+^KWpoLJ3tV&HlG8=a7Gr_!nPKoXZKv5Z98<_mF5`U zflSmZ*SD61Jsm^r6W8=6z&OGTs*`a)zBs&(iz$Rao-^g&uvbL@OOFS@QbL4qvB;{# zw`~zAQ1H2_WC{c+6+2{Ag)q-S;oCcy(=}DB<2pp6M@@TdA1&wy3Ab6PqKAApP{o)Q!l;fU*iT%bXQcYyI7l8Zx~IVL`)d2d()gg*E;UeCa`@5jeX5q-*02?-Cp860Myg$)m^ zCrpP4HUgnwO~7mzz&M7lMx()tW0jy5edto^p26Cmz19sw3nGmSiQ{$e0&mfX0sdY%{dhd5o^#|YxYFq3Ww%n( zbM#VWUULiVfq}*qErCPcV;w~%xS?w}Nu#6#f#g~!5}bZ}vy=0JFIa&H1SFG)jHtqa z;UUcc!Gmojg^&97hNGBQM9jxeu`{mhQ6uJFy|4Pb?G*6Qt)R?w8(Y(@$FGEPD!+(# zB>aBM*$>z|Po9kf!)?J1KNmLh=tERHyXfUj)Wv&j#qG`n?&vEH-?ck=@X1DO4#vZy z3}ro)lqUvtY3?_5-IJbh@kGOyZg$(tlXXM7aTEBRY#!uPJWIOa-P?J~W~lBLuW~hC zA3lp5#z6%(e_9qKVsrqH{YO%S|G*G_(;+0t82kXP)ra^lx3MODaC8V+E;HRGiHvQI zOxC(hHgl~w;(x}aNfLR}Jc+Djo=o=AFPDrBj@pl7qPiqwoQH-HQV}yq&@XDibRZOgA_^nIw?=Ck=b12=hVBsC2 zRZo_OJ5p%jG8^tRqBt3mk_|PKP5k9={t=Ozy$*tkj`2p42)n31Fk0jd9Kz|%D_(M6 zZqMR>fPs~XzPuO#sLO&^_-On!tx!3Het`MZ5C@oWegD!PH!_5NK!pAt)vS1s4|Pi+ zr0jSQHw>zbco1S*0c5T~3uLZ=;8+BCV{0xl=fQ03QA+jgO=&mwH2(YS>c9QpxM~<1hXIsadLVM?ot@JtL!pLKyWdNLDgV3c|IDw2;qN5>XV7ea zo!i&q2%Ba}~3iAzIkh3um;+fCg94bo}RnS8#d2^*=s~Uo@-jC$NnSTxc;+qQQ+xc&+GMGz-!m4-QItl zR+>antMd7r`Xo#agtW&?jRHb&M@kti4g}%EA8FsXxcjvqwu9Gt0zFIc7LsHkm4Juk zqFw_nx_d!S`p$NmrHK%hLO|^~%g}HWV6wiYM-OivS_d5_WiMITC%VV>9N6{oetD6$ z#@t%Vpe2nU?%7S{t4yspUX;Aucqwte$yuF< zs!lV%&0k2GM_xF`4Tiw|@JQZq<5<&4;f9sHW6T)jb#ZmSw})jT97m5Du_P?5QGS@v zX12_01}_d@*l{p?rDHeEc@5|R5;!w2zxU&c2Q4904?JL;3C}=^hm-`H=}v#1FxAf>K! zMhSO;n*4j?CP}znZXq4mA3!j^~agX%tRUz)p#>>*{urMoyE6<+pcqykLEx|T{YQ! zS{ek>(&Qi=l~M_a7ib>DR-;V<(s5F2Tr2~u7nArr2WdnlFhhoUe3%y#^%E9g&buW_ z@mN`4s3JY5=RZygTxf#}v zHEH!|-)wXRrx2%J6DXDwKuV6n%Y(OouM#4`sMTrAek+UIh%jb`6U!=08;^Az0cN_H z^>C3a-l3n&Y%#K%@c3*}lV~hfIM-d7?1INM%;IzYN8LqI*BX=k>mho>rz{$h{N6JE zsg==AA}QvvL*9s+{{8d+qV5_{Vx;(QwZ8nyYt%j9z1xcwo6PL?plknOcUv8h;!xdd zy49a3tj6=HwTmt>_4F@08@!(NR3E$A@Yn7?PL4U{4Fc4CY^(kzFJ{5;oE(-~p^&CD z00uIick{N#^bn2X%hl}Yb$y+awwr2DQVl&tyqL6!*{-Cvl#NLezR8-l@axhwE8O^T z4(9jMrS#Sj`s<)uTL9Tw3%x?=)(& zUu&(-f_fMgZcuQ39SpC(ZMvb?(#_Pqt2_w$k)JLo>Tdq5%%mW5kiMPux00*-d3)U- zenntG8&EK88XKO{40)E`+CYGYf{C!oiXKyNK$C{5J zCBHuaM}gbmY8R#Jw9HEN+FB);NdOhMb%qM+aKLR-LX6mi8`AX%mVz@?3dJDnn-}#c zLwM2ZDW|maOFiO({6VPa+#Mfe8oq*Z;H@|eO14CW)sUnR&X~wwu}q8DTHm?V+%bbb zK|%Jg$mg)BGLDv#AwYD7#P`Jex2;e?2HueoBp!ujaSVCamlI(ve_RZ0mv9O*jJCO+Z2bZRRmaQhjj(TRYLdzX zpP(08hKGSdKF~3j+O-A9tFF=?x^{8Qn+7w#v?Cu$6I?VSr6d#o$KnyP>$0D-xlm+C zoF2>DibGH(>)qV_dD+eT$@^K`{rM;V{U-q3@L1v^VGq3DS1&yI?0|jHFH`%6L{dbT z;sIP#l@^_vaC!I$K+?MjWO~cDqX__^haUcF))X`M=*}kdJB%Su6TQi^=-eg)3>6Dt|~~ zqML!8r7{(i7cH5qdQ*1VOu*vL+{u3|!dg|maJCA84lM};q2G&&g6Ft~5bT&`g=$*W z!d0TR#SN#eyR6myrIrtC=stRSn^F}hzbU1MKX~3h54}_HeqQ#s+jpOT{9fPsU!Y&( z@^HVOZ|R@$`T2QxI9{(`?0P)iJidYXKPTOOYt#Sremmaca{mw}j{W;*=f^cyk4C>A zk{M+gtNe*nm8VE!u*KK9Z2O1pa%>x1zDe;w!&Btnnc2~4A}OkJ-0FIKY_}AnMM+9ESkc z(g&yYb1c7zalUg&?QPd$)XH=InVEN9^c_Mn(bF~(cuep6`RCJk=R+gEUKi)v`Dff} zT5Ye##|M9IuaBFri-(JY&(6`>MFXhaM?R1?mYAca*?P&C`$GRYTZsj!BxH?&J06%= zBg~nEV;_h0MeonkPmVFXGwshWk=zBFUG?DHryRdmqX+dI=?nEgTsd5893}NRT;oyp zUKrQ+UecC@+^s&G$Ap0#+b*GZL@y%UIPAeNtqeAEdbjQ?iOKLy`9k(ns= zpYCY+m`VLOcH>U<7&f2y*IQheQZe~UL%{C7U907^$qljYAi9zgZAjR1%?BxqZxv#c zc%#Ay>U*lKuG-@G`&fE`6gnQcTcZ);IQI+(llC;_(f`2ZCmHLd*2c{<0{5i!;;T@7 zn=87GWCE?{eTj-y?nXm7dmh=XttwL^f;Q;4v-fHFCNESn;bl55(TZsg|9GU17=4k* zV}cMX>M^1uloqL~WeJR$FNd_ovCZ^mZ?amTP!`LK?t;Dg23rYWwS{AN>8f3(r>G!U z@r@P9Ze7mly28b>kleb&t4xDCz0Ary3nF`@NO|jbjQOX*ILG*syvEHG*~RI3RNi`= zif-YR@+-%kz_46H5YFAe>`CD!CsDP7dpgv!raRw#Mx;7dA6uh*I0qn?SyE&>%l+=H z+J4V-RSe+1JAr`?kGld+mO zYm#|gjA$iOrX^vVZU4uoA!bNkeNU`fBjYX@ZaeJzkQKwpQ{V?I!eZJEO|k=jgsvQ8 zrB^fYhk#y85B1+ipRo-b%t#4w%Xt7N-e$f^h5X)UQbQsol1YPqsXc)CNs`)kGHM0E)8WR01yx-;TWm;4vFs{^SlG4&;>kh^0d>4br2I*GtcR@S|J9IDOzvdP|~q)uUjw=r{uqd6wQWCtzcK+zX0`l z8wmON#6je4PYrXAo%*h+GOP`))vLetb4?9D4f?lb<{{Y=*PXNHc02s-U3IA*R$QRQ z3ZF40XsECvD|+2S0RTn=%{L5sebIGNo;AB(Y8DY}h^?SM^{Zt;e_Z+Gc>R?6hgDHo zgs)kEK`H)PDKXx5EDsatYWM$S=t9OG@%9eJ8I_pZ*A)e=(}pjD)y~xJ!crpUhj5&< zhPc?GDabR^r|Rb|zDtoh290H=2D&i;8}dv^j<7PPJi%^h!!^o4La#&3RhdMlcKqMr zK$Yk8axNR*yhP>2Kn5|+$$SL?6G8Cj7vA8p6TH7)b80r^ImjR z(77Pdws$lKi@G4_cmr~-uC8mI0`r~&deE7^lFV8pRi4yJu9Ovg2|iY6fh<^~%ZY9H zz*L=}gQd+#oT@wpnk}w*0`&`e1f>(t9mYdH&w&~OCw*>hBwkvsJIr7a&EI7rH08Wy zrFCY5rd1w{$SgU#>2blAw1EcRqQecWh@#BbpaB!`nPk&V&d0B!`7L2K)5&;S8k+7g z1q6NA@Ma={Z?@t~QzrhV!z{SXF{RrWwrD-wGP8>SnMD~R;VyyHGc|6Bj2rk_ zwo49MwIs^T6C!!Ei2;26L3|`g1156P`tQNObw@x&x(AcSqa%RK6DB0QQ znJ3tlF0;ECZey|r#$Z18!cti=+-TW93R+EP13r-+t*`J6b+U>qT*s?|&T+a!ODmz* zO>UbyK1*gw2AB&ms(^C(#Svkf>w=#yIj~vHK4LoBpSvc_@52o&wR{Bci9Ht)WWMIX zD)8>LMEVMuOrk*lUF)kf8GFT=?kGA}T&#NXpTl;Tg+mYahBk<$@C*djzp18J+kr_q z2@BYPdwzy91F;6hU|h$^3#lXp@>z|>G%tGN5J*bwMlBkfoZ{Oc1`i>4=~7~y9veO? zpiS~OJu}Hk2vfCl$AigH*Ya&*D&S)SmEPkDbx6Z7oS1V_RNLoeI3bu}(nDH_7wVyV zT&JImHWEccShnt8j+)Hq1QJrHe!sZdyfth$2(xR_=QVYD46GEXeg_{_wo~v!p2=M7 zbkG4Nsb^31;JICJ1&^iNv3f2trPIQPUH=l-a=qkbrB7$-7kzFm%1h^EJ}D7#m^9z_ z4DrZA64}p&zrGGfZGPS|jW5G7(Ft6y;beWs$h;sv#6%?X#1s!YCwsr~tR--qN4J(@ z*lW6QjqC^#x^(?;jcgAJ4c&3!7TppAY{+R<9>QhW>pAbp0lUu6?^<=@ChUaU7DQCv zU%5i*2?9a^Ze8rdMcF7oCEguGz5g2d5`pX4{pk6@gPQyFy@+l2!yqRo)wA0X-2*Sk zCBCg(uxYLj=6O>-XTxHj{d@l2G`}@H?fn~STZBQ`s9goKC8n5WbiymzLcf6ZJ(4rhX=3Zs8#6LOKW}D(}@lQICp{f(tzG7+3t>g!B&mF~ zbUET6nyD8UAHYY2VV_XfRL{si!}G3{L{$(Z#K+^%z{mnv7*Jf}7)-}>y%61E)#00` zW7Xh+(`ZKVm-l@~!7)h%_em$kH6E77V=Q{{$#k-;S4Q5NL^Z<29L|jC_!yLRzjOYj zP!qge{Pw4v%wQH8Oarp=@ui?Q$#xl*9|%b~&cy|cw06cHRhebgf+I4Bx&sy4D=x=A zv{u4Y$?^3~E64Ze!)Z?U)`~}a!JSAkck}BquQE@L=sx(hj|_KxRESXZTDcQ?z0dtL zW76V4`zGMYon(Xz9sAN$XvJ;3YL#4E)kzWlZC$vP$Mrb;&m_GLeoRTX+1?!BrzoQ5 zVBNAGelNdWoOYY5h=ZRWJy5B2Ey>spRwHt`>n)ySrUj0U=jdkQ_3tasF1Sn)H)2Cz z7C@=RcDd!A1Rtjlsh$ug00d)p!8+2ItE`dgj=QEYVII8f(b@L?!3FU9tBsWqyKd}Y zGn%9BBQj3)Q-bgu{npg$t#eZCtYO1XI3|{Ymd7oi{lTKJNSrn~l#B6fQym(^M2kVl zxGviFp-C=#M7Lqy!J5L>yQ3}aZNTsMy`d1%-aiK|_j30Nq*2>hfeI4oBB_Nc-H!F4 zw8z3&$BW49mslk2rlFkU?LLzp_??Y>M(??d0nqHmC5nj*nY6g-v{1jDmUrtXlAJ6G z5L^kI*cdl#sw(C1Pcw7n{jDZ9wlL4bGF4gJgazj5TN)Yc*BL&DJ2l56shO!uy%Ye^ z8^W_T1;3YM&m1%gw%+=4#t-&}My-dqE_h-K$ZHatUCVbx5oM4%g9vd_ zlrpfHCe%%0E5Z@Cj47epHH^9q;<;_&>w!kfG%w&{a<#ZU2J(oBoyID>A{7o>DL?Kg zPbF|)oU6wI&rFFT45_JDW|tr{mNy`O?re|w+;(!lY|}o&`ak>oco>~4w!~VG;M(RE z!ruMgRqrp+RQVb^@rJ6>qR~9x9LF29*@H#Yx{qXQdH%)3$QvI=0RBTTo5|GdS_6+v zfSK-P@VvN)tbw`AgKgb--UPk&#{Gk?KiIQZPfLnj78!s_-!wAJ>9{HvmavDds7d~v z1x(YvE677SEh$v5P~g3oz+u!NELJc|m(d$YIg??!90?6Z*=gK=Lz4&2sz%D#1v@US zrs3~CCdO~RV6G`TXLz_hXOGr?t#M|wjbngr@vBOD<)J9iXdHDIse@XF^=Yq=a@+d2 z(!s( zpz*dqVf@Ow6{q#8eHaJ?orR;qwxc6*Dd&+LUH7TgHPgn|-~ML5Y^!Vb`jW1$j*rK- zI}R6bDn&?-ZNQ`i=tUNMI9n`zYp)fewM97c^W`XnSiwA9+zi~G+kjOtp9hO> z;ESo!3S`{MHM(=jPc|f6YN5%p>12xmtX$>U^5@$D@QWL5_Xp}XaCBbxbY$b!cW@+c z0HLwSW}7-7Gst@$s-w6Jmx8w3P(Yph(SZ57Jk-ChNWa~nkJ&ILi}3U(?4;?(?pFm- znxQ=!{WzG&4ZI{fN&$OYJEub)+ChMxd#ZGt)ts2h3DVRRGoN|0i6V{femf39kTkMA zV6jSnHNizcpO;Fds#jwdGzv{yWI&V}(v0mYjRo1{n5WHOtsj&mH3@tTHX;;gsolo{ z_eFsXyDGQVWnQwPM+NF;<;wBWQVE z1&%m_u}I5kVf=`Ps4{s^)mnBhKVe@O zeD)4c`@s?5rNaeAwyC4b#=BKCyB}#h%_OaFNIL;+ZRNGKF97mev09a-BnvPP2nfq$ z=-l%PM9_C47Yu35AYd<;MoT)Mg$ZU$YG-GeqI6z6fqZx>XLA(>y?o{7p%MeWacGvz zO1n|#d<-dzc0N=vQ?sm@uqI-I`|!p~@AiSgESx#6j^>4+Z4T4CMfj6yf>%Xj2_kF3 zu^n~4KT$C#$XEt38>yM>EU`+Fm0`6?^}5QaYoej9E`(-%X&8fj+d)esZ!7o#Q|oTd z&N+Ey`eROyL2nZniw47DhAV&(e^l(7n~Xg6jCC=ORZZhJ(fpad(zh5>qulJjQ!u?w zi>?6pmi<+*C-f+`pjE=HAp^#Ht-~s+l{Rsc9C;+UvWiKhd*8rpd^Z;sBbUY;?*fXj z$R-yXho56vI2A*)?&bAoEKrZ^WJ*qUCCat4KTUjCvRwY0SuAR(bHC6|YB5mL&_FSX zMyX8c78hUeoVvEnK{)on#pLXMUR;sPE#5p|oMw~$ZeVpJQ)h3oQl*{vtjdO0 zkuhUCw>fA?Lok@4P9LZb7*W>BQ1nyz5DEE2F}ta>3j89_yDz`eQKaI$K+z<-04t*+ zj>qUm8Z$7Bvs2I*gg=TW$$<>Vt2qFBV>J~%Y681?2^2zHyE6u#{SuWTAA&ATPZYwOpmy}FcYvO1)ScrgDPWsm>nfQ5vE|Re^N5a8O^~f8 z?@mbjJeQG*3kwGtwyJUS%wa{bA#CQZCGWUp$&uxL593lZ$&4UU{@qxM>@o_j{q+yQ z7-;~tevr+w`QnLPP4CbCB|Z8dnQ=`;jUA&i&-Skl<9c&KYXM}UORIjrGFpP^WN%>4 zfZ<6OCPOI|AU17^so^M#-7hfm+d1#Expq&(NG!I8nUE`g0}kc;l17+YPRlJZ8(576 z0?8eH3T|qN{m9~*jQ%|W>nwEWOH|6hGCoQnh1VtK*fMo{%n$rl73Dj)wiFCPiz7|etqxGJT&p9uM6NtXsj()^r6v8?^kkcv?Ienh-jk%&;RY5r z*voqV^kiiavg7S?`y2kCH(br19UWX5+}9}1CU*K-yeqxACM|{>M`n=#DqU&ds!P6{ zxmiAh`wCUr@etOHePzh4QNio=2#9Nh6Xd2pjzaQz8tDA;gx z{fj@po>u95{hXfP4K?l^tGET=tw4KGly(}jmq?9=`>J4=UDD~Pf%ie;sWb5Lzz9|; zmP(A<3^ye}Yzm>asBrOsoVamVNZlj%#Q6&cI;6+F!rW=#TG%4v+&;hV zVo=zC)~G<3kNfz+Er2-U$u7e((PrWo@GcH^PzjhF>(dqfs>ADIa2wPZVh1LZ+2>BS zwQ)nx%DTo1gbT}%KiclMznr#(U70VHraV>cS-y##w?-ddFsE53o3EdF<=7`Yz%ZcC zEfB8+)9qu@t0@>Y)n)ZSZa%iABxPOh%(e>wRF}1TTzLYQG5UAPKRlJkV^K9#%`aaY zE=Hr|%(n&M!7Bj^?8&#Op0F(c=JT)0;8WeJhY8#BmW7*-T~nV0T8h=|`od!Rr+aBrJKEu^< znA9Gt4k%`^m^Y^r*n z{lKWQPo!FR(Qh!RW^a6-GGL$v>jJp)5A}m{PqlW>f05Ll#}kKC0uqYXhl8m9r{#bS z4xLlJ^Vjx5OljVjBQ*u29ZqTJ0I7&`+_#gXEkR#7U=8H#nCax<>2cg&P=O4SH&0>A;Ee70Z29dh2b0;I_8!Vdo1aOc0`@Ye>nB+EUMyWfv zuVV;w^WF9!sJ^5>GdOr{J+M%sTsq-6eEgDW_-SP&e2cnXFukS+M~aaQ0i|mYPx^(a zB<1ED*Ye{??)fk6HLFAdOOk^}NYxaqnnmt*%|B)eR9MiZj^m|6eqQ3Auihm7&%2kr z@8k7GV&ZEaa!y@*?9#LRr>kHxg|7pA;F<*um9Bu-x5nMgT5qA$h8m?VNuw!MBN#Pe zmXcH9TM43@kmd)>g7g-2Fc>zp&$X^#Z-%i2VGd@PLXq`4*p{`ezla<4SuKKyJhxy@ zqGgL$}f-~Eq6fELjORjvtlSoq1ErG4nkclvPtlFC>H1Q=a zs%C)EegrVYEL~L_iFVOHhRd4q`&s~fa9>TJ`=O^kgRzil0V^v^Ri=}UEb5eC{m|3Q zsLPudg&n17C{#@!-!ii74qiC%n$ytH$`74D{RG>;N>!VK2d2*qkpKZ)O+v9x46wwt z%$=yxvRr9KVvzk!==Kv|D2F~{Xl+@l^A?l=p}03*FiyKQcUdYE<= zEj`YK1!wE(zH7xPGiAukwZ*;CXLxZ#Eaflp*jKRs*0`#Zn@~UXd_uoyF+LkLyebFXxuF5x9Fw z@uA=ASzoX|Ca7J4dbrsi@9XU1X2-jMtEcE-7z9NPcLupr03Gk;Hj0WmrS@_&uh_r0c_;E1#=3DysgRXOy2K{P<9$X6l>%>3ti};^}#~6Zq5)MLIQprSH%0hJlx*n5z7! zD!13&jX~S0R4zA9rHTj9dH8$H`)j*@w{U0|k{Pgi@-VOdy7=4@RQ0{IP)Ly7_H_)S zW_nfkIOPrcR0Ei?Y3)-4;i{bTR&`LErWgE`EIoKAziveL7&&I3$v-rpeJP6LmaRpB zt%sF-%2aD*!pJz?;e&qUV4!||3MJ~=I#|QMHu&~oXe~I~l8y0?FAe=?B&8_&0b8&S zIPSotrzj|gUf;mck0~xQq#*M(UjehG6*#})OPEX3hQBwlQ|2J|rBO%#yzF^o&re`P zh+Yptp7&>`yx)(8(>Y1{?3~Y>wn4Q;_1U&}ca{&&lWHE?cSaMg4Xo6&$d)olosh7i zZsr>sJ1)8uwx%zKM9gffD_DcUEgJR8;oE3BB)INw+ut6apKWKSG0L7dKkl>WFyVPO zr<6>mz;96PL~^)=15@+L@PSY7=x~DfM|R;XcU-LzS2WEx8?#RAO9X%of~s&yUvCQ7#x_pMVV zzBT{2SpE3fJfG~kqOV2ZI5yINUf!%vdak!oH}PlwT-oodk0kV6AC%9B&Tpxn8q&t& zbft}^mb`+J(05(8eFA;Eip-pN^(F<#&wFaXfuXq}X2sf2;2pTBzX$hJJYYW9zBA8P z^`%_4Kf^1}kQf&DQe9K7J;fP?M@@RwazdUNX{TkX8C20iN$w`T3@eEHzU4kRe4c)S@HSc%D@H*Wn4Cur$ekU{1Hz|5n(8y7r;i?bG8rFw z0-(@e%ypjtV_M8w$z-j%+YD5331~%lPD&L%?UkoHVFQHsX$p5RaH80htdPl4udDRBWs}8d_xpR#jdQ-cr|Zr=KL4pk)c0DFV_kzkc&DG6tZnPdB9=~O}6zL zy|BUT;cbnLDkBZC#Hei0V8`!|c5#YObxGh;1rdq;{U_r6H{jb}f%;ldcew*mxMlQ# zIyJ&9QS<>UTcqLsWd@=sLzm~Qkd8Gewf2Q*oF!uU34q44nXcbxPF(g(?Y*LEzMR6C zghj=67CAX*f-yCOfm>?9uWVClQPkFqt1RUEXORt~^?{|o0G;i@_AKZYw!8V$DFvehBMvnEE;%$b&Ty~%=jL2fWjNbP1$>{F}VPds6((sb>#x0Asstw22m_88)Z{q5o~c+D-Mn{D}+`u>V^+*^(3nWIrHW;x8%_x zUgI%f3_qnbrDn2HYNo}U&xWF4PmyNoB4k3aixOUvo6>~uj(=-)v0)~g&vgU}!4!R)ER8iP#JuQXT3{*!f*sz^Ed0uCo+osKhbzS+K zbcH?jQ&@L>dliPmWHfT9n9U_70dj0KZCBcIwc`1b1?An3EEJ#FIv4d?t@q8P-1-bG zK3_d)W!u!^-^bef+_833pb3*rP2SKdX0?oK7VPu#XCWzDkqtI`d-iV-dt$B0j@9Fr zN$r0SFG~$|cL3UC^~5yCVN~9D9OCh=&62+~g==SE-lsFm(g{jgR|27^a>xc-usYOF&Z9|s#6C#Frs`MMZ${k;hhQ7q{U7)Rcv!tIV z=o@f`>uA0p>4YPjeoV7v33$uNyurs}Efm13KP+*99Ri;_L?Bd56E!{tUp(|HvzV6~ z8p`uL+en*k_*8h{*3v-!PJ4TPnkvncUULvJEF z&ZaY7#{Oi)dAVsl6S)49<>9(}&Lwu634Xh@V6M>(C}TF{OI zp1qZ~M)?*sD!?CsX`!o!x=07Ug^S%O0*lNLxQSaihFBW=m}uX52h!;ys z5&l~S#3_OoBd{bE;Vu@t*Zl2UqejENU{KF@eJJ~2$iO5?UwB+W5BwUw2!pJtn#0#>!JN;c$YzWO^boaU#fSj6dX{&6io6vc& zVD3&&CL|2kp$>2-_$l*Phow6#R}OH8WT3-5h;o9rriM61 zP`0@aVpDc`d97p>L(8CIu5!3CKNH=wWTRo)ob6`wiZYh`^anIGJJO8LMR=Z@zU9mN zsy!SlqN*F#-$xfg5c?!FVFdsftk2mHmZkv{0aHV zvzKHR>Lyyio)SS*WJW<9gF%Jr=6In{BxI=OOBAkf$yZ$nbMHFokKjjr7D}Cn;Vx*c zl;&LY5lJnzHa<$yzPlI!Ib7pTs2MXSmO(N*$#O~jF=Ix0BkOIjb}2~hK>i0|$%}nN zfCxfPcfGsr_(PXRk)hcwoYwq8cGb_LTDf0h;=Sdbb51*u&p$6V9am z)=t=2YCPGNr^_LMYGwqh2Kuh%Iwe-%dm7dTf`awSH! z{kUlHIm^_O2Z?B#&5%XU;c>baDhWLOu7GejHy4%u(ZEx;o$nZ>ZUZ^F;c4>(LKpx! zI~0K#nO5XFXiB?_1zJjyJi|zJGIh1Xk?%k$3}O8)lM6_y=vVK?ir)Zi+TB-QQQ}Ks zA}bENse89Fpwi#Mw5o@~kfLlP4Qhk}M@l$W-$h)d7jyb))54Arx6;Gt@D7S8*2r{k zg7~5@;>aFz*hpxn9%nD054nlHlB7PMFwI9e-*Z$SKcC6#q+dL`X*w&$ z%xCtBAA7rHIpDhr=RK!Kmxlk2b|a$m9mb38TF7A{p9tt36>Rb zS%xp;Q#i6z--lkZHO4x=F7=Re#{hPtRD97Qr&=#^B~u9X?e+0s@q|9wI{F%*Vr@J% z1(2bU@~u9t5Odt=p7`@-^x2P}kUtS0vYkkse=Bn0W0@z8>G=;vK;(#Vj>OaMyizymSH0AoA2(Z9%@Lcx2QMOIoFvpBvCo}0LU z)I!2+$qz$A@tL8pD-6Uyy@5**<(+&|YCqwJGtH`^mI@sJ`hMI;QQMPn=b zD$^YDV<}VJCaL)rEqTVnWon1pf?2=2FaYup^k!O(^b~Uhotm^#ZZx(kU=a8O_H-O> z`=gal=VQRRrvkb+pik=Mk?5f>={AQn6sRt3`V-1Xjk}F!=^dU+2VDrmVYLm`$-+l?Nk@(8zoZ%Tt}x#Me<|8Jis8D0izITj3}~G zsJsX}HECj$4Ah00R5ZB%09y`YYS)>JGT~Hs7`eyPFPWU?tHw*(5Rb7L0@FHSI$UPUr%5njib^$q`{V5K{FBhr3k6fE1a|DLCxKJbt1B6+9#m8 z;N`osp*J$^QyNb7uBCLaqXQ86Ucb3r7Tvtxh^UvDKXf>dqOu*>O#Ly~AOdP$2V9)- z$V9n}MHTdLM3D=U#p50_4b#muprQk{tzTozLU*3`QUjyKF*UX8`{H{>2(}xJ1@JD+ zgV)DVa_+R-Ua6l(wsza%4DAH=#Tf2@Zi?3@W=1c3i#U4KUlLmp*=$i6CnW%7FCZhY z_SvwDF~>(>M}*Yw%{%0-zhJxJXPZmQdG_d~gaVG>JLPlpI(rz>pUOJ+FeB+OvHuyc zEU+?c{fk)w!xxX7qlWGm%_)K5!wkmfqG?Vy6b}l> zMU~3Ma6N#q!#dbQe%<}jf~BB-Rx*~+j&JBAH(Kp>x*P4Q>x_1h%I`Tj>gsHU+aOed zgCtCJ0Bf{##mf~jb7@My>c0%fxfKY6A7Kdv{xR(o{}D)bc|GT+X_2^H4rkanpDx)k zZC`)lv0MAQ5PgSJZTq=zg}9QI+Y_TtnE8U|890*sF( zoK{64IegC*7yytHy!lPj1SU}Cp$t~l91pG$QvDO(N@v3d{tY(3kmuC|R^smh5M>wH z4(~owCI*Wnc9L8TTxo;rk1F1>_F%LD3`Fd^Wy@Opnj|lmm&doOaO)Kj8u^3z`Nt^5 z?Z=CA*N{Bob?Yi!i=1@c9{-8b8^-lfJ{G%^@9prvHCNnp3Ligf9z69ej(j%Gh*e7) zUj+r35C z3UcPVoaU*VDoSfBcV|9w3-Aio@@`CAjcz?swW)4bQUZeISJ0GxcN<51U6}Q7kx9O? z(?INbaTJO0k&DXJ2raM-d^V!DkZj!XwA}o=*b_*=z`rD8q0}%zNVBh#Se5U+Jj%Fb z@;3VO;`e>?V3v3HpF>{-y@;u1=JkEKZuZ$%I;pbxWdr=N1zVRd)qN&fX8C^sqd;80 zjqr^v{d^s~YDQTrfH>J4WzX;;V~=(^ayamNLs9=<*br#|F|E+bA7o2fA`n}n{65># z&y|fWH+NZ4Apdq*qhQmgikz;5KK+A{csDhZwD^BK(d`&ns59;M5L~60n+f6Y+eM@q zv-P>rLSsarCdJz7S*6@6u?~ec(|dJMP^EeHmqKQ@W?v-AtJ~gejZ^>}**RCY9&9u& zkazM?DKWx+!QgH%x(8X&Y>B#*b-LN&S}{%3&CTfYG7wv33+#HH=RLECXBH<^m-5w`Z&LSLawIG0krBlUM(>!zRxpfajp2&NQQXT^G^aHDCZn2tDT-(| zOnY;co~=Z?V#@>$MR9Np4gx@M-#O?-5=qW_SBT>RzQcI)^jnzShA8On#4_&JSghmqiN z`j5I|MlMMbbo|p@;l}(<&Z(v-;{XSWDd+w|G~&w)@+IMwKuCFjJdpw0U%Zz22%#c) z$+7IenjXHy-^t2QgWAmToU6Bt=1>p(1po7!ifb0-MrlRaxw`FFY_<%@z2FAp)E&4l z%u1OD>|GSUEDAYu`qg8M;;XlpqXzNS+eBdkZ}{G%P7^0_tOs{S3Y#kZ@Gx(gSAhwdD_>G34L|fOKKP?S=EK+WyG{k z+?F>R3<49qsfK2dhE2#hLvKX>!lg(J?m*bCTZz4hyFu50d zg`x+_FT;1S5=t~O6^y{q95t~7UCVUXg9uj}16Q~pccOh$Ci zDyB!>=*=tcJ_Pm60?t)Tw?PD=gT`IpjJ#)-7XfXv#xWmsB8vb{Gj4qD4L3Ywi10Is z9IV7H4IkiUg8LtFecbgBXRKV#(-I8Kqpz;p7SorkT#{GUUczpUX4H-V-BxH{JyfLN za~45pN`m{4f@@i&!+adNH_Yn3b!$Oh2ftF1$)aG{pjAN5aUwj)EvlP!(JEIP+Nx=% zxB#bbFV47|)M47;Pn3-Xo1 zfNHRVSqpz9rH*SaSUDe~y21Qb7X{9>t{6KBElsB%UW#Z8C#|6l$P|O>8c=-fYhWvk z=i_h6F}F=jcG#Tj=AHIzU$=fA(jH-BY6*dK08KHMmD!tBdoMAa!6cm4id9qm^v`8- zhb}tk>{~V;JGF1weA~?0p8@5PiGdO%Rsy57USfbESYE9-uyv{vsz!d0xlIKcN~t&0 z!Ql-o9d;J=XzQN5Gr}>u2XtL77L$9fmlM3$)hSfRIQ%eyxrxHhA+F~atKB@D2gGs3adw!w4y7fS=9gxWKsx=CGHE-MZF?>`QR5X zA3VU}>$Z)pUcU|_2e`1e*iU&He`3EaM!CMGy%i|imL&IdM;7ouBeDl#CYQ1VD5~Bm zz|6H+cvZ^TwLE;BlQwv%&9YYJml@Zd;l$m6Oe6e}MVys_WHtpIF7+V6*?Z_>NeiaQ zOuOtbkD~PK*|TSeaPqs~{f@|rP?EEZueuLL2_uEyK7T$X|MTqi7ZCnfYDH#JFYQ;& z11-W491GL_U{BYNSr{{DF?DniHrK9wz7p417W}?SpI#kKC5J1 zHqe0x<`Jc7(R#2G&0bV2UVry-> ziMcYn698j&?6Ic^J73{ms>KFn1g3}^&}@Bh(^2XmlpFe(?rbqn?6WB=<`<Yji}*k*DO!4BW%5AP({!dY4vo4c)a8<6vJ8r_)1ZA+o{} zT6pHo?~e)Q{hF2vp>vH83*gieGGF!5F*9ms>SqC>ZF^|<=A+^{uLiE=Egd^t*<1O` z9dBi9Tkd9GJ~zCK!wWZo?4w@E*q-2G#x~}9zMMyq(}HsaNLYF!8QCSVB^QVA_`KJCo27l<<-9Ga$Sw9##wuVW?7e1{S&Ns~mn5(F z9jg>M`U{IhM_MeJUeAA$c>=za9;ghDJJu|MBiD2rM~OomQc=ByWoq`Dx#y4-u4P?W zpO*s!hl)O#hL1+6Qbj7ZFe*qDAah~9`-8)DcMFYfTrU05$k8#O_+wV|j^|FcLBMj4 ztyEHFt%=|&S4w6)3bk%puxzMefppZWz0~AoC#D8UC|nbDz9-GKkU6`mX9ZWw>(NI4 zZ7*Z+l~>t^(58s@Hf*u|D<%{Nxy0NqMt0&xgqN@kL-W%;FcNb53TA8VnLoX0`v3KC ziYL|v&DmF?4BsIcEed6gO1@~IWBYL#-H-$o)|G1kG)U=Y1VT4Zs_;c)MmtedfY~aA zBLF2+-FN(I#V3_k%pQQ)w%a>fe(}zh-J__R0(=yHoIp-N3r8b5es>YM3v2gqyfJx% zXWAA=_!$)3>GlZZ8l$=c8=Ke(&Vpl>V4?O0cat$TLIKDF_~T)mXfCtbC}IsRN)xXz zTx%;~>n0>fKtFdCYjb%o?rD{uUG?UVwMDY#`A{fzKNIsiodMn?<}gGYUYp*rpVAAq z&A?`XOS+z{=$6>(<%*f_h#I)Xc5tepr7TKy?^N46)qWXHwM%rWg#}Do{Ki^c2ds2s z{TAm9r$h0!oAwn*;zN>*w1>7?#Xz=q*n@E(ax%&T0<;Dcm@Q*IY*I)NB@dm0fd{gb z179ng zQ5b4HpZuOMk;y2=e$#HCkCoCORyC%m(0RIY{T=0&#QqI$fe{Sf;S{~vQ7CFeA&+=u z2kb!-lVu`DL6L&5xGf-VAwU&5!XKwuS*P#}`}B&fWVJr=WX$U=y7r0wntM$H1pd0J zn9#-g31u!nb3@7OO=~Yo<1Pd9X@KnO!Pb((LP+4sL;zKBNA75)hDS`si&;6p<0_>V zK7ku?{bj;tC5S9Mg2}btN$z|X%+^~t%~6oGE^BQ$^H8m(cC#Rx&DrS4ywBs%IIfjc zYgUODfBo6b)x~%G z_{VQWy}HGJ{dn{(yZA1V$no)?|65Y`S`r@@dLpX{PW=nOs!Jf^CTN%Q(p*xWiFqmg z3AXwe5ql84wcUd!m#|agS3X>H${-vTE@-wYWksts$*pN@Jp%tC0Kj-K z=pXbi=hZ{97*{Ok^=br=20S0m$UT76TJT#JQ-P1gow#Vzp3&?UwIn~CSdl%*vpqPl zesCxOKIF%(6&jF)%$b>QM+p1WGXJ6rHQ}r_H8*5MUW1tM+wa*cV2|i8`Z( zZprk!G5JR9B>cH^sGIJ;=QY66Tk+u{Ao9DuvRp$saTgZG7r9Uu>7AkJ= zre#_13@T87rV7jKx6MsZzPwgulS^TriBh#E#&-~lfXr}@x_Z5B{e4I#xb`#In1Udq z)Tx)M24%yJ0Oj8(ML7reegM7h5Yaadqu@pQX>-y%s=12hni7!4<=^?(<~_RTw)p3iml|G*_H1E`AVUO zwcjr@e?jPRD=k#ns+o-Cm>3gOOR8$2PRQ)o#Rm2hh8kiOSj=#vsB*Krm9ABf z70K6v4(IG*K%L^!x_zJ@gpwz0;?%xg-*4MB_1(?WX5YTaUb*Vx%-qxAIFGL4lNU;ck zwwe=a?g0S>&+d3$(*kb*?0hfDm)Dm_mM@lia?ik}i?wl#U9*2~*s3h3P7mTZ_$Dxy2X0q$rm4s$v@qN5>g$(7Ap-uSwqmeunksRw zAgYnjMx9ZD8-T55EC-Hidki*|dx6y@%|EWbetAOplug~gq9h#|cMWK{z~FkH>j4`c z>y9^u<|s`wPmb>2{$K_UrD`UB2+AD%>2K!7smucjwL$C~VL&%9e)F%tUCI2qWZ4v_ zQT+`yV#0*32B5XBBt%>B9FGe0xnh5JVH39Ko#lcV)l3XVD!VjTAvKc55_>QwM_?v& z#p<+_z;}+LC74Y+6NJ6z3LsE$ZeeLCMwxp7#eCB2gu!CT#EJnh-j9UTANj5Cq6e{* zFrjyn=cI-b9)<-7u+$GsfnDX(be<)jvx$HR`yoBsPS z4WW>7IVY;l%%xaXY~sYBq0PUIp<1+{Qrhr!^Q9%lkghTx96T1m6!u7VgScVrQe=%N z1PeQWWb+0jpki&qh0si39Xf(#OetEevF07uE*Kg^Y2$r0E3l%X2I3XNs*!aDD@Dny zlDACwoCH?_KT6U^Z#SW<5VIjkwxnXgnjG#G&0&u;HL`}x7;ZJ_+(_75!?MhbK;m6p z?}P_4MfY<2tlBB$MeoH!MmQ)|Ow*idIw~alHT5O4Y^V!NSP%k}maOSD0aqz%trFs+)XOuWwwW3m0ByscEtb}QAv9*ncH`0@MC;)SP1U5%+nlsotkaU%T3k=X7wnrYvBV){)UyU zFW%rNAje$NyWLI9jr2P4C1#*Y6ZqWZd5SM2A(YUykuJ8BL{--ekGf9w2X!ES{JWOb z+kg!p5|mJv$~DFf3wl95Y6&=281@=HX5t(<6@O|M#DPY&A5ZaAlg+`TROc=@)7PkjVy5@9RZ2SAZFkF5!W4eeBEu?u>mS0Mz>){!KH za*Pe;fDl>;1WS9m!;Q|aF5zXT7cSr*?zT_%4!bsEh8;9eNifmjH%7!>*=#UUD2fg>SEWsd=T$x_X{Fa_qdD=tPbM7ZOD4WFIv8ZAhEUjA z>kU)qTxHh3>Vpzs^^(WgtnyQhG9@|FwarS%oz(T8=_u2KH2}7QM_`S^2M2TK!_Fo~ zbv!I`nzVW4L*ypIYE?S|Ds=<|l>}=-lwtOpmvzDZV7_)jc)x`;?CR1o=_4TpvORn@O>jd?+E(QT$$06*C6cG!umK*E6OXva z&3ypZA{a7Mon%SOU4Z0_^mxsLqy55hathJ0V;sO^c!_(rq_@1c}r7l0rc= zjfDqk_tpYh7Sx)k=C#N$#*ypwnCQF>MFFfD3axZ}j-G_Zx{$_F-9`e-+!}Aur7JlL zin4_fd?nLD8D})Ry{A>K0NH?Qj-}d8P-+VWEOB_4c0`+H=AtWShJ!w8{+4!3yE5vr zmwgrU#lM<>8Jyit`RTIQf5O1#63kIcVf=^Ju3?HzcG$IVET@X zo-YKZ^>gJ+lQyg7D6eE$rV2`CuOD|u4`CqH9a9hm}mc1t>vQwPg#DS$cA>;QLo6PF7Rp^nK{w)VTfUwlG#k9{Cb2tpeI z+6T~cV@(88a&%Ud%izn27mMdjK4-N(D`CHrD88(uQg0mDJ~N0LLaKqm4Rf!F?=|sl z!`o}(+uFZ^CLZvxormhBv$kcnx^}P}v9p^LI!!9>v7`%udNQbH#GP zLAQgzl4%=`oij~&p_;q&X8Zk}OmxIuIA&Ud`|w}hy5%$A##^SE#L^)6IgG^j4sZd;sSCkj29wE0?8mAD{sB6b3jPyc!hHjU8WhcObei@oJ zFtn`L9hY_5JlOn&TBC%awAIy@eBn#Fx=>{Zy{YnaZ5Ts}sjgKUWF>=uhDUU9`?Y@x zi4%I8_-r>`6I4hAus*?k72Z|JNxZ}%0h^gMJ7?-h;73lH%}}f4`0A28ykuRfxSuU54-hb|f{6}A!K z4y3!nZ^JbR;5CU9>9+*IAW*ZgE=aURH&L4k>ebOQ zI2kE5U`rMW!d{JV8jXt%!q#$@87>PRvs<=K-u|OTwfQ;h@`|P@%$U%Z+O_d8q^-Bp z(G|#!2n%F4lm+s0>!wM*uV+8)EDih>C(g&a8#eWv60BZMq^j2X|1dSpd6Y#mmvs zRSUWIbVUVSu!$!-X%bAM75u|CngKXCm;L$p*F7I^9aK=~grJg_zPLUⅇC0fY#mj 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

*`w= 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%0DPW^7 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≈w7QS9exzR-)lRz&aJ1*88YBi*7JRW_-8CLThref;0;CiU#?`6`Xt-hYTp#o| z&%W&(adW-!4w7ds_%avqf$isJCtW=_q zhcUZn$)V(n2`!=}S1i)QKcqRIL?Y8C21<*j@h|n*?b zt>+huNb0FYELZYS+_U1Ivxh^?B6+r$=%YEoGawHkBJ=Q<@Sm;c0wJBD6GGI_k1#8U zGdj^6?dAE$Ip8JV>aKdFzai-ePTbS~KS0_uukVDtov^nP_IASFPT1QC zdpluoC+zKny`QqM*Bw8!7AKeRjM;=|^U-vbCII$R@R&)oP=mXVD^3&secM?AE|=Z& zLS(IpMxI&Qp}sAWp3%N2lLUMnnv=f0ehGGSk%1!^Lc8h{nDd0mF_A2%MF#}!Y(?~e zrkk85Y`CX+TbR>ULzdN;tt`-%POJo}Wlq&*SIuQg>S2m5`xa!I4xH;o0+m2!diH9p zCBZDFiO87lNndTU)S@Xy4X{E_BHv#7;u;aO#-BI9yIQ$I!_^ySnU zx4>GAizvvU$km|)rR9*R$hdL_DjFyX9Gn&(gtB%ay_T@C6=+jrQ?@A^W$u+mp^jbLw za6)<7CA00D@&EDP|NPhS(HH#R|NIy1i{1+@_l=H^j=ta{_}x7%+G9g{Sb&{iLZ$2u z)M(7m3OqNpPi<%!L?f=xvSWIlxo=DE*?U#ci|oGV$nRa4_i73Yd|Ic*dPzA(kpZB5 z%RqA~WmU1psQ32fR{Dx0U!PvTzI^?~3Ar)pk3OnTYCYSSIMcQ$$Z00|EHTHQ&gWXF zulHEM_q&r8nqp2`hfjMJbb&OSo@8&qnog2eh+QL`ho_sfD+weE|`^iB=mQ z(JT|)A%`;t(sy#t;&EN3jGRi!v%FN+G~>v8hI*?fbN*bEy8mDO3Kp(laT($5q!wJ} zS7V#wpCsY|gQuB{Xx_K9^<6=$zzLK-AfsQ^{xrhT=7rE*dm*9B>=Lekzm4jxOv!~F z6N~HT0$R@4y=S*()oB@%f-PtfLsEd4Hv$RWMllOz)!AYu)Rfp@ZoQJDQKw%%>|(qq zL>hECFs0e0*|wd$J%j2uC1<@y4hSiqS9v3uu(^62pM`{9q0ID(=3lbau)vT+>ph4` z2bN57W}EWGsf32P2LJ}Hfs`-C?DIN(la(<3~;A$Oaxq^QnGoO zpuJ5_YlieO*u%zJtN!y7WegG`a)kC8w1#NrST%0FJ6|>cI0P5XrlT8n5;Uo9VcI@n zpe6qC1xB}Thdc#)JLEp^RTmoVu;%>cB0eD!BdsJ!nW8aObgB=YKh~=8Dj3PeM2+WT3}m)-hF>ihV(AZoB`nC^|;+KVE0Ub}TDh!?OGl)i{S<2*ay* z{=5+Blz_pj_r`%i48vedJ9n&8SGLbiE&REug*HXS>4c#3g`AH6Q95By)4tJ9x)Of^ zpfcOCQ+V3yMQeJ{Qb_cvd@{yEkc+tPme{ZS)z=p*OX;ti`jBQu%nhg)SKLD zP4Hs&dCFl;*1sWqj=v*Zk{RRK0+x-L;=*l(RPut~Q^g?jPbvUXWz0uX6_s~DSixt^ zCb@uc6g*jny1NMsVPaaI*p?5sbUeKj5l!B}Ww~|^1Ba8&GEpv;zzMW?i6K3$cR68- ztVD?bjI8N^h-=}bJjOplsdt0W$c?3L2EgNFJPxw8{n3R{8^>@w^y6VK=Z|>I1 z?oS{PGx=zGK${+ld@p9%YwQ z@|Zz57UcrnwSIP?_nJC`hdK+2r%aUU366o4THFobDU(E$orxDeza93l_f%wD z3C%yxL?%VT`YklCT0ZHq(p0^)j6T9vc7~drp=M{O*%@kfhMJwBW@o5rK08Cr&QMeP z;}aNaoSwRcedOBn?N8l6QoVqG=rWJEIS#aqI7>)NyC2gw;^rA*9Jy}1{9{^2*0*P8 z8wuEJva^lsY$Nr*?`$LC%jMyyF4M7xe7Y1qlY5c^7?YzNjYN-u1Py_?0=95;25$md zo^&dyL~X2|uxZG8m+qu>OZx#fIYu>BU*)PSBo+)dm{H_i<|{VI0ho#=`O-o%*yLoc zX)M%U1cS$tk@HnXQyyKL5u7HF8_*7-rJp&YT9PCSs+b#xQxFMH(^3JnRJ)2CUO()* zz9w}rAdxY`GF7ZJue=hmmb<5ox8-ACZ3fl!0{sktLQ<;C#kH1+#yE2kPg}Oy(+{y? z@s)^81*wKE4rgOZE_K&;%#@)ENG>IW-cz0c2$D(lsF`^lStzP6ldUr!j6A;n_nJ7a z?*W+hXW66=epA_mN2RQn89gcWp(Ih=(mis0NbgAzIicuCq#5_uD1B$(Bs+ z&f1TA)~+o8$=Yc%n$5;(>!g+z+{DsNfD?4Bb4f(Xm9pgkD>B`M$iYJfRU*LEraOYFC2%`=9^UyfASC`1e2mH7H}aiAdF(8(V+bmK?WGmel;Z zUUgjS11*C$$j$Dxv+Hv>q?u4P7fC726|kto&B1n24O0-!uAx_57YU?O!M%U zrDPMeWD~as%@-z0OwiQ^Z_%8?8=bm~Z+mW8nkQ8C9j%+@+aR(NWq+~&>QTY;j~+*? z>-U5DX!lO9F0D1&ni~O46Mx5IizEgjYo}h~fO9cPx$b10!ium$*4(A{tk4o|Bo-O} zzS9tbJv+akUO%aTaTOU&kUEV)0ZQqL6bw97W!Bp+RtEjx=66T(KD?6*&X{pZqf^#x zh}8zKFK%x8lnBs5oWs~cAy*rymzigCuxV+1r4Xq>F~xGt9tOq>2NbO*?4_Xb=QN>N#ERD=!< z64^Ia!P`dV?3okyOOMKK0i$WYxT<1ga(IHff@zGe<8x z^)T#HE$RNu%EBuQp8(o;FeYj#B&!-VYw2mTV7eW(i9lT$Zl-m6nO>(J1Vpop0s90j z&hB@VFxnje13QK*2hBhX3gC;Qq`xxI7f>v_vyBjRBeU6;SAmCr&wXG;*2^oc)fR3c zYeH;GAa8Acl9aN<<1Qs%Xd$JbSuE0Ig`n-3Yq%cm<7qOb88kQsLuWQAAk<~w$gOfE z6-%3yL=MLNqtr*6XIkVNYxT|DSa(N_U}L8JpS{W&th*K*>p-t&&7k!;<;li5MBeIa z(w>lI0dOqOxI%gH}IogyZV=u3cA8lQelFMXxN9(Ga^jHFU|(l zP4wS&vLJHV6`)BlNVAPQ1@Rysx!vSWAv~yW>TTR9fCqV+ZRJh@JgCQg)yAEAc#v1# z>)=jEu6;ZxfF*8lCqEDJwCLeZJv_*FLJLOT0SkGz#-GUkyV1LDKICch-3E`cJs2k^ zCGR$v(K{auauA>Laig9U=;TvAZq##~I{8#LH|pgK-F&K#8-+-j?P8^e8wD}PRz5{G z8F0fC?Hg~6v{j`kQA-{daJT z#@*74ywEgqDH0!{rp_6vxA{RpY=Rbz_Tv(8>S=UGF0bTRa{_}VDvFpD2Yx!uq*l_* zWFt{%C0JxmZ85T};Q>5v7>=;`pJv}Q z()&VGLFaQG8JAKehE2`!^mG8{s$f7uYT0m=!^PA_EhQ@m1n=v^4Mhlj2N;SV$P%;4 zFeM3xNQ;8s>%*%Eh1nTnjvn>p)s&D^uke|*SPerjfT&grVEas7ZyS;>}8FM{;@NatS{$?cI zQJp(`YW@VA3A<6Zcv-rDvF+2k@r`e5;TcQuV5mvVB{~RvH`wl_y|-$~R(i7-zlW?w zsK-1vAoB3)o+KkXh-5XH(}-sapJZB5!hL6p9y?hF81cHer^%I<8(+?y(H$V8M`IgG z{C$3V43sdIQN@2xe9m$`eSWe!oS-y#(GO`5xZ3D%^J2fC7E!Bn-7M6#4-ibrxxW~H*izkisq z%Qv@oe|<=ee_vMP9elVI=rQRMyz_*+Y`M9mG>o-6RwXCCWEz5~ojgh$xKMCcqc4 z#4%H>NO{H}&6Oyaqw;_3n0*m(c+30&s8V#!mT8x|<8tx)jYgT&SFbCL0 z8rBc**(Zs}7Ob$tF}nh`L!d3IoE2Z{_#(Zomjl;{*q>@cx%hrUl#+VD=F z1O-Ba6=LlCF-D+ZMwNuJAvK1tkC$&b`$dmd0mEl-4;4LH1&kg6a$WRz40o*TRH3e@ z%PVKuTDO_Z?H}-tUtZmR>f6f8tNYImDv#5eZ)&=hu(j@?@-0$>N6e@MO5p^RhHuGW zhp;unTff!ML%J*97or6~T#k3duyVkt>p4$#@oHQ*D_ZLy7RdJ+k~jEosOM`4qrjX$ zo6@0AHRjfx=+3Ju{(dD>-xpDkf~DdfISgi;(qiQf*9t{ft{j{5wW&L&(eSH(!%eYk!(0g;*Y&f4yAYkwF!bWFR zHSz@8g@E5aVrq@N%nIv4D%7)VSI*q%t-xBbhO+T4U15<-BfA8N3z91<^Z0XH1`u` zmMPt4G46tQwhzs!+Uj}1=KTGb039A#y?Jua^AVhJ;~1PqB0X&U)kmA(X4ou?4St1Y zkeb#N_a;ApW$~nxtY}CyJv0OaG((2a_Erglj!Es+C9b_5zXn*gm>M^-3>(|MzNubI zpJtF_qC`v$DMsdLbemXY%mta@Arob6$*%WcWr{6O1wxtHq_d%{2wA+@%8kD{;(pH# zXdPS{>p^UsGTvqIja8Bds-mS9HK9&!Bf)?oqy+@X=_@uRr`5N!o-2cwUa%22K_R(JDtwzCkmhR9e!Zn7y}w?m>x_sfU%oI`}{k4q!ne> zQl2r_8Gli>Ho&0#jbLIOp2M*ocx{*Q7CLOiul4FL25kn}A#mb)0q-)4S&^*pjEXXz z1l&+r<~ij3)N+0->!{{xS38)YNRzDFzPEUO<0=O#aIntmY(|ZOJTA(VoNK8R?DQv% zPQ6J7ux69Wssj3vk|bp`!^}|72x(LZ&14(*x7P`ar@cPlN^qKzQ{dCJNR#{H=`*h_ z3-}JOB$h>@EU1aoEhSrrBd|GN1p23a!JD|h)+)4-4l`qDF+oH=YLINn>D8rA0>E_W z4!m13{LbBgv-n!mj8HjguP(BnV;py)mg%2RH5WzdTX;lr#*i01+(^}|;%j`-9pvDg zK6@=}+qEnwH*}K=e0dcrcLd$F)*I!M+09)W1;z>@M1cVl02+vBS`#DUA0m~QSdZeQ zv1A=s7vv)bUF8E(Rrj~9ws;B;%xHS^XI<-vT2Xt!^6Xr(~LsA z9C}FrZqS~!3AEw0f8q05GbuYjySxtXLUXjWIm*%-9E%T?Bwa-!&1tp*%`aU|qEaf6 zPHZ22LkprDBmf$Zv>mDnsNcH(Ye6mnQ~@72R+Tn={`%&xFHb+ecsV7fNn&V^Y1hf^ zH#ze~3*iH8LWF&p@$X6lNHZm0gI-`TX041E5|x0DDXwMX#grR(k$K7T419*1e52gJZ39 zi(lQxr$=sh~|QYMb?_L6OwOl2HcUX)EAaBWF;PLFvX`~F$fCL z>8B%wNUM{oMCHCbc-r(8J(`KWW%>Ygi$`WuLD4_>gv0>hlMf{mj!J;kX?Jc5$@2rw zDOeT*yV?o4J@b3!T9)AQs!LiUH^$h}d(K9;XIG;!8NEH%|Ix%}baQrlHJV!R7kz1O z&#s<~FDP0pmQGv*YHJXA=0o2Dr?wN(C@eu11G(B0N zCs0Dbgz#fMn9qLmo9Dlo)-Z}SMbAJ|{_D+GXMcTt`s$)z^0K76h91@keo2J5V=*an z$clkg=_l&2UPcDQ1t3=<-rK8zT%%AIlHrQaMj~hxRbY2%Zx4vuUau*^wFrLneVQ4U zjareE<_GIRI@aRgkHx{KiQ?lNe}8-}G7|x86oMJE;Gey10yvN&?7NaC){xSi>(lZI zkQsTlm{6-%_c4sEFjw*EgOnz4pL4&s+Y2pCwvIsXLre#ZZsMr-;JAl&G;00i~wujcoy>rFc;9$ldT9{_%mLNpvGuo4t*82>A01Zo6OmdxkLah zueo_;M+2xafV)rQ)nO(SR5e+ltKG(?X(>9Qeg{2XqzZt*-EgDMDXQ4KOm3LkljJWJ zhv24H5mAucm(vARjNDv*1sQ;t`-g3FB{c!8)i5XvEyZ}+6mya@R#a(>INh3!#Z+@j zTt?`EWm-+}wR++9Mw24@(@lahy@e}ocndjJon+qoXW$%CMl*AA8u7cdVD*A7BiO$Y zg!THIE)F0cLIG0Al6&S7dZ*-c0TDX}GDBn#a^2$=tgWA2uDCYPy79YOD=*#eTEvKE zMAA9K;9HCa2Y3*Sgnk_Gnq&!!lqkCI`w*;f5-QoP!DNe4ZD#f9%b<4*XaU**HT~@I zESc~?=aV*~J!w;|K^fLzt3_3_{PHOUne$Z@lPpju-*n zj!qx+*I-;ZuK~W}Z+;SvlmL3MwpC{kSQofqt>0EY7*kHGN=WeCEvUj2x)ouLn8<9C zUvF*9$bRCRgdXZyUy3n-px`aeSh$xdtmIYaRGS~KWq+E2SiLQhYB4Uakd)cUO2wnQ z6?B7AQC~oz#5=eVt?_5SGrtQ@O1}h7`Z(Ztiu$HBV zaAp`piLzl6Y_Z~}p0<6Qwn7mcIfJ<*)av#V8;a>^z6NruPeCmvz+}7Ca_%nbLbKOT zZPv49Swd;aRK2z(L4x74W-F6|1+ug%%BTk8UlWEA8eSAl$=64Ju~I8YaSZ@qi+{|B#-uvS5!eP#RQE0^#YYN|WKtL2Wf?!KGY4hwG@ zo!QY;LTSttkugF6^WG~{*qlB)QawT!5^{QV>1sVr$z(D?<2v#eZ?hb2Pg!h2 zfDDRfDVYW6Dhj$H)I`mKEib3ubPGbJxP8-VAEt!75QT+Z81lDQCjvbjutLGbX9e3^-dtZmdVMq02F@@{l$<6Pg3#^l}Tst^k; zZ18OHZsZR|z#QCjwkT-K;&&t6<*#$9qU9@AEZCQ9^+)K){rW}~RI$bCkE#B9-{^mx zaH(!rIs0QubN7o^G;CKNGm;0M>%mf6@SbjohqEr@s#GDV~ zXf*-(TIST3x8KJK6YpEpl)it-vV~fnkmt{S``PcFYE7*K^98yOIxDPIPh)vEKVQ#2 zp1P_}3-?agi8cl$b0Z!o0$8D;sLb_xYfi^AskAKLAEd_Tt%HGV802EfiX1<~OgI?& z2A}%o{kPN2DTnyxe?MNE4~IhOnw9E%g8l_llE)9yV^^qEL}6|{21F2j_G#bY!&0Fq zhM!cj9o0-_QP31%UTS%&{rllAya8u{hOIZ#?a`hzT%)?;y-i;g zA}#@0Qn=KXsLoEnEuv`z#Z>TO()-fyKnw+ zH2M8s$0y%@Qv31S?n=J)2`0@xrL=mQeujn`>Q3F*Lcrb@B^#3$G?4-H@@)pfMBl=* ztW5g@-bT7>zq|^s!PxrWGh=(IrS{u@@oD-5w6qT;lN~*;m3IW2r6wq1T2FKDE&o`X z;bcNy(QHL3=7T!Y`i+%Ja{$bL>}|Dj=O_G*5vOP&%bT%?f;w8vxGHF|s;T$=0yAQ9 zm^u~vk})y`*v<_edVrje&Ug~ykO26_NM!SbM!xG-WSRBLuj~sF59o_J7x_VM>pk1y3BHMK7)`U#QT0BeHu&<9X*$31wqZK^X zSIsl91`TjkU*Z=vq(U=6sC{Gp7?dexCB()Yr^F&-H|%?1h~=aqGFeDy1?XhWq4{}6 zucdTjRT}6Ec8S(>x893|510d+ewD`9Pb!Q~vqB*b<3`BS<{Htg*@-8Q9iQ-M0pdy# z^uM{bs(-OH3=G`znuD}jnSh1~abbKWP5J!wjnRMiEBKewuWtt68{20@;DXQf(6%7Dq36mxo7LVh+I;rhLPsUs_FzY)-@9=$|QWL2#6fB zk|%1yGt+}nE3l(_*}Vaca)<4gFcZ%pwC)dWYQ@6oKLZ-YZ^|>C>Qlxn$nZtL8H-QqMj^(i!a&nrvD<1JX|G zAJs{{MH_K@Wqw3(3W!7%kyM#`PMTS-1DeI$*l>z4_~wMz2CAnw{jKq8 zU$R;K3DV-%U-#?t)w30v@8FSzjH$OV?+czkN<|A*=2wN7wP-#~D52V`SeVxdmA!aV z4w80~i+JKvXluVu_&v**l#m(6;a_HK6D^c6X|g)m+OIdp>=z{GlqY4uZkGj6+zrjqx=;Dv_9YfR;sE6Bgq=S$`iWM=k9x6EV|o zP~H-S+^I*mppC?+k=?qkz_y?ijg|(*5dQ*x<#vt(gFyYrDk2#6!t;cYKisj^7)$1` z`J6@SPqnBcoBr6^E`k7wg8ae$>rZXRq|X$9y>>|+jU~B&R~t#;%uEkk!HhW-EvMwd z8@iJ+nwjiQNDZzxV$rzjI7M1dXT4SGHTiojZuHia2^$lHtgn6pI`wOD@m@2YP9I{g z^mfNO(+nHS^(9+bDH-Q?$5vHfPIY>F(?OLm>)EkxcWh;mGZ=KjCA$2(gL3@Ppc6L(ugI` zjcdR^fhvax8?{+PdVMfW{=1SU%|uN6RcE{AW4$fkmHeJ2#svSslQ^OU`a4YBEGaC` zcP_ehpNM9T^i(Io1QzGCP&_IVS`d9t7ozA4{^*bUcgM6R_peDj*S}hKj3Ao_?cV3( zT)Qay$RO>R6?02>+@%gF&7j)QTn=iK+}+qI`P^Zkk9|g3n^(n@%>lR9#%xhV1hn9G z&kC}SsUw|DvU?t>gDLsntPltf#}*XCWpm9eB9B5KYOO>Zk$w2Adz@*?Vl5petAn-N ziH>hVqTKq87ck_Ylk=6$lB`w?6DQY>f?=gznrSGaqjiw_u5V%;EU0pf^^r^m!S`SK z{83V{1>7-z{Ate(3s5!Nlv!Kk?k3k7-Weq50R`xhoNhb53rjviKFYJj1dbUO*`XcC zL_&*`s2a-Qwvt!Z7^}o#NEsCb`}B)R06sxeVMHn{J!(h2jlcvL7B@YB8_n2&`WN+j zO>>@Aqlb}B0p7$zx@d(d${nt*Z5o4`%FG~aS5;SiOs_Ju!cw7Eix;(OUYM0?$~L3f zyz8`wIG$kq7g%!2pZT;NioW(?)6dsj3$KyL*xLZu*9JjVzky{ueSPlFKMwH5H3omW zzFD;{4cc1B(24c5m)o-!V+FtRRNw&~fw_7bi*;9t z&JHrB5}gAViXc9=sY}rxGC06&+b5lNOiKjHsUfykQKd7R-D;IvFS9XuE!1TeV(_jB zx#xn(*FwQ>o^K`Ph zyy&@Ir?x;}{W}vLQ}05z-cW-56M`5uhE-qmsMh(v*0qF0u4VN(Z;PWlwlc-J>$h`s znHdz^joW7VthZSJV;{kHqiw~BP>dD-E5i}As_psG6Jy(S;WR$6vWuw-64x-^Ktu;# z?N#uxAo{(tf1^~diIY`vBbr1A1Axox1(4IrZ3XN^h`TbkTMEginBo_D->-JHhHU3#d^d5g|F3D=EjT5nZ=(52{X)_T$Evz!vxD-fY#k?kq$ z(_T{hYG<3(Lai6xnUYhIl}V!6C}Q$~K#ukgFZ!Y}C@%EgKznK4pkrVxJ2C1P0U?EvHX-yW7M zdz(qBxSVr3OV}UJ#cQFgDg1BU;vjc%IJSCpuC+*|mCBgU=d55E)Xh{6%;ZC(3fXNr znKzZ(H7IDOT3QOcNW_dLHfge(YTjqc&VtaRJP0J`U%Aqo)y9Z zkXDVZz36FIk^~Dg(~P|0**U&HZ9+{zHIwI)??qM>tnX~n9wQSZtOPkm9#)}kIy9Ze z-Rf-7SW~DZ&kmm*9-nC07~KI>vT@7K0GQd7{LtB=p2;!!0si~U{P#Kef&4(o6}cky z|LXscAIL;6vYDE1HIK(lBHpM%YR))t0PGS%2_oUKH0vop`%hAtxb!^`nQ7s8AEt0X z9>7?b(mOOro<^#qi5~3!^T}~{47A9a&D?XLX}F!~{_(-IF?Bt~XX7xkY!b(+S;MGl zwt_CZ>47B$r`hU(u6hZAWvL5(&&ZN5maHIo!6Fs|IRIBE++*$vc0y;}6pX7Wxm0_5 z5^SlaR<^+}-vrHrvwdVN?cK~DJ%ydQ3?b2Z{pRe{-QXaSKdNqg&3Q^&sFWoro%4$= z;rM#lpuKI>2#J8#I7(`!WE9yNl&YHNm|Th2S!M~EX1kj#7*&$I8#U?0yAe1koTzQU z!i+?N;BuX9+G}CLIzaHq;tG>v3#!~$pS5)WbbY8xz5xG9v9Th4{}LYDC4~a-#!Dr# z8hwHKnEK#La4zY2c%@{|K6mb!r3u|M{{dt{`yNR}!AvuT5Fy&OFrnz~_<2B8+?CCE z;xHSm2_N9D8KAmpYFE1#X30IrRP!1%an*8o%{7(HZ8|a+#Gi6+ymm0ouh;3LGqg11 zrYU)sX{O!nw(~Lb7N-4dTw4X-NX`4d3F7e;FZVON6T_4PnKb^_E00yjwDolUX1|*4 z0XVxYk?2+v9P!Y?UCr4!bpndysx(EoGxh*n(OYP}W6?}4+d4BHyQJ<&qEB5pe1Tvg_U4`~i0EW!Z!Iwt$}A2a7aKbUrb5N-m$1!mDp1=KG9iBv znJ7+B>eXG<(DFNn;We7@EK16_hT>T9ug^mAwV``_M~J|H^j-po?xgfN@CPJIo}6zeX~M1YM z7UPRv8(9@?+fXH!fD~MXnv5IgwA&idydZWV0*-!nlkc)^k9qgCfw63L&bv)f7)bO{ z&$&HIUj_za-d68hBheiL{tLT>w#_Nb0oB*e*<$jpF>@Okj7#S_M-;7yChgczJq*<5 z6l>wc1*wp)s}`_6Dnt!q2Y>3mIC@)0vogA4%KA47Kq<~kMNH;)ycz%D0Z)U@u|*h_ zf#9OnQU+bt!VfK$noqH#wTYf4Qj9gZu?=q;SQtCfz&$mX$&LxWphN| zBg#7T`n|yxsrBj+MjNBKRBe`LTEdP6liA*$ zvtAjnaG+e39;?NnhF;j&^1c;+iDF4&P(iF(4(g{8mHy44<)&q>dp}wltT$$SYiQJ7 z5kRB|el{z+soR1>0#%TK4~?NqmgJ;hap}Q8fI$McKdoB>Ak@4n1J>Bc5msUAzT^$2 z&F4VhKp5t8ht?n^kPaa6RWbJ-&ly#yLBi~;vNbZ=)(EUPqCuXY(jHJV;`{AZeTqMM zet3L%yrJNCHdY$pl4sR%s-nPANXptHd-_@W3pkJzsw9$^Mfd26FzJMgw6thEGp|4`)WQ07UQ-5uW3g4{#f8?E^xA6dR+DJy7V`Uyw~ z)IvT0OS*5#KKRnld2v9b8E?HJd?#~6iG5C!j#!4iYJ#S-Gn&(=vz}V}a+*&N1m?Sv zNkwv2ScFAfOA;lNr(G1oGRr^y`=9?hKKg?H`=9@UePJrX>TJhHM_=%fNtY?w{cSzx z+)gl|Qoim)sA|mcwJH64Q~OlUvXlUEvN_9+>3Qbv9kl0iV1Ip4|1V95G=P{EXyvbE zOPWR?wnn;h)-ul2#FlGbmLy2OZPqB*^r<9=X{HYUpe5c-%_J=TA8&LsMi%N!+cN~L z6mv5n9KKydnlV$K8!a?i1gcW3jh>Z@R*AJQw3$B0i-bzWqt6o&-RW}?D6h7C*_det zaAfCP-Z`*Qzd*j0k4lLa_7euYLF*nQrO^^~DdTiA#kG8zs9l@E* z^AmEB$r9aWYONc8n`UGcR*A8rz^-9@B48Pq+BO#`N%lm6j@Wzk>1a$w@8?qgCsT7d znv%;jPk6+Y7LT(zD+)X)R%`@sgagaLIFS6PJ^;@O%({eyB z=eDf;*o2v(fMDt~>zBMu&Q`Yf42s3NLkN*e=1+$)yFZjMJs!gl@TB%$R?viIh2e?^Ufj!2G^a59 zCas#i$r5iiO!IKqFKiNIQ5ya{7e&M@_&&ViT^(EJoM(o;zS3JSKPrJIfyJz?RC9SA zzE1WFh*Zk>cO@g2=a#_NGvWd7oXplVIBNPi{_;~efba* zx29h0&=Xuvzb^}><&q#l$GyES-00tvbE+uHI6#4X%DH2RT6~#7z9f876H*=_PeefW z7q3J-K&YsFWJ&g4^a#)J_axP=L2YJ#&eb)eG1LPe<3GPHxME&v6jqd-%e!vHre#9* z13MY3?f}2gJEdPRyvWZi5;3#-)l5V4^eC&DL{D@pN3IOP2; z?xSrybDvQxUI9fUw0v+dwbCIb?!YoUni>rjd7Q*k$5#P+7TMQ-JABY&@&Idn_R2kg z2)QOO*$+E~qDRUv{k+&xT<;5Sue*xOh4E@lNy2%xe!G=d!yjyEZok4HvJcFzw?9nr z&-E~A(LE}d8pP47Pb@zK_00gz6-+fj1iX{RQ(%p}r-l|m+j@_EKIlLa0hDIg{OlKY zdPorA*Ti$N0*BOpfvW}Xe#MS)+e;j=d^rzGFwn2QxM^BU&se@BFK(QKU0qGD9RY?d z(Z0GTNy6vMgU}QN_aQQ_L=g`2v1h-~yL)Z-g1oBzmXb&$35$BI0%DE};hJnw-HeM? z+S<@YO*_O5IJ~|%J%4pEP2*oK#lu92Nh#TcD<5YJ$c+!o)(*)iMtF*m8DUP27J zqsa+*D>0xN>|n;iUkIW6+6z|B$Ea>Fzm-XXYpn|Q|FQS4%aP+&f;j$tp8_E}LXw@C zs&adKJhk&5hb*ajw63bwO4Z%}jqV;BB9WP}NP;FnsnX+#@Pq8UoS)zNP8p<4X~Z;iR?H0hwY@T?2?u%?3Klcs@N+j^Q>T*hOA&4zr7Dv~^G1 zYvGtZKy_VStmY3~t>?(to8jtk)X=v~3v#83-dKFCtq@z}F;$bf3p)*Z$UVJvx zU|7bqBFoF=}D`=j{gBepY6 z#@k;GY3Q`T zy4P>~$N^p$F7_#J<0tmpVwCG!+S`G$ZAr3EZ^;7gXRPdjHIqwGLMf`=Ex^pRPDxCD{#YtWZiQN#uj&U{fCF_b z^!VR5U%zW|#oKR!*66mgRS-Ws%`bob>jgRI6=W=Mlg?=)GO1dF8?F$FP^g;$Vp3SQ zU1I`;g1Q=z)0p$sTA7SG*Zdq3Cy;cCfvi(vqyDJrY+=MeSnv$nzc1xim8i?6bRZV< z2*NbgdT_{$*b;Bwv(g@u)6VP)N*gQ=wgbY=nG_RPp5SL58CkfOh=2BxP z6pYz(#ttH2zC>KAiyg>Vm?CUIGyTE!M5!&I+`z|lXH)aUJR5Uj?oe7md6KEx920gB ztqZ8~0mY(%FmqbnX&uo};mE^b&N!Z! zFXPygJL4GF`E^Xk*C7udj@BKsZa!STA*o0imu}M{b_5zfl^zjUkhg{?UbqC7d7LFda&mO$ z67FmO(Pg1nwWJ9<_ALx9@3r4%Y2LRvZ);klruI_8Dj+26gJP9Fi?f?cl2-hlRgxV2 zjs>D4O)Z*U&wrG80=^U7JtgKI+ZN1y0DPpxc&1VRB4ttzhS zaw_{!wJGAf4IQ?B$qLCqF45dY%T8R2@B)ruXn(dZjDVcJjG110`cLng`F}f{;)%UM zQ}#_!`tOj0W|=fbCD%02lKrrZu0etdYumLzHArE11VT4Zs&GwXMmtfYSF=?V767zN zwcl~472Z@@F>?VzXg4`qe)7(i{iCRx27DBLoI_4QtByu+{gx3~hP8h<-k3bXQ)QYX zdd$c%%yEk(Ua|M?ZI#%ax%&T0vSvAj z|9q|Y?P|z^*$gg;7UmSgVkWH0B@xS6D=zQg{^fw~ZpWxrk_KU}qHO16dkd~wrgDue zO;5LoRQP5z4p_L>xUK5ghxt5eMWCU&e^K-i`Zk<}9&o z_hC!4h`EKs!pF9N5d$?!1Zj&I5nyB7hn{mV#(5OsKJ+AuDCca9`_PjwqR2#)1k#c+ zBEbHn-G?62yfU7|T~}hnCiwPk*k>#bVZ?nS-CJj(@g&CF)vDz_JUm=14l(efQ5b5q zod1TfA`!tF`^|U{bF8ESv8pje`Oeea&Uchs66ZIJ0wV~%tyA=RPobz0g5IQ3N!wJK|6DDzOSruHyJHk-S#CG)-vm&UQ9q)M@> zct!sG=!akab$VhvUmpFifdBZ#@o$g+YX9-eSILg!Q!p$89cj$9UH&$@uE`(0oe-JaVd=U>2~6RVtFYlT5U*bOk_Rc z2lGpL^_VQioTa?ZM-wb0pNdOZ?udPbVdzv z$#~uv%@MZ}{_Heuq>2)tXPR;{OK2yOMU=}UZ7Bwj=fd7q>j=~+q`!#LADBfm88&#+ zvdnk_9VkFkg=2PT^WJM;UQ3PSqA^^ju0)r=9Pr@qTza%bGsqb25>pDZ#~5Cot4J$yJVA?k}W){ zOgv5lQ3WzU=B`(1qwAAfw!}!4{_CP)fnsg)U{aPb#k?lZCALwmST620R{l_sZzOtH z`~5P@SA-t7(n6)_n#ov-i7{Tcq^d6DjNBgE*uZ|k&_k>Oiy0z2nvW``Hy8@oR3ay` zpru?31vU%QBBOs#E1KNtSHW2a)0>gx*u*va$JWm6QR_<7tA4?ay0?>zO1rzAaE*E_ zNxCWMaLz6U)JZOk+Xv=BD7kVqm(kI5mQkLQBgq)KuqbU>w}j>7rEOT@2Z@<-W+qi! z|I$$7A!oa(ysvklbCSmntvdhQj}8^~*Dy^5Sdj`ZpyTxFQu=DV=`)322rfPo#mX^1UF>ZY~ilU#->rfq_dGnR!EN>?HYiWNQB{lfYq=G4P=o z9-4&F4HV2Xfsn1(k^zm{U}P5tz%ox=2PrK@f;C(ptqe7>+g&5H+uH8nB8lOJ*ojdq z0DTI3jNpFX;Lm%Oml;*@K^zC)dFFD@?W*rIEz&v7G}>K#do~mz;BIOw2J3y(CC)ZP z)e_pMJ4z4%Sbob=pr~fXU_*H*u)C!G$JMuIGr|{aVgD5bX~9@Fpu`G;>s_t~AUyUR zZw$>rn0lWq+&}({UO2R>ng5H|=HOrds5wrhABgA;V&3orx`FWPfBo@Fq&Fo?7PyV_ zkEjt7R;X&AwAPh?Xe*xLRe?EI>`yjq!Zf`zR4}266@!t=HVw8A3PEFwJ=l{YFcaEl zbxH`JJIBEm%zB&_gni%=N}%B0!qHHSGIs)s{-nl)!Dh+Chyk$PUlc<9!lAy69>i9{ zgx(9Dk{VigXcAC>rG8)w%qib)NY16AcWgm!w7}uVEZ|8N1d8*sl+=ad;jkn9ru#l@ zgD<39E{UuY%@oUu&8;{zg#29u)l>^Ag$ZBRUs_WP=_=E~#bXo9!d%JiAZ}Q@D3V4L zf`c8XWb+OrploBph0si396AL{n3S~IV9z_QY%ny2(uU`%Pavm74ZtggT_fuRPKuJ- zO5Cx+tjXcdX$m;f^vD`AW7yN6OD$n@1;=u$1rq1# z`k`>eOwqj@zN=;ndDhE#$Os2T&J<0lqN75x-%{5y%Y?eXhIt_{amkua6A&ebd=hWN zuu-_)BPgPz7UZ3Xbg^P2Hi*hJ%ftf~Cv#szV#!jH)*y{H#B|6R7;Tc((%q;XecxpK zCrx-Q>_wNXIqbF609m0p_Lv3%2AZnEM%M)*c6-Z*Ez+81ub7feR3`E>O&E>zVoWx` z?BEy%p;BX|=vEBy5T!7DNps(!#gFmLVI#P=B8_w8ZS`zxUT(53Fsny`T?-$G@;BtB zzj#we0V(F1-tTW>Zlu?_YcT^;n#1SjFJpWm5ut>3jC8TZB&yn>Y1B=$KWMAuk9*gU zdK0kWLV_atQrW?{CPA;rFIobQ5r&;ckC`|}R>fbK1F=P;+K#*|K{D&sQccEC zoEOnb{#p{Rz?N=vB{f1K zlw)i#2ZYcJnbIdf^KGVYz*@ci4_wrpZB5DhW2)|HkOpJRI#i{CjBF zVLWa&?N{@p)2qH-B)bDv3Qf_W=c+L2@VrXrC9Tv3Z8S4C`)I&^zGUP}qk}<)dI6Ub)>UTwt1c)3PA__$%_%?EDr1r}?bz*vyp_8CnXWQESOdy-@IYB(|G~lBd4IBz zQ5}zqoF;8r`53uLlUmu1fQnrKK_$VM5QU%p=44&4Kj^Q`2=BMh`h$`}6myfM@0>SA z?zW-BXj7m?oMdN&Hkhps{`Bh75b2{r6iD{)**L)sEoq&~4T5pfhfO4p<*;5oCMzEC zBGvo=*diD*WSt}|@+uj#q2B_zVF6})a;lOwlSGOrbSH!tQqe4Hnsgfk5Fl|HUy?6~ z#*uI@?cP{G%ZwTm)v_)UjB(^@GbTE3M^ON)hD0kJU!o_Wu`a}sREtPpncE;2UE7wk zpeUO%g0DqfDB~?n?jC5BN~ml=6~|U>GnCqV0joGXjJu-EG4oT@%r*aNHX#mZtwc^0Prw4mm!5YmckL-`5JlV-1yKZqC39HjPIgPHk$Atoksfy8 z(Rh0hcS>%bum+-$$IOJ^W9$fc(km8uIdiSlQRsiWw8bEt%ha3j&OydW3BMrUfe+n- zgyz*O6AzN82jQ$Z44C8i+fH0B)x5`UA@{{r@3~Jz)9{ zte&q5OzY>;nkG$F%~4v3vWyj!G_D_SuO7lcs(U6O3dm;rg!(f0W5o(qQ3Z}qQ@WEc z3Ei1$>niNM5k4BAli42WNJ{M;yMX}aM2!LV@>m3-oDhUI z1hfyJ=f;=_7UbwOE7#taBN>aMO)h7(y(|8_qadDDLdtg*Y@Zp#E+N*yV3#>*;*%!c zwY*6a?;8IInz%>9_Fk%!&f3OBZ_#^SVDe5V6Q}@^H6`P0pkzl&qd+?!=w?wcWeQPQ zpTM>K?pGBZs6Orwqn3FW&r$_jDr=8fD}gMviPwPl52c9^(0_+i<55J+?d*cwFxxE0 zUvxVNEE=|^*eO$#XR_g?@4NYTG|&;eaLl%P{O}*%y5%z9##^SE#8NN#*^k6`4@5hx zy4e}%MBfXH0pqt~)%?6mFUmB(f z3@s~m&qW=#4<>)1Rw!XeWpwp5U%8g9HdGlxZ>lt28^(}gs%qITvXVeR!xOr=-Pu2f z#0j&Fe0Dot6I4hEWqmw;<@2iOBwk`G0qdRBn6t1T@FTMZ8EP5LzX=ACaoMDhxCko9 zy(tLQLR*$p4UoWx?r%BKSqQ* zknIz`_Rqj8uSrA^&m{;3f$D>`L82|Vk=iWT1G#aG5j}D23ZOtgz*g)KeH27A@)WGu zi&CVE4n!Xh6{4L)Y9e`63teLS7Wm^*FZ9j^?mNm%?5-y(>8C)zLCI z87Vd3h!zR_S&eWSjf)P#(Q=k)DhnR7JGO~N|52;j{Txm?r*R51CiKNlZG0Kh*4y#b z708|y7RY{87RcwC=hq%jP|$$vh_P?5DhmF1Yb=a5I~6l(;}yXrxPxlNys|4syc{iE zwJP_XO@e8#gTFsU698MzWx5~#xcB4QmI~UsA*kfVAFj(y-@PHNLhJT> zW6V1u=Sne~G2?CqggT~?HCp{)Xae}+F-3-baQ&J+TM`&;A9x_4Z+j>KS%Gh^kPc~H- zFEx-Bx;qdK_}U=a(4`PU$5*P@Dk3PiJ#tp9poC}=)g!SPBY6~#J@I-UW6XX=rJ*i~ z?WZl$d`@O45QN@9QtZc3UH3TCUC9k6j8aEVOHFnDLkkyhf&O!ZqRK0|Ag4s~VwEu; zhIIjXpNj^oXQUOOKiB-8W(;%RY2g}!isg>{8BZ;+6Sx)$oEiAwj%^NR+jJ=!;=yHc z&=iSo(I6+oLHyeR{4KJ^Juz9m+amBd(e^p@rpKl$7@yu*M$z>?-Y>ijp`)8()IQyK zaGJmhQ)OYtVHpMTkxor0&lH!iJBlD6{GsMSc679?g2L^##8<0|WJHM+J9zIde+w>Y zu_UkKIwX1!d9EdNQzWbqitr-I>J)vZ03JQ3&$Fd_A#n4m#ax@w;hc%F)`PCv0gyW2 zqFa-=N&=%+A4xA_M1wh;PT+xvZw)@O>@CyK?lqdUm8RGHwqoRLO^bqMUX5Y2*!9kt zDn*kuhI>$=DM7~6p(JYo-qK{v3s?QIaFwD5G6YJ|OZ;P$?U7wq4^7)ugPu*_QoQy} zH`cd9g-oDR*!KHPLpehRU~7;GLu*iYHjK3WePGFD?o6q?ShA|Z?Y(8@g&eZL~B3vGX#f8H~4jNIOeJUREOKHV)k4#G`A=W_7UJPy2+ky3ohl zG*NkdMii}9OldfzsPkJEEZh0C?XyOAr95SdU)XJh|Pe<+nZo>PxU4cy$gh=tWf%LS7BNI2%sI43ywwS05)_U$!~elR4{A~ zV90i*@0B%ANT#qX7L+v*YE2~1>rBytiCSixAUb`_Ll|bR8T)`2A&$wq$J@*n5|emh z4{R{5+xpF#oYM5fab8yzj(uQ>DJN29^@{fvfBLAc-kYw~wS@ZB;iL4Lyg!yj?ALw$ zrzr-!@9exzQdY8JpkkFM$m<4AaYG)x_ohYFr|&|1Xq#oVIEEJ^w-#9{3HzWb8vJ-7 z@>~nD4&IW`B22oXREMV$2GXCfFd#=a>_3!#oBn1OT0h5Wm^Nj5RPX*Fh$WTM6`KTN zY;KlpmvZoWQ>!zo2p2vx+wY&ElM<_ zib|%2%yDh`ta(RM5C4vsKVf_Rl+Xc^VXCW=`M(-5uV_J8ipp(_?W7Z?zcwfczODDT zV#z>#-ze-iGy3M6%k#0@q~EcEApCcGt0FwD&{2f{x%O2sC}Qt6$H02rDhF@TDq)Su z^qkAPxDHc0ueGn%S7#T*{2HmbblVAs42At*MN<>~k=>3~32U4aDVKMT=~}hF>2X_M zu)P(U<|jdX+lZPxm=fAXPkGPFSLC9Qb;X)~H(Q?>!r@4*gqU@#HHqjw1<9Y0*C9M>wTk**0Ua_Rm`=NL&c3v)Robk*Q7_cHC z+f_-^T*$}3*RJyjIZ4_5iA?Fs8B8H2AGN(sD#^jig9W+aInQX7VaY33_sc#PHi?VM zO$1!=FAm6&s9;73El9>}=`2HGHmDU0=xiU0?2#uof0yYf(d7`I_gJcLUb;GOoK*vA z$ya9=3-XOoWei(Js;1YkaT=cZm>U~)bsu3Nh|%Z6JYY-L-}O0siVX|f6NWVt#HhVx zDz2_s*&8IWB}w7KTlQbB^bbOE=+a3Qp-4=UI-?=K5n6v2L{l)n!@|F1l z_l4&Lc`q7saX{g5i3+A=hMU_Ai7=r>(;^UR>(hc<7F@Xo&SBXv$wXm7u{Bg$Y9`}%C~70#f{?Fm&P`Zi<4ZqLr&Z^)>CV{kg(2Dk zcB}fy<^Z0q-Z5%NR)5OZmArX0w{Z`hls8?JG zM@Kmxw}xTLI(YQM)D`>OEPJo)7JapkZ)vFRXOk%x4qX7X2I$qOrpTs=l(ZF(3`;w4 zlRCM+I6Z%RvB=ZMkSJE9rQk(4b9Adkw0*_mj{U*wRb?s+g=HqUk4lsx6RYm_!Xq}~ zXV@rVPUm`uAFtM^^%#vtt?h<1D|6DkT1Uq~e)5Gsu~4|Z8$uiRRFo$XKSBs6Tz}#bJt&G$ukD^ zsV%SV_uUqasmEI8tQ`;E&Nf@2d@-dxY{?z0%9>@Hrq!LXj?fkMKBdu(zlYYe;4gl(qN67gKnX(T^EsH5j{c-& z<}^Dd-!b!j0ljuBo+$FL7OoK}tZn#2;i_UsGxPR|hM?t7WRER4T=PF{9f#iIN6FWF zP-tsycT%B;k&BpSK$gx^A~$))i@T;x&r+B&fQ;xrSp2OR4QKOibB9M^z@w?Z8f9e$ zgR;J7|7OXA3HI=n`GW&k-GIdYiB}$>+CPHka+ydTM{wcM7PT$N<;~g6W!o>ZXZ&WEF;iI0)5xmHnwF=vTAyx~W~Y6Ii!-%hUx zt@Z9HK3It@E?mXV^aeAtMz7Gk_lWgb2+y&)rwyNP`LPBp?^NyK#|pzVGaK#43j41< zLMZ+tISt(C|1Q2OUU0>!64fZbLF+ANLaC(^Io>cZWAedl+jn5hyIk%9Y-*T;4g`CC zS!k_fs5Egq{&_|U_F(43?fc|kj9C%-S!DnED!M^;(~QsdG&Q!OL=*)}hT6i$9m${L z$sYf6v1KX6rT(9qX1IOtp2E!6-v0R6wO+FmZI0ocvzOFzAli!-W@W0Ph1BQP_Lm$Q zC+8tKQb`%~?>%`AOjZ}ZxPtS1kH_)G<-mld^u$g;!0LF5mU-Ttk3at__#1h{C4}Y- zbzFysxipPWL2|p&N+&P>K-08(g*odD zz5q$?i(h^DB6#>8H}7P$CF!Gj7auLojE^mD#SrT?fs}QF;kBBUnoADIH$V{5hHJ#j zX;Ws$$Zbz%PtRLg(*p{_y7XcNcG9-!Qr*V3Aa7BbDzH_ZWX``|j7^ zu@$jSyJE{-SCDtFZ(5$Z9gkeU1!db)_gK}bSoZF~Gub=6vY0I;Rc{KkKdTncX`2fy zn0z94lwLXR#*pV|yd!E@uy}NEUDS>a3og}|49r7(-pVZc{vh$GH2K$rpGg^0F=iX< zJ}G8B%HTUU>)4mfmt74L<0xF`tN5Qcw$DjJ{{q*_WU!%qxVwX+jiaHt*DtCczn`ux zN%Ir_f}KPjWj)pq#zlv^SGJRnd$wyxA=%wZLZ#)pCVb7$QhpA~{OG+V&qlW$+5T=Y zOEkDCoqFHX=zPO8!{N-{lwmEDDE7##>3Xs4w7-HU&M>De3t3Pc5R6}Tt|aKBYj~n4 ztW&A&QhLN4{YOfxe@c`7W3OtNj!0zF58FMzJU0@i%|w$1$w&m2kzGuCc8;E2p6`7z zMWr4@HKs^M`<1N-8uPd9B+`Cuo_18j3@~Xyx6d=cXcdHhWW&O6b4!f1*u9 z?9*tx$KDxPrcXr_es>O2SfM}M9ve&Kw8Tc|BozRBVP`Rnvs1pV9d?xzjZ;#S5lu48S3J8|K}4cxW}7!+@BSd%7cX9*?eWDw z{nI}Y=v$Jqgy-8p2tM^cU%p(B|9kp26w*&jLs*Fwt8hkeAUvv5vK=aoi zU{gO= zWG=I9!C-oV*g$fm1p}8M!pYbA=9Pnr$6yM`G=zs{qFBMH4fscdA8f=@m&Lm&2Rt_M zoi31wy`>Rt?AsAi_C3GW4xzWARyKkG|2_y7>pws#9^9e9H^%kx7*VXg9c}>Zp)H@x z2&2iG+_B9ZNJA79qS6S0u@IpmdEr@U zOkWlV#ny_2`5BuwMMAyY$x72Vk);~A++9T^RJYb9yhqbu!;b61`^K34gxZG?W+j

0gbrY2U)IhYD;0}8h8+g|Y$y8n9bRi5(ua-$kIGj&Tt2<^3pwTS$ zl&mb;r@!AV;(c!#T-f1WeK= zwSB)HFz&K)G;ZO zjcJKUUl}&2UF7d&n%@emWBIAJaw28bD94E=O7uyf=I73EmSw zS&PCYS`_@|wCByTz8xd}L~Hc>D^EL9d#zbz+ou)8FaHOuK}IZKb%`ed$*c==Fqr5ILFWK}MSSdMK2 zN?KmUgZq~w+U?=kyJ_aqF6B{Md*vnhqs};&^L%fJBXF=1%{vOZnBW=t0uAo}R zbXz%EP#)FnlRUbIp&gI2$aGj@taWA7DTORCGb{FtRjxvo7;9Y_2lENsk2^4<+>xU| z4q0O0tVTf`w#4|>l~JGrmY8Ut<}S=AALnR`RM-+jk_h?QAOBdE7*D*hT(f1B8E@$D zvv90wrpb?vh&|jM#+l=cGNNh~K|DNMEDpz8*Y(3*|46bj?0{3FAHfrYeqXp(hOm>x7M)c0L!2tiuCcdpo$`AwMKI&1YtUlz^{A^sFb{Gs z!rp#+k40`Bb~=ryUN@}2DWNq^K_H+c zXmbCNF7AHn-(csIzWIF;?Qguh<#TbNi~x?Ixg%}Nrt4a_dD;9ir7GN8&`kAnvn+p# zST!uO5ean)RQm}Bs@<4&gWhRD{MnefMntJ${8=Q>*eEq{aYv*66s0yirYN;3N^Oc# z8v}ESQk$aGrYN;3N-btgQEF3^+7m>nq0-h7s}{L9Q$w){RQvA~r)JtbpC*Z@3-w;y zv4{YaEnC741SkWzZCi-3C4lu|7u@rPu+ci@T8-ZW$Ly;}h;_CDWULaaB+HhjOJ3o(b#9bmqZ~eB$|w#A+m+3>(5~2@j6XV- z;N$w=d$Vap4Z#+>C5)RWExD-=_8fGIeJFVa$bQ2TQKb7Au6AHFA``g7qD?GmjbI?V zmu5WWYU3ipOj~z~_iNn2oXY0R2`$S?&}7Y|H}m06f6XvuMqC1NRT$Nacc;pc#mFkFO4Pxk1g*8e(^f;a z9)%=f5_sr&)3Uq>`zQg<;1NAr5u&d8LH0yGVY|P<4H**gE4JcNjcV(PFSL~VUx0_eN*`$7$HnrX5U*2ir1s4Yaf-8@CB=$Q7#cy)Ro2$Iu5 zK3muy5`xdp}JGOy9!008L7h1ZX5@6(o z-?gxD{k!vTi=di3nIw)rHAol)S@7&*?C#V_>?hwzY?Quu z2nu71K*BFO1d^sXAIOjXEJ$QTA22Of_5Rf|)qOQGnb3?~ejTNinP=OI*^T+ptD!%j zhV=Du_`O3OQi!zQQ84vzXlq0s)?;b;$1?2|RqTPr^KA3H-hZlKDxpyPJQq3T@oi+cU)*lG6T6rz2ZtCyUX$V_U)5S~HTvWyEZ@H)68&___dllZ zsb`n7DF#jV)0pE0rsEXbfcOxc<&HiqWOL2TVOz1&G+b?tdpMHZ>-lH;KRmm) z$q0_Ue|HSK|A~-yVp#bJCd77`TeckQ_?vMr0c|NoS!bajw4K(9kMKX>_aEbi+NW#I zp`V!3o!u2x`KlwEE2ei&5N1rFtG)!SAmFXSR!>o^Dyle@?VS@Dc=F=QU;lcr)6RA` zonf*t+-avHn`+n(8PREHO!m~C*-}s2YG=^9(2;?D8O%Vpx#a`<8I^ZFG8ely+k7~W zJPg;*F@MtR@ew)Wel~azW=y8|ZVve1arNbg4`hCa>0di5{As$9?AwcEYzL^}jPA%x z?f9gQsI2U#%EcZLb{m&>9i44Gq7r2=$GRtPIs)vIGGiRiz>;x{Va%BA9J8-OwIbU& z&JhsD@M7S%5ip;aBjb2f7W25=1KTUgE7YRQHG4e=ABOSjIA3rC|;O& z%%-He5}F1+vvy44@O0RQfL|58qDGgU?(3T^C#w5-&pzCf?=&!eBK`0GA)9bN#)~Ig zwKc6V4u}VcY2r4fLk3V^cmGbWE=f``$Q-7bT#$}>HfFnnP>r-`Wjd-9%S#o;lF5np zlXv1hi9=vr=d_sX8w_qdkE;fEV4I07h`FoCTEX%MDQ(!kKBh<-ZMgCi`bq%a9{YpR z!Pc!$L>aX^hOrtug4-*5!9DTAH|`8k4ivPnAbYcc(5_a6iW^M+w8%in0+>(o|mMes@|fJZ9fObZ1ZAuCJHGsb^~u1V~*(*a0?}fQh){m&dyt{5A+jf zT9#*`Q0zlTphIg~r)5cAS2Sl@zBjAbc_YjOXjxvfvM1}W^|3dmlcWA@A-%JLo*q)YUqfi=fEG21e^3A!laBtaCR4AJj>_bS)aUX_g zA*ZC0cS5mOv>W z^MdDf{)&9je-tq;0a}(f*h?dH>^!>W7wVwM?ABFe6D z<4(0Zv}i-Nc73CwN0yW_WcR5yr>t1c>s-^Dt4frEPV{!~ONSz`O$HY1(M(I}ncjkj zb%ci(ReNtTnnopSAqU?bQ`C`38(S4q46L=(i$bxgtQeQzzo{#(HgF$DwBs3DO5TNh zYe93by7`AUTHgco^jS%8B%)Zl z5MKPysJ4a1C=53*7b#niuWbd&nW@H!>@xFkynt@r#O>M27h0Z6ix@jw+q21`Hc^v@aW&LkL4k!6kEaLKDYA zJj9hvPG|u&Dsz!)ZGbDu^&u`6B%_K|G21g@YofOWDD*f_#EoaKHMFwK#0IDtNwQih zRt@iodGI@~)>jof17w^5Pt9gN$5;^jUdj}!axFIvg7%&Ar)7C0j|rD2wDLu6_)xZ) z*?G(#cto#PQx%%}Jn@Nq8nKQCvV9)cDEZkO5zk-n5uGi=F&A2T&=Ss-$g)d)m+om6 zp{IEZwQp$>C{4{=B}lSn$(?a^`a2O=lD@baaZxLhSS{9?z#S7sUV~&(Q?-`?h-*<- zM_+vT;)R~s@yu#9O^vpfrgrMlmoM}aCW!NcekcIedp)I_qu+e_Yx9K#`Hm4PC0`Xy z7%sV`5^Tc3rDvIV(AuWnK#uyuoV+w)a0Za5$ctDf3b;_XA~~alRbP2RN|9xz){f%= zpHyxC7TQ}z1vqo9;ZnJ%33mEDa>lb z2B5~N7&|J&0MtPRBl4VLm5ZlPE#j&%52KCQ%D42xHG?|S5e}XH{DQ4KB@n$yQRla; z(pXmECp3{a-vw_?j8GRyYH;3-$2m80`r%9zrYHVsS)PlBA`>)Pb=qAn7`%a}n$(We zfDF=Ds)&TpqW%i^PbuyiZ^lT6PTPYs=n@&{$-z6&a^tjIFNOm?fdhsWDfE`u#~5Jd z^3C<-C-b(nXYzFBh`6Mmz*L^n2W83u1&iP9Ob2|)SH|Dxkyz%yEv$1jLg2wDf+jj7afWjdcWG!z)d^a>tF-9CjdNg&4aLshH$i-i8YLS_*>I@}|rs zxVzEv9;0=@K7kDex9X{ODk>D7Y;TrL90FeWq*ul4_)tLK&WsMXIKTd&hm;oShW&qE z%*bsfZWly;K^{bPXT2>C5_(y{F<7jZGen7jGBA2*m@Rnv6r1bwF~iJ9Vk70LfI}09_C81Ta z=J(7<(DzYF`mz$a&l+y))2h;fT<9M$JEYX}L`peOIvYn$%Mxd(HGWa0ys$+G7RJt%&WI>Xrk>9PVh+Vt z6Va!8Ch{_45secgNGguD>D``CE5H>u*PTF|oy{0?mM%)Q9aX766ai>#%*~SW>`c^q z#@l#Yq|u-?$hwL)pYGGZeSGtF*uTBj2uBQG95uNSy~ewOsv{?7qN@$*ibWFgk+yw& z3`$hj@^nxrY(L#62${|Ekhr9Q>L`Pb>lYFxUSk6mFlfX z!I}G>$H+S)5E{?=->8hJJ~9GqxhErp0OE!@IhJT`dNW{*F``4mItQN~M}kKZ;3p=( zpA4Hoq}}maM#qOeCN?Z!>G0yhoF|?asuF3PuoO#dNP(`C z2S!p+Kz_0;Szk#3Xv&V_EiVYWXVBc$ChhzQ(*+WWp#_*64}>_#p=rfP%9o}NMCU`p zCWIlJ(sZwr83k_lx7Lby(^vu@D9H z(&y+m0(04lDOYLMy0m*10p`ZG7wWla<~>%uiCAAdS=YSh4Dn=HtGa@quRZ1wz^&%` zcWWB0IsOhFCS@(x&fKF_i;ho*36I7BIDE^gyEo|Z`(H4Yz889Vn9W~lH1Gb{5Z?Nr zq}m@+;4pgBhSnKaQi~d%5y^9xN=}lFTyg>d1a(J~hB>)nMcSo4%%N7;uCO>Kpr3cY za+A=E7pre}&E4*AT2|=z>wAc_>VtbxRUIN)K>ev01}I;%`?s{*U3aVlEvR8_aYXzg zxn|fnr1xqB5J0jF>bwu&fPD-jpG7KXF3s%UM8*Fi3PrOkk)GB{K##W(d)GO;ogcB5 z!7HLFQ!Lof(N|u78Cl=jV{m(GR8aCC|M@@kx%$VTFL8AyvN|u!)^9slfe+my3zEs2<Ny&j!WVpvoT0^BoQW_U&YY>E z%h`=aU?c|%a-(TMC2hl$L=^X|QlQkX3jP-d+qGuPwA{H(`nc5@z#}$ub?qw#aWHk^ z!NY))&U%L{u57PQ(~sRPrQc_bfY+d^HE3s$z+jtWIdj=P>mGvY-}u z`ZGtp4m&914(Yt(MH)JR-}55HR@$cYGNwhijkXQouP<)iJN^ZSvAz2k8PwQ8nJ4{05(FHl9g{fd&gH1lwsvS9_Im^yyPeI?O zJOI7Za;`Tv?g%WQc{R+@uzvffnm&G%C+1Kgb9i(?pSL2p8{qi*5h%N2jXYd`)7Ies z=Do!5wM5l4Ys^VKT)$f~rOPGPhcz%0ub$zld4p7S#;h?$pR~xxT0DSc0;VZUP3#N> zQG%4TQaq_MTJ@DW4l5J-rPJQY?=0XPnT08=?3N8gDy<<)5!Yjga*q;Oik`@aVUtS< z67p+ zu0*}UeKB1KWWRxyv<@EWQ>s->a)6t7;99lTxwS&UZsk-Z>!2?WqkF1~$x?v&itk)B zEB#*%+>tzX#~A>*=Bu?mXKHF~wK1nZ&}n4(rvel28pu8-C|2bWJ3tVTuvRm!kDC&f z21m&Yas)`q)uDt-HW%e_I9ltJ6t$xpfr*hqxNpNpf>2GcTGSk3{m7;3gf%LZ`4lnC zDbRXRv#y$!13<|Z`r(!jg~E+-l5ZpQ=qRmIX9{gE*(Ws-Fd=(XLpYQqqqi&z)`+(w zI*o(U#qR0pkA5}SWvD&gbW8|8v!?gVWk!sEXoNu< zoZgf)#rhQrqmrXZEivYx6|?mZaE@q}g0hUZNNOxYAYgm0sA4OgkepR3Nc~HqT5*{f z#j`XVdtA0L0iihJ8gAJ!+<2>ba?}kN74$l8l^_VchDIWvgA8O^noKg#Bm+${&?EzO zj!6cZWS~g~B9ja>{CLbNM*!Zh$(bH#!5U>u`ws1l+txD>*sM3RWhNWk6)pJO7@qtd zOmn8jSOpCWUd~^>WW8f>Zb8%U9ox2TJK3?dW81cE+jg>J+qP}nc24g5dCvQOI3K20 z&(y5Cs;;T2H8ub4U%N2|RT(D084O$+GFV-&kp#x>$%a;L$SE2&%`o3m&?n}1O}EWD zXuV$N(akjdiBj!tgqTPVD6^i~oODzas|gy$V$A-kN~I<(VCW78qIwvb;sRK!9GT?O zk1Gkp-JF~hsWu&lHXf_bVQc8X2Jjw4s{oa-T&SLEU5~ZDDgjoh9ts_QdQ)8@yBsil zsg!4(s)yBo*?jz2Mh*xAsGfaU^G)0rez@A;D&ZJt5||dLi78yW zcY34%Yp#l3QZI4E&t~gLjJjV&Sf#&U5ui7QhMpr2>n>ezJ@GKz7HcKkj#Mx*Xu6vL z#4fq(Y~#+XWYZSuGv2K zmeNdd*oiPG7{9IU_djPcOz+7%S&2C?Js1DZ-_$??71pScOS_RuW^=GV8RY z1?tJZVH%y;GUs#chBm8X?|PyKL-Vp|-2JmsxsG5zQ!d)!XufG*gfbvF-k@9f?tTILGlYk70}g z^LK!(1d(6_qi|FQjFM@YLZmrXxMqA5$ogZEBCg1IYJEaf)CGn9yaiW~BW|Ns$$;`eiSzwtCJM&mxMCSm4^2i0C6NeDvFmcUwzXG&5?Hq5%=p zmW$|MO3WxWIgsEHEWphGov$QNVFyGk`>gsf1X=VSacOZ0*H3;hbSwW4=FAplO%d9o zj1Vz=NYjYhe}l>gN#|ajiY0Ud`6rKe0VZRp8 zd^Z1b!IOcgc--eiJ_daN^^Am*4f83W>wx#0D2O&kMX1?`8b&iV(?M#eE@*Fl0PtXk zQX-hGLv)C=<9e*~FXcuOM@OM0;HW`gp-rEIu?HQnN=3~#y>gl-@ZgA+X?mJtFC@D zr>u~Tu2Nf`gF|lwdyG6ap#{f4#Ks@l1P3J4HU9FDx{L41I>rcHR`!%t&9A7#zVvokQ7KB zRgZ)`S}^3zT+gaJrQ=Znflv^FE46kUbgS_;$dm3<`uuOQls$+KNXZD4=>wuC+7!)m zS@7NMVG~31zORo#F+;&YWr+s{$8R%fywLBp6ek@BW&}dWOu(!QW*l|3M9U}ydd`EV zu3;XUsDwPuYNKC=7xMC%TOY12i+7F)t?K!zZ?QavC-ht8sJq zk4KfbQ{|58ZW)4{;msp^29#9hkGH5PkdR$lfOtkpUPlhZ2F_tNtHdFX!ail31cDzSh&s!W>;SahEKgx70G{aj+PaM_7_9Qry;RN!7n1TA{Elxi8g@#S_U$7DA(kNH3`&yh%}1S7a<1G zrZB{Y>3QayHpRzV+Vk1YpS{3|ROLsyBba#&X55(IZ3pF>HCc-}4km|(DQ$!cVuO6F zQZ$Lf#6Sl`L`r)moR);``vvcRphG+|c9%-(&1{}^?NU-&8jt5j|JE@CzQb?z(YwIl zii803Yo>`ZjDP^sv*>0XT6MKhB<=f7%%FmlO$K>Uqe`cO6xHx6IfpQjUPAnR z-0}aKJyhBMb`+h1`WThP(#nb5kh98(e`gpB%N20-D@oXulW-^_MPdDSmtOtf?OHhe z-_1Im=5!>Xn&Wiz{Ogo@dXr4*xi1s_T(WrDWZA9fqG$=~vi2m`XS?kzbmDjsw)ouecs1f$_DJq&M7 zT`1Q}y<)E;B1TUhk7J{W-}%$`m~6jJ7i!$=d!Z+ix z#aHWAuvXx;veb>FSSttR)50D0iW~A(P*r{UDcQgroS@gp^|(La@s*UCYUx>J@rKb$ z45y4^-I-MdZU61^Msh`N3H^5nVi+RF0y`>u=_BH8>?(&IBn0qA9pHbcpesz_;^p{2 zW^;U<))W)(0Qu8(dR%kGs4)}4fZiKuSbe+a2{4r^|&g#I7lLr4>`4fd}l018V66aKc}rNts@k)|;j8^6AI!jeLrg~`vs|0*9OP?@Cw z?52E8ItZUC|B*i87->q8{a!i2VLvy7Kwr7hZ z_cb#N$SqSg`!H>*Jl3SJScwW2Z8yh4GCd}tfU^OSSwTG{mJ6z5x?k@_T9jlTqhd@| zJlOqqhqBO{48(N1XXX3^Qy1W?LOlq&Nhr5)zK$n!d)xqL(GR&r%aXj5S;*8Kq)16> z;)-X>J5+QYm;J`N;P10KLD&@utzNxEbWYdU$WV)iNNo%;9grSV(N)X_a$BamH)D^rUL+#%g zyowWkathy`Aoh-g?@(xn`9-62d-rjf)W;XJpjHs`^Of#?JsP}h3%WLr;!@hdM{amR zY~(QTp3Y(tTZqx}8SDWIK93;O1(wu*$D5n8K?Oe3Xz?)8SLqGd~U1s@kAd4udqEavZU!g-% zWK|mrgO71B0qrm)e$mg6@{E=c0yhighI4rYI$&6Xx1WEfc@%tV>n_E8a3@8*+gO&} z>j+WQS*0j$gHOetb?4{!{k~9Rc0<>+78C@!0QjHG12r?lv+{_t0I zv~8p*BZX4K)m`5bSRsmtc%P}guJtbypK9iDQ6-V0Dyd#$@-Vd7g&pwB0oj_W?#4%0 zU#DmpQho~MA#n^N>4C@uv1PXJAh?IVCn)Epe*MEwL4y-GpodK&NZN@Eay~F$x~LT> zW^h+XWA2|CP4k4-4_q#5Wp?$w_WS^n;Vc0|u>)(iD>BaK#KihwjGSIuL6uJ7x6>it zfr}yJ5B-bp8{5v@apBU{PVn?%f!2sB`C{bPFsDVSNpm+eAwtoMVAGlqHb5$`fs`Bj>3)0P8dLQq899_Dg-k>$ zfbHXBAg-5P4wCGG(W!eB{V|ST2%t|_f_{Ki8N2a)GQ>~!pluwNd0;YR-msXdT(t56 zdX`^>1D_)h*@25wC^A`tuhkN{!3Z(QmmxlIy+q}VBbDkj{|+TH{&AlLeu6On^7lFI z9dN8mP?J*4wkfg+ks(^(6*ktmsk$eBp{aWQdc=p-DCFybK zODz_Ujh>OWffD%xlQB+UqY7DH@&Y4;z*|d`xxvv2KABnz9y<3Zn0# zS*=!3>MJP4CnucG2&NHvd^YpAd88%x_qwUoN4=%1)fF!V9DOB7`1kyO=$JTn3( z)2mniRo#t-0T1OmHn-|CBQ2{)GS#@s!%ao55-7*!2tZiRNvrU+lOR>>yJHD%iRbLy z)5i0|0ipBIb!{R4j-42@JIMRhLtMoB@Jezi)4%=y81LzR9pBGcl`O4cXcOd|DXB=A z9D%yrh*If-V607VE&GhS9;ZDdySDut)q+!L7O2W~*{4h@?6j*3u8H22e9klW7294L zIw(63A+yvTKhl}BEW|NMji;o%t}TSLL6>}x z@ekAhx&*iy5xvxO$*2iLnJ!q!i>5q=RwHe`d7~Qw}O~ zlV0RxaLy7+$_?rdbesXFIgUEG+#?B71`F&}E0~e~-clLPHqBd;nuJWtm_#;wE}~Ky zc1wwG8(rDQsL|f2AC6N+M8(H!89LM_0MisRA4bi@%s)RnJ3r65^txU{Ki@4s0giK~ z`A6M>sq{KtL-4yTo*K?0AuzQ79lcSKYxrez8u_ShHl3>0W|+dnHZ}F8?*2_TQrBzX z%5#zXJ^)AX^plP`{XjMEi)yx%BNR*&6g!M_36g70m5k?IU2W0bL}RX{D>rmI-cJ#m zX^$faOXS$1YgV>u11f31rMMck zRsWrCvKru>PJ|R5PF~BUqVb@7B0zDU4ldK`Tpa(#{L4(^lA8Lq^7Od9eBVDE4LRpp z@SS>qXmeRugzl_&IRKTC{Q2|#{P+%kBfF!6BXkD$oL?j|uAnfXH@ku5@|hEW? zFzV&+VM*Zlt+n|6@#lxrN^5AIt8YWX+CDvZ#wx})B^(?k$Al^WXmmLy4Cdl>b$1sH$)S3l*fTO5J*)2jXGHQ!=eWg)Kuo9zaGJBySGU?4{MaQzP5Br@$ zx6AagO{RQ ztD4G?E<>_YxhSRm@wftkASIexQJj3 z@w-)g+`|M1~1LIwyOA3(6F% zR$Sci12XOrr)3A4ZU?vU5Y$N!47y`8PF5<^p)NE<&&su_Ffstjo)d>wJSJK;U2w!C zJ%QR$o5=5lzsh)Ag9tYDRw7l68lhvjvcx~~5k4Q<%o$`F)>t3)GZU6#63GV2cM+c- zbMQT%7oV>!Vq!ZzX+ICKJv{IFfIoMU2RnE_OWy~nBfntvouBV3)teeRpTiN~ukNx3 z?#~t7*lttwKcYaKeBW0y;AG1MBL9Qqi`4ahVvZn*8hEgjvc+~deC!+;l{RM?@lUwo~o zq2JEx?&0_uINDgKq5HOTd^*l_?fDrP>Ucq4QC&%8N7s(&qSL&shNtqIuT7}nny3~Y zPJ~lf`RkPrvckX<`=+lRVn@PhfHV7kJJ)K5`{nrpsblHW!NQZ+`?k+a2{4(vmp}m|B8}Fs4 z)7q~TR({!juszozBP{Z?v5S3U242_!Ud%~4ep8X;1!as^#6j+V-7T#Dj$D1+K@zoP zx1y&uznEOyNvviDb^Sl)0}{g1v!ovsgh!kf+pufqm6tj#DK+iMb(*RDtg2^+uZsPv zrhPx&>%~@#y%KusrFoORXQOG7T2vA4hZMC+Nqc%ia`QZJ#C^*AfyQV7)m)V-A^NZx zniOEj393UYA%GD=>t}s@Jlau`SUZ(LdfBVV1a(}X0|TSF2&=3B3o5ows%yRhUx~WY z^l!89S^#?PdywckuGDx#yTQ#0YNBQQ&}?o?iDF=h3(dcL|5QL?TqXjz$0Jq5sEY(1 zV}uwH_hALW)Cgq_3t-edStS0fz8oOlA*WEme6DLP6m}O-2WxWJEEml(9YuKope8;U z?CwhE-?H@d(=h8-(M9JOX+lFgi3+5eulLVmy4WU`*t%#IX%X=CNMm%X^Du^3wI;l;I5$lA3pNW^>#s!|Gxb(I1q2lSCXS#koqYjRY7r&U8yG=q~iW z-8z#)FU8p`@)Z-XQp`gzC-k{_!?CgylCcP?H8sYMzYmp1{x3qe;LJtprAFyCShw{mxrj+ny9;tXbt{ARcT!W!~>i7&e z1zK$!J3|4wr_!4=b0PG2ElG&3Ql3B}ak8ZW<_Dhozl-u@nznox?p{APwDwv%QgLH9 zt0gC`zzu7l!T2-gs`N&cPlUH4 znu)HqnfVJ^i=ZUi2n|*dHA4QP1FM4zvnkoytEF;&oA2_Rw~0*?RX0Y_GRDIW}KE{ntyL=H(b?E z{xM^j<5Sml4Hu65^MVvJA_`KDpjJzJ&qkioe6nU>fegtS`kqi1p>MC7G!KWSO-7DQ zCXTLPSKzoK%3k3DZ#y`f;W#p&}KQJ5yTduiF zVxDdu&gNBX%bO5OEO+cF>yicp_0Q*|)pm4blpnIopqCI8MJIG!rpYO0$aPe&x*o8E zuf`|niy!2u4Atd%m^{D09Bp7rcp(+E&4HN zHHKfu);nRbUeqZyp{6lTVU7sZy}7U8Dj4`u>;r`VxDmjQnZXI|0ZLFiCTf$4U7@aX zOXARtjYleay>pgmN4moHdbpk20tCC^@`tsovaj2+Z;t-a;u$87o^rdu#KzvKWwW-2O{-S3ru8do{H^%z zds>7zC*G@U>(X3d1wb-23?Bie|D~N}5a~AHvwF_Gn~h%onXfl|TkO;u2RU5bk@YdL zGntkO-%ptve1d%7BMlqm#K*Y_Lv4b?VG>u0VWR7^TG_<%hK2ora2E{Se3m-=?etgRMp-z_X7t#>cYDY zI^-G*BvRXlbA@`y0~iEw#o84hgsH-K15_J@*Zd5}`Leqe`hySE`>7u)wnmRZPEPvg zlA#b^&^WH}RVfS`_L84I7s|fS|6*~X^u2A4!1VM)QD~Dwbo>&H8hDc;g45-mvVOu( zv*dKvi+6sxu|yghTDi~*L)*IMDjSnIWv~}OWfaTnMadoK`~&?DoH*{35y9h5vLVZL zipybeNxWrzFa)dfw7mBuJdgo$qnT6EvV3U{nd{-bMre_xz_he6en;pqbOU6MiazU|JdYfwLC#BCp zu_UYaa3uzkkU=z2yohK5|GW^rCtVX8-A=WmE<}Wilz!n3P}29si&YaCvDHtx2HT8N zN5b-g2~xQzsegzAXkfg+_yC>d7;y;n*wyx}Y1?H@MyUR~-qD-0K@35?vmgS?Y04p# z62ApWl|OZeYlu)(OrtnGmQz)s1!V*KHFF~Sk8SeVSKK%?hFR7IW6zwE8==y#C#S4Z ztcpgzHGk?5Qrw+Sa{CyxIp1le=nM!(%tk>AwpJa zW{&A~zt5rT(G&zY*5gTSCBvlYI20#>%T&lMlTFE&nC9eMTjW_CpAW!)%3`l$Mdx{M z+Z^*wi)$E~akIg9JXWA*)FQ!!WEAM;1Q6Q$o@uVSlr5X*LWf>?jaUW$ z92Zj(!N=lBI_QzdTOUhh+!~-JNMlR79a_yXlV1Q3Z==1iv_Ux>OcXP>3yqxyro)nc z*9tT`$U5kfLf=gV$cr-xClDEDZ>SBR-4Vjxota}=gOh}iWpIQSyH9xFx43?#`~x3` z;%OzMjz$TZGqV0?krJO|{9B#?E=#63s1`WBzHQk?NU`a?xB1K+Oi6Pw!*ujFMx)@L zHc*5Q;becWvCL&GOnpL@R2Q{}$1E!vlP&hOe3%ItVs}m>lJVI5P~Fbb#(Q7Y*n!@$ z0h?fA6Q0-(vTC@-n$sE016%mk08)%3A!{hiymEX2RRJjb-w5eSw$(!PLs?`a8h-|= z<^B9VO-r^KyBF~ZoPzak5sLdvmX}*JD+ye9C*rY)e?@od(Rbgdyy*Btv=j9f ze3leZd8u=3qoEZKt+{bU18#(kr#9Ka#T|MA-2^f+gADS8-%OR{Co$wabFhy=%Na+9SFKiQHf8|LO8lwtC#ybiPXdhZkNaAN4Lv)Bw zydw^JCxjaeQE}rsQt5Gntk+Yn*{TfRUb~5q?WLMU}Z^sdEhNmQz~4osI(m z6%0f*xO`_6%`*^94r(UE8(29-U7yyUD^%=-z}z$xiIoL3S^Cq4;ntAwPBi-ul{%N?N;IiCm#MqHi1fBF3KF9y|9BYQo7aH`fFz+pV&He!HguHh~H94KN? z@*MTlEF&GUql*8=G90xOqm#U0(?_g_bf*8oIm?{g8m_|RzkzLDv*XL;@8wHMj-Ix# zA^W9ADI=7)!?%PHsU7mAMDsIQHq;0-ES5U!HOjH8)OT9g2UQ_k*i3ZlF$o9YqzYnL zc~Eae*@)rMR~3Pt<8KE8EY>5v;6xNq$XmHOLl=&1-x?&>Ve>8o7X|~juhSBPZ+n6t zh9N=z*qnacMd4`q^L}-fVDh2g_giWlNHG<>{;Ybw9F1Dj$hm!Am-3gft0ZWqCulWy zl$OxvrzqK2t0p&*CVySEcWxnsPYOqZm;ohG@#chi$9uQAC(zr$0R*H=AV~ike{N(z zJg7!-54-4V`<7)0t@=Cf$%{G&Hz@p+42K!TT9G*Ko#O-1HFJq5p&8IN#a?R{%ep;i|Zr~}e+X)d5#?$`O8<9K6q3-4*|Bt6Fn zSe-b&${BSSg1Lm1C`)IO&uRRquuB`Zjp;Ek38#UD$YLspo$(}q-`QZP)Y!CCkuml9 z0Sx5jHgYzV$gOkLi`Np>dK|#gS>4_61}J@)C|cJ}Joifg zN0_C-7TnOJhIyB=U{7jw0sq9(TQhjiOEg|pzg`lF)_9);b?0xK{AWDm=B}|tmKyLz zz`SWx|4T)UwxP*i!%-$k`e)6BJsuG^M4i(8vxNum>B4`pJFWrmaFG-)D^yt%v8k9% z8&wAB?7$5PhC)b7z(0*sN6BgKiIRzHBQdve>U|TNk;h;LkrP8K3 zksif3(V4x5_Ijst%3t!bvW06yr;s2vk%`n)lnRvl>tR}~Py(F6G;z5c=sjMg$Vf@g zgu*O{rJ}gai2KBK7BaGf_tK7_Y@lIZ?#q>+>?9lZe(K#9=H?pDH`=`~c=kS)xNcygkP zP&_E^K`W9#iLbzu^s=$lKH?arkdCw~Gp^c@>a|Eue4^v~W}RJQAPxDBb0)NxeL9sZ zNp@2-ITcyMMniKV26Y$$D4H~Y8$p4&Ol6pFn3lmlPekH$(vzNcTr7r@auDqlPP;x)UIi~DbsY2VGWy|(1*vRKA}rtN;^P)+0c-*u9bsA-UP%h zmr`oeB2ywZ6p)ChK?>7q&9Ntc(NjI#6M|;1m?@IX;`SJ_osWDd4cI%wT#EryQL$E5 zC!cu_3(jf~Y=jHI*_RvE!lceb9LEG_K^0JK~8ZX7QD5_e;Ro{ zC*SY^T1c%xY^y3&Y~IiB=eG26-(KGilClx~_jpn(6IZIJks{Fgz!?boI}qRAhJfZJ zhuE{wG{cpNh>8VBwQKttbUM->*DW0W9mi4~(@V&Ti?!*l)7IcH1L+AhS;l@d@&{}d zmc0pJ68C7XtLg$sswCbsFks;NnmuZIHR6cEPZEeg|4MW0g}VYKC}4msh-*~#2TFoE zMM};3_ZnnXsMXg-&%|3}BcCwIXzvMVZI?DMFmM9rY3-fyHRH+~81+VTW*$w_y%U0TW2%_(S1C#88-^&+Ya8O5RIFpr6wXg0FTjW4=4eK#Lb7c#>+ zjZJ_bBgL9kCFcIDDj4|HDjTi^ogfi7wYVwddh*UM=T zt1hoHw$8Xz%h9{SjZSYcKj05|xm3&6(7TqveGcKQUo1?Bb)d6Uok*8%!u-vXT$u-; zR?U??HO04c-TKFW*pFr1R|0ZiDj;0hx%=A0VAQo@RsVP>-pa3B}EU zPTC?OI|66tjV>U9I0l^rZ^&{yV`Ds5qeQJWmNrp-G4E1eA#+~t`w7uVwA|h`$aD@l zfX6@@9)k(9?mP!WP!>^WE(e1py_8BDjx{JxULa z;1Iddn1rAp+VJe4!5&UZsNuP=uzEJyBJRJsB__)VBBn9Gb_`fJdIR-H9tZqZP^i^P zjJJHZNA!XdmBws9$u!wKcq?Xbz#0sCp=aUDUQhf?$3nn8avM>v?2`yc2|yr^{SdIL zQC;n8XVcHU&zqNtP_07@m8Ie?2t;`37&8(tTOtFoA=yyFWa4b-9Qib5|6njcjFSMD zj${b7>lepTP{FwOgV`K1J}qe}N>kDejZKbHaItRNu9!<2ouJ^zp{HW_MG=@Q-Y<(P zr6dLVVLdPy!b3D^rzJQ7=AUdA8wdVk&Z9WRDgkahOxfNo8LG2D{cc_-X8Pk3dg)bC z&QX9akkG9TI;!A@Qx+_ckqk_s%NdI4L^6oU8YWOyG`Wc#Y6ijd+da6F45SGt+#-2X zu8k$B-Iur*uP3P2a+?X32}I^)hlfb(nb_5e-Ca6@X7ZF+P~AG4(>_O->Z2vHcVy9ws?m&U z(X&Yf@O{MLo#@Ncra=blIv5PA8n=cINcVjNQt*3|3}Hyd19Ynfp1GoCBR1=3B6cI# zlc@Q!ExE1olMrtJhrdi606n$3Bl)^SiMhG3V z+<*VJwWJnVyYl3hHeXCF+QT;tLpNDEdpTHps1ac1t)tXJHB(dPPH2EY_II%))>k&lg6y~dP9PbpM*FA;CS1tibVv}WoAdd4gNU+ z;g}`EBj|?J{|1inkyH;Ec?Xo z6zrD-^`BzqrqO*1no&~RqQs-^$(}m-NWW^mEy-3~$yA}3N-yc`jg*8ErO?|JGloiC zIPtLXI2987{j7UcjZmgblbLCae2_|}6kbUjvVn{ixUofW`c=1=NC{dm(yZQ7Vac=* z7)4C5Td(L#jzX(*uQmbSPlq6M#@$1`P&_~F6gt7fk7e2*Vg4S7s!NT?j;haP6}1p} zcu0Iv?{%!sSs&wJ=t36-a4 zY_l|++_>1JWc&*}2+U9h4@kL$zgpS3`s9`T%w|BIZIk{cUd~q1uF8|tT~VSq9cIPH z9BBG(pXg-r1;n)^2tmutg(%=<1@E?a4Lf=P*a1n5!$4VXpYSU9n}#;a#E|NN2);dx zHa^^P9JD4qA?h9l!))_2N-o?IP#>@!fIu9;fK_@XOR;!h;K* zpHjA%hI~i2lE~o@kIl@FCW3l+U?d7SjhqQ#!%u}5Os)^EcjHLrkM)DZ8>fdbC(Q!S7VX_rH$9hVKBae*} zCcag#m>9$8L7^P7OQWyH?p!m;Z3}tgj|}-AuNKpvk-0K zl*^L+2Yqw3T(9_tJk#34LtZEGDh;eq`~t(2ckQPkL;qM%XMusl`UJRh(Gqe+V;dmD zkA0lQ#WejZEwRpAKlM$BG0NiHd&ot`@&tbuK3W=L^Vpslsm{)*tU0lhtCcHJt^cn8{nh=aNU$bXLh zGE^u@N<`o`%t8u{+N!%LCQM0;89gM(XU$7=?m+8d2BR&uY?v3&wNq>?=zztevC@OP zd{^f3_T4scTE~>M$8Z(QSw0DixE3RFzg(R!1P!AXVfZ{8ulycbVyLy7poW`wF+qYr z-XD0i%D7*-_eThWp}X_mINg1#NtIfee?RHyv---gYk0rupz0gp(3jW z;|JV$_Aj*}VD7TcRv*CX!4+3VcZ1gdW6l}${c&huf_ytG7Kwq*7FwUVm?6BFBZzNL z;nc11SJxgB99!K?N6y1ej~w+jbmjsu$}ZB#zh}{KWUtW-ifmJ) z)YuHOlY>1XvKS!98dXn~awW!KxTR&_tXL$63K)M-vKO3Vr{ANu1obJe=3)!-_qy&2 z%H#mEXzt6u%!J1Ttz`2-Hm08mIs!;d~~)4n@j&2J2=h;LNb-t zkPMxWKha#N&}gt-=gs!<9@WtjrcSi1YmL^#^Rfe}f+{z&qMsUVzGCs4svB65zMa89 zWOJeWwSKe{ZNlcT_Wu~gpSrwtxA1`;NTXplvVXSIsELnOCW2EEYz#EV% zKJhs;CpT!wol4ZLNsx$V{*g^!OneZ9g}Of?{AmU?o>3D>oy&WjIy+=Wf41qc&W2?} z^$%ywn?||pDl~#1vcuBuM2*u?`D$aWF(F6)X*z>aT*#o3Jh1GpKsTz}T| z_I0nq(a+mNW5v@OBB6zd_MnZ*2cJbO-hs?ydJH+vE=>4xK8HOk>aaLk{Z-oAoX0wa zhBk!o1LSiw#SZ5L^h8`5rnd@R110L?JCOpe#uPebLbKotQxK!|ejwTo0YqYX@A=a6 z-D;i*lMZxS;hi96DmlG3C#%5GFd#&g##q`gl$0eVHwpI)Ji|h{~A; zt60Q-e$miLFE)pA;YXJCk#xY3O+BjGu=u}aXWZOiu@>;-)$Jxb!w!Pa9wQL`O%*XZ246Vru{E2M z863>@I9pGhs`uKt<jqHo9bTO-E@x8XNlMNkrwNCly|uYdiGqI#o2uT?<{E!)&)6b z{Ac&@dr)>Pmly0^U{d_zzC6u^bN706mDD2L4{`HaP3D=wxhR#S;~;%IH{oZ>BK+3Q zN>)Itd1R9C-VCIGO>z)%EpX-iLp_CteO|wAQ+F);)SaAk+xbbZHX&nbFKXyO4qR3(pu9~Y-C5+i znyPRwTQC66&JS?xto@{`@sPMvtSwDWFVmh9PFsu&ibA%&nL2bsQpeld3OSU}SPALV zL`xdz7E(i!T0#Hp@5+TW2w87!D;B`!=`dK3ZO~JOiB@A*XpSu4Hc5ZGStR8+Z*?_s zw17->EyRZP($Z@23YLa``E13|MP3HFN%4C9lo{L2#ua4@`RNa5N>+p^UsXs!P3P*< zgYyZI1xfug8^E)(fczCbLo|8K%>LU5JUCotiQG}DuY#p}`EQaEmIhyBXYfk2)= zoDDlt>y@i)5FqG4`O1?p!NHJ~n62D7UC$v2ru-B7`{;3>O8 zrC>+`PA{W}E+lhKp0H8516}1Ms2%ISw=|2t1C^3ifJ-k1QBR?F8ul3X$YGvhkZ|x3 z2Fn;L-wiyPJbtjXrKmcaviQ)8TOB7-nmJtExLoOiMEbP3t*>*U6F?cBaouc9HSLK| z4N1R8-9V~b+`qBH>#o}ExN11ohEzbufTP$E=Ju*%s9x0&zNR;N{+6>(j{R%Jq-6>M z>^+MH8cjcQ0dgTcvQ}&(4L($qz8g0(7qPjdFAHJ>8P;sh%IgoCX{o>>*l@?(f#;!e zpRru)wKoh|;YKBJrt%o$qSxRUr}S?ELZnJHP(5JZB6N;@p0^^mXu6$F%0ie!32qZb zOoRtz`>8gn@3r(c}5~_zDPb5&S!~6t$2U@Uvf{9sU%+!|-hS7e@b_LNf$XF0 z_-VbN`{X&d%4Xw?|7R6chtq4?7Rtm~yP?5XugM9Zh;}X+oY)DKvX+4v^$-=^^!2k5 zniX(KI!DGQu7Fl;M{3@h7@MS$lyjK7Qe@-Nj4QigNor0*v5Y7e&&R{m#701W4=5m|$0+KZ zIh47lfgLCvZPQ83GOozgnafe#TNaMcZ(MpM_C&0q(M(9OKvFM?&tigMF97<44r$3o zeyhkZ|Dk>WIDMB-^@96O_OKS+|0dmRg@yv%u1b}R@ay6CmTtI1R9>4IO+eR&&Y%v0fMZ+ zV+4yBiYDfY9tdyO3!@a66;W*!mKEUvw&b<1*>b})9jJI>c95^wW#*z?lM8Vv^R5HV zS7n~Zkmf+bA`FnPbF%0D$Bp-&?@#+c2_EN87BcrBy_d4!Sz3?|fO&S`3-0KJyeIbz zryaIl@Axq!E$qah`G?zq!0L8Ptn3WMv5o7-Ow$#1301)wW&%a|Ieb;{{xMvFpBa@yEchR~hS+Kz+}P z+3MEX>4s1_B!o!D8O*BLd3X|?)zMPyxnxT0?t1H$1q%nx)#|ZE z9O~$Wy_ENy_)9b^3X2Nj)N)WiwQTio4wSo=x&HOoKrkd`eQRjcUJ^j0hx_cN>E~{9 z4hd9A20k=~E?7~Kn&nLd0|7b-xBW?I4S-PdwhUNjA$PC}TmK>NT-tmF{0)R*KJ#b| zN&)Kt7T*?gAMl(}jT$73&M8|vR@>SED~{~2=f|`M1V;S0-D*hjC(jO#50BRr{9dA= z;(rPM*IMP>e=lYm>?9GNyB$;Kq$C>dqdtXC!H)iHzqRX=XNR929`Bhkf4Xl*A6Vu; zogDASYP5DJ+L1BUvCUryi`0BC>)eJ9+ePdp3kBb_bC#CwzD20G_Qc*xU^n1W;F^3= z%9?%Bzv(@lUfX$}>3e_$$0BMb&K$V$Z#sG%P1afahNrd+gTABn*Rp6zcBN%a=d7=$ z)Jp0tJln0c1ZV$HR{Bs?MI&wx?`Tc#fc6@-c;q9i7OZ47E$nv^5(15o55SWCU9tzh z^fO-X6J`4wR)p`p98qGQ(V{1oVW^s*{n#n3Xx3X#ZS!>6R}ci|`-Uk^Dpos$MVw2L z6_l5K9K&6ffB4V;`~QxQzU2S;fBzq>3)2}^XFEPR`jYS1beVdyzinWjy8#wdsn@*- zRh<#Owxyr1f>+Hb8wC(2>!a)$US#aiPDc(0es3u1|D_F)1`yL4t^7f@q$L8eHOlX^ z4gD-_Y`MA1iURq!%NhlnK2_wf6#DS@M&e!9Ow!{2@kDoHWTDQq+e2`bVs0jc!*3Rm zZkVmljTRas0<|gDR?n*BMu~MOw3*(k^MWePvp*LyyEXeFQC{8jW@n@V;K=z8~2BUkBl4c9krL5D<7T1btqHbqXJF~$|FJ(jSDVkW|BuvRQubz{0p&E3X z>6OpKY1*E(SS8ku0;`7ciGXEbYulWoBsmZTy2IY<&vp*T&ik1%{}FnocBbT_tO}lS zZNy_SV|9(Y<%Zc8qBQx8G{UFjevnNO{r>e=XJ0)BbuO3Wo*Av=&M;emuJX}D!RpRx z8K3)1mQ^iF9%Nd>A&FtUB*oW)?PI72KzEP&S3IOn`-2EJXxu7g+J+5!F>__*4{Vqj z3JA77vw0{=@@DD2E}&Sf--HmkWdC%Sv%5o;)8hl^0`8P}+;w-HRFR$IohiBEB`;`Q zEDyqQ`{$w*L4LCx0qe)n4%w46^vHYKC+#43IsM3WZfJVW^q6F;X>?JyEt zPJd`>X5^A2LB~J6D%_ag$r;rYWgOr@G3DG}h(>(5fqY4LB@j{`AWvk#_UEr;K0>Gn zUUDq^FQ$j5_&X^LHK@%T&$)WTXb$zj5Ac6}Q*+It+$gOmJ6E^;ip_=rxfk4EoVo+| zg;^={fW3?2mqj6OoPPBfqj>w~V$>kszPWH?F#i)P!*se2U5qoz$Lan^LA8}rU#!Te z?Nx3|f=7E#*JRv8=`u?7{QdM}$dwPB^II;W`C#2sY@YVDV?tlu)q)yEO3J3tyo#9i ziQDpKgF#@TH`UM#(y$3RW9W^@pSu*P!5s+ObtAD?RM5F01>BXC_)pm6!xZ<>HZJ^Y z6pL3t5eXw7>`$F^h>1He4G-o`Sz3aDdGy6q*J66gss(v*d}6kCN=A7_^IU;$QxrJYx@PPkv@{)ld?}(eoOFgdAX5ygYe4a_uYrv) zo{zsN$J{nC*9Dh?M_c#goe_@NJ)rAyF`wLXy_n#|t`4C(#^JBwKLdSpj*gQ&x6vlH7$BAh zpAuT}uUV}ihRdk02c+TopN4ShN8L1o5GUgiCQLJDHGR{Yr=h%WctzDt)~jhQAsw}b z6_4Li!FHy3$;Hox8w|^sPGs3ye&izWpY;`!COq2}Ank9~3FCdtu^3q=JxJla&|M$& z#+_4;KPIlzUz#eT}u_!IkWG0OE7?X5uBwIsQxS7ZVIGa`E+W^yGffTHT1 z0?b^Cg;%AVUCYDAIcbBJx-6?Szua)`8BW|C$TY$qS;Sc>NM=*e;ZhG0oV|xGmb74+ z%(Tl6^C(J3M@L79aPr&V{+7s^P?EEZm#Ys(2_uEikB_J1f1SK~3E_{GR^&$Nh5f2| zphGx0>P_UPXCLA}M*q#&SUD2ZA+r zFV>9Zv!wN{(Ge|2o{~#5a1XbFILLSCT`K7kx@#rI!M^TJr@P2PWQ`@X z@XVXv9}~>`6|EFP=Ncgvz^NrIO2OS8b0ZIj zIb(a|dl}o7w==eJm0!nHd>!)eVe6bR=jOxVTb7EPapos2VMd_vQx!0gDS2g?G9E5^ zqh!%&B%ZPvUUhkTEA=^~XJFR;G2r3}WZR@zWXeM<-wrR8(LEmExEX7LYxq&X#)nKE zKVNglqnkRCR@$qHsdMIDa7hp3e!;9?Jdm8s?ZI_?z#!^5A;?yPeW0c9g8+tSilKV=0erRFvd9VF8OZ&ddd0SACTkNHb)xb#Dd(CRI7N=JiB(M1$ zs}&_+XKzInzC$uv6v`Tve9=J1_Tw_TAqgt1E7t;OkkZWvgl?cz;fuzMcA}^NvsDU5 z07|C1@A%bfNXHalwwMQV=7}Xuv*u+k7796t#3$;JE>x{7#3P2vfA9v$KbD1?p5o>W#+IWTG zT3ZQQHz7d+`nj!Go6CD~PwV{TvNwOME0VR(heE0QnV8?{4d6{;4nxG@weB7JDZOBu z3~Uy-WYv=u-4YwUTru+*w1>7`#Xz=q*n@E(ax%&T0<;DcmbtmDz0^-#yc@+~C5p3J3BiOcaBM!(Pp^TAqyj%C- zfw#nV-G?2~BIOhg3m>ZjMhev=5u__-B#=#U9|q3B6z5Tb`!J9!lANCy5=0gr!Q{H{BzJxl%+^~t%~6nzt{QDQ^H8m(ZnGep?b%q7d5`1JIIdMx zYgUWrZh@tghqy}fV$`s&N;%k%H} z{*T{^ro6>}{kZonJO3_`$o~GH{##P_IuaijdLruyPW^Mhs!Jf^CTN@U(q2-YiFqmg z18ns%BK9D7YqtjWG0D$pe z&_C#3&g+L{F_tXnO*sNc1D+3OdAsldnLPF%EU-_Yz9wIn~CSdl%*v)$RT zesCxOKIF%36dI6(%$b>QM+p1WG5?|qHQ}tbH8*5UUV)hK!IzIDg8=X!*h?ehM4eGX zw`BU=n0zCyB>cH^sGBYSAQY66Tk**X2o9En}Rp$saTgZG7r9Uu>7AkJ= zrd3t&3@T87rV7jKx6O4>zPwRplS^TriBh#E#&-~lfZX67b@h6?`umVfaOG#RH3dON zsZ%di1ImUS0m{EoigE_-{Q!F1A)>DxM!}2p)93)K{US8N2BNJUpUtPIQLLWK8=j9l zH$O`uXG_s$_*QeFZfTYI+KLdJdo6&34x-_DhjX(e)CF*Pw(mT|*WOBF@4IZ7S;!Wi z1QU&v_P@8c`!LEm}Wtd=L*ZH)~u9wW>>xwsU@^nZj^?A9nF$5}n_8Ac z30kRz)L^r)B{KTww5Hjuc@>;>(7gka?c2EKaM`-KJ$g~gX5KHjQU7*UP~~QKBVDT= zE0Qk-9nRUsfI7vcb^Aa+2ql*ua~T~?rv>FD*;9;>bGM~!>6W;hJaYvr!XPmVXJ%8y z%`YuC9&)x@ucDe0!-vG2D2|2<@1G}+%s_L;$`0Q8rMm_8kyRE$`sr%+8X%K z3=c)Z=n??)Y#?MOwq!t~wmWju4uD~v_zF@+iUe!8Sy~k?wl#UAup-Sy>fSrw4KDd=r?<1GlR=(^TXWT9|Ej`Ss~gh=4z-ofxd^wo05U zh-xIXQD>Ck24Lk4%YmcX9)k_#USM@e^N-7~PY(#6vZ?!5l%yl$t^qCQ7+mjjJz&FQ z-SO7Y9HnXI$^STO*``-zbH6TkIc^dOcJ zCiG77oHS6v!>|AWmimDyu&aEtBqdjx-m)pVG6F{!vw$lp2!QjmoHRo7c-WD7(|;eP zArw+BW<)iaxfH9KO`JG1wD~tNREri=NgKXyzO_@ z!NLw8*}Mh`s94%?Av6u}+IU~h3Y1hdK)hyHHL}TIr6{?n ztCL83~(fSe6?jka$Q)t0HUO)OFfQfsBytQg=TDrxT}bNdbrevEGp3&FjTd72|{rDj|Ea+`I5Sv?BuTKGVczoE4C z#akQ&0(PsRCUepsH<0+nMvhqQY%rJ9>ca@Q>b1HG)}}4C-W@WG-&WiqB=LjGAfUtH-)*-gU#pr+r9VF=2Qlh z-msaq)Pz5E=_gTb@7@l5ynH*vr#^x;iLjOI1E5Ho$JPeIhIXp7*af}Ts}KTb<46)h zImQNaKnN`af~7sZ!i`QYFW_aT7tY}y?zT_%4!d^43_EC{l3=34Z;X!3!`3~+e}#e_ z*5l^Ve$Ab9a@kjlWWB*ip(r}kT$MH*p4a)LqP1S4jpo4jKACWsFPZq#=wOhc8bV>~ ztT#-ZbCp^Dst-zl)k_{{yUHJGlqt!XuB}%>UP)d5nT|3&SOZ`?cm&osd~h&#KJ08_ zRL8?2r%9JrK16OZtX6d+pi)ObP)V>RL>Xqkd07|i59VtJg!fx$!$ygaVq&xOz4OM( z-7a((Z3$3*9?DGFfKP-vy&GxQ|1)`c{d>NXNs=9YMiE?mi3 zP?Rl<;0u`+%6LPw+k0B)3Xlz`=2)uj0HwB2z!JN=X-BkOW-eCc%y7_q?cdUl>8gyn z?`2=beDSY#64Hn^T9#Dv3@m_r7I@c6U!KARQKTJF5Jf;(vWsQU?=1j1fYH)m7=uSQ( zbgiqMqp(5S zX?RbX_@?&Hpos@OZ0n(V>8xv93eXW9Lj$Ua0miz21C(CleiU7mk_M;6D7Pw{H0ixbc>$HnB7aehwq?{R7Dk zt4(g#iy3*tGI_^p+yLkAD=HM1;sxbJsz=CemDVW)HR`(Y2_wCbo}t_2F6{(Z&@V&N z28LEOyW_G+n+Kb}&}ft}l(xG1g3oIG1ZOgf~;f^(C~;ZZol>) zLgIwpCO*3wuL&xo0$88mz6$TELsB=92#?Ph3H^8HOPkc_J~g~Uft zLGFzp)UekPW=dkMK%NQ18E{c`XK4O=WBYzm7*%i_^A8wt+gBga#mlnM=FmlhrNTBM z+<~mF@SAWA0(ea#Mfxp4FbLEvtP2wD&`s24$rhU%+ZfRk+qwV>`~z&oexr|~h(;d4 z+PSD?KHad<$5Vx9Cz;zwUftO)sdWp&c3}p3>jL*ZXQp?Q7m$U0MsUPD zM;qCZA`6a{`aw)Te_z!MArZGyZdZwP5o}>9l6RD!#?ZQfi3J^dM`{R$X(zAG(nb4+ z=zu47-8T(lgdh*o=V<^d@F@n~vrBH-GTmZ8Y?6+xC-2B&c3P(f<_MC*xbNMzol2Ti z<1lP}^$u}upkP^AHMy{19S*xB05f8yO@0LZjQBNsz%=+}?*K;JvgH8m|9V5{Ln+jP zSFXl8oO8Py$k(*sV|GzELNttChy(IkYV)6S$Tl3gFHJj>Oud#G-v20zgu{Qp64_V~ zYifgxV1Q#9*^jm_KJMNxK3C*I5Lw&V-Qoz?PGa|*E4q!G8f!jT@1I?8S$9_O(Yos6 zr3TVM*BjCSUmHXl`V>N__)0aKCj{koTgmDUmX<51c(&Zc<(HK4K8Up zBQMe_BnA|DX(V(D5+e?=>@;3897~0Ay^S$45P)ax6f2- znk_KggA&6D3Z{1zSxE4fW(zJn`lIkj(E}L*mF#8yDa!W9s;j%U?5f?KZQW8l_H8xR zS3^K1P$_Kn{kEW-WdkrZcnL#kPp9bg4iQax!=kXAk6S)#bXCe-UzV~nitTGk67t4TgqQ(HVVcQ0b3u%*3MSS> zGb{hKy&D^$RW$NFtzIQg|2N;fPOl@j+rHDcn)k9U^82CK1PoHzGlceIBS}z5M-@4Z zt6cZ@JRdO`@OXC;T<)ov1Y%}^@SF*44tE`w_4k0iALyMcyBJMQm4n{g){Q zTyLzrPI6W;F@RVl1$oi#Q=E_o&%G^C_0v}&-gU*YIyXiTBe#%6t_XXtYa0D{Cd<+Y zvYy_IP!VTcNvgwR2?O~rSQt>F3-<4-uuOkD3!R_SG)$MWJ*sy95XFir<-sO_8QYVk zx=;>5t^6p-Ztptzs@;0}t2OhZREO&6s|^LWaWwJH+L1cHCE2Q02!guB&u+@&g#x)Gv((UL?ns;Odn z$Q;*|&)Rnk_Xy93{S%hw&j}r185UiYO#W!aJkg;tleM21S4k(%e_c=zeA~=%&9VV} z-=y7dd-V40#o5?tGVeG+5dL>}suDb{P*H?`--Id{fY|%Vv9umG%E41K&sb|RJ>%*& zt-{pWYu%&u<>@)Gzb0xfo9%={hQfZbvc*JyV6~%p##-k@&eiQhs#a}pdR)~PTy2H6 z_(^oXEoDRQErhn!Q?7aSoSX~Q)U2&{v+|jtJ)EeukaI*+SI?b(5+yv+gt=;_jM9GW z-4Oj)lD%}*COV{Ld>DIaMQaV}R{G}juQ*m1{2(5>J1=G~&iKFr4EsV(?xDDn?NQRq zEfns+7ryccIn3GJp~~s;0dyfHAGJG9s>sgq&Xip7k{7ft5c107e!1u3CUIH&j({uv zXou{{8hVsbK?>%evn+>MqE;}VvwbYKM;_h$UFD-hmtA~5xKcy&(&bs}tQt^DzC1mj zlDAfsvDY$kH8Xy*r{Rf@Ik8Dc_W>4y6n#E^2dwD&>pq8{V#4C~gkjADchuH071wWA z)f*(SB1z%HEB0Tm%@0y>sM1L_p~y_Krl2vu5n6wzO(4~6F` zxt6WDIHK_QLGM&X^5<`9GtD9KArAP zA(C`=y6Xh7g4@e7O4Qy>ZD+y?Mcs`zCFCoYa}$@?_$*A+>EN8U)fqQ@VTiYY-Kx0> zJ8R1w&H0^0D}1mmy6sN#5(kIVsex}^KD-}z8b|cP7O}E@$Yfb!y_JOr^-6 zbYf=s;cAUujL~TH!c9m!GB3^RMRE+}Pd@NR77ABqW5~a8!|-511w6e7>P%IvE;&Xl zccjI*j?^njez*yKs1WIoSihLrUtoTa4H}Mg8QI+3wRKN-nP643iLb9R;{^kJYIoQ6 z`));R>T#AiXUD_0i{(lvUkbE`gWN$>)}mOprS7bCgwC<{No_qPRn6~s!R9eT;DU>J zfD;v>Pgz8^t|9-G`B$5r+e;YE$Lp`Ip)@V{iyy4$n2toY1R;~j1WZbM|1dIhUhI=^ znEk$lTDvvRG`U|$UkDV&HoT&6RI#F&ef!W*F!Co}j~zPP+<#a)4!y?@lCQVm(9YWK zrNUrGPE(2jIX+K`T9ySDw{4l8nY1u~jF>;T{aZ5{&*ojd9Uim;9?bpqC@V7BD^An)Y_uOM?!Wp7q4*EH zY2ZZvSMgnO!8NB^)}#CeowvLRrBPazc*4Mp$p^D-UxP94Vzy4O#V`jQ2f2BAy_t47B+23zE5X+{Clxt zDaE1w&xRH_eXk$G%-5a%^xkz|a~*A$;kCDyG-@E)iwZk3T~ndVx^?{}yVl9MOZIeD zMg4n^o&!@fA{1A!pVzn?FMSS7tV@sV1cY6kZqc&O`}GO?e+hphFS&xyoS};A@Gw`l z@F_@cmqzL2)!%5I*U#||o>@t%j>>Pu*V=(FO6SGi)62?M^SM5~1S*RB?u#RkW_sZNjvuX2{4L;NQL2x_-yTKL=im2rbz&~N-oJ&Dyse=i zcJR6fE(}$%X-(i4#w4M$*H?dgdGhD;moRS_-4d}#>V=icw~2d9Kec`5YjD{_s?$!a zxa$OY{o<0dR8l9Al zdf(&de8W7$@0qPR!$N8)w#cm6^kUa(e+f^VVoq5Rv!Hk)7{BaYNl;1G-icB;r&8CY z^nf$^&y-gGm?r&)9@Q!zk;rBqc5{AlW+hCQiKgr(BMG~VtnaiBexv6XXImdkS?haQ zj{)iEzOoWQWB<0AMB1;7{JhTI6`Z}5igJBtFfI{$rFG;HjQc^n-)-dx{=AOf_P68! zDucf^qodghmEpnq2X6ThJjcCY4H;(PT8=}(Xce5L56wkfZ?@(nwKRY0|3sIGxTn#0 zkF_(3!mNrEVRa4*tk55BkA)>lT4AAclFNH>PwPBV4ml~!0XO0hEM_;+p?$|z;Wx^5 z&d3edSXm6?>~yGW$6Y0&bxImGVpxX#N?;cgL}r>6u6QHX?vK(vIyyqzc3&QV0TOZYn!MYGaYC>l-+<~s*q2&w?aD>knuEe(4V+9|;zXfv&+JznF4Tf35 zcl=EPLpUG>zhz{mptyECm&Bn6*Gw6aKcm9*3P05DF2$lCM33u?OsLx0^$^*^>`E}$ znjkKa9C^XOVMuWDb-sD&sp2wN0GXEY&_aqitlEHoM25jeEcaQw%WA-5lV0fpnb<3u zP{zI+A?4l+v33Z(k&Si{4EXm!vWWixP&_z8gKvzh<1qrPz8h`;*F#r6IUtN?3v$br z6JQNVR1uooSuD=XU^_)WX>45<2*oyv zh5Z?eHYHNMSj$Q?Cz0ibxLO}YB2_=uHoV91V0#@mBKXFb`2_4k2(wbmCcsly$0Z0P zTJUV>{Q8b6AZjVPo!}SyAT{u=ZHnop!tO#Cm>Dfoif~w;lGeA(0ie+$b(Jp72qH}~_(Mn-`3?p|#;iHMSa=josie{3~JBp$gkOzd|QADExb08FtA{q$L7c*cc8xxgB(G2w-cZ)zB<*p<> zie?~n4@lOd$i}4b6-j#(-H244TF;P-5YyL&wN)+BA=mqA>uT^pZm7ScY&z0*OQI!| zd1;yFl)SPR-pI{EjSQ@0(P*Ehy7kS84F=|l%^=!Mb7+Z;H zOdY1EPkFVCuD>*{`ciu3`f-7NiKF|-;ego21_dUPO$i;uHgZ2Yfq08`a<4jQDxV6} zk>nExC~IPPG$=n#+_uGVM+|$&EZluMapOOvijp&co?Kpxv?c^^_Sh4GCw{ROg$uMO zgvDvk+F^Y?M*KT$QbdD*4(77gS4YR&Fof7Qi`~qKokWM)Ls`GN3;Y zkiOd1tBAwxN3NiFD_UdHdyP%H5a9ed7H^|MNGzhQ4zRB5h@x}E-c}%W2C*}B;2|6( zJ8oB3mjw62*jkdENwzfHEU9e4N;+E3GVO&~nM*5P-q&1fh6swRE)|ipv1LF>$E&z= zcRZrp9=5HEX3pGD9yGO=L6Se(EJ4LC#wtG~h}iNLG{fxgaP2x5SVvLB0;#KbIvY5O3VA*|ExuH*|zqILivJu=IP+PSWI*eEM6w^2O>FS!L+GVGM8k$#3f zBrwgY=D-r0maLTZ^1u@`e;j$SwY{;__CX%cn!08}7t4<Yz2pm|vN=BX_ip#@KIaTMO4YzvD_qGk!KTDwbc3IvND?Ah%-d-M6A#KaXh$#LLQiBp!6ki8be$ZBg3V3$!_IYk^|ugO;}iq}N`hhcAL-z3 zr~VCAPU-94Pon*ecengpTqq-mV`%P38?&vtw%NRF|Cm!9uPtc1`g5}^{}i!m2(yt$ z^(j#87aXW|Wy=i)s|E3AWBQs9rH1imi9}PQ)WF4^y!D@=)P~zrl-g62+EbL;7@AK} zYEMyWPf==5QEDmeDN5}rO6?J%)KF>L5UZ9rIE$g!2CDs6ic_;?o=>t&HbP&^Tb2-j zvSLeEqW~~~tG0y{TLM@g*2#U?5H{N6+^F$e>@oLh2*4|Hmis>>ZZXSEv>EM`oRFGj zyyE8m07xMC9e16p0GX=9YQ>6~t&%6gvd*niY?Z?YbQ#4V>8i51652KUhxJFNGJG8W zb8vQEZM}8H%JDuduhRQ zu9rR{%$9Yhc)rFh%!z8(oY1POCCwI01w9|G^w%~EGvX7Fi)PLRDg{8{AW?`>7pZN4MvXD)!rf1`PN?MX*coR)ZPQTWqU{q;xd_+nv8Y8+S5e!t8FFqS_ z4AYgBbTy?{L8-7JmDN&^>!cduV83C-x|P5Udv%T9DniQ-z_HS0{6vX8Szt+ga9ETd zB=mhFZHY|fP)Rn`?>=x$EM#T;wnl}({} zRruM74&sd?W^c*RJ3<4~J4N&_gx#(vk2Bvr-v=f%mSU^TMO@LE`svSPSyHu+P8dS7 zfm_JpSDJgVrbRmoLF~&zH>YNTim30ji*yc;6L~LOtr)EL+ufBU!DRGjn%y#yV_kQc zoO~&0X~D^T1#FhD&>o1CMbk8b=r~+66ssOOQ;iw{>T4bz;y(&a|24nMSc)uaXg+ih zcTsq~wPCpB3{C~`cklNF3~*W)wi4IJ9D3BsM!8u&MycqO^2T^{dLM|g)4_YTzDYwH z+pTZ%E)RP{bE(Lm3z^-LGX_HYPf_@|zR4e_jNDTZvi|}_$m*N8p8ZQIK~~cFi0ufE zd!qxKP5cSC)MFKy?wqz?FXa71%SofyghylFk_LRsmJkS-JY@SqNB7ebjJ)u>5jNiZ z`RuJ4vKs|r^&!*QVaBS(p{2e(GkWCdDW%|A)*~viyEpI_%w$nmG&eaTr>t6dlA|jV zJo5NIZuO~3%Jc#`yXNWcv4UUlR0SKSzKMdqevE1SDavL%cJZx`HcgLT#A~-x#Vbqz z>XzZMq~q#pz`DrA47G}!1k#Pg?i6Gll2UVMz%eX1n(i?1X$N?+Usg|WjR z;g>ZAN%N8q{?%Qo+iGMgqXoP8DoHD|&vq5FEBj-Bp+BI8^wn|r ztKU3C$h_ZC@KnR0s}Tje9--wQdTGz8X7@Dx&bH5om6=xRF}Yn59pcI51^E(5J-n7g zEj5atXR@R`y^QSYi>pOWWBkK)lj$w9w( zIY_DET+o{$?rH6AX#Wa%QP4SI@Q=fsEAwA+b@dWFDUBE|$!ineE&ufyrN|T>epZpu zjVjI%yhFIi%@COC;K$h~27}e9Prt!nqZ>x97d*SY44fyjHouABr(`3}i1(8AnH|>U z7{fvEj=Qm(V0L9^3I0Zvk{PE%0Yb1Bz{=HLV>w)74<8)}JLv;MIcmc#>{j1CLF23= zxOKU3bMxTA;JzAF&#!%Dy`G=*fQ|4Ixm+{5*iP)U1y|eU9*!grYW~^!4|=ZYUd;do*aGg*=K{5c2=wD46}vd zN;?~}sfPWK36*xnWKV6GE%msib_Tr*8#2%@q8aEew|rnelk(0-=3@6|n-Axa$LWSS z=8u{^J|bs4%m$CrOvw~q&jBA?uD<;6fz0nX|LbOjKTcJWZEKN?tpGKg(Vdv7ou1T@ zl$HHhx!5DZZqxFvle4WyAW=qhtb6jN6UaX5WsL0uT*=tRT+Ep5oHDONSdrZv=LCvl z?qaxa6KFp2jg0LAt#JaiaR4x2(hc(AfGa zK9g0_?AVLd+7bL*xdR@EAE9w)h;yKzeF@o{Erl*x6)I}9DCE5w>}Gh8n{_wiv+3kF zjFh~tWo^AV;V_~!A@aoNiL6G|sJ8J5S4`V20^3hZLIoxo4cQ7@U?>dV`HFAYg5Gi2 z)JR!NvSa_WWA4hOjKh07%X9H`R7;rW~YGl=;CbE1070R_<`3CPitJ6f>F2c z+M6F>8Xh5Y)7@V~rKvXDoR_PB6&M`guyK@QAt|@#U76oLY#_ry0d23hW3aI=OkgcG z{2@xS&nDFKlG0Q+D?GC6=fIe4F6O6FC|R&8c*7cVY^8u3fFR0&8VERRZ*@M<&zxyh zol2qE`wf8(oo<~}6?sw9k{S8lj$-YN_$5HA>J6)Uvi>?Bdub~;WN({lWWAzH{Q zspPfP>^V6@(J5O{F=w4ffCx$FvJ^_!4MZ4dX@oE(%~gC=6^*zhS9m@5t8{7jKP4Bu zY|7{4S^rX`xCCfbU12Sa*s}L*Usof??^1Vn^pYAEBXHt6cU7^>Gl`=A07W@@|KUo2 z%1E_PIO?OU6ff;dtB6V-^=lYhDB1Ba+Jy2_&Ur>L6Vr$CD~70h=3rI@%@SbOxOJzx z8Jcz}JG;JB(Gwx1EZcpo$*F2q@}@NW=CYR6pcB1Y`_gX_m?ldL=IFpk>4lks`$d9> z7ghV9GloZH3#kU*9Rupfl#8uO0R!s{^;~FHS2g1b{5MU_^%BnGh;lq*q2ztYw-GeA z!p+~kGWs5D-;kDdzmEa_KEE={+P&G#_R4e@O5*A&y$~cqjuzhy^;^ghi>tu@H8HYd( ztFofDig0}en`vTh=jD{pMkhlD6M{>uARE9=Dbv{@D!_+^4;6=Qj+2S5uf>$`xsWw` zPA=fTK2$%MCUme}epwTn$dF#VZ6p-uDCk^0VAyc2d)UAnLKt!iu9)W&hB*p(p9Y(p zQ2`j0rOb^sz_sFL5vNm9P|fO;=@~IK$G;-4*>Ch>EQdN6upKx_Z>rmu|4;9M;*N@3P zPpI{3QK4ygCq9x-Bh~RhR@dVVN`5X!B=8q}L}$xz%!QF2jD&M3i{iqZr8`{QqOe#y{th6YVgRmK z8l^e5=|KMkFxwInc-vTA_})EA?pz~iZOO%yJTt^2G~H)OiJCPP7Jlh{0HwF-GZC7u z19>drIZY8xQF8M^Ik$6S&H`(c+uq%4-`WC(s>K94a_>`VV(>V{laXL>^xa`4CD-x(Z@di$uD^3P`J1B$7-~Kb%^TNHRtF=+12-;i&4d zqEaN19ItqcQaeT{9ce1ZNQEP@IRAsxjpPYQoQwoTV+%E7vl=llxD+L0gAy@7HBH4> zQy~VZ4k{Rl>y)ZoJceqKhQ>U+ZR}LOqVL}@z?n{P==A3otmG+y=uJdZ-mu#2vKl{O zn7sWicxzIGx=2!k_ijAQxlz*hr&8FO_$O6$ChtWdX|n3HK3p((!<}kVJ90}h%44Y} z3POwe5$+#T+_m0}kq(`%2WQYFGR~8OXQ1Q8>9}6(4fqHS7$$P4EwPO;!1m?sn~R^! z+tTgHr2Ae94#A-xsi0=E+T+b2UNW!6@bDgx)JOJIDh< ze`snpDEN#>@tKcx1ipb++IZy+C(_)o10gHK+Kouf6gToVAm|$@2u90Wm`iYXqvbtC z>wtLz8w^g>W6e}jC_Gu6ESES0cj2QR6+7cYY`t@k=gt@JJ>0Qv+dH;)Y}>YN+xF~m z2cNNR+qP}v&hLAl``?pFRl3tjRVt@WcPHoc>kaH<#k;1{`Z@^_By-BPS@V6p3fxL{ zFq!<%>_B&^d1~FUIzJVhHfa6v45)bk2sYXx)HEztWAN$4dxG(vX#5xmNmE75#r0Rg zmfzYtfT7>4BiEAy%ap}2u3vrvI(Z%Y)1riCglN8O%GKn#3r z?;pk~FGIxC6pQkoPbnU?`u1_gxNUpoN_Mo9M(u zEENmMsmZu>JjD!O;!<4ysUg+5@;-d*7`-J<4ESJu%S-K7;DkQYvye1_u>uYjr24kf zx=QF&c@Cz4V#D*ytxaeb5N!v?Pw1l6)k-F_qeA6&g_I*QBj|or%sP zs=KLhxEQNXjB?}|G0}KHQwJoGe@kcfN6Lw{CxksyNjUuFBInBk2Rct8F#qp&ylHUJ zv;rBk4g`aCl8h_N)OSkQXJNSqNL8(R$xH+5zo#7z)lFK{F!a>5d@k%M`Y$mL9xv{! zE^5-AIX@h43J?)a$2{09f#j@PQL^DMUQ#w%!&At;z7C397@hHsQT13v9La+7gWLpd z=n*+pwDTZT|AGt3El0r>yr8`*dW&O%bozJ&Sh}7Acm07`oXn-@18-9YLN-1YYaz@v zCsPx972OyofkC!d6T0w1FnQ~Wsj@Dj=l04_JSBv@=q%9#@OJA3V)8`5wPfM_Ds6h~ zo)KVGJAOhN*ilqg?@}lG)34Mg*7Q#wGeqp7mzv+HhwY2z6)dSL6Jt}PD^0o#7yFvE zTM<&zLPij9g=IF*lJxR8a7F=hu)Ld&+lQ%Y$kgO*?yN6_%TuQZ zoPbvAsRpr37y8RwLI2j;^N=@ro_lx&JLI8dnWe^S4`H4R*0wUD6RRlSKToP&AM94x zIecGO_~a^u=vx~`%29B6(aiYu5c;>9GMyfQ_~uHWn=h1M_Utbg1eXL+m7 z;R+0l$*n>IX6;rsX*2@8N1q zGR)l&4fqw|mjgPCSEsrla|V^!g@&4M>wA)1lv#g4FqYPhz0B6U@53_QN~#`|^oHB2 zu+_jNO}sV!7Q&1O z0I#5MA}?v4glo5OPpHQZZ7os?b#14g-*OTGKT+| z^6ldzY`f9g{rjwoh@;v>DMVp=S6IBUzpiQr)X#v0e-NQ(JDT=mdD72sl+L|k-|<}M zk8N9gBRt1J@IUZOHdKuJlKjU|HNV3jITh{Z4>euPUy?~vD&}AS!VQa+?c2>@R23=YM@6m_o zxxjLq{FW|HKyJ?5%EZBMnj zK8Mm}|4R$A2fxV@9oNJ=x`;&!i=3uFG%VCGMZFZ(yoGYs>DgqWyVvt7b94*ZX(OKn z(TlD0-yKIB+W&cnQd4p)LIO;8M;~Wv6=*e>74>le1puu|9S~*%e^YZB-xfw14C&aW z_Q2|OFJ&hsM*xsl3>8p8ZlY3)H1Omv?S|K6ZAeE+Db?&beDCLBZ6M}(OG9!t8z>=8 z{l{IGcy_P*r^@9ug)6YneeeM5_5JqNq|V=sR>$7=r{oGGV>B6?@RU|ZNCIb$zQDF` zhht40ovN6(*{7lC0EhxHgLUhPeCGI8HlS=bPh^3e+!c25P1K3iYXxEw7!L$VGIwUi zEFYtX{M4V!{-cZpzPFj%{U?h1ISIStxFTgON9_;4=p|N13S7L$*ho};HRH1QDmOq2*TIT&+R zQWBZq#OJ#p#cK8u(d)q|CUV<}h>htO_;36(E4(cB0|)0QGNwx2A$Dji8Z^+D_p-=# z*Z$s}iO^+nPDRma7ryy;7S-R3KQ=J#k{raHEuuvCl(V-dC_AZ`&1 z57V91ZWbPdU-Xh6daCsjWsO+!4*-)I(G;?gu<8JOI6`ao~)z`YO-!s=qSZ%zo@1W-rvA0c$s4=2g4g&GF2c<&7P z^*IFd55uA((6%PeMZsijbq|n9b+{c)z+*e8dqH#wwH12;J}C{WZk|AV%4sU7^AE0% z)^}{M^1cy?w6)I4@(sPpa%HgS=BB2V-u5c@^&~AQ zT@7dD)}1sma~=QUX|ZjZ+PabyJ+C+yCASyxeP9H7PdnuQe1q zzNU;&t$q`qqiv(DT*G%2PwC-EAO;f!^FI5q$nX)Yxqy_J{tk}Bu^ut&eE~MjR!wZ_ z#G=y*?^k!`^>6pQ_r;HySNi-x-A5q|IM|l~%ieAFN?l}+;WO3t`?4*I#f@F~edxb9 zlY$aRB*SMP>+ZcHXZdOo`oG%hVS9r~$4hWz#Bnx~jg$?YjmY`<6v4Jz-m-o%$&MCU z92GN-QDPQ^%1D!l$1;f~0ALl3D;0hs?h#liKl<`dWeTJc!qG+}Z=3Ne5JHSe;OoapL7hyhO94npxn%Lxl=<=mOf+;kM7av?zzNC-QpJB@6?*s=^Y3hCu zo7@l;-c%WTQz0vY)!W!V$^6-MC7bZI( zI6k21l1o%b7Ml>AgzC`TCS{neUv*8bDHq>n*EY#GtpM*^H9;mVwM1b>X4k#RsiQ(v ziTx8#(Ivm4+H>7FI}n#3QdOD!O#vz4>Sk&L$9qSQM892JpcwL1bCzPPb+-uRL6S0@ znCW{T-!Nzq(J3LX{7hZZ`CpO7@%=A1{NLvz>oMjEV4&;gV_rHQ)ilq|omH?l)il>G zhn-a&%PBhluc3KeSIxI=I8R&+AHN3AGMjA+bhe=ENTZDngL>hmx@9Q4gs8dk3_pgm zY+N44R)oRbhjXTV-g)1Jd+-4&*{Isk?g4)}3x$iI=j#{p2oadx`o#>x{6o?twoUN_ z-qSms)n1RICyvSTMb5md$sz~pICt~b^w9>oKi^rs6VTeDLS{l0S^x+`jFMR>L>Cwq1~g?$Om?wIzz#+NevSfgfBftGpmy%6CDvBcFWmhZ z#2ER6glC6IWg70q>83-i!o2-*>&<45Pjn z52d6y*(g5rqet(XA24}*Og2~0E13j^+|n&$Pb zmVTLS@wQ`Yt%+TuJ*el*bSp2J%F;{L+OMYNfv3zBU6gezL#;Jk6s?~IYrs##_cKea zf%@yGf-Rj2t&ENPUUp5cca2Sgl?3&C(@2x}f~H;Gx=M9dc;l9>Ta>w!u>>fj7PSFB zV(*hd!SXNBs^ZslfoCxA6K{C5Z9I=;kA<9|i_pGN@vJWMk&R8s*s_b!-G z5-jE+5J#_g93;yM0>ujFgZMTMW&|iBILT(y%#ThKv?!O&|2?WL{e^=cM2&V{gRj8} zroud3EQGsa0)I{q^pft)Z5l@1Akkp4i8HPht6L$_xJaOV5=Xyn601A$@cubD`&08G zjk@~Zbw9}$KllA-YU}EVACq>H{}_AEraI!0r)znD?Z?_bM&GoFqiPvOg9Xs%Ia_k%Ern{-cw0WOJq2b78#;_(b8RLVIp9?%=~lgWzFzC85{b6%RqUa!(eeW0AQI z9lL}OWZZ&GIRVtU<_3|8b-L$ZRC(=9jNv16C-%qF)9aSRY27w0G&<1k?Jiw^wQ7f3sz;sxzuAeW@wNxmVP-&m^Wp)` zIW>^33!WFOm!>z7WhK$3f!A;QUp%Y4t5{q+^e1KyohhAxP$lTvcm_QOsEen`XC$Su zEY@Ik{eB5OA5YDqHf#)HUZg}B7rAI@2UBA``S4IgmEIcvY0LO3mzqXf)g%B?J}WsZPH)GySQDeG|MTP#r>1~2H;+GocGr-$Y;*} zBOH*M6jE8yKh5XYq(e<%`bW%&qH{fVXOIk|(KIZNpIOddsJZA`3&G{#CHuhH<)wYv z@BRYofsbsPQ7C24X*S(>lujkSL&$XQ-<7BblN2cVb5$q;Mq0iIS&ah(`RRoy%z;Wv^pRLcgZ$sM%#~ z+CKu<|N zksuMouMo&1VG;WlbGGG_U%`RyZJ2!Wkl%>JFJVYMVG-MuniS4il-^;1E@S#AB6bw2 z6wa?i;Mb)X?QZC8Ng`K&0^0R9wggw;gHLtCrVtglE$*ODu952aL&HBGK%VBKmKAon z3>Xx_&W9rxJNr*K;ayvG=b!D;tGKYj*%$2OjO`}(8qxSgIy+3zj(~)gLxI+>UDl7^ z>yJ9Yz1TsY61(_Qh$|{0p?nlm&F%zI6UoaUvy?#lDMB?B1#PiLZQN)nau5UMdnN8; zZG1Wi%>j#`un#s--U}N!wi(0s>%YgFCr(qVdHViM{ef@26h>2f|7^CS=PL*A{Cpg) z7zfJ+;`aTb`hYMYyY`qWa465>>!3N0gBroR*OAEyst`M?zs(Bfqg0MMOrIe*ixde7 zFVax4<{MDB|Ap^{>v%3x7jfFKPIcN<={{9*07w9j`2$?P&)m#)qWMQ*_5Q?oSj!l>wN^^pmP6rC;m04h%YJ&%nrtbo9vAF zjsZxG_)SNS=hH-$OXG{MT zjg?^dE^@y5JKV1QjP&Rd)W-m$woaZbIXT+|)`4upg*gzt(8CQjUO_YD2(8{O+9ntT zb~eOnRa{zVl69B!HE&r@2j6d2#L;?6IhCoHa1HSS)TrRhTJYcR`5mPfv4De9MK zD&EFz{gk(-`Rlfk1t|+<+csJlHrL{(3+c-~Gkt`R!yDc;;n_xzqU6?`Cs1j%dG64^ z8s_tqFL+*pqUFXKj1%81MHk(oc%Asf0D_D#(OwHT;Ml7UmY{*2vB>G;%Jw0WlbdI0 za{2=|@4o_fxkV65DEwEy24ogf3bWUt^z8OEMOpZ7b@a79G0Lz%Axr zLQj1WCI<(5gmi{oHu%CvDNPaLrH|g+#H{M6F3$iGW(Z4qZR^!&7|j(z`Mlm`n-ak7 zi+=7>b$lmTjAA)hBT_k=@x|^+jX3=giW3Wk`>zG2KgRgq z&|mfU+Jr^SE<)jNuSllg4kg3fGGhjpMfbI!IE?9lZmTNrp`bpUJC>$(=K3PeL{n;2 zf)7eF*`R4vloKIz6l%wNyTKH;?rjTjt6XQFZQX32Y*5|%oGVM^H=M+uE|2&A8?=b` z{Y7_W9mdPcz>eYKGNiM!rWxbusc%bn<((78Yx7pv%E1vFV}gulJ*}j|1X!ORZ8}2; zhPCCr<)~qY-7YY#PZM4*}UKN~TS!%ygT^i}j~ z5#yAMsmgIAnNQ4+nKUJ{O%N+4`a0s_x`kor)=JPSEf95rgy{VN2A)m66xM$HP z<)-^bI*yRDyk;F-cd=w?gQm8crOfD{@1_kaZ7a4+cEz+SONb8dwMv?E(dV%f+n3`O zdQ7F&hTF^17K+%mMkkF=@H>HbCTSC{=EL7%eqWyi(|JC<->=VpJzeRYjE>tUuk~hn zH%K2>xvJ|%!k+5>S^9!0XYdQ=lQU2}%e@u!4X_1B%Vw)gog*7=WX~6!RVS@2*PM3{ z$4{*S1_5fqme#4sMyOaoV|G~P5-FC{OX`nXn;W8f3I|z9>}eQjdL4wzY@bY`j}kW~ z7$|1%sc4)?k=y7`FY~JtkdM1*HqyInDS8~0#PoyYS(mU@>M-*i->RxO=gllce>{h+>B`esv8 zSn^_pgjQG4v_buFLOP{KTd`2a`<;M!VO$AT0qaK%(Gr744P!)90#lj+!M=s*L3L*r z3gWzE^y%xB2j&Z>X>#qD3^c9MZMf-k7xUK5IUS%;XY6F9onr8iRC%l(BtmW4ow3V` zebw@&o-*SMtCs5e;sy`+14W=xELrU@fdPoaEIej`ML&9o;Kr4_3gqoj)RVb3h|b5w-t{V!u!N&L{g>a zvn{z;AsFzj7Clj;jg9Wuzoq=U6}ItlKfcEAzaNK#g08>NztGHyKsXxkBYY7rj)jg8 z0lY&5bj$pszcpZNzVpkf7M+Pwx?0XokqPKbd>vSAKZ^=_b;|x!O@}NtxXRnECluF# zYbm}QOC6_5_Ud^5Ygv-^p8x@mJ+R(bL4d93@Y{khOOgKN$zzJA6wN9kNhe{)c;Z>KbSQel++r?vB zS1VIWH@pYqM?YH=m;v;u9~-Mws7Q1blfGs!X{-4gc;uB=?bCfkxw0z~Up~-ZKVlKR zzcfi6zbTw(!*q2_6Q>bAiMvDet1Ef)sl9|%q+yNa$s;XoxiQgllKM9ABd_1B`^&-c zp|ro>E>Gs`vR#j$E31#6kMnJQHts4+j{px3-}n9SoWZtgs(W9I-5bx_@f4BMK zqkTX&Humd*ffv+jmYDwGk1C4x9)|v>G%-~F)GLmd9ggF{YcC4k0!!i*-?x&2bM%2< z$5iMihiY4>$ty~^1AZrB=<>~n23eXC$gk=x9Ee{`utBw-8?~}JtBswSFH%Y{I+2mf zP=d!&oOs^==f2!3qryCAvM*8r6Wejw-En|!LlcAzR0Lm)+>j@vWJZ{6ME{W9=h4UF z=;Z6F9)oV4x5L-+d4-xCL-)t|>*3^URs}o8^6@&Z*Sd9Y7T>>-gwPD_MG*%wm|Pno z7p)!)Nqe~d`*Z?T)Rj2mu;~8UujB3SYl&L{wX;0G?_t+{Q=qroJ|17D_T)F{Pqgok zcm7zmYATdR^!mf#ov@}4q6^1T*50VqW2!J#4ZpA(tgl#m5nC(_Cv`T{C>T4MB1P4Y z+@F+OKS|JdY9pq^^0GG2z8|zV8x>h_;m#-*TV7TVB6-ts#QCec*zi0}#_S$V3$0y8 zf6smqGtv1g2uA=C15=UNxek3gIgJJh5Q!Bx;T>Ui^6`t9xXP3CXHZ+YFB{L5gohS_ z-1*NdT{odoZDyRc>Jb%*U$$L)`;NfSk;OsAK$xrR9xPAVD?D>nRL*1wbW@iG*5Hf7@U ziR&`S0t`)xD}&LHLxlF9G!!)KQ&dhTO;G*Dy~i-Be{mZ;K=#GUkx&=a-J`S4Qm}lg zHIaCt>d3~>wLccPS>&(N6?7NS+BKA=>5LPE{B+kP;X>DHD?>qan{W;hKyw4CKBxm7 zbRv&o`)Vl})MZbk>&L`x@cipL;ki?yulh*)#&v-6f;9mu*>Ph!)TH&i^Zfp z)jI%9V4eiyv_4D1&8SzZ8-p$7lqWc&HSaR6TavSf&0g5E1Je5~V!WB*emlOt3+bgN z+1tqSajy(b2D4=M*Q4_=1)oOdK83Dux+bmjuc_U?RUFHw(9Hi=T(kM_OdvmBz~7m}1^V{fj4$wCc~n&i?TKv7D-0G8koa_s&IYA)CT|KXxlNTx};x21-18ov31 z@iT}kr)bJXd~wMD89IN{i`qd>INH8^R0l;sE>&5J_@I&&;E?(|&vx}}#4Q}{LRPE)K zY*Td^s}`xrFZf9PEel<(vy>q-CNDK4FWKk2UdnNss?}$c0A3yAWn3$YXa~A|zPJ+H zAJW)SV=0rBrOk>aQi$(@5WY!XA#PTS@s_{}HLfLwER$nw;j8kq!R#^yR7r!|MpbH^ z!zO284!Dt{4QeL5%dIM0+Yz8+(H|=9_BYCYGqAnJ4FnfmSs3p0Syb}?sB|y-(P(1L zYX>jA87N#De0LoAJgtBA>Bt$T?AfV}B7wi$y7#W_B+zFSUi*B@;_uQ}b~5;6O~JcC z(OF08!A}R*{S**E(8K@z6(_hlZQ~5s;@Q42P~+R|byR#muL*2Z0B?fbDv*C4mfgGFkYA6c5SZHocAl?2jZRt8YCt{bEN#V{h9xD6qHl}W0v7oq9pKZ zaJzQnZ$ZGwT3MPqqP}zsJl>F!I+AKx&!g8gHOZ{0<4+n%jws$o-LpgHqY^fz8ku>( zf(0z}Ok$PzV9&W~)Ru4U*eQe?nS0{%E}pObP-PGv-h{7kHrtOf!cPuX1Q6W-cQ;<8 zQ+H>0;D%{6`Lh`fCjLoFigyQh2S&r%dk;i9T95h#(Xl)NJ&zlf#EzJpri zbWFUWLc+L7tq_psE;l?$8nF(2nLqrn{t0Rlbe}6cV53}BvfiYfdTh4EFZsya$>2{{ zt-|(4%%j@^G@I+%_f|z^ZyQc86BwY;>R0D9B?H?O(cO}I+Ep+uwf~eLeWf_vPV#&I z!DUi|Jo0R?qG!s%2XCZxz6)M~((rmE=)BoPuSEU@51JcdNfReI7`r0@_$=v%b`_nZkVbqyLPS$8>B-us57RETv~4sJ=55I8F?bM;F1# zr9BH5HcAbe{(!NQPf1rQWb`JY=?Tu{Z~`9{79FODrs?!-I4-orl}E9aW_(lyi5fZZ z${1D zedP#9K_*R$rvvK~E#a?4%dV}XP>gz3Ztp_yEY9@`j7_q$1^$-YBmdAa`;CpQ#&hgb zWU>A5VNixm`<+Z;Jtu-jtJyd6i7Wn@y8V}hKa4g(Q5)B>ekRis!D-NgbQKXLukuCHZa6$+KD}I=R36Q}(OZLrIY}?d(KwHl z0u*_X4u!er3!|lNtqKfgCr3&?8n9PA4N;=aozs{7TjlDx9UY2?LQ&L>l{F44xgzH+N}>}@DY8b#D0>y%8wbbgQXy{c z$aL;WH4oImx=+YEhcvv2eG#SLk(@Qd6n0`K2Rhi~K6$q{q;BV6`|GPjj1Eo%%HO8qwRrq2vpxxf%lA?hgV92{?ahGbhZ4 z26@Oc*phE%)(eJpmw-h(=&!IG(GG_&nC+Y)Ue0G%LPWatc5Cls@8rp%Ze;{1Nu`M; z6v}nm)cetIiQsNe!*N{U61ACyvkxY^4m;w`D}2WvK#f4ytEMFjNex)EILb9qNzK5! z%~GzXibI4}0wz`m%$sZfa{1_QKJff1r?cv3UU+7$FuyACFVMR%HrS~ndJ220NhDJ< zRhhWS2cb7cV&4!PF(rlS%I!!r8NEAIQ2)E}+M6?K#PY<1Q`^fGXLJ%#VGPhYb5j6| z8n`lm4l7m;6&5`$pHM(!3e2K4Av&h1WQTPuh5M~4fXQlgJ97ePjH3A9{rx+va>))U z@`KHUzYEMtaTrvG>bF^&hIqkBBJ?CPD|vIHYoDKYdh2wKo134H_*cLFm%e`PNxRBb z{<kBT_8hie#h9;Z$m@e+(EOecp<&Bc@qQG&9a$2^VPNbPOJ1kWr9?%tRN za}>tA08`@MR}51-AD!8pfcyGg)%7VI|KszQE+DKY@HiW)RRI;)O8394^s))dm(G|_ zT}UacPumwnqnq%1R2H_#ks;8BS*#Jv_PkTjz0e-Hafrf-8Vjb5} z14;=ZBN`Li(M3>^UnLeuh2EO3k>s}N>LCLg6y@6PX3~Kme|w>rY`-u`Z+??E zrC_K%=Mk{tm$GgzIMW$eZ3?4l6`{wq6hl*nU?^*LkwpddEy3D-s&+%3+Is7SdjmOe z&LZ`X0T;qMCsg^xxT9N zAbC+9yKn#~GAybggYPgYy@NOrcwOB@217j&Hzx>%Jvl*oE?cIVp zbU|pJPFEbXQH{|*w#Bb}U06^|TZ<6Yu90X`Ehi#9CUP+4ir@z^&)HrSK?Jnx=0AfM zh&D}1tqayD9dkJ=d5-pkkki->K!84c3(IqS0!kALiN#DPi?6}~L%GpPnZ;#qJaY2o zoe7wW$IWAfmx<#8F)#+Rl>D^=?Qx}OjZP;q7B3xx7oq*`ey!NSV| z2F4;4I`gyy8I&u57mU0t7^eqHt0f($r4b6a)ZJeAS3J!)!ZiE4G!>QPzM)Nq9{gU= z)P2M_hr14kS6!%{vs{2uY2BGE8I34Pt@7h#o#g8I!hfkZr4j#Ni3&w0bVVJ_BcDqP zQvt>Ds|gvFQb<$4KfBdX$#E{4XU@u5t}>;(G4pJMUeWrW6A{f)G$J`Xk1hAA(+{%B z>3#kb;9D0dv3&~hL}Mio1jig?0m0~+bdv5j9NqADLUgSDi0hmI*$Py8Y+Ias>68=q zJYd-t%WfwK@Y1OJIan}B$PFfoi%wE4GF5IEVy3+GO1c|b-bPDwO)>K7P+6E!p>=5- zT7XMEx70a!pT*889})EUqvB|Zdf=c?axfuYtY7N)Gh<>o1zNJ6Q&$n-pNpi$Li-U6 z#3q`gwn(==|9avwxNQgnwFN7s;soZy`;)oBpXZC+Xac+qoI3D_{5*1vV^g!%g##q* zUS#LJfx#W+d08WbZO*_JOH&$ACtg!o*U`}hDG7)XuMM<44Yu29d56~5$Xv8M+Zi#E z_5^b{2lDqPOu1Q|<`6o*LK)M+AT0ZQfQokv!&^{x_WW^G$T|0jSUsn%!de07n<$7!PL7Q+FxPDgu%H z&JXD*kq^DHqt3eauzL8YrUOhLo*5?3;7N` zrvNH#no9#vdc%mRN8Ho0Ab;AzBSadgPHs{qT+oeP&o$xEc_H&LIJcUlG_+# z&Zn*(3EBi=HQ$&j;@~P5-AyI9qPUcNB^@0vUunn4dl9^`p7_^P+hksBlHz z894DyuezJ>^Zao1{N8tTJmCt6w-W6`QQTwLQ86tZ4YXoTZo#0l5;h!0pvu_S9?@UB zP(CejH`0a#sUd>ezTMd#Xy7t`IeEtmjQ@=YZONoi%~)c*@R1PD%prVuPv5HW#eI02 zfWEi}sYjKl#RUGNzF7|F2WRi2H{XY)xaQ=esSEs@1mhmc#nXkLe+9}3O^cw2CE#6q zXmC^4+@j72ObFMI%fJ~$t`lOI*IKNQ4Nz$ZQ-z+U*loa~m(yZg_-9;p`8+r(+swb! zKNY{0*cpG?y*3cLFogF(W~Jm(zAkl_`< z(`4gsFvfod@@k@y5f4;mMaGqubC?co0WpKBCDh)cC)rSigkuZ7xV#A-9DpaSE}i~NfD!^&OfZwg+;t-v zqRW~&3RJW=9s^!n4{-p;GOALfl*4c4-;uI0&)oKz$XGdn`=@)*pz%ngHj-Ow;bUZn zg!w}}6C5Bymxv_?+5#u7ZWgOMuQ3otQ%E#D?Xwv{zEDFc^*}dxe)skEMWi!PjR3BY zp0)wF^*7u7pxWZz%;4aa&AXpKZmkUyj6Qn8PNBnB(r3 zlgPjMOA2~a<~biAM=M!DL=^q{&A{yTdwKKNx3WvmU#Votsn+0jYRIHmeCMtvN;Lwh zODZ|wj9&qa(K9!7mQr0zZ&4~{f{|9hK->@W=;1g8&yU>X+P^fl#%nU^#%HyQF~JyE zrj?cLs-w;_b>;ufTn#g`_7Chc5jV3kFv?EmL4yT3Ly)lT3>}(0a7Fyiz_fb)i^Qby&Pu) zL97js3^emi`1Q=nQCZz+Qd8dd2Ggtl*;>noztE=(ag?kw*1$-}>OP9_={M(NqW*@c zj;~P_)PEm)8du}nWnNTvi&PsYFuQ-XHRPu4uy8&Torf&uoKMCW`S}2fMM2_b1nCet*}3Bq!}O`^rW1+jd($HGLWviXx14< zsHDYb-jtvuxFb0wNCzj$jV*YmICbl>+<;}y~BbcVOPTLz*Evx5&z%Q??Le1 zeWSbLcm%`se+JPFh72R^vk_5FKJ3^@ZiN++Q!zEYgCCoe_>umcEoRobv)P9~)A*!r z`m!nXY7JI1y}Ct$9pSI#<+g&%Ni{$9%wAZJ0 zviXOv*M)ETwa@J@VTs$l&3_t6wc45YdS{F6NER_qgY8Js?2%+r;#PYMTQL)mGHNLc zcTKsS?(A(k79~T|!)P?af%K~cnbqAmpLA=l+y?0RgVJ9#Y}v{>fPBeqWo1gtAvgle z{>Im~@s8hqz<3oDq3Bt9kUz=R@ZO6vNK)6pT~O#mOq7)lX|I0@8R_zg^ywdo;X7jJ zl4GtX;Oa9{8}Bf&Ot-$GZd>fF*_a0lxN(TkcW8({c$nCTN;739((=Y&x{W1gUu!@O zwgtm(3Un2LV=-#%U%NGirG;jq_bDD!m)3gYR_+b(0BnTYBiToHPw(mmdp=QZMb~;v zOv_Oi2laB_kN4ZWie$8Q$W5i_8E20JuO$zd$~J_G!Y2_D}ab+LQ$T_GI$E>Ews+4(&glP5$k#;}_q368!jG zcO_rfl1Xz+DQ#NY&(Kms{iz!}2-usdW@GY_7Ak>Wz7-%$^esFS^|C+UZDc+jmsjC2 z7+e2yc5F|z)N%VSwzf~eNc&JS+0*l&yd&5w4MCC9FwMQU{9`b~$%MS7VnrI}gF4ds zjaAxk0L*{v?X_{|7yOP9uV^95yJZ;#b+o$Wx}w!8Q1AN%X2jyKbt(=OV`K`jof|y# z2st6W3eSGw%!|!WafK~01F4@bajsZoIHKFYJ=gD;B@LQx7-yMECvH$wS{p#pXhwrA* zzaM>a3>C#a(fRJ%Nkf39-+glQr{Hf#PehK=0^2s#uju1e0FOR{%sKi9ZWuyD(3 z4$@|25;`Wthw<4o<+ICctN$K0@GmFdTo1rEc5OgP0U^8`yb$R5eEKEup(4Qwd~tei zB(ASYCa!xx0h{)Lm#ilNLIfVZE&=$O zX~-5VxRFxP+S1QGx6X^G1%+xD%d%KCAHj@u!^En(NM9-fBFAmb3q9e&e!;30_@S`u z-hfWI$M!3jjc1TX_lG`>V&V0l0i9xU`D6`+sj;kt!ynLXlSqvpz=CHR3v4!RK(E~j zpLG>lb!Et+hKfzP;?lK)pM-z)cX6v=(P zZIJk<+bAFsO+->-?s?J9dL7U$=EkN|guyo_#Wv8i-t@QDqkYL{VN25D*B_7T^G(|c z&3Ev~QpVKVS@eO(AC;z+uFI=R-fq!++E7Blqga^N3zfZiQy!9bQp$YdQ)q+V7yOJ zx5Kv12Ac}KpbC#tci0=7$%+xT&A4D_)W(qkGU343!UtL18Kq7gmlFSPQt%neR$0M* zJem}vC0gmIZz+!ETrT{q#XkXcjIpW zH=?zyJ8gcyyd92EPb~`@53pqs*M!CVK!wi(u zLYyL_r?cKF^@jXi%4@SVb-~62A?uspfKGiW&)*xy)9FL(mEP`HXPRMaxxQp8Cne+j z?%1jc%xO+mEX?3wSi3H=8(`8(f8}NqnBS@S{((^=3ZxMWURu{cd;(1l5q9dbh|Kz6 zn*8@QE!v5g_^Zx-?aO9czOVT`EvyOtffsp3EA)5Rx>-s(obOV0>pmG3p7b;)!3GwW zw9-7Q3tAC#Pv^4g4F2ek`}fDRC-<*SJlEe^cZ?vL2kk!Q<6OHahsYq^nUym~cl@PJ zDb1j_p}8Cdl-%FgDfzR7Q8l{<*B6?Z}sqf|{hG0RBW2}#4dI-M%Fz1hwip}AU#p6$VZdih< zxlNgMMeeRkqv4%Gf*w$S9?9vZ~3AQJ^WPO@ew$Gb{iU1Mw# zhaqKD68vUdOakx;x|CL=!qTH|)Vl~wfMIdn1Gv$S4G7-|>ov`|XhshsodUc`gmlpc zQA^N$m}ajn6htZ!EENsG3YGIZiREjGdg znZX#v9gJUvA~Kfb!NVW|^?G-l@YukwJQa9AL||@OYq9Pc(b+@BG@^6jLJ`Erwsk4` zLk0(!ZTqCtj%mq6IW@)hDw}j>yIWi3)(bHvmr`Gd6oYplb>8HtI2hzXOIn(n^`G7<^TW4RO|fT=vq=C*K+z?w8zmMTiN2=;q4q<2#bQdaoZf9jdlxQ>?3$@ zw5vFgim?)ZWH^FWvpru%Vr<(koYpH&cCl4K@&MxvM0DWQQ3W3hqThS_H%j$}I5`zJ zqeX@=0JywS06DYVPQWgtysJyMrI37zDPEaeT9F&a3o2m@f$@&5Ca5st^UbaX$aY@F z_Y;pw-t$Vf<&?l)fe4jLaiH;=?vlDkJNs-FYQ6Bzl$;Pz z7lmP?h{*>6Iody>=!@2%I5+o8w->PMrt~nK1QOU!qId99FX{X1JNA%tdk$XX!}hng z*4~t}dBwozi8~J`VHx2gw~W-n7Q)ZDLJSMD9bi2F+rxs1w?a|P)r`~Ig8ku4UP|pu z;eYEE2f2^Kan++sqeW_?ROWm(V-*unH&Z__n-7gDWVhvH)>d-YprE~K=_v5LkhipO zNt4}F^Je2&KXUtHquaIy&^>p7EQineZNaRrYfknLtdb6ZwCQy1!AQS~6j+#<3i6tZ zGkkv9hMItCCZA1ykfJGA-`S-*Mm9)TOY$6fScA6d(R5mOtFuRIO`(c>di?3}^A|=o zMt1;JY`kS>0L*Mke(dbg%;Y)w5&rwB{qJYwNAe>fSLBL>|26+1Kaz=AWIMIkYCa#g ziFm6DsXgPs0q~O$N|4EjrP)mR(|;$8iObvrDQpkV4`B*Ncb~pE28XE3qdieZk+M2qV;-}*@vTPH_npwlBsaU}$yXk==1t((lKv%s4 z!Ligizh`8@=L=SmvSJy_fgFG<6z(zi1v}wm-4u-LDY?)G2MTPdwpO;qFW&^sgR}k2 zTH3prKY9u~a~V>i^ZL!%OMiotNdBm~@qzP{ZlO|+pmfeJcZB1cMT_=sqee&sqQ+4Y zn37RsYf-9Zo?~()b8nd?XqxTrvSL&#@@~|o7w<;kr0}A)1q-th4T8&c_UW#L4eJ2G zL*xx6#|~7vwLWX>0O{`f^eRs59|yzrO}&V&ze*9=hI47CgH zg9( zoO%I8ab4RY+=4v-SBw@~?^rZj%Qj@DW1rNW$z@r`)GlQ<)+tAy9eze8SaeT#yIvTj!0d=>s<5mH4{#)Je9e|yrfE;b6LW%m#V)fJ&7NF{E19<)aK0+@ zJccv}5*A^Ae4Ud+_m5leKR=pwff76oPZl!wAiYkNb?op2#~n|Oq3(bmMzQV!EhN~;3_~=(VmUq-wUIT^wk=h10Z743 zsL8l>PP?rU?F-@-BH`$Fcll22dd$184UA={bKY%=!a$;rdd}Th`Z6&X^QL*;8Hw%~ z@L$+1v~5md4ye9%&K8q*t(n`(U|f0EIihG~wAhXf)x$ttPO%YAe2@zHrs)Ceqe9d$ ze&CPY7sqVt=(f)8n0Ee+3Q&s6S`(YOoo~i}M8MPFmHFVU(|10=k zW0iORy_jvWlSF*(c22FEl4!V(`V>9|JNjowja{F7cKqq_^FuS|Pmj#(1IzrUljldV z8m+A!?aY{J+2${VMQVPKRc^zF?Iw113kBb_bCxb0zeT9H=EgoqAUEJr;F^50lok7= z`_TJ-I&J4&rtcmS9E+%#ICJ3Ezv(DDnrxExEl=$j27OPfuVqm$*|nAxowKf*QfsNV z@NB!*65Rb`S?Xg|7PYuLzNZzrhrTy@i$^}Pa>16YqJ{lVLPDSs@&Q=Vze^6mmwv{p zBckkh!;0{o%n>E_87(?u8TzUT+K-*ml4hOt)V43DeFZ^azOR|mq-2#tSj4p?SwZ=- zi()ut`G>ar7|sx`w) zTl)Drc-73ZRseCbIm?deMdltIbmVg2_xhs#U)d0805Pr5${%D)+D;(0M)`BLWt>YJ zTW)w+Q6T+xS)*Xnr-~deg+Bhhk$5*XleGAMywU9#S*SDZ&JeIt%*}*w`0XOnEwlBx z(L!THpeDuI>RF}SDzWy3Hq!@nUQnfZ_UA%ocjjCq%B$PnY|T^v9N8IHcOGmsE|9O~ zqf%mo{el5+FuDg>(rkgcly$n<;#x6H)UD0n@-%ouj_ry16@5?)r+aIrYyR9>JUS(w ze5P)CfM(mvjn6xUf5r=j*-jpQ76SfacQ#n*m8{7FMH36$geke<wLA3}&+vVS_x+5NG~>GLrR0Z&Ri?z%lss>ta1XiBd6k{7fpR^xEq z{<&z6Aivpxfc4|qh#blaMr1_sg3){CuoVoUSz);1Q55$w70oFPzsaa(Ux^}`4bwgx z?hTg&S=E+5&t#P`2fh!FL|4bvIp@N%*Vkt2)kh`pB(a#alWH!`($~qo0g+0Ae_u0l zapnkoAfM%2#nCMt(={t)IPu}hlKvnCIsfyu9oErLv}jSv)0Yo1@oO5@4kN+k^oP1) zMlMMbbo|rn!j1VoIis4Qi~|%Xrks0*XvCLW$d`my0wLuQ@3ZNWBlhg71u0Ejnay;b9L9P*ld}Qd%;b{sXM?g%ubmH zEH8>Pi$dNy{pu-Z@%GKdph>)abK&M-{)v@gTEmAS#tG%q41b`Y+Q_Ld*JRX&mD`fw z(b3Zl88=b7jP`o|e)=)w%Ezwx9T(Aju=XuBPy5<2p|9?GK@A}#%ev6KjF|R`JM!j$ zL13ac)zA#mun9S1=#9u;9KWbz1WefG*dfC#xJFu4~yg`!8w zFa5mOQQYVQZ{KtknM>o!oU52_g9tVkHi# z{{lA)-2I3fa3A?$PQ9A+*TcLgRK#_vaSOlRd z3GPD*u4R=D^KszbFuVK4?FD%q{FahT76r?Ctpaj}3*o!mqPkfZt#Y-Yt(ta>8*u#Q z{N(KQ`E;58Y9SvcT25-kCS1ojV?u6xVzzclMtMo~Vu-m(FU%5R*c~likhcm0s=*Fs zE&P>~I586u8#9Vr(2*nvOrd6ww$?T2t+jDSFj4=<%u9z*ZQ~r$3ZK zxJ^uU*j(%8o%U*9w|?KJJ;K4%5(4P}nqnp^b2h8?Szry9Fjr=HUn+i0PQg3Jthc~cv z*j3bnt$Xs`2*>OJ&~>?(Pae2lOpvjwW2laC{44lR&)A%!<0Q{*w23VSh~>ejgqHkk zRw;<#GV1G?)I9%FA1?hMPSXo$e550LB%KL^as&cYkMRN)1s1@vZoJ$4A zndVC_em2ygU&eGI%g*v67kT%pubDLA*|q>_e`lRA-p3q^k#*986wV9X_CasGTkFfe zT&eGi34VQ2=FR&5d>qGZqg>oT#6Fl&&UxYnndbTii=Cyod>_4UTwl}93Y2Y2l6!hh7Vy7DWDmqlE@cT&RGmwJnQO7| zs+7BHY4|WFZSYc?WG&5aZn^dZC+-ep8sU#D;;a-TvnlAn)Pn?P@1ct&Etn=V?Xtr> ziqf-Z&z>Q|$-n;VzYCP7O#6Fv{V}4UwL3xVl+HMn8 z5UmBEd;nNfw9h52?u?FTDe{zDnTdP26~sZlNAJ>-u3)%UV(cC3!E}0nBt%wNLJRM_ z`TbLZdB3KmLg-v0!~!_Agv?jHaKwz-mHJtLXxkCmv-zZW&dVOQyk%eqOUsqN+L0?` z+rpcD`P`5hhYUBN+b3no*ggPb#x{gKU(BM&X~DX-iJZOgp+FU8BBkJN58=rDVb0i| zm@i}7kvn4>R{3>E#n(O$AGX#Vb8bGIz9p$h8E1ac5>^BXKa~LynUdF*DC6a#w@MbZ z#?Dg?!|OIpZ=^nl^bEw>KL%7hq1z@Y7Kw5n$+y!>C3H^*IBw>e;2M4su<<^V$IsW? z@#LnCq@DI^V(OZ?7hKWI|?lfKJT^LW@+DdId2Opa*Mr`u?h$Yd#_n#_Tu#Vg5(vyXO$v{ ze`b;BNQ*_&>G@AGPr#Sb1C`-%N18=&<(gsREOCl`Dyp}zOwD;Sd=5$BO4gP2c{xCE zsOXbv_-M3Osz}A=Mg^$?WG>8ie{`7cZlTeQ%cVOSIXWj4f6R{F^W4cc2w3j1l}f6t zH4$9pO392zq1H_cwhdJ*kd9ilmzuon#MD3ug=?bD_oTHJGG|xyZNb&zda%)d+shby zVeKA{HzbenMBCyB zKZAlh>mvfW#;EQ<#wK=wv*4N~Sg8HQ-6V{SPyq4({_-H+X)d$cC}IsRN)xZpUu!Gj z=q4mcz&LjmYjgP^9%z-HTy^G;wMDY#`A{fzzb5AQ^cL_YF^3`I@Y?i_{ghs?Z3Z?A zT(a)TiXMrrUapw=j;J0kwu4g*EoISO_fECFQ|*`GRJ%Z@T3EoeMQ^OtwZ}>~)NgUt zP&yQE*VDcNNxV;zk@nIyyBNs!4tp>TL{0{IK%lQ41!l{f51JGbM9D+vVBmo)Wsg}8 z8wfi95s&cHV_!N3={qr8(-L*lbB<+E@O0u1k^(DA!naa&! zX==J9q{26?alpd0#+Cg5(@ir_6A-Uv$-9`Sh+x}I9l^GX8?i_J2xW|<>)p5y$KDd# zb|1DxiTKcQ{2acNB^mQOF}6*$I1) z#AKPs^`J<>m)sT*w-BI;9O5shSy`vh4EywwEoHSD`)@bKGblYjf}*N5+>@Q+W9{&e)C`{CC|M~8>se);-~o2&Eh_|cEw zih6m6KmB<4Ej#}%v6G{tKmAM6@LCcd7kVPA2`>E$z^Y5=#4XS+_oZP{o``uV{R15J zAtH7!cx!tEA6&vtjbHhA(J8$hIRxyq6h`-SJ8?m?WhpCKtw?T7W2*u97Xbjqqe1^* zd^xWklf}4XIj@%kfHdIwa77*fq}GDpx|j-lEbhcboAxcu?odne%ZU})gFM^O$oj#d z1bCkxw^nFC5;A9Iyf@5> zyfK+0t|k1rVY)~aEkVz;a56I}CsHK9<&m}&1Bd6_-BsrZG)KsM5v4ycixw(w@TO&1 z@C+(YfTjxD?2pY&P`!u=bl!3mb^GaecPmo?5YLGOu|)?B4t= zg`6Eln|`k5Lfz6T^EDMAT6`^lgbt$NI;V5HBGd(Nd9v?3#5dkbWBFaS$}D6HPlAcZ zVc=1L43LShRodwK?W2s8(z#@6D-vC&*ic9@cKZ z%aHIb1tf0!R?$&;-daOvk z60|>O7X#`Pm)7kA;~Z+wSP=$^SvWJBDsFz$ zP~$#lyG7nNE3kEtNB&rC{d4zmsIb0Ev7uvZd4tdr~aZ@)Jahf+0@-v?z5{`fb;aVqmbLTwQHMi|fygx~!1w=0=nmn@s&GOE9! zMogH{RS&e*m4s+3p5s-4F<0zAT-byydS|I%Ml}QDU9chQ4bN|?}l z$#YUe2@gX81X${OmcZ`v?TRe9()5l^$+ZzU!k7izNkIUdpXH<$n#aSA%$xrEuneJ) zaxo*S&J0s5D>iZBP~YL-Mo=wUP$_Nry7|(AVn|n+_f8&*UTW;W20KN`Z6)uR z@Hq*t1b(zjAHCg#u0qU)B-w(BIcsvbmo$en($vW6Gh?{jpfe+3a}C>aYXlPS>Ut+U zm?^rK<9F3AAul=^4;kQ~STap>s_CGR?AO$n%(9^_uwX$5Oj@$0*92tAA)h2zFf0^q z)(Ak9^psr6L>DVYVuPqmi$XpiIGO(%5=)koyas8!A*OxKz+{uGk?sbq=uMOHpEcpN zuol~7&3>5vJ{vBoqAFi=z#7P=OAu-i-CZ;>`Md(O0KqB4=68Nz6#7i+QsW(V8Q z+bgwJitUO4ZlaQwFB$IJH~AsHIV=SCTIOkvytSHb&C5;J1!naquxsH1N&beVtuNl- zC?LgL(EHs@%#HLq@g-(pNE7(nmTEJG(!7XH z@;8!r1-5jTD`^gNC5wVpSg;ng|FmP!f-iwmE9mnYd-IQ1Rm9fXv761wXH+4Kqzg!J zMcZ57O!F8vumFxqcNSnvj1j2@PsP-7-TC8mJ^#=vUu)})X zT-vYUNheobwMaG_%oK{EL(Nrb)8ToQPfA+p720UVe)P#5hxw9;FAWX`>8l|Ww$^^b z(m7X|^{@J%1lYagc{aQJp=Ozqoax$TCFHf#^`Gf1(}Ohtwu47tjl&0fbLYdsCPsBU zE^?Z*Y2{<&CPQjfI|3?o1_YG^YeJM^_M4Y=!Tw;rHYU8=LK`+pgcK8-rSF|LR_=D8 z!)Q~WB2BWhLK}=W?Ed8H!V>92AqA2>d^SyRLrdCLht1#8uIajrdgNta z#eDIvW)adlt+iZI%`>n7@>$?rTl(@8E{G!Sih?Kt!jj!AdndO`tBL1+eIbL>g zLE0|)bwUh8E05U$-(c(rc+xADcsZ9wsiRQ;cILn!yvsBg@Ww`_NeQ2jZ@`Bh^n~Ws zqL2@Y=m+VoUMT&gZP(0FBQ;)A2W-Dayfj;x^%W5JJwkV5bJrhOQJDY6D0YwOJ2HDd z7ns)1l`~D+teV5Tl4Y4HD4DZFDEhHULJ6~XODYXq$0Lhw?VKz{*p`}rvoey+16--+oD(4e; zh4z2m$kVNHrcr#Qe%m$u)Dua>7Zs zgTRveHWWK&n({(5y!2)}|4#07052S}tN}m#Z*Sf58F0fbQ%z!N5d0iQ;`;}Z9ah`i zt`{@%hGp`eRd@i--|HCAr-*-1pF%GRmn-b#32Ejl{F`4>bk&>jGMzyt7QI7Fp!L^CWXXDP(kjE zAk>i80cJ{Ktw5d#!yRx@b!TY)dt=9bQW#Zm81WAXaWhsQ(Z!d`TANE34VDVqfN%%0 zzQb?AJqX}6i4^Hvf?yD+*;p4O+Uhq^njpWs>@uHc|o2g~4O zpwxgZStJNYHNa^!EIJ5V%UNcqEO^ZB*edz>51Q5H=WxhNnx-&gLSO38hQpAy-cCnX zAUh%~klj!g$j>#;uic&i(12`+v9Ayn1%G*KEsQQZ6*Fqn6~P&}gKEtJ*cB^Y4wkN3 z$i2r)D(IX|e7BP(!8BUIKWu{ufP-_{-;e*k_v4L&3R=4%sN|(@uFp;1ydf>1b@#m? z<{i1@S~Hh1<8KCpI_8NOtzok?0etb8BE#PMdd-0?35>Q6Jd)72-n4|Qz-5W$bl`4J zoEl+$&<&kP?)Dc!PX;}XI5BC!MXdwtUbOJ7^p+Lm`c)H^nUBj!2U z$c_|QaH!M|V*2^}vSJ8{xRY|b-bow57M3FUMEPY5ts9tF(6V==hG3X>a(R|6+CN4I zJhA(}Z4v_nd00N*2ap1vV&FZyDYSmu3OAbYt_IU&}BdFd%NwXk|xzS z3|m*dL);rESe8~zE^Jtb!)^({jF@GUA3;AOe$O7U41U{NfDw0W)dTy#*%10r3bo*+ ztMLx^+@1#VH7)p%Qxwh+4Wk!gOfIE1|2c|Sv3a;(JZM(V$%llC~P~P>s^d7yBU@GswB3b zc8BKYWQGDk=oKWzejL?xhdtet+;G4sbu4LVsLp>H;Q}tue+^Jnd8MZ0geWfN1q=Id zE}-CZ$=#X}8Aa&(n%~ocVeUH>zA&hqZOEVL)B-Dk8*kBE>b{xyoOIOIpsz z%d`rKL63ZCByArN8yp8dolz{*-89UlyV_K`m!)jYV)vSoguHP*Ld*c9FwJC@xgbVY1ruwc znVtXI^2S2<^ons>T(^FdZc{?HejfI&)!rlX_SOcE5*K}AmE zD%ZmU&j&09JlOV zmAO~WJfWCISS)}wka|HBU)F`Dg2`GHtLSn1n48egTnqLdFG3oV^^doiEhHxK%xze2 zT(|R^H94jEvFE%V7LL7VnS~Q6i+avG!Jj^AsrRO8b*%uuI=+=bk@v^4h~28M|1!mZ zo2`}CNzO_pdJwCmATOJ9iVO1SwYMdze)=lJ2d-FFi(>>aatm4Him>;(qS23Ma=A2u ztnY6|sECuUB-P=mgn|4QEDWf@1^W+FSf;;Oh1RdrG)$MWJ*aknUymhK%7aY;F}62L zwV@n>TKUl~+oNmctG4Uuuh-0v_S#oZUu`M4jkAdl*3L8vgugGY|I03}|Dh|J&j6A( zts;(ncFm$;e`$rRz*5m|&FHXT*gI>vsRL_sAF#M`5$aambC;?}s#=KdO-mBZsHTeP zK66}KK5O1F)FZqj_D@)zKPR+@WLR`nGWnww^F*tcnXLT6xJo*4`s;#%;M-=6E0*=( z`zD=!JEFI5FV2Q8lX=Gpg7EM5QYCm=p`r-?z7AC|0I~OrWBYpCEPHR!JY$W?^o*;! zv`a%FUYx2b;X)`H*25iJHv@u3pqzLb@jsOC((`vnlRVRl+nJQ z`ZPp8mSitow~6*?86U=8TGC2`x|M!7{VR?X2EP!GJ)IXb7iT=S0K>kJlY1zxWP6k} z!-c{V_|jJ%A;&qpKUO(?K87KrYXZ_ZCoZqCnMkT2{Pcqlwi z$&GBx#Sw+aCo0&I8GdYIB*KJ>rbHlM>r+841lPWRb6obz3Mp(Tw&~SctLI#gQPRVY zm_N6^66q9jU5)72q?0~IWb@TM)0G5YUe!VGp!2EuJ+h=;L$Q$FPD5mc<=|`;_389r z3X!A-(*q}n72Gn*Xs4DpHG>H&6txfDl#s7n&P`lmcB}d} z9IP#OH0Spgt?<#d=w>*{TO3?Yrv|=x_4sk%Z5%KPTg1waA(P7`)>~P4P_HxyM^8B( zH-~=8+Pn4r)D`R8%sQ{^8hv$-uW6|M*EUlw9=ZT(4bZDWMUib0DdiB4EK57~gF1e5 zescEue7ejZL!y|-OUXq%b9Ajlw0p&!9ruf%R+U8JWC%*;#kdXXFh`IArliG{-T)#&qY+%mjaPytUbf;v+rtCk!i zmRr(dTu17ZBtP5&KURqJSFBsi>@G0hO9l-^x{4g`_TIXu+eEOe*u>XYnel=FKDFbu z-M(AVn0lOL&e`$s?P9eS%9jG|;UISqm9;2VO{qI;9ielqeNtIZNm=oGUa)!05V+uC z9^gcU=u;Mvt!>DEZGLL9b2~eR`*Hcz4V0z@fAOOg9W#)~ksxF;nSe>@@IQ>qoEJyr z8)m;Rq1JB2Gff^A(iZ}Sx%KZTTve=SX5T(GJs9~D*<-68ZulRTjzjP9qvY!yD73S- zd#Nxuk<*l7K#tB+qE^d-i@T;w&rDhvKt{|T-1)5-jc4<&bB9NrfJak*J;=%o24!>4 z{^H1l4fY6?`Oyew*CVn2#4}G&?H@sNxylqzBe?Kri`oiuaeaDy(e{h%7(bm5Kpj<( zyZj8pyf%e7iU}n%wW2Jvhik+gMqbhtv7;jv(V9l+VpYymy;_(YqNTq z_ad>Sg{!!cUSnp~;2GNY9x*@H!-tsN(}vHt{8&AfcdB>rW5xTlBOC0;iuW9{*mf zSxRxL|6ffDT)xYvF!QySKYetq*W5sxZMgLIl3Mjddr@I$rYkCx*|)a8Xj`Ie$l(vr4K1~o91dR(LC71fkuIn0V`G2e zv9T__4GB~7!3$r4bni_fhnXJu@A%akMBf4$7VY(E=-ZPh`uzK@p-v35>-<}|$h#T} zVi&J{;lfZAo7Mz=VN4P_yS)DEtCK&Uzk+qc=$42@QZKAjzDwL=`mOD{U%lHVQk`~U z&0QzR<;&}qr*6X|*KI*r_tZUBbrQ4A75G5*&Hxs(rKFlgf%0e7^h4U_A`>P*kvq!F z99N^yb2Qu$)h}2)I=C)rMf(MpYDfm=0Y2|!7IS})_*91c8^X_&NmcNQ=pX8 zN^-he^OE=`lk21uN#p2xW~@h&?Pu5Hbs!SmjfhRq1Sm~APE|h0=F8=iY~dUL1iMKP zY-z^!4SB0>JZci}IPd3o9=z7%z0qw)w!iAl5)Cd&tKRoGI$uA{aA#&`%CHnlMe@v79L$7L)4oGCv zFWWUgKQ$7j%|w&tkdcT}Mz&Add*|rs`RUFVQBXFN3$~}DTV&6yNf0fv2UaC9&2Z0ncfwV`_(xNutImZJrK@g(Hbw);1ZEbpp%w@JE7)(tN8%U0{pyx6~IQbfVUbt3q z8w`Lmz^YZ_6;z8N89zw@zn2)z-NvJnjU zdvCLd{{T=txI(>O46EZY0Ia?lZUF3|DW6OTqsfxovh@^5LsY8>O>Qj~r+TuDBD7xB z?~?(mMr`bJ<7`3VpO^MUr4a;UTLeV%+_Tb{x-1ZitrZLNXDr$j+3NXLR+_$vEY*$6 z?O8;&>gHO9_h=ey*m0G6eGFMoz&?a9E6Gd(JhgRPyg;HQPx|h!8>oavO^fy%iU0UM?eCvS{lY3*(xD40_)I!cBwTqu+mUhogp(% zbDM@#_SmUJ$0`!Py>;08AV)NS;hbbKpiR;xW7L z?h%3qH5wF{J)w9|qn-eLJ_lmbny5UeO<(V^TmBh*ijrs=4a$!dw@oqJ z0n_d?3pd}6Jopc(qGS!A#~0@VtqIB_4kmT1&FA$fgau zN-|lp6&);R>F1^1nF}Lc-j`e{h6swRTuCD4L(71YhF5X#?&*MXd-&{JG;?mJ@}Q-? z@RIz|W(g{GHdOf`Uc{EOplM=%hkN&dmSuQVP%UG+r5r3M4=VOa9$drFJ`c0Vv{+)S zb!E^lg)A`>EA|Xku0oa=Yh4-E<|DWtx7v(yM-FPT&k_TBHK@gYON?(_8Ps&Z5)2C?k6OrO!*W)e+4pIy0wGF_xXaSjYww~cP2In_qf;+KR z8#VLt!2)wFCOc%70kw1O<6xtVyj(~1WPHU9z>+4XOb+xj9AE>pq^KsQvDu2PM7f^0 z2KA2v8CyLX)7l}(<4IMPELYk3154&^{bDQ0`cHF19r`R<$eau|Sbm&4v~W48%`y6~ zEWaanv<$}Bw>>)x*D1f_QUo)8+8&y(KOb~82WAs!9}f<`elq>tH@`Y~ zJA?oD=hSR3;Ooy`e|mj!_6DIdGs2 zy@2OxD#|Ht=?kLD=r|O7>~cTsUe~O@hR_#YFpc(2<&9eMs#Hu08Mr5mFpxVzkQ0>Z;8}xPy z;?IVRH6lt4RXo{y76RJpnqw=5z6Wy6-R)dIi(ZrT=NYzbg} z*lzCqhOp5p zR!Nr4O_jXdFY8<@#YQ=Nz>rZK61FOvEumeqzZ!pZEWyY5UwflzL=C|byD1DCC@r|b z2YVlMioGj%35WfPB_dCEF;yCBx6)6^7IK=@x0QaOH_lN%JT8A2VBE=WhGus=~Pe(tVm_F z6r?(_hB!EHSg~#+aKo^!;YTG`;yqBTco{!ZVviPBB46wm<$D|Yt`awE6$hte-fiM2 z{eR|YN+qO?^o0EIzpP7ewsomAz?w9V}{nf6udQ}VKAgRv{#FNYo z%6u<^YiAyhj5qvmA>^7m6zy_MM?vZH6n?}?)a209AVQY2e?nlrN)N*cW=~Y^_4M$( zSrJDp@b7Y&5+}D@h%fEcsDV$unWYILX;I%IiP|Zp8mqWyk#`T9093N>DrVk%C6CH3Ad@xLS)-_pLRbr_l|t#5OZTcH1*T1pIC7due}cC&ZU z8Tu?s#-%jy8&4In!H>+oFp3L|C$JBe&%6mGGvtq0{(Ob5f@o5zaiK&M%;L1EPkhy!LQTPQ&2^R?ar2e&X4mLA6|}pfLKl#@byw zJ?dBJ9jcqXBzD2MRrvZSezEnaQM#U|{*<%3NcSuD3imfifoUe4lC!#w^LRQZKJjWI zQ%Xd)DjJUo6354KzMy_G=NzA~WnAj;uS@E1*ah?#K|>n^iPuRq|Dv;qmqYO%5(yI# zTn1Y8Ki^jA=QUXAG8Q8<{ILrYQ=PKImlL1!gL5~E!X4)v-p6q8cqp9)RpALPGH2CA2 z@0`M_mC}8I1xDLpwCmj;J`XtOgem>dzI>zD4q@KvE^#t1c3>EB-1gMtOhTEdnHM!M+tvFHt z+n_r;>)8kP8g5gQzHUS9nh{X>;KlkQ^A-AXZOas3d~y?G=+=vPFZW2z-ygKb z<~$iG|z5asiywTWM5Lc_!&~9XP0`}gZ&M~XXh+2ws)=x=d$icN(tzllh3HsQK5 zx0y7rU3s?NjgU0hy9WdC_VI6pB6F3Uw?3WA8JmZ1o_mK*-Tvsm~s%$LUgK-&?M z2>TPi7dv%zUw8Rqx3q88#sU0Ns_~j;i4Zlv^V!pwsiheC^RS5t-zuF;K*Lr?kJb70 z72r6EK+ct4^;*PfJ}Tys6W%%#?+^yFDc2ayRlce*vlwTQNMU!z+s!aG{B+`jhdi2N z!}dwx1b}@cfP%)vP(MpB=Y-aWC}J&}agpn3x)_TUOdzl$6mjH^wyl8gs()cqf#T9+ zVUsMlY5H2`F(Jj7|Bm28Fc!fvnVv7~wWgWT*ele#81B+oi#m`pzvc&;1QIBXQn}63ixb) zarbbLOO6vbrr) z94EtM2B2Wz8a6nVk`gd4UE0O1@R<^S6$E(Cw;^oGLMbmrC*k|qI&Fk-@g+r7n+1t8 zSphL<6OVE+W#t>BsMPfO(MQsZsX(^?Kop^>({JN`>pm{9yCmchk6o^&?uPm}0S#PcLCQfG>(s3C|Ig`_u>EIgngQQL(utF-N7fjzYD zvT7@qq3^rAsEt1PnkZ`O45TbJxnpW+gAV1&Q4zQ@vCtr#Y{1=A>xLWysy=`~*Z;g6 zMf3@WvkI@TfTtJerN^=vHsUmC^9QIjxmng_UnXnZ1{rl!Pp-znn=4#zedyEdkkQ*1!3Rm<41VB5i_oTqU(kAa{`w1i%dYR33c7_^RVB51ec8JmuO5NQK*=m)6Mg}zx>A~65$(Q zo@0d0pA2%yWNJ+ZaXNdIS%?}n8os(2pgRjmiEk=_DH$g}`9NYZ|8lIx(WP+Hi;>tn zJ~E-3;N-TK4xhL~7Q>+XtAK<|o3ux0SDRA+0{ z(3qSBoM0hYqIqI8`Op*DoH;>pcp~ixvyNqc5(vdJt@CVxc>-HY)5HjNY09eP%i2iq zGotcHbX;zaLC&w#3^~_$3gS7HX?P+zCDSwWnV3E%a$f)si7wXSEOKj3u_b5CQRc=& zL{K02OV%gnRU)QR;|6JcD^@z`(}pPS1m)ciulc(Vi4v>F8{CYC$GD08qdB{EWjS7I+fCvjpVLW#y*igINwFn3~<5{pEdU$n}K zs4o_JY}%+a5V=;aa=OE)5XCuk{i$b^e#_|TGyx#P`!{zcN3<>>20Wj6xO^Ux{GOD& z7EE?uqJO(G1o6jz3iV{$JPUr+gye=)8?WZrCRW604faRvsN@r%ze-Th1y2 zWvt$3G;ZopL@>XfJKKs1eh-XIOK>D1z~*{!(ilo z_~Sec^LCTQO9#n-kbh7d?-eT zu61|o;;e&$T8W>L4ve8*aV9w3yBlJb0YlV<5E8M)g0MSA8+u#n3ROh}Ei!4}(I^lf z^x~pf>H2%kLD}RjCebyU{7i2y<;WXAzC4PYX_I;V0(-xAxyS*AU2DazpbhuIRinn> zY8=gZw-E@egQwP)ktLm@h?EksV(k^lXaON+%)mQ=;wm*dBizG39ohZRx>M|d5}WuS z6pk5Jg+_*R=i9>xQY+%nx0aWK=n!6lDw5IQ6o{Y$OB$$fg?|cL3PcQY5>PSaDKr_Y zsiw!$zllo#P(8CGD7|jy?=vEiYY zvs!GMsETFEhZ5@UF*lu(_CIY}#?%eZ9pv@HQc&!oapH4wAPd<`s9zEi;#;hTj^>FZ zm&khs4;*jm2E=Ld+#sx`vKzT(OrAKH2Tz82tM~^^(nln@uAXe!u-3SEiWPg(DmfhM zJz#j4_xX=>e={c|A}|AI(7KugAqeO&laC@*%i04)F^ajAX`0_`4och#0DX=fx^bXl z=-6}Q-0}ro!jW_cOI#NsY`t{P0ZZ79L*j>^AnTZzAl{o%3I3qpUEKbI zBDYU_#QFpVBIgn1?2~_&C0M9&CoMb}#6!YHt8;O8G@L=6bykgNlG2Fapi;`aILwJx zIgAUUgI)>7226fY>^kB!bc3OK-6+cLHR=!$Vr&9HMDRlZ=VYP9lziLr^J(f?vKKn# zcJ?%PP}hTZ76^umA*6*!0d@DvoGGuNbnC2o$5n>ckIJNyXLeN_Hf+dz?p_{E2GDuhOhbFy3^y=wv!=IL1Su)Jf=7m?wH%K zaV`ODSkef@tF%hPN|8yvz)LS+1l4!jcKsw13zmC&%2~9-!WlhyH=h$mYk#y&M=#b$ zk`c@9Sb^`Rg7)4K>*qEDI+V|)vLI!Mx2xBQ+#eOq2i-)Ljq4n~8{wgON)BTy2(7AZ zWlp6{b8;A1Dc)v;WMF6OR=9~Y+aYXH9Qw>y?>Oc*4Q%FmFe!<5xFn9D$2nT%L>-bi@up|>?wpi^dFi?KA0 z*aWr#u#Oyq&eoN-q2Dn581bX!6=9vKO11qZ6#NS5i!zlQ1{_&tn(%{Gwb*jnNeTS1 z`#Ge_$DBpix6v-xw$F%e{q%$tRM5T3Nj8mqL|JpoaUQlD>9r5E#b~&SOXEM`OqJft zDp_~Ek+CpWSJBVPI+he)&JZjVLON@P{FgBZ2C{ODcHRSMZq&@gpxPP@ioIb~vUrId zQsWL=jTs)zop-jezay35if`8YDug_Iv(_qIGtMDz@q5Yq#})|*1gp{eK%=+4X+0xJ zHRr)w@Z5E}uCt%*1G5X$dfcJ}bM+u*spTExKqi%lv2d{yg_Vs$GT4Awwm(3+v6G-A zRaMTU!Nd|ZVkbINc%l~tzz7MS z{X`Gg#ZeI|ays>&*@DB}NS*mhp`y`bBn4QHIlBqddk6^?r}VVU-3TF3i_ED4C0PvS$$!b&lJ1z3NA)en@^*i$GvlKp*Z zPJqs@lR3!&M#as>rp%rn+uTh1k-WUFDnX^qo*S0vg@7|_jViI}v16papI?6RB_r^k zN@IOJh#IVtGw0^ZiN z)xJeYimHni{v3!th!m|rwyghoiZREeT{RglDuOoi?U|>V95-Dot?vdnE)-j>#s0g= zh4H$8i*?adQeW`Q6&Y~!i?QhQ^;&(l%b!(CSDn|!oomfC((;JKsx(WnUA^1D`r`p4 zY^@rzH)Ps(u-#{+>^KAsoYK!|uA3qBGr$$4F*_BHn^M~9PKq45RjKTyXdQlft+rI= zWm~c}|5gUIehN)%38&^)V+u2=b*kls!L$!9)^}j-{Gv5j$P5^<@<|HQN&YNRDo7Hi z>@;4FKa8Xl5v58g`z>M8w5N>W3C97}sQL~qzW1V?Hiov_bL4@w;Xmu1BXn3?9Tylr zZI_SO92-B`Sb3qfw~|@k{*JM!FV3{2oreyi5F$%ThmC3d@ON%I;m#JhyUI>YN78&N zNJ^NTg*`ZgDy%}%{E&y7+-0}{c|+0dh>=~Owkhj8IC>LE+E4G1*~g?kFi-u9hxSlm zjGYhS`rJBx>p4vF9Th;msYa(})O51k$B~v%l2j3O+N$)9U^rpsM91D@R)WXk-S`2N zvNB3DwUQ5(h*;VYzJQq{57Dn^xuy_=(xTj5$+YRRLJOJg`7Abu8@!j*U)hAEL@Xw= zrJ2uv8s^wI?}uv&G59ph{@SeyO~Jd+pN)95oK0OlbMpF)FB7zYVl_0BlklPVLy&I_a&Ho6&-wc*Emm}|Dx^bz)Fh9zz zBw_s@$kt}^LT7=wcjF3Ff#9V2q>>7>4!W{}oNK6I+{g&AkCgKE3?AKnPBNy8_(%m< zWpe?QCK&NELr5=8It_@1_ibjQXGyQyH161-?*R>=^e=$zQv#;g>fzL}hzS;w>+ROthmYC{z<=pZ-3I8H6j4g^fx?%*R# z-mfMrCAEZMR459qzT~bju+NyoVE%7DF{3G&{M0hZ28Ungz9%S^FuyJn+|z+>q#oMc zLT;U$710(*EXvMMzhIeI<9d>B{*0LS;{X;dMo}elXj7j$Q6WcK`xAANy$}ltG)_oC zQX~w=0?8p#v+=NbUZ-FKJ0lfIvv7@1I{+}mTp(GI*So3Fey#i+Uke4(NPlQL;WFV{ zk^U*>q5IL9(|+AkA1lo=ev&kHyw%xwm1UBEU%UHJI^%8$7V&TskT&N8`Cg3Ti{BjJ zi-oW>V4Pj3pWpmY8T7EHo|zh}bSxX6Nr9Sy#LvwE=mh`obKvznzYAz)u*W`9T)oTSV1)=NQrR0rR1 z0X!5r9BGXM{&w9e1E$SRt#0mnS5Calw2u?*0g7@-u& zC3w$?+08mnZjW&g)`=7{F{*!l0ki;a3zXSR8ap2uyJhT&X2-_nerLU8K7agYzH|mW zTecX>^)=Eap6$DICZ64M^mbFT80#CY2oFA|IK2O z2fx1>hAHZWRFW>yaVOKyQiIL3gXO2O z1kFac8<{0b&?=A!S(gA^mZ~21D1hfW6cEeFa%IhPJQu~u;>gJ|Y4C@HqknA9R&3N& zDq38TrT@bx_QHU9^%&S}Nk@2Hk3%J{QWGCOOV>(gnWo!fhH{Kkfp`RDgvFGSQiF52 zkYX(B#Bws~k}7D0k8QA+b4gH+dbe|h;5PG(uKRQA>iA>E&62?C(g*>N_O&x2*_!BD zL(|%gZn?8|hnlZ%uuY^%*GJK4Xe^)Whfa^7f%9xy>^I-8^{cO1V7jP=tQ48)6ebmA zH#N2j9h+vGeK29JSf>k_roN}s(shMY)i?u{z zsnO`#pct>)+^lP(YT}H!)sm_mQt1!}r)jE{A&UV&PqXn#Gjj0FjV#OGCS);9HkkQaqzSX0Q?H$I( zi5wYmeON}s^_OKhEoxFX9tOjN9sjR{m}$#f#5Ii*La3G?jNEl!_`Jv!)?qHkPTG#c zAc;$@X-?(DUaQRy`tim6TF!&AInRC~#nV>9D{58OrO{JF2gxVr+5#-umVjrTqS~`5 z^WL1NxlJD`JOQ4nMJJ(KyJaWSW})~L?PcbH_wn6!o`8HXoJTv6_tlpEd%rcjZ%|}2 z8>Vc&_Qnp2lrQVjxI&MjsT?f9W=o9=o(x3I^FAl?G3W#6Z!EHGluyw_H`l>aUX%?c zYP}ABGwaA&2Z@F56sABo+}?IuB9MPcb6sX>W`60P%8pKsg)s}d@to$l>&cGfZcSKG zrZGeB+tyxuu1>^hCVPXz8lLls!kVq0s17Ec|8ahMo-zL%DXQcBIXY%OpNM^VCqA1P z1a9$(UL5iw&|*>L3120;h@k5FZ^_3;TIX7c>+Z)r@w>c#U$$IJVq3>@$}j z9qhyKN3$M_(lCIzUrq=fDf8n!oz_xK-xpN_ciz8cYC@QjC2_c%UL`IXcY1gikdJdD z^bg1!)66i1@I|zk$3kU*N$1y_Iw~(u`DbI@#|Xz#IQ{r=vm#BpE*pXnIfJ^eg_Yxg0x&uebW7z!Uwj>F3M5tX4a z%WP%zHCq-Qow4>GqcQpGWB>ZLJcVS>yYk4`A<4V=M=J`$`%59>GmsbK;MS2kkxJ}zSjA`_0S5tj`$UU)q#cw%I1K9EZhitkLvDE> zu2I=LkU0qjN?_kM07?epkv}7^{?WD;polOm8+8nDfQT?n_(L~FoAYt7cg2?j56 z(Gmf~343tLq`zJfsD+3)!)#a#Ljmy+J5vF1kU2*IanvaUF_+K{^M6}A0OBq|h`5Bu zZ<=|;QU4tqMuPDa)p1`&&7S+;4f<;y|LfcH{-3?~%Zys|OE#w8ile^br8v|KdaCyay?#K0QYm9T6<7AKNUm zf)$KpeC-%E6FM*>rO~azuA@+K`YmZ;DxjFTy0sqtP=#PzOK6Iqi4N0JW2fiPCqC>Kg<{Af210yD zMr3`QNoPQiwU}B@l1g%!?iJ}aJrqBLDOv2d7qb| z?csMx9mGG+9;;9-o#q-TGS!ZTyYw`@IW@yTixIVMBs?9VfU3aU^aG@I7g9U~bo!V6 zWT_}&^k|RQLOsA+SIKDIVkHZxI@4RZ6$I<(eQFY!Q0?BlkR)gwaYyLdtOvQscGZ_f zZczQMh!(em5<_i(g}&WLQq`$Bgxi?HIhTNY zD2>|GHRV^MPzW6R>!mhLNZPIt7df}|<>-=1?qKVX=zWbusy4Vv3fRr_mjvNraY{~S zwkr|+a%q+l=3SG##;LDD>dJJ2nRO!7;9eAoD$?OwlTy`nvM_|F-J*&V(!vo3OdS1I zMbmr_tkljJmHWRDD^{11P;(svn>60AS;>*(39LJd;vhZ6Zf_)Ya-UqK{@rGaGO8sSM)Vr>aHeJ+z zOQ=QKqGT%qh7t*?O7%`gKL^w`Dd?o!{=z71^8M>suS=d{b+t*9YBd5Qb>!2JxL`TU z;8zd_qt$DW*(TQPJ!ibD5gL%JPvuuUYh<($bJrqQFcZl3Az?tN6sWrS0OCC&;UbN< zp|B+{VL?yy)A7wk4ulPtI=i9V8BeG9zD(h7LWxx2`j!#dG@4G(UR{hA9^{rw;E2V( z2Xbs%OU7y#r!eG-%6X+Gloj`TZ=>=X#ZCp{E*$j>ot6-MI(J=4m;Xhs6i(G1bq|VT z&~g)!YT$i8?rL*+{8!8msm02YyyI8NG@XP=NowQT=PEkY^d1-d#=9$zC_SL;N_5t4 z-x7G{3#(?Jydeq|fLEn?K7If&xT=jK32&C$8 zY!2&EnD4vRZ=s$9tfKF3-dFw@Ct&LqH35SZ>i@Y=o?iGBNXTF<=o(x%sS#5ajc?tK z07w+Au6bH5ivWrzdh`3A9pKPc?$ z73ldOa#ipjml3@Y$VF(xa`)gVC!ATk-lAKoOma5N5a#(N@;Y{-yY0~IFP*Xu$r&Ku zQr1uQ@AmWCca?{E|IV~ucfpOENREo>xYHjUl+t~^S&(QY#FkR95P6v9BF=V064vSZ zBo`qFAyD#R?v|&20eSUm@CZy<%fUcL{jGy45l-KSP0ge@$d|l87v3Fy*&a%^0ftBLt%y*f;;FL<_ zaM0XMWddk$Sea(B4dalaGi0qc+`4C?j1kwBtJFpgsr)ZeoNp>ftJrt>x>W<$fu^Xk z#6Q?I2v)$uI(a{*8c#!+-eK}^8r&X04|C&@bYQ3U)FEzRjn@uaQ^9=?m(DG5@3BVW zo*15q89zJTO<`ZX_ZL3Dt`7DZWRn1q>R+Zop|7@Q>bdo8pYkVxwAP+6v2=IHtzW|v z3ya#1$%7Bja0dxkl07)fEsyDqR(i(Sx(Jy~r4$*|9y7XC>#~^s9?(xha>K(hd-e?a z$sycs4gGhPWqiR`!IKTp#l3+RE8o9G?wQCz%9;INR%V|%CEu^hOgg3~C5zpEQVL4vjlMgWlO~0%(${4kHT- zLDd^KcPB8>#ltnKE3zt|;&*Bjc2%U3?kP;&Xt)!+8H-ID4kJiCUw_k@iz0{bLjsob zzj;kwSI%YOByQOn?G;u9%$z{JYIf~QZVcnRL-AXF*5aBj67N7uhank2L6%04Wm z?qG+AA|`lWK;Pyk?E(_!mq7?m55QAU`!cbv8A-z%;U~r)WCjfDpKAKhQQ*OyhZZ)i z=4PVGB-1SVy)T7X8nAqt^7)YQvX(jLKPfs?UoY8eb^D5|FOd(6@XmeIJ&U@qQh$XP z5VP7!e|`WgXS?{Iyb9~s|3AZTYFNwdYe6hWcfi>QIeT2V?wJg@CO@uBHZKHw%~!)Q z{rX~S4%w#TJ1QODN`?h$W*ho0n*J2^Y?^GkcQKds7&)nKz>dzz5kS~9ncJ6TE+ZFa z0!qtGU}3)^f^X3=ZMh%frPCD5dBtL)8M{6KWP3Iwg+T8-k*Uj@ig`DPqWerc#)iwW z8Vy3_KlOO{BqAN)A;lceyq(yyVNx!t9ED|2oFg)VoHE%$?0@eYE_)&wxk^+wAwxQH z6jtIJC3HGj&TQu&je)M1K&)6s3@J5(;xGP{O5g?KbP+<>E{CfC&*{sEB~mcyHq~Md*Wr!-mS?d z7WT{#&@})vxq(}ukWrZWR>vcEV~#0IY%9xj^byE;H+kzf{wgwm)18gqcQNvNO+$+Z?@zQ}Om>Pq%@tx{goz+J< zP7mM1)ARW}eRt6)?00Q&1C>!qLz)Z&)=g_TeA8BD(&7sFa&@v^=6mhu+7dxwX-(98 zo69`;uNlMop zLA`C|?M=qyTr@T+|4Wy5l(h}&dQrkhi>%ZDN~M;W? zxBjWFFHYuyH%t;dMaIb}6Kc48D5PB+0L;!Wi2=CCkboW!GN*u_$HtlheUW!6P}pTXu#=_#NcZ5V>0Q=PsTJ3=$Dk$O~3Wn8mpYyLBg<9vc8BFw$&s z9+o>iL#36$HkV^A;r5lNaMMjVC!ibGDfi_9I@(pk*%vy#hX9GVnnd%zFp>;@mqV56 zfht3S?3n%*KH#^QZ+GucZf^EhE&t`s-v{&`^}Jw+y*YQ%HNv%7=Xjx}XOJJuwr|IT zFe>$9a8XrKb7{imH&OY-S1ZDWhe*i-eI|@8RO!Qa9gU|&ma)0gl9v-`fW?6FB(S2w) zy7{_*bbv2|m=xtgrTAS-#^%8cUH*9xf+IJb=L5n;?=O#AKO_*4$f}mpUfkgOIie7U zL{n<2;$<$GYX_{iP9c}goAXk-g5{!m`OdDcXUa0Asww@rALrX=b$%K6A9sh_r^K_H zp10-xP0Y_x@zB3KpZ(tl>Y<_F;QD``-xn_;8|`2J!RwzapQHUe4fd~IUS^Jo!NLE$ zPUiTtS|H9Yt0XDw?4uieMG-*`&b$>Dx3Y3NeeT7>S>Z^wZvSYY;1a*#*EAY(rzG1M zXnu!TWeL*<{afbws~52x<=0>NGU6`?GiV^g-CCur-ZEQ;_Pw(@0$i8Zxik^C+Zf+aX&8B_Z0#D^oWJrdtnxY#PMNV5(1L~a*u*%RC z`(~&aawXx^$ANS4_v_#X&-}%O_U9?~Zwod%?_4bU`_sc4c0S#l{$1_g&j*K(jD{{N zMr}Dr*QNWw-9tI+0QAOLWjO1GH`ss9pV9*7)iYeZ3RbiNZihu}I zM}$aJ6+NJXP`yWNv>+hF`xE~Zb!HAAl$0Em+rC+dk1kTj&s{pV(WK58?l~-I(p3y2 zarmRrGZvLT(V5G{H0l@yg$MO`dFVfQ?6)KS*zgnubasrlj2=(LOLP1NzM>ege9N|8$7yJu6H{BQh~bDNuga})Bk|) z6$*Ba>pam|VX``zFkU=nbUJITTrQ~0ouZ=9H_1Z0ZP>>=m#iY}M|pxU~j&xFLnbaap3!U6dC9QpYEY*;D0cSyx6M z12b_2TXde02E6}!cklK`mYL6doNIiIe(Q9K@VvUQ^mBV-E`mX(k>8RL{79DSNiWfS9V!nNbUX@FlW)S;jYC!( zX3#8?($&A#_xBRnKPdc@fg{jnp-w^58z9qio~F->A;GXuiOQ;R?${qM#_V?l^MJeZ zGk8yDt|&HY$ct!qCl zf~=pIOSQA)Pz1H9H1>)~2efWbCD>MQJMvy#9+Z_t@8SXxI0veARj$Fx4)0B07pQsG-C&n61GAGK+(}nsf39`!xvfFqp`e{^*qOF8oqR?>mF6V~% zSM6q%M1>VM7P_pvVDZ@$AN0^*u@P!x<(Kb1wcp2I2a(R!>8&No0${_v^-Bc>{$m^E zsT>FfGHuVeBg`6zYErXLUZYa9^JGTx4>#P=Tx*RFj^|H_P#Egzi!kMjASijLx`_$? ztJM=;o5NJ4H`~d35<4Gmul<0NeEmTUzqrLMI8PS zUYcAOd{l#@RFhvO=bhzRh&==)+lx%liL8@0*jEeHMQ=E=l3&LHCT|BAE=q-?s`BJ( zwz%r%X;@-Hc!oTxA@$y1*89!)`?isIX}Rt&gM~L=s}Q9u;i)LEH5xLnbfrON$l1$~ z6M97&VCXA0*vN|L&3cLD-3QtwnrU%4KN2Zy4)Q%E;B9GWx<}^|2w=mLi_iv}{3$e} z1-4C*X)SD-Z?Yboo@)KokvbQ2W|_pOm+#xZ^d-kE-0tV8Gj4O5gBe-`P~(z%w+21{ z4DRLL3=_0s%JlI?^mu*Q23IrT?VZ!IJwsbSHqs7A=zfz_8i$JQO!CeTPD(f~*D$pP z$(z+3^gUF{8%Lea?}x6<F1T%tJrY1-$aYB5vPuuhnQO2TZ2+KD8 z%MX#^#(;!nYTI6k*g3Q8m$%JmRVOwzdJd^&sy}<4=fLOq1Cl;o>^0VTk~q<%crRUb zgZ|bL-qWsDD+TkGW7qt14aRRvEanp+=Ujtd`l=LJK+G5D7+*6%N1V|^|4qe1* zOB>Fif(1@Vj*w=Z?<=R)7Hi^T%tSJeOfz81vX8re8VH(s+dCEq8mPfKZ-4zseF81UkYJ_Y8J5qHI9OFPXutXnoTYun9nm zhFgGQc(HVno}oV!aRv&EqMArb4mISOF8clRHbGXjBGovQvt?|k`UlwME~(yi0+%-Y zlc*qVKOCpte)I2{b|@Q7xXPKR>FM>~`v5_|5jws?!x@=Ue;fu9^!*k(wjhuotRRW8 znVo)@#*q&qLgn#*$TcYG`%)#}$#5~@M@je&dVv&I?!!=9k`<$kS&VreFo!xRFw(y1 z^D-Q|@=0?-6-iuJ9y~jW3Jk6R#VG;xRNUYr6%G-tv~MYVEfI>Dc@(GT(g`}VP)y*! zrWL7EW@yNc&cTrd#-a%>f60mJ9Fs{0GkarBLp)KZ{Z}Yg-BjTRaO@6tVq6F*@f6W= zx@R39Womc{KH<3Ka1+bO(L~yhR7nNXsuMEEnj=-K94@CpqiC3klGFQfL{=B4uMgNx zH4|@EJbM8eo)z97a8>vZ#8*Hse&m-bkpA2Iqw&YHMf2HlB?-`f7T_sel!Q#22Qt&< z1v)si%T(M{C*i)G-8fa4jrjbp=-q$*GA3N-%w_{WMH0;fZI@Yh(dZKFK3i_TjvWp&_;2if!rWs;)79uo6l8i`No*2Pm z3xh8Ymlxlv^C1{#ogb2%npR)=Xlp-bm)T}cIT(4;v@9ZsB9oR@ZHy|SIdH3TnO<*F zfZ#@;%(S{yM7ibnO_6Yf`F(Q?{LQ!~x&ZdFUSsD87!%=J4SE`M`!&B)C zrrFQnJ}khK45}rk6;-TraXnS1X!UilzF*61ON*W}s2-hv8A>itVteAA>=HF{V+alu zl9(n8bWtrTi?HaIMIl0tWL?1qYhMJxlqQIZV0E{+UC9`p+~!?i3Z-DTM~wI+Gv)6B z!B!gO)s=2AsL+!jT8}u6Ab0wu-I)ge+%hPqa@*g0AIIs88hjfVsq*=B;E7bFMwwZ8G?l zNjS9zx{IA>1{vjxyqO8_!;Hg01|x2od?TfBm_{U1=P*mGlS2ENpYoK|Gezv#O6nC1 z0S)=Ez3U~44N?W55ub#FbdD{DB=fOM0lLPAJQ2G;Oa6+zP+vJr)%aZ@SWI>pghuOm zRoEcYH-uOOtLI+XLCxpRi4ZyUL1dk57xz50*ze{pf#1ch5HMC2R|_QSI$=mDjjch& zV>$hikN2m{2&TwI$}R}UB~v4ue+ieu-oZ@B6R@Zgipu66fk>JvOHcqBHhz6~4^C;+ zf3!el5CVJAm@icAJ4Ga57mW>d7~POVy@=rIbx5g}%^ctQ_H+CE+`nGUujc7(`*^K; z=CFM&F~f$`&cv&jBVu(Qf=w2n%*tE1rNzWSX)$!aXnhBjaJ%{tIs^`zgp9#ZgTrXf zeK?F%N8YWns1DS)OvOSOCl>-inuEn~tr5I&)p#sHv62jZLK12R?g?9z}zPsD( z)*K|ID9EN%XS0}iWh26+_L(4~NyO{J%2rt+e{!7-wzRGPWVqPwH{MnX}ic0WC-C^l62>VW&0Nlm+=#q?tcM`Ky<$< zYY-&g*K4*>l9UxJPmMI+$2S8Z#=H99(rWvqa_^__L^B=8TzHX5er zkO0?6Wo%qVa>KN0jY%ixbKjgYcq@<#qIZVgFnxm7S_Dm5u5_E_qzkIrJ~XfE#1|!- z^LG;hba>C|&C@$x?7;?~3uGj)qAe5<1IvdK0kj0y?-T0d$?)U6~*1@H*9;C)86I_PSSS7iq zDp_h#6Kei85)3FpT0nrDzG5?ST#r1^YH&}Cm8!9t^3W_&XsC-^l&l^hOdNPzJK3{m zFf4Ps)9I{!q6|sj@dx&EV?cuq(}QUSFm{vZkbg&yw5H5j$}{FV<1flL1{jsU5lyV) zb2v5wukA8kLx+v{wO;+jpv@pV1WxQ1Bd_w5mDw84sHoCu#0`~IQ9$00m-Ay;M?F`& z+R+R}T2!Rgy~XpJ);Um-gLPJCGins%aZzUER7<5`r+?AtG?;V%Yc{Q|Dxe=JNmh*J zm>CKhAx%o5nQY_!_BvtlwEF|D1*aJ~20raYn%q5|Jqy~hfbRfHVtFE}lA1W(O0rEj z0-N(ipnuvIyovj3twLMrFgFY>CWtOb4Jt1=zBms_0GJNlf!#}n-?=Mr7GG+b5i2L{ z`yvZE#&IXSO#h6kxhPkmg-29s40+MRO_XO9-{6bxAV=r)*=u3j_OhJZ&`mDz`9-YU z5p~yEZ&XNTH+O9>GFA{F3JjP4&_G1fni>)R2&u%>dK9OPCF{VtARjR3su+-}y029k zYp6z|>LSnByF&QjW!7#Gn88mX&t#Yh$FMeVL%Z7Yeo=X?mf8TJpv6TmUubb+pvws0 zIusYBP$Cg6#f<_p(Oc=ASKS{pQhQnZMu?9`N9O`f)XvG{QGQT|44!*`qhI9HJ}u?^ z_|0+MQ-5F+KG>K|pSgT_GX41Z^WOm3v`6s%{(i=3P9a_ny(9oPXwTXd+6dae@Oh(| zlpUa5UWa#~Ioie?WfcsL#fM6=S|?&v(0mP=-)cQgDyhV3YWwILS`_6V5zu&~?NHT4 z2dw+w3v!8|3i!aWs=0S2jR2LSm3OP+>7cHxep2-d&d#=3Yd`}22@90ZN!Jo z2>Ak?q7j$RI9ZKkWg@2o;XXFjr@!eu_0sY-y^Ws1(JMm}R`>DoQgvDbhRh9(PXIKF zJZ~D&T(GdnTXS||^6kxlJCc?9!g7YJ#Dfi{_%tjAQ6W10bfgrk`lKpRyDtwPH+@Bq zW~y(QJ^Bm_GT9RMPJ(MlZ!{=3yPKtreZil5UA2V zae$SZZ%2%?3xvFER8z8Hji&fi1og3yduAa#9%6lhrY9@(L`n#l5dKsT=HuV|=J{`C z9!9aI=s8Hr-(G!r^6i`B*Ju5bmnGdEdRQa)B@^P7rKBn#D+X4jpQyun85s~4fLw@l zf8PVSMxiby!xf*cM9?~_!0yuiJ`lJ4UQ>c=5&Y-}G&e3AwI(ZC9Bu~bSc^kA76+du zijQ;reey=+CIZ+f1UJlrfA+Qs;6RG7?<$&ELrQb5kIO4SX5{%|O08bq$1rxnT*apk zQkuYhF2dq&FSIn-IRYUJF�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

R>)evDTGb;sovscV4Guhp) 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ɸ#P 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

B$%;RIA2M7BpU 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

3C2Bvn#mPJb2V)L5cK7AZar9jw!U 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 z zN`2!S7%~27k_DP4P<{?5F#4_&^dN!aNSA+MqI98DOiXB%v*e$kxq?4DbmnrE<@O5v zJTKOdtLNb(Mg`u?jX_u$QxIF!B@Zm*ZcDm6u}Oq`C(|NL2{+3YtmElS2Jt_39UVd# zg!Fn>tD<{?DbdOp^hFYXN=FN^G@mDVks|RYNskh0lI00g)JNmoDO4szqYsG;jF~&Y zYj`g7*DT5mGql@S&;UwRPjuH2MwNMD4FuN_qN6+zSlgOI0PO+eo#$X2rMCO|-IFRc zI7QEY`5!ePX6^{|XO$EAh+YER)>Y^xlOF~2vLR32&gidmF3bF_+vBiHg(=WF6eD(W zLgO&!95o`ei1q4Av5@58ZLE`*qG_9Y4@Y&p&SwZHbBh|V1`=|7JR?|)8APF#;65elv)DFjLQ`srccw-^PxY5 zJZ(&mbl1au6h69cKyqD!xV>yZdM`yEmsM8`Uk&?gvp0r5}3<5(bnw7O5RpTTCg7Q<4Y&jEs2{Q4xvGq?f`q3tT}Li zZ}rbO_xf#ERN!Dpg9ln(qrco6cQQ64uuN&u>CSlnU~5BTg3Q7lcOxha8+(GnC|cvL zz2GReo;Vm+*!iIg&Fs=WGwHy+9*`K$1sMq;8@thar3|ZvTfB_M!K*j91SMT@8h$J; z(=RTg*)kX=!*gx9a)t94(%Ex}fW@fsQnk613(`X$3gQTeGH^$U=ig!;JH%C8lw8jG zHLjUw`49~vblF`5jRwNMw_CccQV{e3~KjyXuaFUiCo8Fsvy|*1el%D#`+$(G>8CgK|F>j6p$>z^}#5ux$}pp)@C$@qS0%x zf;>0vQj722pEp>#>^L=jf8iYFgd;>BICBUaRH#y-4Y&zGnD)Au(@O?YV@{ncwS@owV|b5QVoh7ygB z-PSZUu2*XGh3s%JRb1*K{f&2&fBKuqQnrT<4z|jEBSo<5fLB=XF7d2BK}5>(HfD=J;WK|2_lKEU z$vt$$>X=heRZL?Hk=GhVd09;4ibwR9Sz_J|r>Sb7b)AM#lV<<*0cwvLqXE8 z63sYXAcT7?`1X&9h%av9uzrgq*V*(C%r(}lfg>Sy4|T1W0JQ7PqKF{I)y?|)9Nj}V zQ~N6RaQjufCOY0Ztp#)J*`RQ>1+%|JDe#o~0WTw)0c_lgCzme)CHB{br8-PCzSEc_DE z7@cTTmV6BxVT=WJgV*QJ%1F%idsw_yrkD*6vmq6{#9)Ek!AW*R9mHe%QL^e;z5+F$#lgD61mf|8*8Vg+5ZNXb@HWU zHpsfBYxvdi8cE9y;)YxJ)z%Dcy|>M3B>U6Kv$xiXZ-y9vzAKGl+)M>ou z%lS9p?aktckKEt6*+!|8+8mvw#{Z4%jKjaKmh-YQ>*W%^?|AVa7YoJVS9Zptr>mvn zO4IKYRqb^}&ei`37e2n)3bPzKiyXZM?W&tX2fdp6qDk8^jS}^EG;K!5-(-y_N&=Na zmFeNQ!eKzMU_TTN6v*b{?*}Es2+tCbpk(U7WiH0h0U*-;XxHN^@$ku!5J@}?K+*oE zMvbVkDU@o+T53|Do3MlT%OxT9j0B^%eH1O8%UX1xYL^1s)qXM>5#qWRgNpVE`clktz*= z2t^ot%yCRyGtP}B!p6D0f2!-X{3bfil#_BMb>D^6AvEX0JX1?=PmssGV>S5tWRPYL zCgTK+DMTpqR-4%`5L8m@$8QV0TxwPuv(w!ZvUC>Q>gR}L`fjoQdQ5EKWK!k8 zj{B>cjTGL%6-UB@88z8{y z4N#+lgtrI1nEmZn4MphC_FDqf#THV}(H@+glqinrm=vJs%#90!6-pM37Z;I6A<~wB zH4!)ak6tF%Qb_a1AK=uJzSrFmWT0_wA}-@NTpe(WNI_9@C?fnT*RD-d7y0r}-IQ-A zpc$q%ScN51VeB z0%U=T(;Eyx<0RvjYUHX3wF&5XZ)~iz7PJ zCR4&-#sGDXG(93~OQqL|CI?`jH7h@37lUxy0;9|09U_d00CCW0t15T+rkK$~O{qdU zLh)}XNo82nIZM060}0ars7t$>KlCyr7? z_Q*nc7(;VS$#W&KL( z;X}|+Mg^HzbjZn#_@G8$7U$F0!CVbsh)6U&42fTb9@+nfb~vpobf2l`)xKv2{Y2o6 zEJ+-=00eha#s6mIMuC9~G@ymMWvZhNp?<2@Y)t>zI(h?hp=37mZL5*(qifiE+^{b{ z3~oDMcnIlZZ4WoaM;jJVA#$69VQHl81q{p&ha&lpT1NbT)G}P_1d3I|DBuf3-B#;{ z2hQ|9@O81bigc2dflIFHO{;pKmeCVb;k&3V6i8voS4`F$HU*PkXPMb9Y(RvuLjNL3 zCK&KBq>lmmtg8Js|C1-bqt(7nWb=8rW!iC_1n&zLi5;RtA%gUDn3wFehyzu0iai`d zyFDswstrB#6J8r`6GI9wB^$W3SyApa{gISFFTprtE&k7vGfGi z7MlI;D8A=SLFzo1raX-O|8RAVL81iPmTud&ZQHhu)3$Bfwr$(CdD`8lZJV#}jhTpf z^Q$8NRYX@gHF#-xQz@g(lnzf1WxOI1?&fvwI7uSagj_E?IdQI0EHVt~I2Nku$6e}-aCH>ddGi)k;`iIzTHHUvC-e>HC}p} zF@}eDjDFax0NcEEy0~>;O-?~~+3P*g#BuqIbT8(=&xuYyp;V#M%fq8%&)W5slkMPu z5y3*sT&os_bqe~wI(SmQ!Xj#vie|lV=7R+ZlTZJA9b=4Ng&S3wr|`D7F#ysRktGJn z&Z@l&u!PFpCKg6RcyXxkup=q_2rl(CM;HI{WsF%=h1e)%ZYNK0{^F3{Ab*xEPM{Kg zrx(n@w>g1-`^Jzgf&RsH@I&n%j`a4)a^BM32Mjf6l0rcnWh`ROQq8!uqlFteW7RKn z)(}DwrV`ESA3ev4$CE68);f{^J;`H?rhmYS!3^C40ld?;8lph3;NtBsZab zIf*UE2yQ|La+2%d;hgw(WTYR=km2vs3b4o7reL#aQ1%hw#@TH8x!NnGUDSzwOT83Hpjh;olwI9ku%O!Ueri}k>nGT0kHN!W ziPWXSvWbtGNb|#+dipTh7mgdKdn~cJd7p7hVzsqXsSUNl+yS*s$Cd$2VvQwI4y%6^ zM*UBZYyk$0HwUCJI!T(JLIzXfEw4Jo#o+ zOmd2k!ur|63bRFbn$1EEB7$(DwQ!{70%0sJgy6uS@!^|SMy%?UxRJyfTfu5FO4T+Dqn74i%^ zIk{F0PSJ@&Sg)KZjg>|E(-6-}>YYk|>H0W(y}iDlqtXs1jT>F(fUV0WjZr~4XG!`b zr$O@{I#zjp8{n6^F+}Dmr%*AMu>Izu^*cVYSx<$Hvmr7n!j zg~*)R(Q7qMVms-ULFFs9TX>xkEF<)iPIn-s#%;fpW@`3P!qHcqdEnn zTx!fikPv5N;-F~9$=ztK-J<>;D$~xJk)6@er_|&eo%)2HVcbP$M=H%dROtcwL!qT5 zfb(fA!$duNS{hbykVLeLr*R}9&d@?!%!>mLOPi0(bHDG@S@N$BtsIBUOAnq}Zix<} zGBo$RZ+;c!p0PHx$D*%&1pRjHD{U~V)8hka%@Kt?gVWgq@vZ_MX9smy>t)=}>(?RN zVJCWaM8mez)k7qLY+=bNyAIFjhP@0e@n**%^>uE*qMP$qMAFs@7*UK0ynNA+1Ve>Z zurvK8)D8x;kS2LE*HZcSD0H`;Zxi)8y^tg?8bKCr~h(^eU*NIJTlF<>jc(y`$F@A_FI}Ur+QGwS!wz{ng89Htv~kkiuk7fI~`8K zb5x2~%ZT#I=z{O}-;9VakF+LLWXi`9rd+95UtW8`o!K@0r-9M^lU@;!VIpo~3aS40 zy-|Vs4xlN8gU=OBZZ?Z|0zK}1fhb55e5kayhHsRVfNR;2R7Z&tWbp83?9{*eSr%=d zqYM1{n&6&ZiHZN9>)-vft?jB*pS!iI0wzDAbL= zsJ&~ym#jWn`0wt%pR0w(m)#%JpDxVLxjOi7?_2iYSzvH*&o6yn_cQ2!(am-rg8F>2 zQqE|D=H{TA@D;Q`*Hm4b5{=s4_}wnqm&D#rP_}O9tv3Q z4vM5hArhYRe9IaZyHb*gfja0Lqhrm)J&wdnW;pY&-&)sqaF|{Avy+m>!16eAqhqxw za8O5r7iO;|-25I@r&`+V#f|hxlWcMXX}l|yOZHZN5JfWrN!p-sXCG%)1MhF3tcUgG zElbS`ho6dGa@bRhkq3U}3T%Blpb&Sg>kG0XGBsj0_-p6aw?KFsW}gu_88B zPKf)BP`4Z5&Pvn&v&fSPZ$m~Nx(Co}`?LH1ou2>qNc|ZW+7In;!5ctWTpZLsS!${*Pp6cCT3_7V`Mf^53=qWY$ zzHfWkOZT`B-V(RbMd4pqKiCxKgG0QM#CasCS$|mNG`v)@f2uOV})(;yTTpp}_qf&!Qd<7#|b0mFl0wBnG1H+-dws=t{C z(zcYml!o$%PQh%!MMV~)9psbhV3RxEozSeC(Rx-8ts>a60ShR0&jw6%T5ur%ja*6sqz70HhqKmFGs9FQgxI`v^b_83Y+`dynVo= zS;9W_nTOKaZG&W?PBTpT>!lU(%gobfR7I3=bTe9U$m1*iN#<~z1&ge_AzzZBK#ActC+oqkVoPP=Uin;C=(umfG6Gm$6 zp}h4mYYJ?Jc5?V0?tbs7?*%uErvz=*D?zZiE7kBJNoCDd{OoG(r@6tSYb`ls=t1LW zv>XU(<^<*a{p4w5eTv_{Yob0eDLl7F*vfnZ&*x7iwlni)$GiP8$GX}RL#>EO8<40zyF@u=oeDPj3Lh!$>p-ERRoiy>FO+-W_w zrd>~vF;Qlk71l>XnpH`f)fr^b%b;o)$tUX`b&Rufx^n7m<~p;;Q(y_PTbpSYlq-<@ zHKjHh2UYs>_}abQ9d{0QLmE4VezF>&U(>9BkIHYs-*a)WquZdtI-!LQQ^zk_eHI)z!Krj8z*B zwpyf~!q)duGbECFg!S8(B2DwSWG2rwI}9$R;Vf{3>H7%o9%?l|3iAFX;!|1sgps!> zW#WUAxxUMSSk9#3om1G%H(|FHyXl~`uA(Yz@%8h7u{_51pG7dML-`E35!MBsEgttL-)S^mI8X?Xk>2(x$g+fW9eGvYeAqK6K z=XES)ZDrY7#v0Ir$@#J(xp;UgCM~5vYYmU3d%5mTvRT1^$dbF0E-68Sq1HpE(MW`w z16VnBL|>GCki zb;L}x5*>jhhrnR$k7|#l|GrFpH*H@OFl`>dI>PF$j{%_+i1k$7Qmqg(;Ct6I6q5Xp zN!-)70rt}^NHgH$Q|RI*1lUm)WG))Fei=gkw|Df9ozuoNHzyB(1#brA+E z+rNc93k}QMxKDkfHBLuzWYLs9D=0#@M9enVq5&mY(amgIS7c#|ozM1T*YcbkqU{N5 z2#ks0J^S8xb(CF?)KdgEig*gB5|{8It#}$>4ws9QnMSsl!KGl@&WB7zaCWCi0rGsG z&$B+8vCs71$R9Fx$QfJ0(Ye`6%L%p$ zcG-Fx1W)4YwSnmPI>KvYQT!#-?sSBDV|@q<7gW<)LFj7T zBu$LXwLzal8@maLMVcU5FJpe>!&vmnVo1(Dj(Qu4`B6T4WXC>Z%m|Ny5hZGs_v`v` zCN#j45T6qar>S|TB=mh=1Or>iUdB6w`;^j9mN{gK2P!b@yT#`@-oA7Wr8xB3iGkS@ z+P{JljFxN6e;6RfSM?aBiNan&9QzobIQi#1v8<{o!Y21AqqnxeMG1B{XWrcqOUnp3*6o2O<9XDClRh} z>N8<6BIBrPn=)lFCgTq`^jV29B9AEe3O6UL#2ip=uFj8G|KW@<_vZbDu}7I}FX%Q6 zFLE!1IA9&Z8F6d-><+EAt2XF$Wf`Z}Rr8TLn3PeC_$=pjnPxprBv7+w-vgRrS){^R8)NsWYM$OS1ZOB+4^dNu%PBRRZ$c>I z6ni(c{}Oj=g)Ua-%4l@^Uq2^4l-WkC?On3x9#%<@wTdBu`ri+XFrp)t*su8WdXon?#hXkV_B@ANhyeuzXhMF!SlW3X^?15C_i zb{E9H?hK2W_URFRbG&q>DX9SX7jJoWG93y}GPMN6!Xk;_Kn{8k*s&!RL1yK%l*eJ~EKPisIJATVZGny@$^`EIsz19H(w&EWsX zVqnfwoTWl1_gG?i-(!amSFB@Mekv*;t}hW#d+I}GNsWnSbRcxd8D$3kG<&rw-D~C? z-Xn>+L|9{2e+>3e&`gmsqac4SVCYsK@}(m&^Pon8%1DK-g@N25F${!l79e-i#Ak5W z1OipAk)+3kU;_8hQcV!awiASKg9=N~(tZ8PxH!nGE7_=D351?NQ?QNf}yqcsuN?5dRIV{)!{c= zqH3!R2-Wx-io=AV+KZOU+Ta8?F<`@QZQ`1xYCSyexj0TL%h=du!pDagg1RXL0@_b% z8i`6dhe3jw1lq@JjP0zTNsO;XhxN>~-aEyo+dY^6uZKsg&wl4md#p|jvjxodjO~L5 znFLWIDD`DA*t7l;@O|Uty8r6cDsl_4QTVDFYwj~VLpG!+kmDpo{ynjz)rl@Je{M6_ zLc;1Y0ug@!NN{x}b5ND1Ki#&nu~8&h+xsq`!4MtTX8mcDa0%?`qhtsHn8w@0HNMX^ zDDyd<#RO*)T*AOf4KxZ_s0dgd9ukGjvPfvyZP#RGGiq{=eQQOliIHtzf0VDU!^^tJ z&&$X_CbD@t-mI3UzEy2L*+O3dQn--+Q}MqYK=T)@6*ebhwQKU~W`H}Ic(xjHfckag ziqx60uyod;d|eWfXo>t2+R%*yLnxJ?P7fe5gpFain4a|17bW>v>AQ%&LjUG?>jF;Q z0VRhp8en8=iv~xE-*#SdRixd(Z7;Kn3@8MKJoZ70%Ce?-zQ3579q~bP&++HjYWBz zn5?*+Q1rdQs@odya;yV7Zp@1>a*x?<80HPQY`l@9IPBS<6`&lO{c+YmB^>1fw9^!-@j0(8*GBd+cE>9Pu|_pv6?!P-YD zGgQW9tz}qZuNJ$PaXwO{?^=kb0ClD=fXychNo4LoGHRCrVPjSa)m8oz-{fswva61Um`B7cF4anI-5ExqT9he6YTttjc4CV* zL=jSUs6wdr1<4r3ToM&q(L!D9<#!pP*P(GZ*d{w_zy^o5ao8o#I{LXFeJ-t;)deT4 z@%8y5LA!LZloT{9qg2YTDMQ0^dK1;3_ilZs?;Y%ia*OL+Rm(Cro?T#LHn=uTlEtCX zHs*V}Ap=e8NEPz}N#yeVS&^0|n%v*=UyvA12Kl66&0?Y|lxf5*f4(@Ml);R`$ZBDH za|V2mncx*W%g_p`NK{%X2gbx(q&ZAvM3)M+Ae7utk^-6ur;u?As4Lw}h6{7Vfe_x5 zqV4CTtHupJktsw!p$r66$8tV5?qK7CEoTwU z2b(?t3=P#gE;3N*(*N8~!N}Iyhn$yPA%nul*%o4$3)#n{M$Uo8Yr=eNOF>gk6oYjY zO*-W+*0{3)8l zMe~5eBvW~r2-wmJ3GRhN8%QU+Z%NV1`NN`buVb>wf_8zT(PW7d?Qqc>A=mN>E_Rs~ zBUvFbE<>HgU`{NRn7jb9geN#vs7S~{ZM7vtAY- zG->BM0Osk9%kBT|#`{Cc^SS?8d|9v0K0V3)_8>4{&$qH1J{=|jQ@Se5W&=>#bqM_C zPbmD>+K6Ar>cc{&LsCWO7}+x?+T*F=A9insXtAcc1fbJUd*j{nuUiek#yINldqKfT zkgP-r1CS`(eUuOdVni&RXl@P+hF>`6C064F=>U)F>*_q&CC7E{9Oy=VPE_$Iuz(38 z>1G(XPnv9)bM(VO+t`YXTJm68*b?Yn$A1p-yU#bffJQBnp1!_3hfGBXaAA006{zMl zju6i7XA18fOEFV)^MQ+V0rT3w8$}jE3>@~Iks_H()}R}jota`KDnvOOoS~^`B5o1_ z4P1?cJE}F{)xd!=b16u}C+Hiwl8-5V5e16yx4aI7&yyc!|?u{&%vFVthHP&pLn}kIWhFk; z-Mla-VL;~Ef{DS*F300q3XiQ2GTMmk?u29jajJikp{_4tZXewma8+Z;gXc8AYpBeF zPC?Z)Ta>c9mAZw2hc>{>Hl0UBLm6k{fCZW0lu<6chX$)pv6)o$Y*F@!VgZ7g#z7Mb zl9wQW<$KfM`WFr`UW#VM9xspYAU{Bat+Dhc@ggZooFL@{-A4$wqtP{~=Xc!$x$fmw z`2#riyfX0=LY}|P*V0MymmFRD05=j1x>Tq=tWB-hXV6ltbr(+KY z&EZfZ5(1S+Yr0ZZ4!lgC;)JqyC=@Sp`xG#bP5mD8I){0`-YciRi?Vo!co>!Q-|$uW zKRYBkbh}V46XxAqt(qL047g7*vhHXP5K?gYw3OP2o%$J#i8w_O9VkUWB{dSJwzAWt zsX>8|)7kngp+N5}e{fBO1p88U=oE%6F~|&Mp!ed{LSNd{Zb!E5i|!~Z*SckD(>;kM z^sKpjNm=1A0#5^}#A@mKLP0oXVul(z5;NadGEtI4Ql0t*#xxX7E@5pdO(Pg-%aP1M z%jb*-m}$T&mj@-Y*Q&4*XQz$$IQ5T{m zxXj8~3?EsRoBGH9g`s{Y(ikKliT*s{DtlxFLs|S|`KRP8Rt}wPyEj{;s*oflz=>RZ z!ZR1NFaQA<4_dzpMka@VOwVdT_PD}xQYvXoZ!bwpET*S~FiW6`MWtJ=^(TzBPEnXT z-v4u?mtez-6ek2ydexcg1IukCY!j1*ntK?j=HvRdFBmF^kH zmi7s{S2=|sZYrjSnI&#nveBGo6PVBpk#|4e6v6!_=d8@-dpe;tS+j0VFR-VDZ5%1roZDMiI$oCC-~( zbJKzNoSpFp$r2VyS)I98txfenkoK2HBqFt(bTo^_)ET5TLlgp(egBP32{_Q`p*5L)nF~vhEuX z#sFrYywVMdO94iJmeSe7?c&bRUo@N7QTZMu=mg9|U^QqD8&R1?fue5_Tmm@@+7jp$^mu4prCv;NINrG4Cerm7>(-jl zo~{ZpEkKGW6C@>v#3WPkAiWuLOCA(;>)}e zqDFp{DrYZ;TMls>;%G}ug$-WVj(;cuEPLsE#kWa{Pbg)8y75o5wnsRT`0Db9{U zIYY%nFQck;rT9)NGqZ`(;>haUuiP5jW|FZ8W4)y>X}^n!?cQpi=D!oJv~CG`91bkM zAfjl6r%P?Y{dkbv>o?OFqSZ?>m-lrMwQB=iohslLu)4W}rm(_{Hh96@oWx*O+cRD0 z2|mTaYP-Zc0>xD>kmdm~u4m!El_V9#AMdxtiJ6uvK}vo9hJf{ ztG%E2>AR>!9|pIYxi`W$X^mgMpIM5d)_F#dGks+yA~G5^7kUe=jnPXYE|`v5Sc?`t zc~yiQtJOeSi8)-DPq|!OUUIuqN4py3kFWI-$6ZRk7=MF^{#J?m zvC58n0NjEHQ=_J16HL<@LE1tTmrlyh!QCuZarC%+PP^>QpG+gAH7~=6W>twNlv`a> zvd_|N8ICGZ@jh7w+=4B5oQuZ`Eui)C++U@dwrCeu_7f)O_wKvRRSz;+*Gd2lRMb<{W@1$4{?k$=I~t6bXi6pc<1z^ zJv?~x(wCF@^U?Bkx;OW+JJY?3|M`xPdBSD<{k>@svetCt=W~0q;RdcP^iWTb=<>Gy z(TUjCeM6x5(z~xXc}Wc%P>RplInvd6S3v!Q(q*F&fbD{qMVFX)tHg%%og+9Y-pAp( zbF$c(kAMF0Z@o~zcLVHzO)h_aYp_+4k+cg2q`$?c*E)E=8Gu1V#Clzw*50Hc!oSLE zpIXhvDu;?63amzXoPv^gJv_!;&Z2d^Ownlwgq8et2aX z&({h02b<83@nAEtkhV<(+qY$FXsJ!ToDX!SNl(>^7IYb%+)T^pE@7L18sFrP`@tvP8xEcI1E;vpf0)3UF|h*fsL&Za=hZ@5VLd};w?yBs;= zU|sE~GDmS#K^s-00Usy|&mDEad}2pnw;C^^vY|wIiRD}5XZmr|@r@+weR~}@OrZk0x)8@4iPQBB zK;%9Tqr-qYVdPM9vPm7(Nd1%iIe4qSBeW}LAV{T+r!%EjtB0_7?aEl@ZkhRkc#{Vt zN&>ceXct_B!sm%kK3GEUPNZQ!QIsZ1%@5H85o-%z=PCQwKV7U3sroq^^0}3~Kzj(j z@C(mq$H`A?Ed(TH_mtFXRY7=7!Z=7&IL!hC=gmL7O$f;j0}NjOLXG0PKK>UL*Y#Tm z!@4RK`0eZLPQ99d+Qm7k^J{Q+C$&UOt>eq~`IaKxPa(S*Nn5Es;0Mf1ysNvgvlM$A zvHRP9Sw_+3T+xW2o=Gf{8vIK*J!5Wf&u$vWK_9?JkBF}9{erTCeiGH0u;;dH6#m5m zhu+wZvB|wZM2PGxoF$Q#$$k$W9JiZ&EUpMB#x@~tnQ)KxKrhTO3=Q|WXq2M?ktD8T z5s3ZuOJVz1wQq?#e#@}pCR$jTuLaM(3zY)mVIJ2O&MDkaP=N<#OF@~VD6RR-y0%#Bi7WN`y zl2`&yf!lLt+AzHoOuyaIPT)mT71e7vKiICd_>NOq%XUXq8+;4)NO?GCog4*=v|~(6 zdDZokn}j=r41whUn%Vw~N+GaRmx1`Ipjiv1DfE6m{HJ2ghybz^cr{pzxeB57z?I;2 zNtAx#i>@<35|=><1aPGPi1xPCG8X{Wr=cL_2b=X03xVm)51Ske|9||S4``BBr~<2f z^>3-0{T{$87XcJwWIHSNvUw1XeB}%?21(x6aU?yG!!cqEoW%E>9q1!9S2hmts@i)r zm3%13JP!fyU7qu!8t>&>1PnQETKF$$^&f(lBW6kJ%?c*Iis4y;Ro+*sLMFWL2KCjQ z7sf0zqC765Tb6m`pRpz~QsuM5|9+-7N;`5DGdB#YpY9}@zOwI&Y1W<^^&Ke_@qUz* zdxt-PAQa3LA(dh=OVtt~^9x1%j#{<6yS`bYAaks8EF}vr3TTSL8`|sEhwIUuC1wvX z)w9XUXbPz9B0?C-jlLA}B@;FO=%RV+e-U{B*L)mPW@>RDGWM z3*G;>1)vr_s1?|5S!jsx3*A9}Sf?TSQuqnubsG>x$}r@QT!>j*2oWJD2VN*{ij)l< zj67yB*4GkFci1XbLV9);+*)fO`#yQ&H{X1QmPLikuuPwzN0`_q^>tV_F4}4gW9r#P z4FJ(ua^b?F^Jl*u0ls<2g}?>3%GG%QEg9}TkHH~)n>Fje?36X1S;D(AZOxME_u%46 zA%S20&r2Dd2<9TUeJBCwIP$OqSP_d9CR3ABHoz2rg*hj&Sv-CQQ)UL2slsLLcO!W% zCe-|2XeaWBb~_QP__lqiJduog$N{|Y6>WAJTSZI8WBSQ-N)Iz|gCrGj|cL8s?jY0@89L>{Cw*g1PdjuKws z^p@27UxiqfA40w>J`CuIx~o7-glk3Gizo(F>^B_yAU3t>n{Tjd)WxA)D;5MX#s96b zSgZ*Q&VSxV_G;t<#Gm>ZOGak-l}qj*0dNF=MXa) zj3%->8FE?|$az_7kHM)BMDmDCyaD+=mmDC{- zV$_OiE$aYsIRxm7kAP|C^_#ASEcRgzkG4z=^T|A&F_povg$k`nPq9h*^h(!gB@(U* z5i-b$bE3itqyV65CKNF%ZL{G~e_KR0h>J!Y7}R8F;nT&terz6v9eXQ6K<7$#14c}q07!7@P7Fi}Z2J2L0+HS7id zknhR26elf0o8Q{Bg~gy@zXT*<+x!Srrx-gQAOl_>?~_{>%(xsTIYyEZ5-FOl;T%btt2GD+CakC5rU|@&+l@-`up?#3{Pqqm0WupSch- z=JLhwcB3ScHy<`c-U|4VXjWpt5RlK$RcZjh*KWq)d)i~^QOrOrpaeEpM^^Un0Nbe_ zJM^Jt=pitE>You{xfQaro_W{j_+O0t1a)kDE)u@U)J6_oVDX=+!z4 zlSG;rY5c&MII#Hk95K573F)D)fT--2VCWMM#2Vl)Y!fuml-$(Wu73^DL%|sB^f5NN zPNRVW>rv+N?gdiPYM5TeT4;>w81gFP3jzwi>D{E!c%?~Jwr4weCe`!jMz#rQI=$+V zj~c4RfljwXLR>W&^5r!Jn&gV9vde5UD;qT~l4E04kI*kwO`pZ27Sj<3ETmRm>@GZQ zblDyq%g+J%tKWk5Nv11me8`4^zD1x8vaD9XZeRhFV?Qzm-Y?s^yGG`{*!@fC#ZL$1 z8xZ@LE8~xtPLa>$Xl4kZO(u{}cvHbOu=Y6K(Zp(-(vmJGnS;y2<-6)rI3bhdFHDr> zk^?(Ge!01_6S+C8czelsd*OV`Izc}S)M5Ev`EmDUTnSSGURaV$vJ};tSy4X>MKo#^ z!t<97KnRv7h7q{C+BY&6x|0uS0-C?UF*&1 z{P@;a+Y_tgRImV7wL;DhP{z&wBOp^Lrj$yvi`7w6XuTr$v9bt_$PG;=h)m~6OtNm3 zn8150#}ToiQp}DN1Ig7aVOz-U?S0J=RYf(1eU0`m90=D704{~tYnPuM9wuGcFxQzS zqEAL;(}x-c>*s0G9QEFH|I+S-ngYi^%PU5}yrK4Z;!!`}W^PVZvLW4a z^f~~aO<)~JQ-oQ$XSHGK`@?C72r7n7G}9^}OTwpG4b`jnCtGF$v6*u67HVK&H3WVp zSeB$k%ku8e(6*D2P0(Jd`<~#K)nDV+P)f^bT&yacE)QN0(3gixp<&rD>-gLzL{vX5s!+id7=b)|JUrx}sU4c@m4ykMsFHY?)Q^ed&UB(G2f@M&g6(C$z|jN%(|;f|VyWNO zi#kNp>GAP+J#=ABVg%Y?+G(=UwCK(1xr=NKM*#-gA{?Nyp=C8RE6iUi-`Wh#< zj+daZdJB@hdMn2WV8o=AR9Irl>fXD?B zd#amsVkr=}|5LIQ3~m($6+?%!d*nzkES!kJb)SIx!T=SJChKGuA(mdaK8PfVHHDqN)T zl#WYVyRq~;8%a$LNTUWP2os@k;N_w@(I>%0+C!3e!ih1NKa~!W3*kDRKGEnoQTz+f z%L8{wSc*M{S6dqJ0(lUQM_=AX_ZyuM1ii;Kw|VE4IRb~rN|Zj-JKpAJ-|(f1vK zv-y$PxpqA10I&}PQ?0fUHvZ&0>vaY+yJIy(NNFbWTx#f&-`?a-hDy?nd8!j#_sC zv&qy5lh|4|wSoanx@SAMh&yU~to#M9IWAdTrHd|20QgQ@u#=D~0zJ1{6*ar);r0@l z+TUYtHe~vfW8}5$D~gXYw7!$R4m9i_tw%U;?8FM8QAB=@sO^Ln#wm|ss`Qp3*7*hhmI&Kg^c7D!*n%om;SgrcVM z@1eiXavy(sd{CT|$+!4v2UmJR6pOU`a0_D7NcK@l2QWXwpc|n#ovoW)oEwz{$6EYI z(e}#OEv)C>`#pHW)k1qZa)f~4DLm^0Prz`N`Jag+ip4CbJIckHhxulZ)X3k zyomAJ zAmUqp?pv!zoo)mvkPP@yVRUdf1-B8|jIf%HCkW%^7C)L%j=!P*Z7rBRc!Y^i)3Y5~ zrdKF~TSF9t)0Y)XhDg-<+^o8X5a7#ElvSh=yk8FaymC)Rc0F_H7CuIAd%o( zgi$%fW!$_o=aP#~z^vpxp##}2vh>7G7Z>16Z@@duhrbeR4i+2#OGp-8qVj8o^Hx_s z;nVJoW5A}KgVEMwtT>JK^pGRMbd_E0#q*MKD(!fd6@6hEdmAztP-xBk#=B5L@LYy% z-6tLh5E1BKM*+pKUKo?j-1QIYHswRzBXudF3=$egP4Ie@>!yOp0+;W~^=*6s)@G?a zM%%f&mA8rYt_Mx5A4@{~QY|^?k*MMXEV#C zyJ}{Fv_|l8g0elukal|p7c|Mh&3va(GF9TgcMqrvme6-JB`IT^4Z^P~X$nGMwj%3> zKGd~VeMN}M^wXnT4Wxi5(H+w>3o{quF=r5J|JoI3@(dp4j9uK|%<-CA)vb4$o1e}4 z*B%K)Lub%D0}PS`v}$M;+E>F>?+>G}BehYKzWpeKWLFT3(wG3W%<^rNcCaUMcmbdo z(A$>4YtfZasFxX+JNUj;C3vp{dCJhyOgMBxJf>T=Rsh*;GJ+_os%hLnh|3yOUSl=0 zHx^19HWEbTa^W>k)0Dk}bA2(BqhcE|3pN94mPeF7vRnu}?ATnONJ+T3e_XbGc*jM1 zI_b}pzLI4cUM$eku$w}HKhk?oPYf8n4dEYJv!rr$n!Qt>!+Gmm(g8Z?G0P5t6(S`$ zMS3jP(X9{yUR5)fk}Xox<{=VL3forON%YKQbgZzpU1*;u(!8Y{Cw98GugwkE5@W_G zjCO8QdDZXR{mNLu?t6~)oBMpz2@G*NUZC5#_#1nJ5TeZVJ?1IH!0iaFttp6-vP(!!VT>3{C& zMUI0L(?xl7{SbHFZ|b=E38x?YL28 zWIklwN*GZ=mQqP%MMs5zSQElg(>`O!8?g~W_8A%1_D-85q#%TctL+1X)fe5%RMg@O z>5iE{ZAgUaV3=Er9yY(ZlHTfxb;KctzM>6ll{Zb4m#ytqkh9V`@=qQ09T55l&p>&E zfk>9qS}zexyNQ|M!?moBQ=!p!R=W$*9j_2k0aQ$6Xm?a4Z#fH0 zv|rf?(##z@gUG`L<_}(v{w2k>2p z*|mi%>;7;widJfELJG~5y9sZ%n;OczMMBpj@SQYGWO5+!ces|8A~U)#@m zNs-^69C#}PoaH*PZVB9>j7H?cK5b~8F1Eva$BqsKYU+84f-uSWU)U}|j+?;!%&yjK zFN(FHXWvWQF+BZoaCAR^c+(MC44J3NTMEZjUGdFR+qAWDCQY>w+766d+dmPZ0rwo> zvrNtE;ppilaG1T(tR4S{Ui}+_-al(T#s^u4$uG;vfX-(X&lf$iOlfkI;4%eOS-D^E zxsWRX@C65Ppp3%NHNz{yIfq)e+z{KHSg%pUyoZX!I9|8I<>*F-k9KQu4wi6hH9Epk zhsPbk308cOP{dSC0gU`K6{(vHBpQ|-Ix_5g(md)0tjs)b?8b#qU4dxJT` zh-0CZYv`eFzllpf-ZlCdj>X3EFMs8h`2PT;KwH174*OeNp@aeA#mvhBAO_%%FBFMo zR2WUG+|n}spudV)z~K%^#pvRpy*+pnKaD#MVVBBhOoB@pE`aMe(Ban zMGKZv_|G?H-7fp=kmbV_F+!VW2(7~MR1rC!)Z*n1?)y+m+%u>Sr9Cj0L1uEYx&)Us zgSR;>WjVNj-23t=ouP28ab@=~-7qsV0U2r@yo-VQ2tJ!>CHU;i-M6WmZ{kg@b@?Hn z%hAm@y7{`FJ-hiT9PiRP^VYq20c%z@E<2~+4RhkS751G!&pPu$_-I~_t#~n;y};;- zQhzA)eEJ8%L?k=G|I6nCj4@XlWTMh8RP|q`ZoJ_43uqK$JYanN{CNPic7R83Hj`+A z2wy4dcz7kdC>}%67AtXoS0v#nxAns<{%4tWeCN(I#)?-T@RRB=!4X|DQD z7#S`C#r&SDkW%*q>L@I~4mgVh!Gs6Uu=+Q_gI|TI^;Sl6ie;g*LR-RXk9OelJCsa+ z@K@x~R|i22WmIdHi`V4;9{%v#U#3TYIz0UT<@8^F{O#cnGx(3+9R2C&7x$0f9vvMX ze*e|GFF#zK|HzMi`Cb(19scW=!|&PokAaOG9sTLoLBp#_V_fK|%%`~YuL0C9pb@t~ zo7|U@2bEZ-PJ-UUQ6D1yx&b{G={Gb&2*SQ*&CNG7x z8lk7tiPXng!})127af#Y=O*FeO0)!>(t^#*p@>Q1k5^6hfrEAK?s15F&m1q)BMOUP z1WgpiGVloMQGjj=XCUZIeW+ALFO(Uf6!q`R0b*&98$7?RbZ<=`?vRgGDnJ9VBd}7noP(>q0=Mo^&<9;c!IS!Jbnw%DF$-a%!v@`-=Ic`^mQQaB9uK-W z&r&klP#)@Mg)TI0YhLI}N7R^M6^pta*G7F^6L&GK_qMf*58hy7xo5PDEb0oc!Ny~E zc#a^!V(P1%mKFeV!{!)Lg5Q8z-Jt}bi7H{5RZ2l;Sco-esl4wj%J+@3{!-pSN$F87 zsxZ5!-F4j9uGPX7iI;+= zJo32UxxD9!OY7o+{<@|}$)$&SMt{?3LU~FK6=USw9d}z826cqFt!~lPY&Fo!0-@Pl zZu5(?s#bjKaEUtyD&pp$9`zi^=K0AS3w78!15CuS4AN+A@8t4ARjmoO92WKfe@LXb zt-^5m8{FEaVLAdzv)%K!pb4^@&MBQYP0u^(`KFGW*@MwB$rE49%80RGLO16F?)mx*yKc`~ z*%(DEGsX&&9jZx)>Tq8ksShm85~_C=-|=0=L|<{`8rnfcJf(>_zn9;h+Uzd8^}+F5 zAIb`Nt_rM?5gRW&U`ySw7znf-Ri7zGJ_syaZU%Ju?dgQ@8JoF(`DPri(ef5!?p>xw zw?kUSGg~0NV*jqT``3RnlY;^|(|@ZJa`@w44O{DR{Qh<2i)tV@@DcN`zh27tI%Clc zmrDJ$CtJfjOz3<$gTm(bG~qGcAQ*Gb{@uAtY#~NVGb5^*09G!#Q8tN7;)JHL3?Qt@ z;k;TsaVt=+-NYZ|1w}nRi=kPp(%G%~;H6s& z+BS2SA}Zx7*jT9PYec4``_N*H5t=EiCrPk~DMj-oR^{W`1x6Q&&5Hyi$LvWR^{rRxb%BL=SGC* z8aCy|h%U~<);&OHVV#tYEwg+)*+s;5$~29srn`>Xen))~FB?7s3t9=Qu~LCkHDt!C zx$BqTp7!>E)zQrw0$`FhXVJQKVLvgtohFHVun=XgHzbrSCUFsDbuI~QpT8>Dlx)Pr zT`&5FGU-36M`Jh2uTVzL@Dq+Tv@I?{Z#QSKR7ZF zuG~&qGfLw`dfUZwprmDMhI#jGt-VO|D3PYN{3g|o_%+WmqU5p{Auy1gm1ofF7v`jQ)-JCY3HIRSK&lYV(nV9)n)mH} zhTX95oK5UREODXEDhC3sQRLPP$0$vL-XwFxj|9xb5eatNPx>Nk*_UWiCfS+Eij*9RW~%cd!Tt75+q9ib%1J)<=rMIB~=9)@uC_} zz{MsaTXjB%l?7T8<&L}vrh&dX)2qle1IGISBSF9|o-;;xYSa-5wQlDgUcosjyY?tlzxxi{ z+Le~jOqnF|K@t5Rz3HcPb6Eg`Nxj2B=4)FvB-ZR@g*Hyi{d-_ZV*a;_LI&lVG|r9R z3e0@x${Fx%KFeX8%Pg}d`SfVBxk21Te$N!d>bN`_vo*I&u$*e}2wM0_U|XvL2{Dx6 zGf)TW*=Y38HgBwZ$Nn{Nd|cojySo>-X#l8nM7~kD6`rd5Jft8E7yTDj$qnrIB*_+) zo~!zz&-bjaOKnW2xm4=C`(($%8+FN1mmGD;%JZq}lBA?6`@Wm+t5Q#$o~^CV@OcyR zUTW)W2Vs=9+Se!$y$8CS38pO)k~0xsxqiRQjgVutiprgG7ujJnReI49IaBHShu>c) z>uffEhfG&e1MQxXYa1=J()l_(P0TdqeW+a3$1#x)EsSfgOoIGVn>Kv9)xOLUWg=rG zfVLXuUB0l5BkW>Mu2>}RS&rL({xPG%sJd?`Pt4}KLr_}jp)y(B?Obu^_?v7u(;VS2 zA=RcWj7E%>c3=IH`eAyy)f{cR2EU1_QdRmakZz=8b8 z4n@DOdl1B6LV@pYPU=B9QUC>0A@x-h?Cy7ySkg8WG?9h>VLmN-iLYtczN|gtA zpvmenxT74ry15pflE7e8U#8q z|5*vepw|(RBn%>_b`sr(7Q~a@u!Q_nuzX46y|08FsK!GvS|bcXlAH7T@58SE!u0va zEN2LMw~=DI+DIM86qX|RZ24uZ8b2`3yZTEYpe8;i@6W>T?l!93Ag$)a9+IXR;|lt} z05S04+};gI?$~l-^CfJJZ~O9qVPL{hS-;IR*N@#@e>PJggG$X+pSH4dxQRT|lZWfQ+=kEuxeb5cVUxMRx~%Hrcmp%y%I1+?J~4?Ph0d<$6= zu0ynUUWf^KFSYrfbI1&X19v8wdM`En@+d2h6MD>bw_yp^I%afRMCbv;0K2{}u-Wes zSL8wvncF4X;Aq=!u|wxeEn{w)dbIl@^V+uTtaIBjSm5w4;2nbSE|+PAMK7slw}J6x z<&(1f762ZjpdxbRGm!AxS#EaxHnDMRW~=EdBUgXh9fRj&-2v(1E#wA1j-t20o^DDS zDsw}YpVG{bh5s;|9d6HmLg`{PBPT?0ahtH(->fgS(#(LaA=JSfse76*%n_!-7f+P) zHMwqLYZ)6(>rJ5tcWiku8D!0`5}ShyaZp0<)(D0dcp$Fn0RDE+ED8=2@%E`dY#Xp` z-CCy!MZfaCoTID#G*ythuDnzF?`{70lX&(3!X_w3aL^^j=KBh!xM!2)E_?7ON;Rau zGJbuFb^aDSymC(7lttmdyJdu0i?Jl6CR{{GVV%3sJo*p!v#J{%;__2>E?wli_m_og z(oJd25UTCt5rbEF!0ZEQMhHir!tQju5YSieEA!SQ^V+`5qq^GghTr6joGz#kEU6&7 zqVcMA%v5U{EimeV5ArJmK+qaWh*R?Lf{8(NFhMW6~bpYLUiT z>B-JEJT&Io_hpqWOC(_7kgb|yjqi51-d^;QT%_LS$i=3 z8|pKpH(Zn$Y~}VCB5kgnQ|=Yhh|>eP)>1Es;%Sj+Dwr%(cWv6o+=YIIn6Qs{5w^wg zEL*DcPRJlB!4!j;XPHVDAA3gX5v#VlqArW=7K(KO_YsEz z)ekK9bfu#|O}74_xomXIGA3ducl4$_s<RQMoR)l@j zd3UkONT#WwdcM6mp<>xtuq{X#cpO0@{&WQiwd+#ks#<@%T%y{~k64r($+f+Bs+Par z*?2>N@G|S76w;lgzxGPcNe?U(t{Msp<7~QD#m=56E%M?vGVWUrk_mE=jUJ7pllXU)AVqp7Mm| z$+A|cwrs<2Dc2czre7YALzzRb5fvn14*193?j?%eN6+Sn?bfoL#k&+Ju(b*gtfA?j zmAruq!!Ty#8%xqHuf!cU3*g>(E~_4NvG=CkujuJp>*8eH*YM0%y4z0BuZ7@A+*o+x z`if<8Ymo_?S+NLnZGMo7Ly1GG2}Sx86$v%U4BCC$_v7sR^6LEbPgI}9?uh8o~{Q$a2S*JWK?3|da4u))QqRcoid<=UdOVkhR$ zuC>-|Jf#diBeVBSy5SA0Y^Dh9Lw#F{g{rg&QH$XozK#?eG8#p zOvIVwqB{X{2=(#}x)bMqsMO)H5IU80)H0Kayd7Sjb-*h93W3+BblP3>Cs51Mi`^+$ zdf`^9ToSKb=$;_-XS6DhDx$6}6{_%XC0zlcvc^uv@|0r?^1fx)y{-PXVynNK?SgH4 zJ@8(tYslYa$F&IEc-Kyy=4LsY`VtUxo-lw9_DsJ*f?FGQRzGJt#IKX(s`alF3q2YQ zLUnePp7NE!tU-(3VhM-b!UbkIzvl_Ng&Kui+^P~Y$7b2LHVsAYS;=C&1L2+dSEc$d zT#)x)e}LMb;F#W<71Io)NQNc0XDn}m{Qy+dO$7;MdX|FgTUXdVcrtp^9sf5`$Y0b3AEt|G;^rIyf0 zjZ_M9aeaDy@tpl7Z5$FNvlF>CTF~sI(2Fy!09P+uBw72il5K%CKV3Z_ZkDiZ?!*L5@NX0+cGXLxaL&L ze3$NoTBF`RQYbA`Jo;dagf}2~p;v@hYp{f&24w`6;zAe|fJSU3s(AwCz_4HL-s$Y| z->h8_iUA~ld|j&oyjED>8GFjI=35)Z_)p<9hyNs2%$YdV|6R}om#A-v!-iB_;+>t8 z`o`IL_+7%#7P$3=LNtGzoX)9GW_!Xl&KK4J`hpzlDC_hK?mRChDMVF}z&U)t-FoZu zV!DR3WA7mx?44PrY;%75s?)oKzmd0G>6xuH4nJ^ZDy}$m;+mkQO-@;1U&>3@Ath;rW z!H!$s$=-by+k5rIia$?~_iwHTy7KmAR~7TNm3b1AY6U{FrnQ;{gQ`|N_|kh@4e~5q zQf66jsh*89YS+u%FDd0i@;!U=tMW=ZsJWF$19QWl3}<4>m&yKA&g51`<*A+Grfeu{ zDxtS6L2Yc*7J7GONGh(pT0&gA4Z6A7pJiH5RneFC*}0pm0XL}p34g&V9^06xO#{0$ zX!!;x$_-+sC>uyxneq!TK&Bi2UA+;16qysg5 zSf>=1@Wv_T!X;g%BHswccY7}vlw7q;SPJLYs=KwexWgkfz>^{VWbuFmJoBBJDLsI`_B?!mvs*;Z>7>( z+ckVnxA5_A-`-g1CyXwEmtp`_avxZujM=-ACQ&fURc_n9>5LoA#%fE9hv+#dv!iU% zmUCw$HUGHb8ViD9te>tL2n^lyPFzDw4B@aX1&RWK$Vk(~m2b3#;$OaeiN@EL|MD;Y zLZGTh%p#tyzX)&r_gAmFyZb*U@7~(tstR$tuvgfVYQt(m{@3-_@5_3A^}oVV@XOL8 zE8AEUf-T?S zLfP@kn-%M5Fu<)@>+{mLirav2Hx>Fq6De+C*LwUwvKsxwVjm8)%z9i%;k7G}R=uME zMcC^hTkg9W`VYO4g?3RL`1jss5x@d~gK&j&dhvk6=eq(wm$XC@4{*-?91g8I+<8msm~&vi_#zy*qbY%5=o(LAr}v9 z4j4=;d35HQvDkd3-1q`}YM4bCvt)>jS_U!}|e&8U{~Y*_BFk)PhF~SIXbM z>vqpCeQ5EBY8_^#3%g}3&t-1r!IUB#)-=aJ>d)#oYX$<^m# z4i~yPak(naJH7x_eFt^1UqN&A*_+_G`h*IitIuW?FZ&$dtIsx$h|!P| zMxEZ*)n{<&qG5%L!V9EtcAhs2)5GVfg7xqjcxarAx4~k%Pd#ds%aW-Hr-6$mb7Dv- zNYM`N+!jzBFzr4&Wc}^H)45H_A!l(rxx5&t*H*r4(QGSke6qUj1*)voil%4fv;y)b z%O{xOZ>}}04egELXQfvpn6|F~6{8We0_vI`$J+(!)ZMaoZ(SoIPfSsj$-k6=av~t};&b4L;ZpiXf5jh`PxRTV|SO@og zxPt4?#zi6LZYoR7^yt&5^`+MBGM_QKQRWFSo=$CS^G&`u6 zCE2>*pL-tD6tSrZV&Vm#x>;dR=c5T?G(q$~pO6WnA}=^LRI@J(H&9e_MVvvROb4EU zac`L9V673(6e07vo!jXBLxcw$=geCf3q7CyfiMxt7(gar-1)#k8mYI`XsfoF)FC2* z)nZViXs?I)4VmCZyvoHryxCR)9Z1egDb*u}*k$ziLRJJVBQp}7a$9`e&^@LG=mzFF z#0F+jR!nSTvy`PWUrv03=8v@=>>EcQwnjysGoh1ZMSy(-`PDB;XkpUoQ@{5m)+rc! zyreQ%%9?w)Yc(m27Uowb?#VsP)v(LCg$Nq+d#+?>4oK5O#q#Sx=bd13-bU2A{`Cfv zT-nHL%bw9JEDN0#+A^TQTWK$z!`Sf`ZsN6y!A%-1b7U26f5&{nnF5Um#U;PvMA8*)U8m>X?!pBL8kQ3W;? zF^kJT*xRhlglFW0i-11N}+U z)yEdj2YDM>HsV*ZB)QZsX3bUHUK!ShN|)yIzz$K$(fJYpc4W09oFSiA|DlLXVuz^s zhnGebi}3mdTecL@9E;>6Mzk~>qrHpY{hlmjk*ir1fb13g7P@;PE+aiONf=d{yn0De zE(*iTgPN&``=9@Q!0iba^utB`&2CIptk1Bhjg{@KSqxzZu|n30q;EOOP-+Jzw>{9B zaQQe;+6|T?0$=PGgL@nLsgO5I9R`$Q->oC0{BQf?8k%J5xHmwV3=tu2jTXKu-~wpO zDWA?99Ysv3KCjkUSq?oloo3)#!`_l5*gi*GX^666I6N4Z{nTQ!5XV5wLPCy6{Y-U>)Nb5rMJ7Qh+`V_ z%0Ju~{3)O``G%L^R}1+t)pA-WHs$?lK+kI2u_eTZ?Pxu0b2Uv*OR&en??$$``r_;x z)n^5&$jiq}N5>J%7RR>rPhnkCDY%yT&WiT9_K+7wGD$4flbn-NmM#1XPrNvfTZ|`@ za%WXSOk4Gv48QbWdz@hMp5-}@nIb`SwrbJf$rEqOSmfzbD)O{*O}9q2;g>;Vo5m^cNx^*%ggcVpH2=@8?pZ9DXKK%EL>Hu70>$ zsU&nVm%bfh8>-Z|o%7qmDC<^&hznCJ7g@nITg(AT;|1 zqWJqn84RdpL%$qiQmK67IG7_$*LEe~Z&WE6 zajJVXP#^4EvPTjFTibqiAQ**D3}vncuIzT$zCpXMd4&se;nrsB$>6!#Wy!R%#r2wL z&VPtrHt$Ju>0@@kaXorCG8WM+PlMZWUsuf{=kMJgXJyIOzk4p+{zlh)`&FsV)YQd!Tz^U$M#%rWO#npf2pD)-MVcp)vG49zx@37 zzaLAKJYk8FUdPKIwCe{=%)<`P zTnWm#-c_dcfFS0utm@&B-j9(%{UmwQPnRvdw;bum$c)}|KJ>6G=piW)Vd)UVFUTIV zo43qq-dQH|F7lUyNm*DfMt_EKK&Hmdk}tv%W(TIpmI<&ug56-${ULVnU794y78}hl z4yMTggTGJ}C~qwd8Qg0mVyB)uAwttzRgPOrdFBnQZmn#xaP5ZOT9ZeGX&~G8DvUjt+W)3zR z|Avv2=ef+StEM^)j5IO&Bg;{%!Z?BMJA2KvJtc6;v?Nqu4wm_E7lH~?bcF1NE$BU$ zMNh`SHIml@`x&s$r7XN{xlm?Oe#O-KzH~PKzWflB;aEDO+mwCeO0Tbv+Y$#gzh_zT zUS)>Ae%qO0SI@4ieo>bh@2}xcn@Wrp2m;esNlK#y7uzIp?@MYNCC0FjfP_cOi?iWj z0r;KcCCY~cnBU14RP{Iq-cdns(fV+Befh<^BXd~5LUM7|;6?T<2|IYdePZXz5)5Ls zYhUhR8FrAn>Nr|osicOy+{;x=4|MQ5;2-6vNB}=2_i22$-9-AG{^h7Qqp@8*Okpn? z{?OTGo3W_nBc-V>R>))>eP2@%(?kk(4X;}Bjs@et0r;gDnz6AR*I81CJ8~{G%d?!X zgqOiT!5nlWsmiv+RmxvU&4s zy}h-S2TiXTjqc1ulMscnq?PeQIq77 z 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

jjgzepwHY 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 z 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

UkvE^|9)I%!EqfqLM2 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

l@kkWs9j_(^#=ns`QW_Z+ec7eccZ%Y6B~~; z87ZF6%NC`9Uzg+k3g7<*H@EQaHa>)2+3|9p0A)_+S-( zigZ8%o_X29_2SHmwJw8BSv(^Vh(=bC?a`%y^x|yeyD3ZkAj=_TNSdE41>xA=mh)d* zLGWo^ziYUDOP$`@uHnaY3!nb>JsKqaOp?T4b3y6)D2T8MZz|d+liK4UyBrw$)DMgLt52N=`1@q8Fm_ zIuH^2DtZpe?5Kyd?c5p3%|C9r#)e=R>!(8lfuWn;iED_7Aslw3NKrr#nP{51_Kmht z{PX9}(fIoOU;p)A33L@nS;F(x7vZgcdGVrqy8nCf=Cy6Es<3Vs&I)G|4y;Dxe_wz7 zw(jTG{1s5agQZ7Swy}QZ!h|MGs^l|&+EaQpI zpg{w-E8v5noG_2)8J(k>?Ttvr?--dX=owuXFfN%g;(tPgnHeXlu|%=XQ{SxzHln*~ z)9GdJtZS-Z+jqE7cD(WiVjTlUxHTJdUiwk-7_i(;KwoGk#SBiZ#}6dK=qHx?aG*ue z<3ft>U4gXf4UK5R-VE7t-!-cL&|6t)7uA8k_YR8%ETC`@La6tPVVyY!l)≫yJR5 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≥6hYve7>XO@u;UDy!ph?$2eo*z6R}c%dg(s&{=;rvz+^Ln2fMn@eqT zvYaCb%-!e=5%|z}vKCk#MwLu3@?Hr*Fu^c?NvAIyOEFSSjs&}$lER;5ir5* zlYdV(SPf_7E!F%d^#Mg8RLDH!I`<%BLmIx1ePlMM1fEzV*vg?3>#3s*#FDOww&0}} zS#A7b$4Ndth;yWQE2n5V5>27PsJYS8)N3U1Vtkp{XH(;&o3@eFX#yU!I@LO5;n6H6 z%}B;^9)w(fNdZMOmQYh&l&&PDKbV-UNE*nSd{_m|(!w|W8|pk?%>#Gn4W9U#$Qgxq z!!k+MNH~JqVAmXa=8TJSsrZ5(W2$o{fDvgO+Ydp}K3LT^g;+6i?aYUj*zl6H~^wa#2yc_$RYVqVJUuu=mm)I>KDo_Vu4C z=0?YvFbP}~z=kE4(hJ2MFYB@gC)Kn5d5l^n?kj3F!S9py*;5=foSYiclP1d%vsP8s5ZA^>g*R2anwiBcF1^A#ls ziV_?qHx}kDj6-zKksigEy|qQHehOku6FAPZo5O0c_yG(b?Kr^-&DmC&0}6^pZwEX` z=s)=t!&-|x`_)AGD030twze)YhY6A4snon>(LRfd_TvkI?|@m7J9(j(Uc~%|E&2=x z9zuoEZ5RPU(CQOOp@#`^0TgjFD*-3KT=vzjp zSoJ9GQA16(JYed2Hb#(1V@g~tZD4!A%li+LklJOmyx`^%>AMhJAlYgQrqisw!aSuK zvhyU|u@Y3*w#Im-V{oh|6WkR7Yb`l{MxzwB$T`yILtm5?V%3`e2e$n{@ZHo#0;_Ux93p6kB^ z$s*CN*v>>$?&W-r4Y90BdtefS0B8KIYEqyq9ZT;@>Tc_43U`q_+i(tji*ZH8I>!hQ zveB#)i;1X9N)W6VSxR#_m$=BG7f=@VH`54#o1rV$hjJwttX;6qG&KJ7&w9h7j4&_N zWvqmW%4p=gy@q|H0J$fD@ObpU71N#U)}zNoY}f)!LCy7jfx^)F)x&9Mu~^XnQ7v*s zVz9XZ4bMa9$EFFm&SDjLeZ?oPSsE9Q!3j{J1~|B%vC&GYxbix z@5{6;f9}Z>9zLv>AvQW4{tjZf`|o10=DgJ33te#?&Ry76;s23_k+Zuaz?(luzT9;F zW5bBKdLs*l)({yVaw+RO5KUuT*B=7I*b%oEiq5$CD(ITVA&zc`A4cT5FH|Aw3Tr=` zb3KmL)xMY9TM%Lj{Znn{%Fg3Q1bS4w2-H+>^uB``6uL6$Ujw~WOj_=hA@BtUp~ys; zi#t@J%|-w(MW7(fFA^u^Xg{(Ho;aG}@%lP>yvxnUk7*idz#brWxR&wfmnMEyuuG3< zM;2-Dc+t556dr5e-Ux*x;Y*VN6(Lv=5I|v-ixJ!jn;d72ffvX2$=VDSK>1=x?S)go z++v{=aXvL4Kbj5#8q86cy8_sR&gKpAQ#mxiy#)hNr3LC^He^ma7SPPjoA`tc?!d#z z54>`*=l63}252bn##s?uD9Qf+hhKk&;H{Z5B)GS|GNc&Fe6~IXl0Pc{vUPV7CE2;> zSrV?jk0#t75%ZHNa~As>YG{EzFTSWkdjwlMHBT#3wbq{js_T@%oi+DWFJe{U!L`MK zHI@<3s-)M~QXS^sX;D0kgj`{k?`bLvy%inJzedG8(H-+M^o}FsF4(e8Falw%(VRB1 zG-dwTM+3f56%c0<1&qT^LNjN1a&?hI zMI3!QCN_~fBAey&^}7~yxRrvc#&&89;v_M#<9`FR2Y(f4kmByIJ^%>DB!`xK$9Zl? zn?7+FuZ#T&{hL4bnt6xyCHOu=iO$DqYbrg8hkQQ(`F2ZkugJ&5*Tfjt_#>SD7VK?x zzL5mOYNcWlf$nnHF_=9nkD8l_FnzqYa*!7t2%R}I3>lb%52g#0I}#^G&t&x6y)?%l znbgaszoP~wzKxl+3&gqjVpBpPyb}RSyV_P3BvUAJk)z?^)PJL)yL0&W{&WF0K9E^htHOK{!m4DEUc1!AlOYo{e4e zru!e|A1ZRKU+>?jQTS`sH;!Uq*A4|R4d>AVZE`#h(?c)EbnfQP!@}t(@0siP zSXQxnicLZzEW^P}JTa_&eYcV8nwWr(=83s){_AM?!}ZrV+h{@aIqFxa4WC- zu$C9}sg@P-mKW@ymKBH=1(}AKGSVl$!i>eAD9iaW(r8P?O{NM7M7tPE#aGOwq8>Bl z#B(yQjhfeM1XErSx7{?CsO)X%oP+{Juxtx}6b-RRqJL}4zyT7` zJXi+P=O;w|92e`Eh!@s_oY?i#u4$B*_0xnlG)9J<9>asr4D~+J)^>isSvBs+f77jx zy|mTspQ!LFBg2oMpztfA<+U&uR>SQ0|9SlTeyid(iZcHtiqhcaHy85#pL#ikwO57| zOSUgv5vyvvGW(xPb>zb1QHb#dnsYE3W=E@=5iO^CiB>UrQ(LMN0bHJdy0dzp5}mJw zd9oJdM3hp)do* zQ1j9|N<^1sP?Y7y9v7Fb{#Zj0MU2H^rvKHpSR+w4O%|$=g*p<>m zQL94uZDv`i7lf7fT#hMJs%RvsQCTP-)!DiMaJINTK&J&lhmUp;swBPS3Qz3xf<7-?hY(VJoiW#kL z$oC=gmn0q}aTGKJ+;EzyFb*db+(wH35XPb4(vgT!g`s>-(z4rXA_SAJ4o`>Xe7-A} z*;KhtDlMN9yq9}AeCAx5$ZHtv34n5LqT64eOw;Var<`CgB}pVZ%um?+y(%${4Zw@W zHtki;gyFWF1QNMAeyt%A)2SP5yMG7GPv^tw0KP@9conK;lGEX|Q0vM$25GxXhfNrY zfA!{53@A9rL)1?=Ec*P=Ir1p-{!H#@_7!q*a}gf6DbURQ8%t>{TFsVj$q#r`Yz711 zcwB1*##Fl1j|MB68s5wr)dT%aGFC`T3oFAcQWXi6ELoTX!5_+<1fmKQjg48`1s!awzP|QTD4N39R~VS$Hxp|v zNrK{Rw4r<_^z174!e^lIDi*WowY59K&1KD+81fM|?K29*-ukVL!iP@PM$>Nvl=&NF zDJSoy3W3TAESaG~O-K}(@wJNy$?)0@>_Mrx@!k89|N5MtPd;a$dV+uaA<9u78lq(M z00TBLs`Rpdxy0{Nuu-z`-bMXK9V3|dHMKjdGzOF$ z!~PpaQ{fFponqhWZX2{r+;I8pbdaIeQd779@MvIrrzF#X3JFP4?tZQaHZB->6C&z3 zyF&y~M{BUmQ(4OAZ4-Zz8va5`nEzDF6C+Z^D-J=ZB>=;mMHwsC->>;Lg_My1^x*pF zad(34t(}^T%0x<61>D3FR~8u_4SpYJ)ug17aDiGv=NjZKh5P-Tgm_M792!Rz=S`WH z-Z2=Jo$88Vklv8&o|R~EJ;>y}McH-YU{{wu>1VZ22zDj2G?O21#~{qp&aZNfHY9li zJ0hl0=eDKqCPq>PXwJ$zN|lN?IeF*aT&NNQj8L$*R>~-qu$I+B9ZMi_t9!$q$e+nB z5n1Ho^wDRNGNtpou^oCf!dIB;(TyuE8y}eA_50R-*@A?zPJ&%P__QB-kgOk=$-USK zsAw;^Vbzm7d%tDN{TXlCW?8hu%vZb@(am%kqe+hA7Ca`L7z|Rac$~LKIR!2$M&JF_ zdtj+ZI&8<4vYAoP>^orf2YeF9i4!!ATli-(Rov`aXN7M5(P+9srL0`uyxd!f&b}!nxpLM0NR{d{ZiJPjz!tZq5U+&G!)j|>$t)$c zhC^laIK6CF2(U_&97?8$8A<`;aPMB#P$#BBpsRpUM#>$MKrb!=aWJ%TB7qWYa4t|Z zVIAfO5a=hJ8DAkFbQx>WD#s9p@=nz8-uR)G2<M)jP`i@sL>;nSuZp}6^w1S+JT*&5!% zPa7RMZsaz}!qQ0FiyM?54o&hXAnQ*O2AR*NLXsILqBx0blR&X%7zTU+rQ5n{vSll}4DmK_Y2(C`gV#v1gU$y(*ks+Qv!%?6z1To{}W3Q}6Nk zPkVrF60`|DgRRnYfvBD3%=W-?3CAPpxJ<$qja72nbYB%YEer7t(*xlsn_2T8@ZjM; zU3SfuetPDvy^c9iEze4AqS@>>O}iJ|vJVB;p1#=VyeBk5vT;>Pi_7t|;|~xhdWk5* zotURxkMZs1ZTAv09>l4 zPxbp0Z@DXaI)D5Ks6%BF=qU&^kuFh@2`h~y$`+CLNTh0?*cwr%-m)ZEn5yd)eP7OA zbYL!>>iXqv?KEl&4B~+^*=~U_Z`OI* z!rgSr_448WonkpXg__2GTMUUuBjjOx19Z%$daq%fHz2P^GM2c(+z02Wqt0CK>jfVz zIXxY*MLb4FX;Ox5*gTuvyz3$&r@ij-9(!QEenh%g_21_}ryEl&7wqBY)wO5o{D{tS zaL5W;H4f=>Q?=b9u=S^$|n^IJks+(*T6#M)rMut__Z?mTuirKEoZl1Qcm*zkw6n&bU1qo}2r zKjl*(uxzHjGg9%b$KIf(HhV&>C2J(g$Vm|s5+Jf%i?sd$%0;BjM`3s_7c4lSgTeqP!N&Nb6rIL zRtGCT?QZ}uY_~QKV9K5LCk`gh3j4r&wV`Hu-_{{ezrVlq9}P9qy^^t^F| z{z$v@`OMQ_{ZrpG=wGmNd+G~`US9i?s93a$Q|3QLe{|gcnWPfzaf?lb$ z5Qi6y=%|i~F%sm5B9j*73X+TaV~N13T0^SEBG^(!JljRXjC5Z+0tN~Xy0Zad(0WT0 zO~E?tE3BIF{lpYb58Vx67+;4yu;<0fX359yiHIZQ6x%!~ox;GoV$62a{A61$Vm$GF0prwsW*247dZUIYr>_!nvc$#rnPu;@^4d z-)?q(4VlmGRzSWPiSPE%@vl$Rv}YjNl#b#lT2`jt6DAOco3e2?qb?UMe1;v_#||D~ z!w9m2VASD$*8Ow64KUf=e{1^16qxzloMOXwN&-LsO!l!$` zhbh9^hCOcKH?|07_3CO)v$zX&Dz&jMAeg@x5F&3BnKz8We^r=PZbowMO`?AD7+;3* zQRaY!)4xy`e^Xm^rj*3IWzpo2EDf&4FoiuNB@;eR8}z*mo%%eHkO@wUmc2JVyIrMZ z=l@=`I|-33L~d9?aa39PqT2arj4bAEwMip-jD~;lJ)T{uUT3xS937za)C$ZFkhVzU z&Kkc|jVR7SplyA*V@?%=b6O_qIa4N@VWv#sVxYXihb3)^*61 zbC+P}H7wP0fl2okCOab4bMl+yW>>e_LF|QO*=pqism}JHgu?R9WltEs{J;eT$9UP}lKHK~6=GJnh@UdSEPy9?+bcA1`s1Qst~>bBt+MXLA%*P-1Gx z5B)2&2fcl@RH5+9bV-vrFfy~eSIc%*YkZfr3o$#4E!1uGES1RVm&i#4)_Q==s(>lO6vx}Ge=WFlucPE4&7boZM zk%?BlP3;_?nb_}l9o_2d+uB}S-;wE_SnI>nQ~2IX40)q=kD8K#tbG_=Bo);wFBCWV zoxbg~RJ-T~bAg>RNoDoV1yezG-5oVFTm4Wy;FcE*r<9VKMvLrIoNg{$T>hvK2Ygm|7eyh`8N;FQLGt62XjnuBE8!u z+l7p(TOHy2C+lrKpAp>7Le)BbOqPKKOGFGx#h{?gVXlSH#u@5oKK#?^_x*)Om*dy} z^Y-GW&zLL8zs~D^_xXnY3BcP~YQlBy0>9FTJXw~sg|HZnsR{G{rA)8Rw#dtF zlcv^%-4%Mcezxc#O-O#>w$RgLewfc7M#{)^r}H5*ec5tjyW68eG94LuC{SEZx_tGC zS<0Bl^dOIsRAKt%8!7gSPM*{P?ke_5S0Px zB*^ZjH^ZM1>3h2!Ph5iI1jlhR)J-)+b+N3AsjjSE7j>VBI8beux$scm+x=@zb^lD@Aa{= zB1hCMCD2!Vdhj(UJ}2`m7Y?wz%R3SjFLpWDhjL;q=1_T}Ke+cb04v>AO zz4F+(N}!w=9)#x|C)Xonrj_Tp4B&N~lSFGVx|t9xnlX;PeFuD^rRv?iJ&*L! zjaZ8EKdX2d46uOiZ;;_~t5Rxjo+%sg8T8Dmjy_6am!CI;*!!U%q5X%w#qvI#772l_ zqjdqt`eHPCuQJz7 zr0(=?fx{so>(*hn9KND$#H}!j@l<`qA&dHw5eYj=_Cs`S$|h7=y{6QI2&lJG zG?e6PmFi~J`AjLLx-?KZSX|sJEG&C9eu{d^yXV-hN8LA-H75}l22GtHH!Tbbz{P)b zNN=Z(KX_2}r9Wtx>UO7$K-21hCe;B=s{oi({mXOzugRM^Wgj~OLyh!qX7q{}fddNC z{}b-?)WtXJA9eZZgDYHwvcNHW%{UV8|5U>C7-H(^{Q_GyVKQG@A0?d}2VaRTdHFwE zdxc#fPbaRd3kh>c1HDBB#T5}23K3e}59|>X)jJ`IJ|3QjfgM-G5T7L`Dd>XrshT;H zm_hn4wN*(vULyd-X@=?5NG4^~DgVs>kv`p-NQG3&Z~lHh7UO!?KJRr$0+j{XzV>Y} z$n&Ht<*1N!YNSZhil7Z-Zf7hiPC)=_zvQf$78QbGkeRBv)RFBLQUtNnjWeYnajI1< z8s?=O8z&Ri>4Obko^PIQTsO}!`|Egn_x zT|2Rvkn@!0bD^Utl&edgduP)06TO%*|H7>1+y1|Dyy&M9ivcgj4sFo&kG3k>C+Jtu zb?wbpzZ@`hwsMTf36+B*cnin1&B(c3r1}+O=C&xX)VbaJ09aZQD#o1Io{4!qE*i4< z;^nI+?{DOU>+_j}s)V`soLR!uH_o8K!>6^^htW}JapXN4P9&D=qm0s#4_sffB(;YIqeess_btiJ< zXy<6r1+zQ=^-=l`D@JmIm$*`whTH;`^*?@K#3yJ_@T@%ZP&L+HBA zNPGUxp4kC1ez~gD^~ss(-!5Y*Qmlfhvx#6i?T1NsnDR7nfmX{+P6HZ3lfzkNOewwT z33hUnRHNo9b{zG2L2OT@IX^1Qii|j>prPR(WP*=;7^n)r@mQd)BzRDLwD(aoJf=u^)l8(|9eTDG99%kL?Dt-i7fgSVNvLU}ao5EJ={Q(!P&qbh6*V8QHf zzy@!tXFMj&+-&sTm}+? zC+7OX#la~jnv_7s^XV$CNOI4R^%0Ao(o)|*`->oy%;bROlO(f78Bb_|HKH?hER7U^ z)L^w&>(Q}v0}Ij+z!b(_*mQYN4zIt0BxR9*Pl23i zc3>+Rv6I8IbRM-k^pGgCUXEAlXDdVZnoU|YC zLFA7JE&)(6;Nt%IBLkt%NDtP`3&o_i2RdA{M%`p%y+`ouT4#*nk&>SR?3f1q>r|mK z7nP-lyT*xTZj`Hr>7m|`Rn)a;SdL05WTt+|A+>uP;(?CQG%@R>l(dgSZ(ys@!*GXi zpL`rzqROsNFoH%mR&IiZJaR76eK8E{%DZEaGnl6_kag!TAY7`zwpVrryojO;^uR}M7ySCmce9VSaWGM(o3Jja1&mdHbsjrnR~e2W(lTE{wxZ~ zu(jN2Ivb6|t&{C0^BIj~&gZ@IxJe%1YIKv)gH19kvZ=G+R~S64`dUMc}-uPhXy2bJ^EIhWv*&#Z!MDEa8EvIp1v3npKeJg zS)CNI>EJp50fT%pWYw|He_|T&Lmp_tc>eTnqU5`q*9+RA78LSimtL=y4wlm{7wnT^ zl(e552PtxN3q4inE;x3Gs(v}Nik=H$Vb&hMiTce4 zAtakp&|rJ`wm{6smxJgqnAorxseNivNU#1bk~vB}|5yhgE2n-6cA-*BZZgbki|oW_ zj{4#Co45StpYfAHIecTFO9d>o!njGn+C)ZGT1rcs_E?Wqv2g{Z6Agnv8h)u`dWHs2d^?t3raG5lVEA?I;6qQ%9YXubUNOz zDC!X90C~EvKbqI2!J~&!Of0$Kjt*VQm6vTtcvhXbm1K%JOS}5 zUjk}iKjIoR*Z4=kpb29@4fx_-GlN|;7}$CnVn(M_dQHv)>i@KYlhJ@0EN;TDDvdL4 zA0NIP8)Y<>HzWMRS7copH$Nu+lsUKtd95pZ{KEIEQkPiZ-70c*D4mR{#Bh@P0Ug%9j73P?D zEf5AD0T!2e&E*@_bj!bzK%G{R8Y$jV(7qp@6}KVD;h@{VJv0PSLHGQpPUxXdwIbOo!Z^;uVhw9zS!M1NnyHX4y}fxS!o^o^u~PELO~qqU9@m7 zU}N79({U^=I8FU~%x$x|I@X0XW0(Dc7t3qIZRY<6us~10N@(T^LYrECb z_l9kQ4k|tNVdbKJFOx0Y9MZ+R3>v}1qxB2t?S0L(ZAC zhzucbU8FG4Co+WekVs*|6B!ebgTeSR=&Tufrasc~(? ziHwiIcW^|+SZ(XN_z5h8?gmsk=l?ly;Y*SC=wqDUPhp9-EMr1=C%xPy+y`>=^V(D>tw_q`^_A-SW5b+5fZXB+TkzBts!K%YPtnGb;azUMIY`l#{ti+&;*K^(e8>;+;c#RQJ`3E^9{*Dn!4tHJYQt&T90&AGefOK z-7<3EeS1I-DUtAZ&8UxplG!ELu3uF&vn^=0;tL)k_g1R5{yF!fY%f!3pX~wZ7V$IN zrfCS>`Uj?{b3LYz*f)5z6Ymz+*D;*P5VP^QlJ9gi+X%T*EKjZYjl15Aq}@jlmE0+a zD&j;U+Hz;I8 z?$|nWu}z2)DK$75cB*VOL>ZEEH%Khd;aA4$1lyv!Y{uO6g$32DQInmqWEsy$ zzA=obJb`F#xu0Bt%@8iTkT)=xMqF0!t{EU0ypiBC^vk7JdCJOcjkGALbn4EVtcn6M zOzP~C9<{c)4t6It7`n7zMFTY{q~Ns9wrLF3DX?bLC>Z0^Lmj=+;vX2XUp6|W5?5wg z+k`Yzsn(l{&BcwudKCXKrAfe4XwmIA}3KYuYlS-knO!4t!wapUTFrf z9}Al&8K4&!x57(%�P(btS$N~ha#YzP3)M+tUIrGl?L{)X0U8(Z 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

  • Q5s>qvF+OimAB$46JcSD}dO&fX#wm6P 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 zry¨9*sMSIw| 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

    O;>sVWew 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 z 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 z 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


    i>G!#(lnp2bictZZi{~*8r!|y)&^~uSh5qF-E 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

    hWYPezISlJG=svKp!v< zbJ?%g7i>e>FK$X8{(qbJFI_Ue?Q9R`mOQQjk&yK{&IP-8aQFZ77Jq*|kA0uk=ofdX z-(njDTv;u-d;{_m?F$l>_{Mw@S=Y77^)$pwQ+ln}knVHyfATqR3;?wsf!<$MgTQZt z6TJ9GGg|!Ti5M+2;c^r`Q>f`GnzK>eyE|JOZ>N#G;#W#J$Y^1?PX z-)9}}l}a9SnCz9ya_BqkeutWHp#7OY+ZWL*5ZaQ6`)h~tdM(tZWy-}b=KCFV&Je-= z$0L^_}d?WfaZ4t6_iHS(idJ*!Pg7&)|j5OfhLu}GlYepz&mYL1;7g)-KOYlUjm`Nc`UNRQuimZE)| z))Rkjl&sWm)(_2WhSyM)W2J&(1(?KyFdY+qZxbT#jb`=B?l zwJ6J|iIFHyZbrV`$)kYvPHv2<`Vp3xQek@NofVSnBaPM)059&g5Hs}(jYazS0lbtO zs<(z1b(;4pHTP z0tH`Fe15VrI!R4${~lK;v84P;hCEBALB`?l9bx?r!Ls%y#3F7t0AkqdcOsK~J`2n) zKbt{@YDb8gcYl|cj~h>AAaL&{I^Fnl1lm&dZ3hcae{Nq$_9GOvVFv?n%l?!np$|(^ z)c?Vx!O}Htj(`F`k#`^T$n~4BD~phu6}-Bf;rFOM_L83lo2U_&ZtSktxBKNZ>Dk+vB^j+7TzC` zbk-CHg2j^4Ez@0v=u$EzEb3JGSkEo{esBVv=G^ zBMUHwCN}$KorMB=b+#a}q6KD>d2}O27>XOcQzx4k18J0alN;R~XuTL5WF-WeUXSy7I2N3+Rd*tEHxy#lmqdqE#%B!8c8IPa3HD%#8=i|ryT4v%Z4iuD2MpMsgAf*l zVb|S7n^2zBKdtWI>guFTS@BTvpgt_Lem9!=c}=NsL_hF+lo^q)kZn5DOSVESanzVW zhX^HjC`;?>GG(U_;FpZU3bj!8+N&udZ!uYbPP+!4n<{|GJs1AZRZF#|=#|;d{t$Ws z&IRB0b6LNHzD)P;>@2e6Wnrx=sK} zf_-gKw|xi{Z7J&J68S$=?Q?WaLrSqhi}{z->A+g;$H{|ppW%iO8p^SH&)@*vh%yS* zv~w~UM|f_1n5qAOpv3#LU_i~tC8b%1z^C>T#6r$9dYfI_Pt)Ugsd`!hI3+DJLa?Jv z!L{J;C3oa>;)Tzu`O&)mK1Mz%VC5P(rB?*5__te$HDJdlKGf_$Rb$b<1r|l39(A zv_}v3JVvh`Lf321rv$UsJk+kpN0Bjsh%ICzq)g0$X5D1`vNYbStYQ0#n;!RNOrq*Z zoK|%XD#V>HNZ)%XX2phkzH5i0PoKI;<Py`-J3&vnYF z*C6w4ur3cO^bekTzRb4%x9COx9#U@5-g z{qZ;m8MjMZQzc2N!=r4!Z&rkhy>y&#`_m6T)S=Z9GJX=8@oxO!XJgTKeDHoO=4aqCvW9-_OWOq`M;!Fn% zc`~zlcqz_PYO|^x7W3O-AmA<5%YC&?&Fd|Cft&2csFN5a$Qp|miSDIZU$SJ=>*PUK z%YE)0S^NozE9Zz3?YbBZ=psX`mh|YPi847>Nrio|HS-DJ!%qaU9vW59uN#dfxt-Y3 zK0eP4ymiBpXja0|Ol;0#ct-M9{ z*O~=u?3?+Z!2#0XUhKg`Z4jvJsACY4=I0h35MG04BsQl1u7rD(yn0)$dhYHLtTm7t zi#U6|ZcR`zWtRoobngrzf4|4%w@^%FP&%r>`>Ty{LZtK+g_9M=Q5S&1OTpNX(=wGA z!4oEAn8Jt2FMWX{ z8UraeFkz9PG&W)B-1zPS632dIBE)mB;KaGv%MJ&`3Ch;MNB5DJoDRkmh)seYca#O= z6d}FATMcBr5uHc1)W~0KVNNmY;6}Maj#K0aapK5f#o)`uAtAr#xiU6n(AEv~cw99% zsz&>I-v`!7iB}%^Ah@p=?>}>2``w%>sqEx#4G_<8%%Bm`-B4P} zxXU2Xk{6HovAC*S?MgvT3Rt&8RAJ0pvseZ#OtS1Y9)6hA<-im#ig=XuETE@cUNCbz zA7jjBEFquF7tQ)nctcq8tER}Pexj_v(hUlDBKK=e+8rE|%L!MUuHVihFKP>HgI&GB zT>ryk=P2}&1d07uJM#_qWlC_$RsD6h^)L=0gyh>%zo{Z|H=7MLp6TK{DXT=-qiYlO z%bbfEI49tmK$-z3ODS%r=Tw^x@a{~Zgc>ycM@afleL4eR|RH>k=7|XF(@yzD!ZFhAteo$ z32ajdMu+6HwswEy&0<=Ov3$PNY@XkY6BMEkpFmg`yNEoa_|Cz~(4yid61qdvsr(8b zwo%|x69z8^C4fO@2n12b#@(QWpEss2~HQEuj?LJQH3X#{Yq)H5g$aHkcKUfNP9HS z3)FCw0;5H>eZPqo6+f0k;3#T4F{3IotK-31MX{%BQpH&?QY_T;XN$7U!D6=o_q^nV z@q<>dwT~9dDJ8#2P(p%XSC67%jP5rfkP|qDrWY z(~OMkK|VyfRlNb}U2@?=uD=(3vw`(HCS3!8Ly(Nh+e{@8$gL+cSM8J0^gM?ob z8x!Gx?%5s3V$s+YfuhkJbr^!jsqrDftHS>q-I{u!`dOV-Z^>o4{!f-u95J<-WGvpY zVy@rcavZ7kxJOFblad|W_90_wCq|@jekveenZF3C91qtr2mH@s%xJ0k+`;+N*rk%B z3HmRTgQN?c#--_Qb(cC@Rg*^Nv{r^i;H7Sx`*cD209Sr?fGY;`H(E$UN)5}MObk{*aUEyyfoc?e@ zyr+8kp71HXb#8wTp&oM;oJ)3esOqhg+&UpKrrUTxXv*K^_di1epb(bC+#w<5TvzL6LDjCe8$D;3X*Qs1fB}HBBUyxBVxBwuVRMWQ0CxxLl>>#YDv^cvtB5e zeoTkE)+(b7>wIl&k#>E}%oE9CtSqDeMkYOHp^vDx_^DK(U8rS9GaOeVMrX3=I? zEsV(9#@QVMLA?R&R!Fya?8=)C>QaaA6@>?A)6o)%e;-9>z(Lm1@v>A(7w@Y$D|U$I zxA$2#kr0RN->e^4Pl;6NyIXfAe% zRdK~*D9FsXMpB{XQwwl1{(hXOJr>Tla96k9B>n;G^N-@6r;8^9JFCQwHV#3T*lRGw zldmz$AT}Hou~0|Wwgj#Sn`)I|A8x*zn{LV~OF+jzPI?-e*P6|Z#!1^`c*iGiY^0&s zl5i(1#G1Y}cle*T9dMo>qJj#$7lgH$kD=B0reiXH^Olq~hz^?Fi3q)eyB-PIs{30e z0pPNLue)b(F)@L5%|m0j$P2bYg!z+%j?7;<9wrCinX*?KI(J26WJIfccP7T<*8}t{ zVI*FBuWbD&(Am5koURCbwQ@C2WSN|VV@@9n_f^1MvuWoLWU?5ZBmpg{b1|8#plzaE7b z|MRUu>~=~yLzSeREM9YD^ECD!iIlTx11sXF>GIru#;#3ups~_r%rKj|sW+JAbo;c~ zq$|e}51#WM+d37NBcA)k=9s|ClGwmYV}th}tJ~Ydy-&@kBfU?6x~{vuZ^h2H0#Ns< z&s^vGKP?mg^AU*r#1j{>D3sK&ERgkV#XFYr#YhPH3*R#LhHe;{XRWOl+{s%BO8F+eakWR zLIRCnRS~3{L$n;ekfHF7_rTuCsc&P3%|&|>PW=Nyq9nclWGCdugyAi>4I?Hk;}9Rb zO)=2v?1=`TF@)1ZN|%L2gCh+s;XWc~yl2DI?7mf(H4DqH2mQX9qWwnLz;r6-C~4GzFpP5p$>iCz^<->UIU5W>A(32ljp{A z*+RRvo5pgjk52W?;4>Bb?-6oU^xUH&;+kHUZ^rie`Kk*|f1AbF+#$h!C_Q^DE^|I4 zGBpcz01hp#Lxp`pVwC6J5joRnAS ztfyfWTvE^-;iN*%rYnpc__C-85n$}P_JfOU%A(={z37;1C^t;F9X{P_fVDKX569NV8-H|t=%=i3i^YZS~g5{#lYSrSH&9`O*0 zjF=Nomqh-%R-QTa=m8wh1W+1Vwetxyef1(G8d%`R#w1fQm-1`ni7TM(mfAJgP?2gw zAC#?pArEc%2=rzS=DBQgx~2QBETe~=ME!X>#ICUL)=5GRU)?ob_U)NxCtF65J=490@2xju&7PP|JEQ4izf@m80TH23uLt55t9 zh%4q+P&K3YHhgc-ZhpmYW&T)&!7Cy2031oxtX@@$eiBAx0X}DasEaDMcDlVRy{@y) z^#40ZR;q9wi;;#QB>BGUo*KNWmo*p51JcqwYDOBGVJa;S_o6e+BeyiG$0iSR9^WW< zQWT7l)?fO1muKo3LyW8{j6tk`rqVRFxs7?2O$L@#e3!#I_qcBT#rHVHU&U(L!2C^v zXKE7N=J54MkZ6=R0%NpG5 zkNAd$GDN|B1@#L7b_GI0gh_*V^*e2!Nr@5Ak@@7zL_@$0K78LEFc7V5dK7wmg951* zt^tes(LHAxW!cBiCr!GvKSpo8@85Ga{RC@!Kuh&^54;)FL|=SrhrH=K!w39fzWm-d zKc76ksm!k(u>^EJbv@sFtt6Sknw&h+L}c zTXB%9P<(yVe>(W&FYd^e5-lK8k;2~58%OfUFL3U0L_$0!DJ-W$wHrL_6~Sf#(6X*H zRtZRuFx@b&xt2Seb0h)egB-an2fGNtJO`UAI)etaK4Uh3*kfnU5A^@*6ljm-8^$xA+Gky zgDb+ECD;F(n$##c$rdn1lgKn$Jz7(oh-TMEg*{ymV0w-qx&>XsTm4uZUvUBv#wvKe zzYXTHBQQ{hN0rq=)EwqBjQ-11RW@7Au#A-@S71`iQ zDATSMk*@&32XES#e9SM-`P|$@JfHS&YUq;J*eCc^XOn+j?%R>4{Oo0B&aBB>AxSBX z-^2eHeUAOn8yk!xHe=eA00wg`X&v+ zcSs=7vyNQlEc7NOH2p2zQWjmnTuDyOo<4a;5SR}i=u6WCp|Hzhm0pLlDhPAqVQ2%6n)4bnwt!Hc8x`SYI0ZPd;enI|mhT_OkDuBaU5 zS=J{&ha$?4I@RSwx(Y&b9xv=Q*iI8eu4;dWK}^{t#yB2kA6_Y|99P56#j?h8ei!4| zUBCNC>crg}){{!;=6CdpNx2HGJ`q0s-z+_#ntU4<%>T+8cAetn9!i_s5u0$*^Cb8H z@-^!Yq9AE!Rzc-n$x$K&49Zr1gy){6jz{YK;w3m;i?qX9vZvZsH*gL9L;czMXcj`6 z;6((MM(aszr{OlRb{R-%&!;KN#w>rccnHdsO6UUzv}t#6knTD^n~Qy)YXSMNLgrWl z&2}Hjb#uK6zO6*a@;&2?w`&d{wOZvUAt^A5YeY%)3-Y)xXA0+i#XFq`}Hb`y}NYqP_HS&|v(FE=P61OX(=Xbq4vV~eRlHK34%4J1xBSTIT+3bjAre+HC zMJo@!vw*h&6bZCADNC!aXiXU^_}Vin1~CN|;X;Cu-5EcP8!i6sMa1Aos1STJ8X;xC z#r(0%TkM~wh}M)KW1S{AgibxQ>A6U`2HU&z@Rm`;Yy3tcS*mT%$JX3{y$wgKfOm($}Ye)w5O~>fsIS%Y zjjVH0AYBBHpIACI!gBDiU#ksLozz6lJaRZcBn{xd(4;m@78)$VJSn9&C~eRJoqTS; zEA*p<#EPnS)6`L3Pevr=H0iY@l}#-oaiEwmZe%a$6mPfT6olL`}{nA zEl669M7tMKrzWGIa${XzjThiVOb-^LbKrn+1kBKQnuAf&aKGMOOr5@0HZsk~GqrmZ z=c_AoEojw0?nKyuY9Zj?5YrK zk3Gfcy(}PfG1>I&%zITw8 z2ifDnHuww4K#3JdfGaYG-M-IGgv?@6u|4---GY0xjAm&Fn|u>U8ufd%Mn{jMJ0Fzr z6vO(yjU|#Wm6=gS3-?Cy%5fsjUDa&w%%oOg)s z?2_$RtO0fbt)h)~|EZ*zSH3-^X#d81?Y(VmeXc=UHB^NzTq(3{4cqL6tpgwuu%IkA zI*oVTsy2I_@a}kW3t?Z_ux`@F9Ey<~G`73j#T5_4Q*yrzwM;mAKRUFWG)k-W5$oqaq&cRx=&OA+etm+HIqn3oEAxP22@jqE(gR)slu6i||8 z|HJBmYA(Ka?I0NV_t8(fgjR_m=`Ry-7T$V!6Cc_FaQJs6g7sv4YDy-2LN=}|t}BqC zC$)N<8Bq$MqTa=cq@sO-X#Cb@_NTwvwh;e0_LhOqjy-V6b{Y_ZlIn(DIG`Y|0l-h#ng{d!e?Z(0Ewfc?!~_9WoPyP%}?c91k$^2*z7 z=OjjkwlCAYMI&3keOTFeu_*$S;p_+ zU7RQ^v&$C4};e(IF>xO?j@FH>bVXwJ*Tc?h_bvosM40LtdIEB&ACwu(u z9`TIZh0*S764=*sL*6d8gu0!%G12aQly5_z-L`xJERkf%T>qEoF`{%FSml8>hB34h zje$n(`3??u2m>%XbrCf@GI$R}mm61CQ7)N2pRHTGny};7msXTGg(TrUMFpAT3sPB; znF5}_heFb3MCkRsKnjv8nFSH081J9?J9(W;w+`gr3!50+BCaaOnH$qb#SQE1LC)?x-WQWIe$ z$aPuHh5*P6DhYMhJgVM85^zDLaWX749(DQ!o4lhV6G8|OiY`nX9v1NDSB++!QeMS( zQusOssi2AS`%@XXJNTkZHcZUI_3A#J2`-Fc z^MLc5C*H?$f6cX1!DwyLqbLfK)~fr4Qej%t%p7@G^JhrXs1ezNGs66VJHesQT|lzf z!3ODBy#Ec-I#F~8U4GL+HG#lvu`W*`4eoo$(ITg+ndHnZP++gJaB1svYNyQwmLN_ z*pB)_GtV6%K+zI*;uWXLk|0$l`Qh<36{zBzAbb*&RpQkGsp z5E52Q!@VG?&#FvV_t)Sd>~1u3G15R+g0P_i>MX9g<4pvF7yNW|E4rW4!_PN9@V3XS z63N10(yWUPpRdGLydF?3@=nY)sC3H4a}6nPp3xpm#E{UHBG+=p+j^(`+g(Yd$Z!pAKXiWv z`csVlCs0j-CmVtNCs08_nyomy+F}LiT=rr8Zp9HOe{Dao2nqlDubdhAf+skw=1> zQ$Q0=#WO^`lBrwI6VD!AtIAUyo=Gd#cT$FrX8?4Qxwmyb!St711wYY(Emj{0N||4wuQ?BCcnWBD9M++ z4Lidw;w(@{TYTjY(U|%~V~fA?M&uCSv;pd1l39~27Ojl(GnDgP-ynsGB8GV?oz*d0 zrPFTbrH+|o?vs42kUQT>pqQY?fc~PCWn`%5Cz#6(j=0byt zSeuX;jqUg3Br!P#g0h@By;fqH%ZDl5GXIeDk9GxIOSeWL%N7`E(|9-Yv|9Z@ z?(|XW965$#Q@`wo)STm#AYBQp%U|U6ZIh%^IkJvFn=Q6Z6qwQHkS0%0m-Oro_hOC3 z#4%XzEq|j&z1rSJOo2beKOl};vQ}3v5FP|d`LZ~6r&7NNgh%>ES%NV{CEqB<&;#zl ze#5cT#}+Ya1eer za5wm)3XIm;>+r8=bJSEx6{~y8Ecy>~saabT9&}C{d+Aa4e>Rcy%o>7j+tDGHe_3io zN_-~(SKsjeOY~Wjyd5)7%o1@`jEoM6#@W`n(2m)S=_JKLO(?DJu{h}{;*5$snUh<$ zxwT+koNvz01Gh0Wv^&|x;=iP!ab4$yjVob zEQthd)rXV4Vg@a5w{HDBuTBS7I5!Ua3?v^Gp@FR1pg`;*RL1DEP*&;mOPS=dID!=KTYaTaER=kyqk=eN`nhE8MZpih zg0M#Y=&F=K5iM9DWJ&~T?$%E#4a*?*wDmT@Lh#nLP9|F@i_2%x^@H|Kx}>Z)NU8N~ zaue@3NvXf8ViO6%(J+qTvWm=@g--{%*p(VVg&hrtT$LJOg-`c&tc%P*gzGVeLS3{i zr--BWI(7dv4d)hcy}2)B5k~EutfVhLC}NDD_%)T}7W}r5BV|U@(5nGJ*Mpj`YR$FTNKoGk5|-6_e%ua~Bx|aF~EXXo#-=v{fySjoJ|R zl|~8&%RpcKmS7LbC1w$@f#_UDBou7zk^t1K~H*r_cslq6ty!lOT=s$H6?m+3qXnB1&n;*GL6Lu!t8d%EYfcA%#WNZ zU_xE-hN5#G*IrW+jHzSk(D0_hT8xab%W3L$wy=>LzF{&s(${uv%mY`hJHNw&G}Zdv zH$u9fDbbK7j57%62b2w>MHs`krT~H2#HCJ%H>3Z-ErcX- zUNeo2{bwDC!N+)i7mepN8Y}#CL6xfycq*=3GiVhhN~CrgsJHuf$8d0R@(SO8p~S7z z<+9PdssM{RMq_RzfVsA3P`-CUoDJQc+tpsXzw>bVIaMa%RspfD=r#sUf8nUJ>w7wG zYPWIISnI0e2(B5W9c(MYs932FNAUDiQOs)UHw-pxPt1c6WjrIN2y$|eNzUtrHfP0B z3aWs`i&@pGeG;KtHDnnnyn=~<`{xq$*j#lxq0`%Zr(M)vgX9C_$d#&uniGW7(EfBh z51HnEm4|2f7YfZUlsNFdhCuB!Oy~PFb}pn~X>{(_NQZEygXaG4~jR`bPaX7fEZps*FAzVg@JEf&RiX%6dGF zemmNt5>Gm`Xp~U+shCI=F{8kx3ZW8r%iP&}O)w~xDtV@825Gp_mCm5iEC*!S&Sdrg zkE@E^5eN8I7mBf@<%)Rl`acz`Qca+7M2o5Ke+(v36%lnUr&k8 zIpaJEwQW>Y8r+s)+-w9!8?9O>^k^$}(AX%_@e%=BRj|jonnxUy*-D=&e(RmMwGn8} z%evxqTdgG2fpe*W^u@K&C!WVuFgVuloeOX-WJWP2jB=PGE-2vrjAuDU^BRH#==B%v zO&f;dbQ?U@nP(7Z zDY0;=23{I*T$t27MRs$kXobsTtHam?9OhoU%^l?c$gUEha#?K+adeh>6wC_ZO&!Ka zawf$>P5;7o(KSnHgRb3+a4s#{OkN^;%*{;O>s_4#d)BpC!5;SqEXm+(rZ7}~zOmAR z(s)=XSRE0pUdk7*n}toze}tSO_U1wwr9Ohx*>Y%9az7td|O>l9sL8@(kyoJaH}wq zaNr|MTex1k2m|X-w9~4sQU2)0@e=Y;d6QJP*k-`zRv?nm~Gl z*UVVvpWv%EIeD^;U26K7z9Q{EKc=57c|;n&;%Gv2rpJb! z5OXg5LZhsm5IE;UZ7MX%tz6hgVCt3VVHw_IOZA?Mw!+X;H%BAK_a%N}_IscywqeG( zRV!Pw!u|{1C9tyEkpMBev`fTUaH^%74mRM@5?`5f#Fbo|JrFjR4IY<51v`A91D3Ky7yBPLp zZY2MGkYw8ZJ3<0hRo_O%G*$L{+y5NZwtVvi5yinpKL#%aq6C@9O-Glox=VBl5vw~B z;yKnNacVTR7bOyn2)?GjETT)GaOgF1EBMv0(4qoJKlV&iCwl~#=>CA4&lD#PiW+B> zi59|>R53iIRTz}l(x|*tbN47u(tyUP<35xg{AKAu3}=(hUC$Zg@4)m)jEG6S4>$}| zGAgt8r{lw{U`cFy*@TMVhWZ$``14QWA;C4bL!dPejoqq_HH+RDM+$f0CJOy#IBg>m z)1uvBEw(dgZ1JPPOJRyUNH_{&uujW}PeCM2oGwH>F+6#%dyG$xq`xSJ@f6ki{M|sI zAaJ%AR_8IawO;@c1wU<$qj?MqtSXb8W%#elijY0qJGAu0O0#hJ;GfJC9>WBQ6mmcz zY#4t~ig>WBg_2rFtb8(^n~7?*TR%nkUe+~Wb}Y(%Xlm}^RpwW|sU*DyS_EI=a41`P z70#gkAWGj0m#(v#nl?)>Hr8I4kz;UXGIi!Lh;8cNqIQQ?y1{4XEQ|p!ZVQ}wfSLhc zl=P~%*piM(z1(V*Fu>TWKd_=K6py?zV4P5|3<0fD%s_YtQ{l)cXc)rBjZr&M|I>>r z)Bza1zt`~jdyAQNXK)5wWZ**ueSn3Cm?c94eyykla7jZn3f_)Tybz%{_yt!$a-BLPZrO|y`kd(O@@T+?QMB(IqJW``JtdJkXjbMdwTCh6J( zD7C((h+JnsrwexTe=VGDeEkuOBMt72N`gAF6E)#`fUP<9?Dro>T$CNt7m{UuHF#f}4(Y@VsM+s>eRg-e)9sOt-heI}z zhYFOdr9y0x6N1hYC&yIhN>pL3Q8%HLX{?9?5T-A`?6GZDmxTCiH1XgfP5wn%(KYsh zu4tcL>@=2M$tWSItpIxn#IJgucet={tpT{#;b2Z3`$B2is6Ei>n2OKiHqD=Q?(z3; z>1cR`pR$K~ayL96fy+BV7SSlKL-LP~bG*{>Z$x&B zmWQq(zASj_By&zctv9V4oE>}+{yJRq#8&>vSiNm>e0Jbto_pc*E&&7&yPQa_bPgBo zuubhGSEoAGE+mLDgD>$Z3ujd?vi0L8%U1B7bbd)(-Q3cw-b{2QV{^@m0YEve?W(Dq z#1P41lW8uG-KhT9_9=q)etbP<63A7%gSM{91(EsOKXj)O>=yKMUl)uKzfR@TX5UGc zjIhQ^;tM@N(Qu78e?0JU03U6G$yL2mB{S!&M%u|U4+SmG71<-fH?1#awq5J5M`mjF>p|&S(6A zs6N60XO34%*K-bonUG*9hoyrH0mx!MQ2v6Gh80Qz%oCBXwtv7pLzO%O6GD zo)?uk5q(W8ge1COXJ1n^?3YRk=~?oM|7#YImWt}_8(m>xB)e4#b9Q~os#zyC0b7;8 zHfPxD*B+D5+$t4#EZ-X0?=@1dR?NOb11bRv4#`fWnN@FvnNGk}OyKb6QXO;Psf;3; zBHB&^b(M!=1l}P75E&*0Ha$U%s{Yi^$WLFo-$azE_25)1w%n!)Di=}Y9412Mr64K* z|A61Ey~i|0ibb91s=q^$*&4}|d=!t)C{`KXE_4NT#b*V{UICH7D(@9~*tWv^!yUu} zbh0@x5Pk4P=5hu6jW*3$IkVo`S&D*GLSM;XnpgvuMYl{^CtR*p5tQyZ$V<`)w_y{E5hfnd%Jc80Ajr0-GIs9qH?Z2Z69Bn(dN z5ANs^mfBR1=Q_AW$gmcc=V_nzFYxP2bZb@k{^|)+eTrbR=#)XX^gj|IjR8M$58Qiz zmzC+^;T>7oyrd+$mzEzktXtXq6g@y+$b}b#=MvoMBEaX|uKg4>)2PxxW_-O>1f@*` zqfJ1{p$`n<8W=~oGlLNaprYo?Qez#lgq>a!HuYQvB5XT-G-}!T=T>IbH3t6$hLx98 znJTqx)bHEW&T3pFT0(e!Mx_E=dUvh;xoF)=i=qTj*5X!Mc4W?DWyQrwHA(@vA1)*^ z&Fb#E_WuEqKyJVCA*K9X^5wr15(;v#L`5qiX2#6~J8pz4ckSo7Nb`uQHM4NX;}?vE z6OlxZRSA4M3Hgf{P+ukDiMgEiLg>-E)jPx7w@&P2N~Sktit-3)phy^@kUid~?xDpZ zFu}rC<@o%ps2sTs|E`Eib(PUX!o08e_T6pPN3ans`WIknt!Q92PZdwwG?9Ae%w2%A zG=PLWts#Y3qYUb(x^tIDW}W8Iu2V1)WfAYM=Uw!ukHvWYn|*WNf%o`Q`0RP-j;bx6VP#kCZYJv=)jXjaS7;5L6f@|c0G+2kTmGeHrxU3(`vdXEt%GrCkyNxIN6#@%9;SwOby_0l??3!7 zZCMhRf4F)FtY zPS|TnmZ&BWi;TvQv!W8hSG~5FF9Ke)=AYu2o=Jng2VCUyOoTb4sT1?ENJ|CpgXUS^ zbo39@axj!yDRLtup$#mlBzeRr`QFi?bV?V*8#05o@W_}l|%i>G@YEvuA%e?0j=bn^2LyXKF>$-n=&|N4i|Dj$F7 zE-q@DH-dF>)McxyP;0z$0ag1pE96y{vwiX$e^vWAPcfUs{ z{9*U|iTUd@`_q zH9_Ci_QR7!#$34#hAo^xqPc}FlVVbKnH>Prw)wHKl zYMbj+K@y+(;O=31bpyjUrVbZ&n;MLN2^h2yAz7P!zY$9f-zA#V2kAQqe+wKba%T5G zxrzOakUyLLZA#IGS)#drmDs~K?=Mk&@)~Ei%+_%Hm&*a!J#8D{0!#=`?`yx%UNLN^ ztf6-3Mtya1su_oGQkFpGn)}|ho`}`5ZL)D#a(E8MYZ5}TdOu_FU<|g>DL}w9; zZG8t;JBIus1zifu#UeQfg$*ecuR2-3#$7e{12H?ku4?fS62M9f**%1iaz>qZP1 z#(&)(Z2O4aWt$-K@_g2tn0UljRGXJD-F)0FR+nv~oRfoR<};_>&YTZ8ev~oIlvE;X zkuK^PIMOIjuE}NbeBEVnN-o%(Wtz9(Nyt7hFmlWxS7^(GA*_mJH!Le3gG7rWkW&dm zX;QWJrklMAXs~4Opl((NM^#(W8&fp?M89V0Z58n(o7&yk4F^}LbIhXbsS-IZ;sJ={ zKQl68E0KicSfGEB>Rud=RC|tnAKmh;BglZFW&EpWBLK^ zrUrk{wZ5Yt%naZjr7VN8a(pXu5sA@3z7e;H7Q}r|;GIdaUGjUleU`_^yt|?4)ycQP z9%n2TiV=;6(W5{wl135hCYpoS_-(rV73OL0`an3nht>5^P!sU)B2DyTTgI`GVd)>Vktj&J9j{sI}jSD395II+7Q7Bff+8h_im;U0pT}413&zw?>6$ zI71ikI~8cPPS12NkP6D4XSI9G&j8FLB8P4h4(+Vu>!YIElqsSsGW_s8G2A={BJML?g}h}u3CNcZQQkV$Stc6zm2P6?LyvDcy^qo1z zYa~F{Z`gRtZNR+Q)vF#a$2#0qU`?M0)IKO7t$-%^!tF^qi^NO=n4A*%g4~Mi+SazX zg{&=b7G)iZeLVA?{JXl-T3`C8icVlS^RqtgEkO63$csxSuV|+7^gI)@UafrPQ9@JAMqQOFexEB6NkUd+$O0WQJUOhtnu|gwf&s(D9_l{GGlTn zq7M60oxjBR0&q}gK@MDw>86sB33f$^?#yi!|91U03kjWTnQBR)>Y>bofU&Tv*hIe- zw2#l^30Is(Z&*ZE&J+uNM$Pwy^3CQ=z~vafZ2+w4MD%Db#}|t&BYY;S&jX&Rq?SrV$n+DG zw@9>|?7q+0VPf47eVML`8Gt99QZ!haiXZq3!~?Bx9;khXtX&;@i$RAxjTrgeHCydt z-_KJ4&oh6ME0#N1INZfo8e1y;AVfx3PavIfh;NVx?*92eIC-76wZ)jw^)^B+f1~fwf2yZ@-!d9=- zC?{~_;j{Rr1P0@L4;I%Tk7!2ptz3xiESUY~iUJ~ga!~o6)m5{@W*C7{Rcjg4hTvDO z#V(Rd1G$}}h`B{T#jUT`2xv)1yjQ{C#r>R;KNZFOx`irU1m#23J2OXfdCV!5S6=gc zH!LH&CQS+G%J-(^|FBGG2_jFK zdYlC1RMt~k`te+yb1XB_K_)UmaLj@eYCQo+ph{z5xTb{`tcva1ginGztd~6rWqrZ= zZMCx^ow^ca&XaOsu!wGWHhFz%Sv`jrMWk%k7(AXQrWRe1pA0so^byemb>lRM;NV%M zWIQmVW;01BV#+%sk$v>uF#l7mcka%V)7awXi}je6`d;)XDZ%9ys#rnQ=-M~1jmPib zxT{@yM5he%i9T+gW@S#Mq=5a!geaIOO{5C@$ogRVJScf=5TAayXJ}xS4EfVMW0`t* zTL~>4EOgmw`*mG%%tcbo-wOrbY<2gH%K9Gm&hSVa66gU{1>Flw%I;Acb8wbmo?yKN9>dg9 zcIZK@P?d;ef>|=USr9!^b!+c5pcxGEb>J@$6p=O;XA;IVHzL@?;UQ+HWQ-w9-w_aOt|#OcTPeB(fg4$qQ)dOGqSNg@m_r z%~m`6y-{A(3%YZbn7U7E7p@?waW-M)>jwzIJ4+@P&pZn52d-(Z z^XEw*V#9sod_h1opfo`-5x*}Fwo|OyQXJF19QjM(iA;tXHisd6GwwCS#cX4tQ`>e8A-}dc%djE~>s!U6-PV zjCdP{T}XF>$g-GzxV&b!cfTmmjd^}%cXw-t zlchXalVB};nObFq+-Oni0vr@=s=DqKU9CM^%-no*OaN#FU+`JPjKJEhGR(-&EEA@% zPNmaE2Y}t6juE7%e#etH_hzSQ>vBf$5u(Ef|b&mt+(C+`&?L5`64loerY zdgjhiYPZX3OQ%g1R`dz70>^po5~a_FMU5mVtP2* zg{AG0TTl|l^coc@$AQXeq$joeVsf-cL{fXabC?@0G#0lj+C6eqA!siBdCSsktA<(A zWCc?hjwdXNI8Ii#bX6b#9hLI&-ELld1)k4- zCb7tv>BgWH)F=zX?e+rM*}S}g36F|AxmIxxMcf!vM9{da0_CzS$?2ddsFkW%_RV#a z^Q?u@}29$b=k1nW6-*5FBll`Orkzcv7pSX7BaBJ8rBk5Zqu79N>6W6d9f| zMUA>cLse03UJqXG`&n`>!n(nY%o$aA#t4+!1Wt)CD7_YvUHiwZFoAb+D%&Bhi3p2w zPwu=2zC`x@T8|ZCyA-$Nmf@}gNF1YhhE_xtM*%JW_YuL+L*hlA!tgzDT^Sv z@`V0bBqDo_Y^|O`rTAm#^bEEPqCBireJN?I1F26;VZ_&cy%&-{6mkp;6zv++ZJRGB zX_cPXN}%iNKm99gj>&Q1k{qkoV-m3&78USr0Gd=_T=%Tu`En8kqXt1G_;Ukbe(Qjx+h_!Q2AO*LU}xyehl0N}y{7R2EJPwU<*^ zoe?)NI_zD6Wkp4!kM`i5pE zEdxeEchxj+1nXkd^m^j31Cgo&OnZ57L$j_F9d0j2mM&S$G8&n2?h-4gB?c%9RCG#q z!NC58XM06JzEwu$-HGij`#+~qM;b`nT4&6CAJp799nE08j-Q?DD z0qg=JDrI-Nl-dfRjI5a3mBOng)h0}3ZIvC%bFAGtX~(VUOq$Y~Fa=6bWoQzpgi@ML zz_CUaaMm)<*!Y-h$`?h5)ony67yzgw2XUefey5q|KdklO7b0L1($sulb$_9SAt1aM zp$TsB?QGzTLFG#+Q4H41R2h|RM7dP7;?X|;W_l}6BPtaS{uGJe`m#NtZ_CmgEOA?( zwLM6njK>=;uSsSquNL(|t8uBca|kVIM3DbW%QqyZ!4l;)W1=(l-mN~OV{@<#t(c5g z=fHs4r}S1bTkuc>0>0CNj@h>Dk^KMl)4KrVpdWfn!6jMM#+7jPJsBirlJvO?KD^^>SyQ z?0lF@{ZFFia%W1;;xys`SDMXE<}54K9r%J~zVoDr#dVMNa8N<~lMR`CwA+G?qQfF_ zefdRlSI{_{6M=47`^HlY2|Cshfeth?@&k&x3rU7C)Z;PeEMR$pwxq}U**4CwG6 zhh$BfmGI(Pil>|W2&8;^Lls4~1ksZ#^S7m8n&p^55G1_P&v5uK0Riwci+3U%kYcOy zlEvqL)-yc8?@6qCBkx7hQ?2!a(U9m{y^nwXCF6?SJ)xV1@Igr(?F)7>R(1hmqE8C$ z3=%5mf*`+FU*6vVtN8ZfY|tXUy*RUL(0^hb?%MQWiq17`Y5MoYU4GeM`TSUfcgBf{ zuCa{U;TNY5z$tod`!!FT;a&BMte;-5)SWSMxuhDGk~ohPPg~VeWdo?!Fa}IFi8*w)Ulc1mavtSN~S0-X2vxQm+cqMOFVe>=F(v;qEr;8TJJrneMgSGHug*BVYbP!8WzG4X~CichF zbQx3iyaLWeB9K^>@3FyT?`@rccH2OGg?))qHJ%!_KKq7U9->qDnmF#A=al;Ice%mc zkJveGddCBnF6VwR2>Q`4FYEf#6P7N?mzM>LUfx`1nh2P-L~ZLcNg_UHs=M;LR}v7B za3uy5b?A#wHvQ?dzpy7o-c`P(BoI-=0vmMzTVY=tDi|8$ubf{07DPiM1Rmh=99*0p zzj=2$jl)lu;&!6MB$sUBEPCq^MeiBc?Gt-GDD(C+{j}aeboQgsYs~IUO*o!024q6? zBr?b-SX99;98{fo6yY(bjIsTylI!56Q@$+9VS|3r3o>j}-h_V$9!+qTwx4LLRomm*DO zbG1abNkFZJmuTH<%vJK}o9mmm$fx}O&kJLH?b(7*obMEXGvHoFSU(0O)xb8~>qNtLx%p#18hC<>qdUI-^OT*X^ zMNXa$TIlCfdzhYn9+W4JvKhX|fxXn(Q}dlMAQjeZY6VINbhh^Ey7_vLiMn|%@k;&_ zO>p!{8kPrh2M+fkZP8CdWBAAx=DQv$d34tDN$Ml+d9VE#$ot}PN;&|gn5509S1tQu z6e8fiN;4WW#j-LrLLic)x7N5I-=r+LR5ZADZS}~Pd`x`Fy;-|0Xkj#x@yIBB-td+^ zRrGlOMr(BBeMeJ2Etq|}!D$pIu0|`Scr-dOC%9%8T*kI3?FP6##AZqxHc%U$p z1Va^s3C6`j0;Uj$;TC(8ry<)X5x-_+F2Bk|o|Y*PFeZ1B zxiHXKgXJ{wc4gwfl=8wy82no>*Fv3420g|8P6||GJ@?a0{3ikd1Z-B&I|N8VZDA80 zS(-DPW7w?CnpZLTqRWaG(Exzxi$KAdhp@3OVbxabk!TO!2d$y(2td!wg! zz{@aEYBN8V{bLNcN$FyqwWm^Su3Pn7*<#65ZjORwnaK2)jI+P9-L_a$?`)aGIUFlf zo#E+M@o7#NxE(FI15TTm{SPYl(TKyvEv{ff5B6eO@B+XF;Fr%N2}O`=Nvk~4(*K~p zikSy+dxT=RXlU;Up}0+MX%-%zcgC{S1z;xamwny}NveXGy+-+$1>TIHKlCz{7v|#-5(h&Sxn*2FZI5i z_vsN{Z`!e@!YUbN7RIPRX!DGnL%r~0(-0hyt zd=-j!Zj5>B);y0rt16eR(Qn2qJ8qbLYtJ*rJRdrm)qN|TO{dS$yP}jIay6g)marrc z&gB1PyMj4pQUOm?>V>NI%h=8r?0z1dqK^m6ub(~-z}7b5(U+TXG+v0W$Qg`_x*x?c!_GAkFtp7t@%91=U+&6ok~M$ql)one2x!GMohp`3;vo zrS1vTQCNNB0gD8a2@k+w^>@4{-%L|mXc;vWi(I9-GKklJw&(WSESUx1H~7(`9j}g3 zsuatT*W~~1{`KE}ne6>>clZ0l$-n>bZ@Yh;!XKaQ{c-OX`{CdA_I7u_|N7lmSLdfc z@V#HYPxAO0KmD@%Jv;ruvy;8OKmNvRdNpp0Cu$a0?;1*I`>DJ5D;B3BquGjtMrXCM`qS2I7WbCq z7N!^SF8t<|E`xwEUM+9w&W^CUT=4f&yd zQfOV%?o11d(h)UcSj|OU_iLj?T@!mTjrF#3h^s(? zb-2XNi6&wDRQGxSvVDCb!$KXV&Hzh7Q95aK_IG@KCac;6Qw|G9fFB}}EUIa^iW}V7 zrzScHlxDl(VNN3?H_j!UT%O@ze6duMTLyYrr2i#`vQy-1uBTiAVNyhi?#soD4jyWm z(G_IiGj5JG4-=dA7`vW3>iNc∋@wEb_Q0W~JF!P@!x1fP22aLf7qCD;pz;A;wr? z(jl7ohz>U;NL{fwji}n1f5%@cD*B2kSK|(vgcBNR_&xvb#6)-Dt@rldx+*K+*($J_ zM{K?DkXvfTLO{@FR(+}*ahqV_ay_B*?@sm!pR%d_RCHr$jS>s=xwnxXZiBQ4r=~!9 zMgLvx_iw+`i-Q6=liyVeIsD;onymF0e*e~Zqw2^FbVPsp+qnoYQx;5dtK{E$qBV45 ziON<}C~SU1BOc-nf;ngG|6}iOw*Fx%Fd*F6{hgb=j&Z)b1U+%U_QdWM zB0^W5;pfTRkcQ zTdc(GK)rV(56W|ja(t0Ow^*gKTk^q6x8k&I)-FX-^Hp%LP}A42Oj$S3qK^@(DXb+) zu!Jc^%LP{DQ`4WObj1Cx?rUCSzglcMCVl=n>3Q3^dsEcDf`-CD6) zElK87%$SeCCOJ(3Lh7nq-3yogEa=p*@La>8+!@xzS=hQK=rpXO+OTD|k7v8^*v^@z zDb;k>UfXY}FXCn0XJA7Ew;Ib8I8j3uJd9nx`sS>646KfB_7D;#X#e9AZZuB~k9Eehs{J{U+(q=PE&GEr1Ln$|q*bG=T}W@g2nR}9vSx^P-$4#BJ7V>^ zw=#{hQ4TlqHioDJJuqHKfr<`a0DlJ6NTz^DcTOLoLfSXhx7IxJ*w@>EDUD%DBd!;%qk6lvE}BjTF?>Iip!UI>2I@MoWNoj~Oo zwED#v>7BOA3r2!HdOnaUOlRr5DQwOA_A%pb*tbq6b}AOQQRe|bpf-xk%yf*L_lj32t{d#u~4`8p{6! zHAAdX&xHXSQgM29i8G5I_cdJYh2_=soR{gipru}*f@aj1m5+#w?0&HGNniD%ur-bn zw!|6ItYx-&D$zR6e8p1@QJ(`6t7GH_w2A&cXCFB7ABHtQ2FgEk;eDw(wX+cVgX$ zQC9$1B$!FieT|sNq38{B!3GEo`#VBU?iR)WU0fb4Qd9d-$q*n}$7*nq8Y~Xv4Ac** zN)pDr63^n7INrE{xb61jR3~$$h?0<_RB4)Jb)jy1a1yvKYYmDTD`42-wj)rtSe<2& zQL9#(Rw6-Dt_txCOb>CgwAw>W(J& zkF-o0=*78JR6lK^3%0N8_jTYMV2kYLkPb25Y1)j0Hdy$6*36+k> zdxb~gvAT~#ijr{Aeqn{&$bnC@Vjhef%8NeUv$-#gIh~bKsdw&^9ZzpBOYUXKy(}5D zpQ|iMYOM0qck^Ay^)&I>%Ki*rHzDt&wzhU)Mro^ljRMkpq>G7Q+Gav>D&lK5?pLK@ za;#Jl+$ndFU5=(;6fKc5)uw;={e`l|X7d~(T}dNp_k`S7Z=t2ZSJTs^OjF*Ml`CwH zh}^ait|uiDIdC2}E?JrV) zySC7>e3h&)*maeL>I1D%XvgD<$ee4|o5rm>!AOEDtvq&EM%fXFZaxO2(WJE`H9XW4mN&~xs) zbxW|?F(cbzh91ZmVE5NKHv2Q;id+gJOS@$ofVLeL2Xwa7+UI87i1u7$**KP+4Q>Yp z4IDlJ>kznixkxK4dPy~#Mf#W3EobEn55b@hpZU%mv=r}gh)%2B-YrgHk z;8W7>0C({QVgsK?(A(flH$@G>+K}Yuv@mGlKMZAu+w-4Lx>!xfDN$U^GS+xzZK**w z1BM1y2Ln-++ZzPRZ-KC>&U~3{z`!ED5Oz7fDuG<1TcM z_QR*y)s29-{?x&x^L+RAvRFxaU05@?YI}dg=p7!g`beA+L(#`@Ivp=WjMe+fv^B`Q zaW2!ODK@<3cO@fdb1DSOg3PX{ylR~@)tV-A^m?Gg;DU_l7mCa!*!Pk-7e0HQ@cDW1 zFk3tA$eb4=pFT;ANejGTk;X>p$<97}YRr}I>nd9oNx;S-Sv6pd?{@dzUi6Y&=3eK> z#gvsLZvGv!9}qqzm5B0Jj=C~g)mfFKnMgRRM6+J|>ocNhIb+)NLqwI|v9c?p@NUce zJXsOF#u|Gn;E`+h71*jFmSZaWQW~SjoU7S~g`EsZ_{P$zN_0Es#}(JZv-$Shck#uL zUew>T9rdFuv-FXt-77?|nM2djQ5Q%=h<<|#Hg*d)kB>Z!-;5r3fzFy+Y zgr`hsb5~164&jULX!{F}`LUpHsLzn!aZ%@BtB=PZX>;wIaIcugJUtL=E%lrzo>!Ts zg2_sC*QR~WQ|Kp%8T)`2VcR^Obx%#&2@xc9GR0`(S%=c4$DWY-3|8y|OKe7hBCBS+ zH51Jfl&Ws8MO_!$trY7_+(%p%sQ$!qAFp)u&y%d*t}h#%vVw^e${oF~K^6C8>+QE? zdOm(d)fcW{P=lZZUR`sUrHZf*y6i4inaDghSkL!2B~&ar3${fG1JA=qq(5IqLhZT~ zxeDu#*IU&1`5B9nBf7R1Pc`D#J3C)fAiR#csF`%9>2JK!1L={4!qu9>!nm65U9l_e zcxhiy{O40p{Hbd-Pa%_LT!|6;?vk>?{%9GlKnc;VsAy46*xMP9PN;@y2e2uqIxt!J z!0Sk@N^~HQC^n61s+jK6v<56E%K9*$K? zUyfjUE=aPu7OKcWU)AUvp7V^B*`iUXw(i4FDK{8crcVyYp)6t4gbI=|m-xrt?gg^m zN1qIc?N+m0q`PD&u(yB)HnQoT*R+8PLog=fy+!GkR^o}94RCLKD!U$av7b!3Uy{?e zmc_}ct>F{f>25tizZ8OyxH0p@^))Nx)+`ftv!oH`+Wa6DhZ2WW6N>mLsWNJW8Pxl> zpU3&d)%C^M>Fve&EAo{cfrtF_gxrP&Jc3XJoAck#VPx@lheF2JP=mbQRFF%-bzK)1 zot85xtaGvH)#|BdT-z+IIEZ=ddTSl7&K?fM9(#i%qa-I+0C8t>lP^%|lC+?`s{Xy7 z4Ej3SE-}6=v6hxCKs}kfm;mv8F?r$Gu56_MyB{#Nib@muCWL(Lf=3`D?WU(X*nehjk=xu8qbUmHuQw~>PMZW7d+s^~9-GEuxdur#9$UMio z5ObfB$sbD(x#&Y3QETW&uJy)kj9{@E$F%jzM zj-__Teon{N7pLcMFD7~0xy4{FCelK3(H#Ie1bg`o9mKgGf;v1lg-)=KS{5>sv*Gnw z2kg=>G4cACj=O9AL`qqDzB>U+&)sg-TjGTa-Q$G*3GK?WvZyOtg(5s$NmqcVuCY_F zGUw=n{M5YblkNVtY^%SU?Tl@EJ@8(vYtY|S$F+z(c-K!8=N2U!`w|dSo-s%t?1_GW zf?GRwT0f^c#ILi(vi7fL3w<^kOx4*{ddgP@vkEOb!x9dqO&3^{{DEg|1~m$~n5jBv zj*YT!?HY>Qvzo+s1HxPLS5W;IF37vDZ=v=l7^a_0i)kj(0W2}3XXhx?Y17vMMXweL zl|hJzDN&0&h6V%{F(#yYJ)dkEd6JR%Y|Gt(dkYxv$rFgRxbES7^W6VtuZMr&!%{ zdfn~qTkUO2L=0DYTf)T!*PLou?$Vsl=+x^+Dy3zPpbyGOcmtdldRd5-4(l}3AdJ9P zTnZxs(1a~{HIJYi7>>)`JDnr`v(*biF@Wq}Up1-#uN2mI%AUHc`PND?{$o7O;XjHc zbtW$Le^)faE$Z9ixG6QZcxRB(JUF`!e@f`u0=K?Wn9Uy-r%Ni7Ii7fl^My5lz95G> zDLUWyCpN{F$a{`3gy-6&z&Q?FY$~&l*pKH*z29MPX~5+@4)QFN*y3%M;+UKL6~? zlg{&h-iVXGSL@?bISw~mfFaGd;gN38bJieZiy{F2I+tUB!IPGFE^F`i`t$L7bs=tu zhIS^R2Yo^i_bSFiWOw!HBfFgl>-@*I3o|yvuk~5Dk(&zpUDqu3P(y#0zSyQZMCkn8 z&7a?#{^8;c?6h^AF?Yq9TX*T~xb>avJ!i4KRZlG0^8|VK`evXh@2T{vV%oMdA4R1a zq>yY#t!BfZs#Q;Z=_lI_@=2Pc%(mcGeKN+VU2k_kr&JD!_w0?YDuZxPb1M-CmWDnV z%EXi}ll^mn$*q*iW4pvn$xyMbgx0p-%E#KjC_;g!s*|mE~sB&z9b+wC(rT%D}O+Gp;`1T3J z*WHM&{m8~c&BiEYF0~XJgafVnu!$+I;Egkkh0D5BMZOdC@Ag(MD7k8huoTX&)ii5u zafkP*0X|yBpCTO)fM;HI`+9k9*;*Gtr!1V22tXsN!1mQpTKJjgu&- z<$~Mx)Og0tW@B7aO7pCJh$fnGZ=)Rp%UWcaITb0w!WlL{M0@UNtPPRV!j{!e<)e6{ zWlB!3+PoK{;yMrz`!aeCitMPnwB_6x$;}^kTw_5n^!3xBg23QSZ^Sjo#2^maQzR=O zh)guiT=_;@DE{Q+1eLER|MXA)M4+lj$`YQhz6fvq=H<)o;r`F*+c&njs=~ZoI4Yb; z*s&Us|8?{AySkoV^C^IW->9;<%DrO&FJjiEN?_Ie$U8MLCxqofpN){VgC~<%*Z%U4JC?o zp89Sruo2Z&n?^5tXI)VRTfW1&vg4IEJJ!)*gjusO=9TXij{(!&1o(w!Qq17gdh9?l z^nPNgcL!P&Jtn01+7*ba-qMI7>`j*~_gy3V551F>c3vI$yti9SU;&APaEE%o7*?5M zKnncLGM*#3XtFaS!e}xl_iQmn)KyT3DTKW_H|uRwlpS2y`pj>?bE^r+my0QMJh8G| zpUreGYK2VXXs(1xB89evTzq14$icJ}M`x}XOU-A>%`bAKHLIw7mJAZLB()MNV?c7o z_;G-thRIV`b|vtRn)77tO8MJ&-Rb$Qk1ZY%)?sG4vPZ_sQkG^NOew-)Pjgz{Gna&o zW)pH{7VOecMvjK%P9D%T)}Wp+=+aE(#bolrx~H#(U`7oxsHjBaPQ9gt!ZH|!--Y5f z65@gN+)~TPUJ0R53c$K;QqE^!F`u?lK6afJwucn(*r*am9+~oe?X(A$fB`n3k!dc9 zeY7bG<7*RRduIM|xqS?Na=Bej;XJSh zy9}rqa1KajhW57s(j8jFXh;d8PV4J(8(g|*SmC1h0_mH<^JZ>(*glrC9=3r%<9NIc zHq(9TvqrfnnFezjxoNT_29*LA?b4mw0;&U+-KU3az8wjj+msw~8n@G{%Ykxj@MVi+ z8@%zem2EFkWDP5tp4ZEYh?}fiG{N6oYFL@tYeUa!t4K6%UrJPrO3a!ti|g4nAd`rFS)1rhKI zjtn*Q3&Rx@VXTN#NYvrL6Hx9A;~cCu!l@!;+0=6zxqk@rfb*PqEn}sp1=X6B;uZP7hu{C>U&cqjKRo>IWc<4y{_*hp3H;;NN54P%i~HjrkB$xxzx&hM zuWqj{e&9!c`A$^%J^uBV!|&L|50RZ59sT}S11H+xp1IItS&s2YUlCmnYOfK~)==Vlri;6okmQ#4^N^8-TMj-IYrufc(PMI;Cf3&UTCaq)4^yhU3)|VL zero#HPujQ0ri9o#7Cp0L5$^lmt0<=Jy^8i;MSHKJy-KgG?Nxfv_FhGMucEehKNUG* z?^V>^K7v;f$_{IMi-t)LwPVrWlV6c7a(kL2vJ(1M-m?gYfhDPSr3c7_wk+kwNVOmb zuXgveE=ROVxsfKH^1`|?!o;Q`WoiAu-ezqUJRzr~WC<_0!Sj$^1b&Yk48YSDKf z2&w* z+Pl`OT4ZMQCgiDz^>fT4ygsvztCoA7yDfPp1KviE^5R#X%bG)1MP^%|0_ih^V1m>l zDUhPIgadxIL7o`jd7+c?DROr$B*I7%x9>t0%}8@t5r>AsO^iqdUZFGHcn)ew<_N@i z9^gGg+1a8NGO$wg!b!w5GNRK$My76xEPx$9N2oy7GMojtGy68q2K>$4z4^?^EiLAB zk{qGP^~tPW5^}-%9I|a(fYo6qF@$YfrrZSgL*C4-Ed{s~ZY{HRVe*$9Q&40-8{e(* zQuR*Tn1*SQdich|5Iaiye@-XCbEL7e{z;Z`S1h|}&8Uf9mb?J-6h%f~bMk11)v<1O z8ZuNrUWdoFf2Yq@wWjJFRdtRt($u>LRBwSLOFK(wGP#HVY0(c2@}^p$O;UzyB(;i>;2ZEal@hb(F@wOK1gZE;MH-m2DkC zGI?1AlpvkAOMJ)Dj+~}(w`d&*n0!|yDYYX)UxUVi+h_(>4ly#cmS`Lu(2r2|jcfV9 z?_n?54^1q+^OK}(OH@yEv>FOv%PMRaNnyE2DU^-k(x+`EIDk_Ah?L%|Zx?Zt1vJ&< zFD`p4Dhc{2l=$py($Qr-9yv#(VX1dRUWmRO-A;^1l8k^;9FH`=LeC2~|C=)aq98@?9(5P;>XZ$pdt-~zJ#Xj`ChZG2yM zOUm1P|Kx_tqs`A#1{`7`2{1}fmypgCatYJE^^V7vNXC(JVwy9$KF7rv=^UP&C?1-f z#9ISd4bTM4GD|sZBl>@k;a!LJO9#JLdY!8VN)<^a%|>c@V-uOJyJQd?MSanUVr?5_ znNR5akia?#jy7&Z-j{_1=Qv-#uYUNqHMbn`8!I-5V9W%rz6=nsP88Wt`Z`q~Jf6pU z25DL4c=RM*(EkbGJ?B z#4bQ4W>P!m9$#aTgXo`hvAesYga?c<*?s^%!*Qm1IRey&6W$9?x7xM}sh9YYT^&C? zN3PCG^~f(M?`ullH~hd z*%0e@X&qO=w*S*CG!BwvLdaWVp^fN)P2^*#;1ISx;cV-Hn3Skz>Rly-^%KF`XsxEGbjv)HJCK`VF-!k=jhChtIOwwb-Q zz>(FX-rTnALJO?WN|vnf(5y;3z6>!ndPrtOWpE*{R#JOWFv27k?9ngrY@Gn6wrRYH~PwU&T{j_wI!eI9%g z4jys&Y9VKzr`llV@4~SB7)#OdtfP^;hnGlv#Lxy!W5WObxJTdb$>BWzC^P8FVebD3 zJ7~`#O#c|uZw)~iJ&Re1jvR=N(F_Z3+g2)k0w6hVEj{1M-kyQy`;yx)=Fx6^Oc)a7 z5ixv391(zx@W(+wfJcR)`}F73b9_jqo8pKt+!p$@XC#k^7&?uSjSgL0Rl60^?7i%z zU1JAm4ynV;bn*$s@k}8PYaeMcM@uOlBLelw^H&iPKc1gAUI7|~9pw8l9?_(d{>5z3K^WL36=$;-_- zEFYS5kwSaa8d&w?`FAU!UD-fk%8GQ0E4Bt%DgPXxw@dO^z<6GhD|xsk%;CA(LI3$^;wNZ0`-i4{3-H z!6}*B=)%Vp%Dl~EjY$`J^c994lu6w&pGl6@cz$wBVsX1Ve?pW4+XQ)$S{Q)BcJGDq zkOAWT4j)7@Qu`m_qBpUE3+GA6hZaKg;^-|*~4wk`T-po#ki=^8WQ*C1^BUl?nQoUd4_F^Re_KTS&p5E68n>&wph4YERd-}Q${Jq+~6~-gPj_XVb6q;Izjnl zD%Ter%t=J`#{OQjP9(bvh=khR3F%z~C!=gc4&=s_ddDx!B6*H#zqQ*E17>7qf6t}j zl=ibX@#3sZQ1au6jx=vO$93XnHe5J|^?4)qK_}!Lv#cQ#+ac(2(6H@Hugp`^eio&! zi*>_9fYm;@&IFgPTu2FYL@Ukvp14K3Zil@a$`gfZ{5sVv=K}s( zCR{;2n;NQKOlcKBWwv~xj zquSzvDK?|018;j+V@lf>M81Hr2p0q0LVwf;Kbgf`ky)a$9IIjqo_hc$EE35$621vJ zmawqcOtKY-xQBnW8AA)jTw2GA!e>y`I`0ZS?pHP>=}%ox4Mkovq>yFA)@Wf&$4N1V z7q^|GARcfN#S&2%_`D(C?9LAnf{38Y-3 zum}IC;rfQ(-6yd)AT|`UY!ze=s}f?O#XQel9Bdb9*;j9IA3DSRn9GL3X}IalsO|z^u^RrL*#54fsfF{C?Mir(|EycbWp2Fll2k~ zDLAGm_*BE<{?!rzDoIjGzg(kZ%C;8bpayB63#;7x7bpPx(okFItvs9HEW#o!xh1=J zx5&k;XZr0Z4tt!^UaU!GHjWBESuRaWyvCMp2*c%a8%Akkx_xXOvIfUn~Hr|g-P^TqYTDHq9ds6yYsy& zRC@vr>u`RJP}Tt8Ou&7qOj`!oMml|o!SZGV%Y2r9_6!7q>CnLGPk$t4_VowTnD)hG zYV7(a!)xakENVy*-K6XEC#eHdTQ@hqbPZbWslIHd@Ge{f0V}v*49L(R-(2O6TvQ2) z2l1iE>JI#^$b-`^|9;;ZXJ1uvvVGYS2T?Wns3V=+%NfQCLz-1gfK2hAOWFvSiDK{jfmk1x5e$*w(fM$x&9w2E_cuKc08?}rHfvGbmm!}_s&Vf-v#2biG zqpw+rkRIi*Z5$lw%IY`vQwDpkm|5d+FUik*AG<>;bu9{JEjQ!#$j5Btmj z1R8aWU9o}w@)W$LcQXNymkNE)UTq`hm0TeU2%n!LK&vsuMQ_t@+`x6U`>r51_poH3m;qFyI7mj(;t=k-e!7;t3 z^D(zW%-_K}0t#^{&uIpV_7Z$suasN=YDT`w1cyR5gLcbxBqMUARkQ z+@{6<^2C+eUVcFHe5(V;hGFP}&|sp7^r~Jv7XlF*-))&n!k_k_EC*utyQHY|B+Q{T zel-E^A`pq^-jGV6{?(JI#oYzQXQIbZ64!tAdj|Wl1gSygYmG+BBe8O?1g95kwnoCr zk>T(jBu9rLF`Iac%K1N1D8@0Qp`u$nsaI(LKMyT4Qnd=0yFzbNIecK2%ruA>l)Zdg zxfiDU5wK&NA2JqkawIGT!$<@6l@U2D7$MidZxu5B+}3~A`e0VUN23X2F}48`9j>&M ziAYcTcP6Ro`vr0?G{e4>hmi~CJm1GmwQRT&cenwUCKeR+ZaI*pK0I>U_b+ya$fMrBga7-^R^5HH^Ol?Tg)GTXD?t!`(6&o zex=hscXL63zzX(q2=@%s_3rYI-G#bfHgdq7!SJl_;jX{_t(0_rT7mT)T-`tmfkGq9KefVm}t@Xyk83tB|iBP)TE~&M#CI zshrUC22mTS6HyNRBNorUI*yA|ga`#y0gCl?%)tO(%ZR2!dd}Y;a0ESrvZfJ;f$2F{1Z*P;PNH~12v%cGm7lb`dOa19La5}J zK*o#%Bbw0Ri{i8|QZp!hrb2#Nyf{DC`YMFa?hm(C$e@PupU`Pu0b3azBwz~(+qcHN5Z?~99KvqwYgcY0F=MNe* z37aCdY-k-8-EQw%?pEjydH08Gb{Ikv@v5OdDbX_STgrl?{w^Eb9XmQglNGB=m5|O^ zf;vWFCsLds2?}V{7P9!7F=*aizI=5BIRnY+RMC|%Dg)8e=JCR4@KcawANz#a$cVKM zrHU9IW3)sj8JoU@%Br1+dQAhGi`C)yyn`1e4_AqZC8v?~S9YQfBKk@Fl?WP&VB?%zVJ|Jdgvm)4)Yt) zV{e|b6`p;y!y|hWGg^;gdb$R#{@ z(-<6aY(J*{ynKJ_P#&E& zNDI~zi}zPK)J#P;BfEWvDlX!E-K-32$wWRHp(_PfJSbSvb0f9^>fIYhH&yxNqDz5+ z5Y9^+E>l^+jjX7$fh4wJ^JcPzJIBPAFtixeiV?WugEVG63DAGeM**|<3VUT)dB=Sf z(SkEF?YGzkr>k72kiXhDxGSdRF0b490H7zZ;@{w-3nus)ZI)4{nbTZ1;J|L>@})qd zo7VIUE|{hq29?cGHQ^*-8$(J%vK^_eV#0O>3PXUBKcR4+!TKl!ugc5myK;3RLLhs>Ny5`{o72@e@ zJQs&DHKC=wTnJF`XDp_TPCP#Y-CTA8KvS*K19q8{W@SrtUc2(uSR_W}(HAR!CZ=<$ zz!|_Ys?#Y=vzdlj+1S|L?jvY+e@IA3qJDZf-!2bXXnxLcwZD&#QhMI@4;yH{&l-Nk z{yq;UW_Uip?C-HKWyz!_d|21qE02c0Br&L3yBuo%Qn7yIrukyBw*62gI=j2RL3WOq zB+b*i9Lv+T=8~DsPNVF~UGh{IZ1IQQ>O5im}j!`Mzg( ze?Kucp#w*G*k9Co#HNsb95e!l-er(>g_0^+4_we=+d~6*s9yRNM6RmOo{>~f-Y>`~ zRZyflY{LC}w=|#Gc11sp?~|ek(2FaXDETXGluo|%Bmc%mIKO;@m4}8Z$4%QF&uBEW z)7rJ8_n>gGu0Mm$NE#C{&ssSdC{u0^D(^D1??i7Y{vGZlA>sALgYSQeoeoECcq4z- z^E-@KQP0H<5bZ5%S4Dm?f41A)IuyH(&G+{EVa&uMO=eBDv#pvkFQKhDFQc(5icm&* z8E5hG`>>@`=bP{@3_Z1*1#07VC9r1I9WRG;lk}Bdo69I$8yQ?Ks6DJIoGeDg;Bt$Y z{x&Tri4KbeK`c>8+41yVcx|g%2Ay0O_S#3~p7@w2$7uRmj+g|T{}7^JXx<05GPdv< z=l@FSa;9v89JCk=fWtrBmCXv;T&Z8Q1NufB&kZ0Cpnr$09NdRx=<~VvqA2jCCc=mR~v4HrRYIQEei*wTkuSOm5U3$|hGAfH!cl>+s13c7?FX?&AJjBp;3gQB@fBYbJawRg2Tpouk6CM0s*m33lhYU(!m8}AGW;c zsP$Ga!8dI>UC+?2Zu$~7GoBfaks%PuUKIh0Dv7){hgC9=`_2yKL3j3RW{rLIYm z3$VJ5Y;0p>ze5?uiXWX84sAKVYSp%-dd|~vo&7BdB(uPwh|20R z1zMD<3QvrtdL;jm`K!b-EagTe5=Hj1(eR9IwaEIjmzfgFr~9=xUfhMeZNK2yCQqIy zazLE&JD`CUY!_$O&n#@j_oS@!*nAyX*R)e*_(OTj|OJj|YLgq)W(oDfcv6&eWEfyv9~JILK89JEfhL z3{HfCADIErEo5)sUsZ2R0R37+I_kiU_E;1&4twl$XH&c++u9IB{E>Rr^jHNrBSKKr z`4}q>dvGyL9qfRSU5~m##|(Ii1^($uYeP51U;(JT`3)xrf|1AXLl$q3oRoY{GNwB6 zkW`{W00{Jsh$9hu61fvmK9X+Zy?yTX?_}s6{-xpWGhffVaW9KIk|*aO#`3`A8Bj&S zjvDdA(VvP5XZ8;epXoeE;&mYBQZBd?AXjC23s-F<2xXz zT=Z3D-&cGwm)a*}XzS)WKD;;^7y|YH1W0HNB3q0aXqs;^T68?*%d|+YggO)Y{Eh4} zJP%@n8AHKFu7tU{?8q^+*}IUtt`@XN2ldD+QuSj`Ent@|Suh4s>_;l|f#fHiUU;?y z4S~6Z4vJvC);gpclthVUeg*KROPy$)?94~Li`YrCy0(6OJWDLoC3c;Gtn2x^o8m{K zjQsbrOB|FicOh4Sv2Fca0CS2$Vz!0ChEw%Yx}!EKedSRky3(d%_6u?G!rFCfAVn?S zhPg^a&@)hcHpl7qVkss$dKQKwehx{?;;GH$1OetWDbaAHqq17!Jwi=<6ygi|a|dB%+DofXrl}suOrCsPTPXBfq@B63 zW+IM&=BkKn!Hw)z?{2d<>Cu%-fa7?n(3o*Kg}SGcR@6MCjzozwG=}b_(dwP{FLU4@ zr@*Ekr-9G-@A-(wiujBKT-LD4e`Q1ZEOTrt{Q<=x+2OF%fdH$io0^r9wV75H#Rz1Z z2hnO7jmXGU*@S%)49A7qjfJdH+1aCE$W5i4V#A0UL6~UY>_hoz_MS`L7V$yxptc*0 zeQwll%aDnEDplL??){RQ0uK$04$w^Tlr{CvFdgLdUx)JYABaIQ>pM@6q-Cde9Vu(^ z=Ojpf`B6Js|sL{Kun_nQnh81S~5m@iECPM`eqk)wV4dR3yeT z-ZS{L;)9z_2(e+-6t~v}Qv{m-wEb#(CcS1+xQJHzg8@|M9k@kj;g;{9nAdX(G3 z7z3v(EGr-g89LziK30_eg8n-gVjybxjFIhTrR&6?*VY1T|4xR%cAlE z@$3yI*o#W%u&~7XkpALLQhfOX=JvFn1$^jC;e^`}M3J z-=hWl_p+hbpas(K1aaU|yC+Ju) zTS<>wxg6sId3aCw4!^X|2U?tD`^#*N9ya|g^whxh(9p>$CnOfJ;Cl3r4LpcsTm78; z0u^vYc7^zuj!T;PBIH$hARi!~5t%xBsA@enYY49MHG4t8Nk)+~QK#tN&_c4o0PHDQ z7-32lAFLV6ckt%9_vtxdpoevyS58gleU$57=e!v{d_TQ-y@IR!N_gpXaWpaw5_ zDqwVWDj2st7`<*n6Eq#j~N5vSfzor^T0Rp^H##IM!Z3L58 zc-Y4@pF9|El#y&axYu1R23XM$w>6_Cyl-erp4)iPnb8nm4HdTjju32bMu=_wo_=cT zN>yxewW-OoecII4o;liUlDMgk*sepz2% zHlRQdJ?Qk>?`(A5A4ZJpmNe~lgJ^)u*SJq@n#|%B&5qBXXXaS&)ikE!x@O3%VziYs z&z$3)QrqJ8V>GccX_#?p{(r1bevErXt+3h%ch&kAV)MdX?S{3~*?IQ6q9D8m+IaE1 z>I?bkeg1BSwcG(~{$YW#+&N+2_^%QE_w#pd>=OO^J1anckLH#xQP#tO|IV5K@ZTx& z>&;z!Xqr@5>dCIWegS$?|c~v+3*BEx5+oo&VD)pejYI9Wj8}<}-Ot?1w zw}m|147|PUePUbTPWQl`?1VgwGUV`q|{^w#8&Ke>PM;Z4gAgiii;(=RX<4|_h~yKo}fDB<~GdeO`&nkXq#XmBiIY; zsTSQNhe}u^8HfTYMXRBDydnY-^i&;*odR+YRM|+pb$u4?#}N&KCC# z`)>~Wv=uHc`zDI$^O&}>BcP8B1u7|-D649OHOsN$%y5s`uy<2m=|~NR!JaR{gWcfp zb_G$%@XCJgzqn>x57?d}uA%Z#Wz<}h9CVv@fmiBw>qYCOe4qneyg`bKBvL&iqj_(j zF=yUrE`af0#@)qDJPKroxhYgMUzZL#v*+`{Yw=rLiXPnvuof*#x%y0%wzf-Q@`xAW z3L{q4<}0veP6CAh=GMFdNxbDtO)pyT0D1(0k&b5y<%`ipw)`o*%B~`e$=E2&WJRJC z$W{gv@Ru-Wfy8`qBUJzGyjB)fA8*?MMsq>TFIAk;%!whXL|)O9zXLCSh)X20O&jpb z$*rD;GBQ}?xG>64h!gd7zFiE#ao4u~#p#B_(HdwR@wn?r9 zdRCoOdLD)kk#$Z+VuewF11+t+?0Z1N?)micWAt@W8VsoT;?ubUs#@~E4cMNeFMWd7MdK91r*C{8eNY~^B3CFO87L7H}IIH+GZ z*e(AG&z)$dKLxz+>;K2uIcP>J9&ZnFBLkD)1OsH)_O}YClNGqGvo)wX?L?f*In7`8 znUw(iYDX#kAAJhhQlxDaYaxDCY^1qz_i9ulToZ`zO2OGs1g36wm1gj2HSzmjntE{Esx^HV-aHim26x{r zjSBq)^^})uu38KL65(!ZHI%f%Y8F27SSHbn?W@Fw-gTCrP$GxAm2Qi}ai|Zk#@r7Y z?_zFEiXnBy{p|ydjP&GcRhVB@tsaLztOGUq6wH4hLch|qh5v;ScC|=7{a=jGiMp)- z!e3-m(KyYMkw0k-BO1yp#QcmXH962xJSjdiwQcbo%L=?56Qc};6OgvT#0@Sk8TOmZok?Q-OXe3oK=u3p4I#<(ABq9Q0Q3ao#?$+ zFXJl7;kH;bc}+Tc27rT!v<5yk&gVQat=i^rwNMIt8OJ|>7zQ-}9L(y?sjRx1R|-c% z3WbE2%`b}fkHGOH!sSW~I8bk&uW-yV)D|GpM=~capD*Al=B!1AHq`K)F!+7@ry?w9 z-R(P6dPM>Ri0#|dnDx#T8G7?ySQ%3Xp-lR>Llp3CKuzP&OV9?)5*|;224T1dtZ3yPZ7WHJX@}3#C;ITnGe5dJERYb7qOs zE^MtDV-!*rim$5yNWaa1{9G-q>VADtmR}fB{$hyul=J7yO3IA6qG@z@SEY0>b^YFL z2W=Trk>@Vig`=O9JfZ+^b!8YiugjzhlO1snPEg(xB+;W>6adjEd>)Sy5oVm4ykxWT zSfVBKpsy2j4F`SOGrQWz-}T_P^EhOd$x9EyP0Z#$$)hFK5%b_~Buur5w`eFkRrv^H z*HS6|9Of!W65_=*YmDv&*1M1rzRrIhoKXuZHf*qURUYWZTcMY zH6e+j6xcMpb9e!XgS0Ozx^XlMF9+1aO+=cdG0*B9kFfB+552%u-cKLSc6Vy!oAd*V zJyfbvx#a`QSy~#`q)5qFCD7bO+b+yn8H5!+2ocj$ zCb==yPNJw=>v7DNyAov`s$9jtSEg2OqI=@0L!{$ri+VK>9+3(2%MGPV=^^)sBy1)V z#H2xT=!;02S(M9fxIgls{koEc{Y%{9>f$I8j8_a>xB-puC^uhJKSq$~n;<;{iA>#R zW(A;|$k2OigqXp~b;W3>erQFnd0Pcf6hl0NE_B`6gs-cScRNqZ(t+;-X+>A@j~c)Wt%o2i4=* zymV7}PUDQ$R@uI}_!)&JSg%8AyK{4ktbLD!Q;xGEP)b@`KkiAW=UX=zT=j#h>Gxs1n##{wI?chIH(k zr)`k^JzuF9HRZp&5SN{0Y9e>wysrgNfq5x-)nmm>m=s3;5nIb&VerdO1e?Z*fp$C4 zXJ+nY9ac~o*;RD^lz81Kh6F2Fv{H$&-o&+n?5%lrO~AHwbJ;gjx!_jq88>W`aX6W) zLXi~&+Bjwua+DN`NIDw3k=_^lGNcQpHe@a)VER$kG<*0U#?-j0ikdewww8Poi@mo&}xG4BDtR}w#g9Y6C2RduvBNxvh-rK%&@VdlNc+|P{7=9~7*2Dd1#=z!Ts>j-VoP&Snykr#%+8*_eSXy0E z^^~0H~dbNwiSst~uAG%Wc)<|I;|488$aE^Kk`{Smjw$a2r z`*Js#oi47U7|q}S@#<;6H)g2JtXAmE6tlx){J^hxoKpF8f$q}ZYx$M>`F1655BIO@ z`z@84(WodxEgqQIEcSS%VL@02x2-Vy~uw_w7KQ!OBZ(j?UrjJ0#$y2HNrTWG7} z2m}if@k>anyvW4Nwkg#S@5eSXM>f$)kZB_R%M&(y8>`-bL?%AnoIS2C9&hjW`|VLA z=S>0rvp7sm(Uj0Tty+(qRRlfkpU02yGdI#Z+E{!L$j^DX1Xs5vrHK<=I*FHl6XHgY zIrMs5wrVUh>ii}7T|VR}g6PRKYCTPz9=c{7YMi?=&;m4;vs!Xy zDI60A9)5dhXMvd$&UAUj*uZI988j16g;9V7V$mlD)voQTF8y;P>4*F()QB^+zxM~sVt<*}<;^L=F z)A(HjGnq4Sw)`5S`#qUy@j32m*vtTWFLd9-zbLzpwh})8eb7Lpd2j5B5MQ1UU}h#rZrWxw3+Mj0O8M& zFdy2Q!f=`z*(973bqaR|tc=Lv*{p(1BhH^Y-3!`U>Vwd-?V0jxJsK&Ab~IkoEhU;V-BN<_)A0uq`ka zrAtG7MyC7tlUoaZPyPHI3tx1h`F@i@{W;Om`MkB+W8n2j^&@o6bMVhCN2LduxrhHY zEBi2uAN_41$E%=KHl|7L<#zN#Y1sa$ViG>98n|TgY0egDlTJ*VG^r-Nms69)M?rji zT6d_<0C)+es1d&)S4Byyc(Z3@^Im)Ev29>sp+;UgRE@|tL3oiAsNMw$GZ`|IE;df{ zWuWC!qUQZ&xUwBptMBd+^h}{M8EVLR!i-z3gybl2j_*w?7H)3HlYK~;a@7BGhD>5W zu@mFD@|yMo$zuuC{muk|$GnQK!3w;bge~77R$F z-TW;(>O7>eb)K#zCHP)XBU+QI-XPye@bhx};qy81dioL)vXd3*^D@ALmaNAU zjztfn`_c7{jOtZwe61=Hb(LAe)O2NsA6jPx}o!PVVZPJCs!p$77Y&5 zc+9tYB<$gj>Oi=`V!3E95-4-W(vRF`AWPTwXMh2Ts<@E!4QL6fA0ml*CI1O?xE(IP z_#9`JK-F)pHFh`8f7jVE7;^w=*txO}(_)E&bUJX6A7Fbl&{$_+sQua9Cr3UTTy5&u zcN==eEX#+!c#K~;6(XUD_~dr{p3#>1sBCFqfpgUEyRf+wW}YSTkc*}40^g1+)EVvC zS|op2g@7IAcIy6vi+a2Hhl#>=8{Gr-rYquQd&uKvzsu#WdgFh*?G9HTdg|?LsmKT* z&xXhM|3=OKe<=OrFh*dBth&&J!l$$fy~8_zm831Ari;AIG;*9%U(fw9-Dz|=Suna^ zG6~U813%x{G9M-?APey!lakOvKFCjWIX<*QF;MS;taBycx|iOvh6nCeYY?ye2b*SJHKtUI%%biy@=!Xb&UEFH1rRRa7X*? zk0st$lCNEL8k$o#plv=bCpXiE#u6bTnKo>Z!a~x@L{^*g$@q#WfO=~unotrsmaCbq z@(xUuk&6L{yHn6N8iHOw)TujUHRnHbL)KD=`A?YLpE*F>Ll&krA|p2pSM{+^u(rU= zbo#Y!jF6*#;1itD52I*k;!R2}+0!t)BVo+HuM#5njQ2|>iLT=VSKah!m& zB*QhHzDBY-q5aXY@_pIF<8d{k{ejrn^=wk}wPxY-yq+T?{BcmUhfStc&GG)x*hu{Z z`3m4f?fuOo6BMDN7&&~@es@2j*hZN%q`ik=w`^EryGEh;43QF3X?rJ^$u+thLb9%# zfh8~OCbcl;r&lmXc#bA-P+)$Y5 zA{!*yvN+)+DOgd>LMMi1(;3@ZE45D)LO6BysQ>alNfNq*$E=U-_G%NA%bGtSPl!h{FX<=V4ELp9WRj(?k=A!tgRZZzT3 z9ICYVMldR3{;ouQVm!iL_KCVu6Oy7uFHMJOz_)G^E>^MXAD;c?Q`l5+yIsMHzE zcgg&`J8~+HWfmzdCwm%uZEL(p5uQ~^ip9+VN1Wg~BfYM~e_qx6%yiQ}BmU>NWFf2T z%%HMjj6bReTfN&kaVvH;!z2O;)oBl2{S{-fa&n=&YY$O|Y|$WFblGI9mX<+rEAPL; zi&!2B&{lkdU21i?YtS)ypraff^^_U))yJrVX2B*bK+q`!31ib3E~jPUJaJD@&f|diFu;bKam^FbTW0A#zMMggN2zEBG)Q8 zvWwVtEb+xYx#-B?6gy*yT4VK6@1Z-5+koZ=Yl(|I?UOr=^YkU@B#aa7_E2s3u~N>1 zuvbc;l%l`YJts}ftCzi^f4~s!*OD?va|<{I$oRsmfl8_Eb~Al7-FhYG9X(CJ@XHKS z&D#yv{42#qbXa<>!Ik@Iz2+xtGjNL92uS;Iu(#Q|y#b}Euz>*bxiR3mQo@(A+O??D z&O~a8k!qS0w8RT}(@dYiI~^~Lg)%`)xu+!AgcSZ>Ez2MlgN>;;;8WH?mAbNzJg+=YWm-eAVpVgT z-NU3SyO&+U-#TEH0=dLie-Gi;Y8LH+`oEA9*yRjfc(!N7Cg`xmj2YPKEcg0fM< zt_vA~nx|kbp+go|<-~tny{4eh4|mFr@~DmNWD?$pf}!UDKaF~mR3?OgHlq6zEnum5 zSxqk0D*m~ndT9aJ3$CVeJYJ_S0zVa_&JddKxLvKRjwmC?{(e); z#D!E;u%oKJAR@;e99qEig;aE5?X-YV-(DO1zJ8EveO*rtlfGS&qeFgf% z=bW5e`T`jy_0`qp!SJSw25z%k8-uFCTws+0{7H68oTbhFk2%6AhX?e`w(wMPY4UPu z1Kt41aitGks_0=KksdmH2cOo_Zd}%MZq_(Gm4UFmaDhywa;*Hgju`(GLzbSjFdFU> zEuVR36`?6fp9s(*6ws6MHS~#0F$mrXtvv`a&u9#nogqa*inMZrTzj&TriM5$liy5} zOp_6FJ-kY*FmLeue4C>;4Y|XWyrJW%pR!}c+aVj$Sk3pv1>Eb#@*h_6NG*qINJ%eB zktPvn7p3SlRLhW3_4}y!n4=QJ0G(e3UWqx#?I?c6BynK;gA2>y<<{8-B&~PS*<4`f z1p)(?iQEdix373q^E!Ys;^-kEgYb+kL~#??!2B@7!oTZ@^o9{8#p4VIhpt zWW*uMWaNmE?hA{_3;Sm(bGt`vX_QYimt&k-$Tx^1TBDQ3s%=sW)B8Cp8i*yf&9iZp z_z0ruy=ivOx+dGDc#=k~{}o6ugx~J6j0yrEt5f!{SBgL*vV?I@-x*G~OQ44ETAzyA z9ICxsm-h7XFDp;UeemHH7~u)bm!9A4!PG@oYW_ArXrNaiWCV9&x&6uMDlgw)0Uj2Z zzfppaPf-sd=Z=8Jcos;mlE>|-LYBU5j6uprFVWe^P zfR6HYGyv?x_$=6y!H{_R^B8ec7@}1fs28q!FCm+XvC8DXTqv4B?3GvTQC;FMOH1|f zeBHA{Qp%L;%0n>aU{?9N*!)PAJ?-Qa?!H~t zZjIK2RWN(pntD2Sz!xJPicGSW?Rd#u0D7z^RgGD^I!U1P7=|OP!eF(!$>sSB6$G}2 z2RI_xU#4Dh`gGjHa1~)!5`g*%#Da@2=Wlj>*9Gc)6pf2COW(@)X`#ckrdRzK)Wj;! z6fi+m`D^KWkhA$dcdSiMaUDm*ZBid>bXvbGM33l2DUgDNFeV91Il%l_y-a)sY*^E2 zZT{QI#R>K{Uq_qElaBu9>)v$e?_vxriG-XkMR6|id`|&HEPvp0q29LNmbFs3mGNlh zluYV2z^59X@){Jt#<71J8tVo^F%E~#Dse$-XHT-1Sk z?X*5Sa;?i6N_r9TgCb~e-=)brXN@}P+eo?dozM>~rJYd^iWbx6~ z2A|##Qk??mg#8_wv+3dPC5w-*#KL5_C0-#+y!|LXb8>FK3H_T>PmUw68VGyQ%Tl4O zh~Bw1HqSM%kYkM05Agp3%|J50SlixyCtp;3<#i3g|4@|9$Xwq&D$E%68Eyr|Zjn+r zln?Q$_0D!OhacBo&^*N*(p3i+OGi{+nK2}MsELX!>nhWo8hxN+9s^!FrU?WyE8P{P zeBh8>MT20uiZ>MNlGF|U<6@Sv8#B{MjSP(xb;rm-@brKjQljAR8c`p0a%NYcyFRaI z=6Wz_C1gCL2zIL0{(1AGT3_1Hwbcok9`QHVr|k&M`UkcUay_Rmwr}ukM*$T#+1pfH0nARPBVLUFp=>OcMCR@(vBP z?@|C_<8F~VX5`+kI1hs1Xo0SyhwRtj-=vm1km4bO+Dg+Bz zr4Cn?s5(GlqHEI)M{C2ukdFg~SSgbXlv9`Gn?j)8Fy0U?*vGC^Y(*VI~ z9c|N?tQTPItdTLsrFRW`TbvjN4D znF%L4Pzx`SEDx1Eyigq^7DQk{-+?EypP)4XUtX!T$gg=lI)(7~i_^tr$2q%URKAU$ z2ZVHVF)7vnw|ug}I` ze*XDy0JAzEeSCbJa4IOcgQ0~1G6gzl9K#r$`Y3Gg3?Xw9bldCmKp3jGv__lxzqjLj zk;uHDVgb@wz8EK!(lQ^rG5V$!g?C6qvO2OM+|~L1ogqE&7-`ykYN7Z1-OZohoc`hB zP5;iHW|>7`zNCS@+YlKKeS+(GCHRk(g_;TZ7Q_UbPquGwh$}wOu@X z!Fn%CjvZ^AYwR6dj*8~fJ_9W_C;E9;St-^At+YC?M31nY3rp`Xy{51zN0#1Uz)8+S znwGU)FoLY?lCLte9h+NZ0H9~&I2RghF^)9YilKPIBLUz|9n5aPpFZK5qFFZ3roAG! zXID>vDlf0vm^yOf^d<+lXIBR!a`67#{0|JVs>MXxd*!{tj`f`T2b9)T+QD}ea&dPICW7tyHFjq^-Z`)c>*a1 zP?sbYgwB}Ij+0|FvzKC!qqJkm?5#<;!gNqDfE^Q*#*jdtri)`CH555%ExkmXgke3# z379b;u3vDde#Koeu@K4nmU&z#AO2_q*kFKME~fcxtvL)P9U1)g@gO?c}a z$6A%ne5WNCB`g#)d}L|K!YVEYa7qW@I@_-*hV9XFmMfM$Fdx`DA*VBNn6Zh5qyXn- zkcfl5a7$0?>2%tUYAt%bSF&u~s)P!n=#-(*h~CqX&jLM%w@dt`SjG}9%l7L#B=a_j zWzynt!nIuMp)QfTfjf^{L4zs* z;Q8$hXV!OpNEa>=+Re_~0W-C3lX9Jnz3<&m!HyGwnU+re3_R!}&wuT=wF$`9-l_uy zI%8j^15Pi_4wTrF?G|<$D{`N7Ey7F{fu@I3-v}(@ja+dBvRaoKA$l*5uoR2wYH9iX zxV%EF>DH?>Pwp4cNxx8q3>WHwopAlHC**(p5Ax6d^4l-JI5{~q+}ul&(#4U%&o0xw z-Ba=}{}N!DnBmUDa3+K4U!MHdj`BH~%c_hqRt?dF4bg=Skg_^of>(Bc&EZ^q%qB+F zg`S4B-C)wdl0m3kUm`H{zC>2EnLBE0vVP!uIPhwEMW|CKjD61dAaARIgTP~<$3;qp z!EzT39^LO+ppilb%$DAE)jYa6pFmM_x3KY1z@Y20N`kEV0f&t#**oQqCJSyWyaHp` z$Z6{`vo$iL_2s>D<`5Si))ZZ==xd&XB8-9mMEy=ldy)a@Ifc^dem9P(-45aq(>pun+4C!!+FXtw~-MBbK$rgh@lgF!()m?GUYes0BPo8 zL9GM7#CSLt3f4%97!wS(OV-X_11@G`|DI#-K&aWAx$Dc84=Lrh$(R3DDk#Xogw7U3 z-dQ&j?06|$xotnMWKm^Qub72fUcY8E9ZQjYtV-a!NyzVGKx37NXZCWs3t>iYSMLmS z-#T-XshQrCY05LCfl@F+A$xpG-9v{(V1nLP<@D;(SB~6;e^*A8zAdRxFz;Kwdv}}F z5nM!zc>*l06AkR&RrjwbDBrHj%Osuy^xQ> z2BB5T$NQUk`yS1)SkHf(B$g|i4zJHum;}6UN;Mmso_A%;%$ZVjw(~Q!-J;=bUgcDP zjvF)y{+ZQ*ic{!ZF;1bK?eoss)*V0*M^-IN*neE;*Zx3 z#+5@-*@C?M4CCZsYIs*CHFEy$!w-`+OX74!u6kCXB5{ycj1!>@xse`qf*>RL2{?c%8G)>NT3cx4Y&BbOEOwyfBQyr!Az z%(#Q?y#T7;xA9C=dA|eDff>3hO2obfbL)T4&TUs)-L2Qc*4SuJU_rH3kFtXTaG;4X z2t!W72;SZTaju0V`{kF>@Ok(hLg5dG-;M3Re(iob`u+dM-rqMzZd-}s@czA@0;QyC zq@=s0u@fgdH#aF+(m1;IjCG~4{oKdN-9RL|8!HlE2vC~#daL$}?3de5@++JJfM9o% z1p7rZliNsDJYti0IXE~t@8|e0lg{5yesv1Pb3HQu^~Z6I*pt8h>f}$sZznrK^EfAx zRsOm2b<2KrzJo-)^OX*v%)Qd%X!?P@TRLYq+;t@kvD<|fxRDpJX(9=jm#Pu)?-f#A z^owKVeXg7ddRyBM7qgOe^XW#HD>T43|i) z2V7{0udiyC>r_J$pXT7*!}RI~h6ARF7Y1zZA82U zj`*C}{cmn!ew@m)VrqkL z(1wD6@HT>~8M5Y1taUAdBxeir4)3$DlURa=ZOFOC#>%qGQ*60y0(WdzW*~wNe+YJ$ zNAx~pxvTHM8v8Jydn4|liojjXuri|N6jHqBMYgC1!GKhAt(8?44=e&K%zec(J?6rW zU`eC2Tb(4?&58X1tV)#>@DP1=PWh7<7s?dYXV6 zG-JCR8;cxu8zg+x?IRUK>Nbcr+BHQ4z|^gATwRo>k1i25@TAX`cDaQ|)O?MWRLlQB z^%rxzBX1jQbJm$3vDt>Xq_{RD-p94rfUUZ1P9R-8zuzMF_fl5mKBy0aB~s4XR$i;$ zUME+kE#p=3klyh?M%wp!$+gaxe9Y3m^ zmRf09u8}U9890ip5)b6gzu$COoRC{KWu@UQxJcQ121br4fdQ0A&y`Ldh6N@y}?Z=h~g3rE#h(xojLe_=ke^|pLG$)ISnYN2)~5 zeLMhB{3k~4*+PnxyvVtDT{3pZe_}7lJ)0W1yAe8&>VYQ@sw-D-3@P?28InBp%6{aE zhhP$^o_TcF0g>7qy)QE<^VdAnth{9j6UpMwvMOVp8^F3=u#(G^lq{o~KYEv+`zm>W z_#irCBa&7<^wMQCVC3FR$?%pM9Dg#aT#_1XGhm`Y zcJgfi%g;mkJJ`hg#u)3Zb)CT;=_^LUl?q-1k z2nxiTZ^N4-r|-YY_;zoM9L8cPh{tonD(>AQhC`&#-&U&j8FL5{GsZ4sEUE8>6Dzl?Tj=JUUejS-s{45Orm39&}Va7Cm+{js(1Jv%?xruH&oA~ z=K#bL3Ts)v$mU_Qd==h4oiOj9p3(Dd>_X8~cyV47 z2FvVx?m#K$y7Gy{dW-<5ZGJ`QlNy27t{f5iQ&qANnI*;K#r9Ne*5d@e1lySnGYkk; z^Ei(m?iS5FP{Sielekx`56}9*&{^o{nV2ZJ_;&|B_-3h ztTRd4QUYZ2g^Rb`1 z;A&euLDm-7i@FZQ2=}}v|E}q@(U;jO-w6z7e>U5_1MJ@Fdg;>1Yg+26xGCj*uU0;I zl~5IWKlG+m_mzysg-pjjiCgeIvGWn;<0;%x!^xyZM@>giei2HK$PZP*q97SlU)> zqTdSI$7gcEHK*An%jlvr#X_7>^Q~9Dxx5Lu9P9UOll0B0LKI`EGby-@Mv$TJKhCYA z(#F6LRde(}qj*|K{J(L=rz}|{8T*BwT^k1N2Hq%z#zXqg@`=c)W`Z0;_89o?1QI2& z(oCnuvwfjROahMWu%i~K?SbJrgHWS?n2qnCwOVF2=4uUWmz+1!7b<)o=uD7WO30L% zHz;2t(YCVtF?)xJbyM_Zdgo^Vo^)E%WNs^d;4cslw7_|w_8qczwZImG4tbF=@`neu z7-8jQHl4CW|1k*b^qIdfb+s(XAKbtGxDHYJ7R5m zpO7nvkIWerHjf!3y9;0L@N0$y^kHJ|ER#NR-kF`KGBzSu1F?PryyIJW_1;`o zt^8vz&+))o?Xa;B`mIwwxpXxKM40~Z?-k9OIdJe%`!T_f%?|v%;*T`5Uh7XhOA}h60E8!>DCw%# z8IqH9ZV^~kLjwo?7(&Ng%8C0XB zWHUHX-C?sm=PANXY@N8OWg#;;Tig{!61;$nP;lORc&2wP-^Jy$!Ml@-+1MF#PTfSt z3VIwT^;A|N4Oop)!-SpxC$hs~IlCMi^Phm{y_8J7l^UMx6na)=y$9G?9*IK&J-Agt_X3l0Fj~hPTno$-Y(Nk(Oe1B7 z8N>-yLW(hF$!KRm%t#?Vl+(f- ztAF>ptN$Pc<)xaCbE3GIWvua=4GRsr=^3tAm71v_3`-)Lk(YS^BYjDQ*O!;@jvmlIFpNCh*>yQ5`RLT(?bgx)ZD2Dm^CmP)Fs&p)9!n*Z%=6Tlln+(mb`D(Ay7r%o zMCO+J#`%JPXi;g5Vj@1TH#Vr%aM#C(G#5TAWd$dP8M^Pd{s0u6OKu&++1|p{ObF}= zuuQ2GFEozn&f=Pd!-%b8)b*;(As1DanQIKw-vJMfiVrv(R&O{n$3-^*)pjU)u90ZN za2L_tAhIl{@9!Si)Ak1iy0P!yTV6Y5vyy?W6!#u*!KN0h1bbu#mMK@5&$Nr6fTH|w zPje=|6N+lCrkvhq?0;U$w^BQG_}@lWV-@-W7Dhyb@>waLPFcxBN1>{Frk|M2F=0h*ewR9e`5-7lcIS3_$VO|7gEuyvoa*4=HR9FOOkq zC*%o~ggJdcMap@iE1H=}9e+N4c|xRUyxuy@BbSDXyA>V3?5IMpy!6l3EWNR6m^Bp( zn96WE;Yh@}SUk~%Clu~do$*IT=6p71B`Hdlu(Xp*fK?REJ$DHeaIgj89dhI~xTJfQ z-WKg!Q_ca7$eGi$EG@U&i)7c+`UDD|`8>H!aSuh@7*s?sv@5`JRhQ)KxKU6m6+AZC6Fal*zC3bx@xn_q3{C5YN0ffpzSgg+&p5beG%dfy_;+( z|FjM@hmupZtH`KX79L1w){>4NFG`o>(y$s`PA1rXsCyucCUbQ7#R2|^CDM*C zj@B6-N=V>SRGQd~qp9Vx+Lc&Sr~1+o2f-dYXJxAzP|LXCR01bLSD^yE3;P#(o+&vp zTpqJ+aC?7z`oWA8Y|w2eIr3@IH|iB>rV0NpZaZJ#Wg%)mgqgjz>U*C>|*_-KSs zH5i6x&MrdQ+B^}^5h=vMEf46wY>xaBmgR#{f3g|0HyCxjN@dd{y`neT_F%7yX3e_` zoS3LR!RQ*xr-oxrB~u{YqFSj#U}x^aszueVYoH+#l4HmJ63w#A=DYS1wvj5dtVQfD z-PV{iRcvcJ3_G)CGSp@-e0X`6tH6Dw$&5n`)rzieolXw*nsb&Fq-1H8upUb(T>0$? z9x4OCp}ekO-`L|Lj0+WUH#(of$p(g)Pkqi|rGTyg{ijOtnE=c1)OkmNPzdX@a#ia9 zM^@lE0ws=&qUj%2v;X<&%P!6SCX)XR{Lic8dsXw-({*RpueEWCVzl;Ms$^INDAzwf z36%PupMG}w^4P%Qvl9cAKrR1SpqBSv+L?Bw5Dpac;0^?}d7fmMTAyLNxv&DItxACB z?vloWQ~or!3yq+d19Jk`Y*{_0bo`;xs`OS=-ig4|30bjTF_mxXx&08BfL_gBf zre(lL=(d{XOToGrHNBcR>{J%|6w_XwKGL!+MMt-nBP-@CXC=+-INQVu8i@hQ0{KqK zF&Nk{d3oXk@|`lOYENwM*#9ZbTGBuwkng3;*xFbVJJ*d*3{J;P6zhJ|dPJo6Uy*xYniXYkdnR30! zt>*x^1!h#K_H-$Y6+#(VIdvcHS^4^kGZ+|vJ9!Zizo#H09E8P7y9%MhI#(uN)K@%0yZH{!w1&%mpUAR zix(p_!7YA08+gy4@}*KJ1{-Foj>@*8Tp`!e(LVoX`lPNhsx(i&%w+O#w?3ionx%EH z#OwNOz(7D5k4vr|NNFpt`ud<@Tq4z{5c zlkw=BT2%W5eNqfpdv8_?DUMslig7ldszHf0db}R7H>Yu!@{D05l`lC4E`o@QumcNO zktd3p95^H0-m~v`@rqmtRh6vvY+oM6FjYR&hgIXiwxQP|Buwax@4|M4+^Tv-j@Wzs zo1+mqdOua>KSEE{(S%&*MaC1Z4Vx{dtgO`?_<>=*E8$~tyGMIItRV5phHO6CU15js z&?m01ABb&H<9bRYx@C>5rx;%7SVsgpFvt)jV~X8=Bf8knPE+=Hs#5xL1k=O4T`aAI zDsuGlsJr(&p7V^B*WUFsQ))}QT1Up=RE`YJD?1eg&NU&M`ip_m)&<5|kH)el(LODLf5o>1`v0>-e zm%9R@>knL!1pj-*$n~WoyaBhBHZDVsH{|hoPJfbuTzz?GJL*KIkC15f#WsvRfI4Ns z4i9oj)?`?TD6Yl7z08k5%BM@JDY7LqNUjLg}ygjOFvaybGb|hu>|!e?n1@H z{+ODsWV)GGpmULkBu?dfZYkMYS0`Y-ZJ@crzC@{pP7Pb1`@$^`$tgT09p^4`O8w`% z25|c;ZjPIt@q`ugXHt9DJ{u|+TH~*pJp3L+Ln{QH;`W^0 zUY%dQxtiqZFXr-TtmU{;Y}{G&HX@2XGOjx&_Iyz0?HA^413`55quDFW?o4eso;3!P zQuZV=C@EM}!7m(ComH0MHt3SEQK;lP{dgIa1|U94ZsmC}cE~-|#gveN8&UVz+={!# zb5vsLx!ITpwjhuNV=7C7x@8m9m`(r+rz z>-iYj3Uvx~u1|jvQ%`%)ozt5ZWq7&@)6B8l6@r_-3?j<#Dk~kqC}}DczGHyXKwX;V z9Z}@u;~@+Ed}Y6nLZGv=UpLLygG|)R`;srz z-?K4}J}%OFW47RMpVJooacB%bu!VWsO(h?kwfrdc5qpMp90R#89;dzspcIpG8TG=l zFIFJ}{;Ra4In%7HQzIl&h~8S`l6+e*ai?kW&;{xPU-BvOC3~}WJJiBxBP z`&h~2{*Bh?$oqyCaau6<_7bPzA7gqFOaxuXqUsD5z<|Ck=gycjZ0Y8?2fiSP`;O!%1d)k$L32Jy)Y;kD8D?tv-S2)!WJxGV zS;F(x7vZhnzU)X2VcP#WfAbBvau!;Vd#UGkRP%A8V>KfG>+ajPbvS(USFAhcz|uWt zsNXsJ;y1tPd7GCItHEuQtMe|UdJZN?$W{XhLma1tArrbYX$Wz_o;jb*wGBWt_?z)W zV<-uRDo7iQi-iPiAr8we_9#zNHX<2+U}UPkDrHsFDG)JRiAy+y1JyXCx?&7>?W5JJ zBOP*JptB{G)5hD?iT?`9y^k>Xw_vV?<~5o06#KjIq{eyf7p43+L;?ud49GhKNJ4F4 z8y;DkGdjm`S(^>7V)I4U6)(v3G%TV5DV4c0!$Urtc0cdBt(md!5%60f##CaZXUx6P z(>u^*m?(9bpX>fH2Hd7}vG2NF@xbj?JqI9GOjmX*SXs)_%$X@=GhXGid@xd`rJoaW zV;0w2c!Ibr+WZkMU^!jDbS?7;6L>M1yg*_gORNQkr`J5+WvcNvv{0Dw*YK>6H(Nqz zubw-yL@hKviu~Soh8D+mnrAxixnkE$EGo-%ZtvM|huyQb07=#ZcWlpmy<+-`KTtV?6loL@K>ZP+-(6|qLjKu%Kv@MSLlovmBDrH*bd zdCC*T8T>!l~0xg20RjC%>$!11mD1$6w7-zq=4v&U}43QbL75*;n+PrqLy{+eO z!X9L?~`>%|QfwH;{{PwP_*@B};%*K_Xcx z9JHY_tNXz32>RV4E+5Pu|0rgUy;(o&%6}9djv=yPHEl;N7RKvt*H}}xwoKw2&b6)1 z@bOpiS)MR(J4SK`nl`rZPlEGk#bJMn14G6r<}7?HwVNPvVJ|>G@4-EL$^jVRL8J@Qq@ zgo~a6POzW}GY2Z7OMiQI#+hS_2NZ$Ysr-9Zs-CPVb!+Bt!Y>_sR5E8dg@3*_aJ%W# zL)MKeVwg6~FtrLRb4BEI)bN)(dhE+m;@Y4(lonxbqSWMM83Z>Cg||VLx*S|Y?0wy8 zV<;SJgzO%c8>eO_z(Y-=cQH~P!M2%Hf^A>szD>=1Bd=<0@(&S19?X0PGhcVxvzafr z@oua!Z`GO?0kcrK?2LZ*%(3H^*?0ClYs`zeN6V&f#f!=01$tN1@`&jYBnOL+8pGma*T@YTGIPp@Qw;&Uk4 zVkPc(MKYdqTR+_9|Ljw1nRbkyO_HJ-*)AqI%VoJ3`EJaQjehMLCzz+dDoZAGwg?!a z9rHte(S3pGb!(of+EN9|%pjMqPs`R(DyZ4KQ4mt2ibwKDOVy8IWH<|y@<*;>O5GEv zqp zSLFX5|K-;|k5B$|eEj3t_+S3|>*K#n;2*y_`P0eI?vG!eoE#tj`1PBw-rZdNm7o0l zqp0!+{OjlAAKBGkBRe@c`O`0>rq|%cxX@!+juG^)AgNtMCk{ZHoR|6zs&kz>4tfu$ zK7{>s6Z%-V-&hZk=kx#Q?a1Y}-Zqrb_0x3m*DNn&Ny`OEtj~1&+O)RL3BtZ+)y?-bc|gg=gR@Vc*T`FXbY#uaSSQ@- zfx-PirtF3C@8Yo0YFV^&TCc0RV23Qp8()axoUx}6=Q`%%RQz&ARdGu=VK7d$P?i|OM_Y8WO5s_I0C1|G5mw_ixj{;;< zz=0^7dKXkhuaudg6wUAJ31VrHd&FN?y0;;ZcazvTBX=HJwQ>jII-NkNDv&_z3@leI zr(kLi(yhBJ=z|WU;92uDy7bc?n3b^JVS~=k`r}h6R*q*CPX`^GkCHRmkRR&53Y}}( z)_0*V9nrW9!(7x&zc%XYnz(~$t+%a1yz>ehdwV8}#AaRLjkNJN9O4lKSd4wO(^>;S z?%5PwO7I&Ht2=}sR8eJ2v!E1ofrVI0mdnS^qI};eYcJ&;l$4${LN1jp$H`cV(I`QA zrn2g)#(aO`eE$?yt1CfuhGzivNF_61hwL<^%!v}TP;;q4zhNtBbR9rl(&WK>4YoI! zVf%EF6YHTI?sGHNM$b!G&E^n3V(WQiRAF>ayXkmszg7xYBwYxa^Tg)`FXbawTv`(k zjMue9N^X3rXS6q6WR&ORSTRPf9J<@WFeoETZFP&TZbL^en+VOua+@bks~XtW;ShID zRHW;tdeVcC>(?hsEYxA^3^0+(+DW6ezw?`G6>1Y~IV>Cje#oSlg=x6_32yDvTsi_u zvpw>(q8VN{olCm7yT-xzY_7*o4D_;i|JM}CO_8s-o^k~jlO|fWA1-Ef@KDQ)E+7M+ zb#rWZn7FjZ*!8rdo^S4MGm97O(p#Kj0 z{o5bR;-Emz_zyuLhd=(!Tx&gs-@h$=5jt|iJ!1a)+l@@`3YJU|RO)X%(Hf>Pq07Yt z3Y$ODjHh^lV9q7`H)k%fg%~Z(OsHl8u5!_xWs|rdPUsrT00K;or(r=oEhP}CF0x6W zq$XkSxq^fy2wB(|YJJNcuVV%@d+n3kbU9cNP}pY~`IV6RS01^Y-yv2)CiGGAlvD~X zUO_4WCW4+gV7p`Y3zBoC=>waPJHzXQo({N=fsnR`>=Y&UrF>wb zj#B6$Vxg~g?beFbYDqGuV#a(7HpyuU7*bc|>R!0?dqJm$h36VJ<=(I^&cfC`L8oCI z)rKttKA!EuV>@S>rc~2idu_j=zKEA~p8ZtIL`Rr_<|br;dIw(Jki445molU9wgb|Jm}A|5Dd zuQhXd_if}5vm;iodn4008|82#Z)1o$&;#Rz6sYL%1@LE3jbsW)bm#OjDx`g5eQV7l zkA1xzn9>-gG=3Q|c!ZmyYXeP;F`=-o8FF|RZ4cXIGwTuT#baGkyu*@>A!XbUvp9hK zs=;ho*4wKpFhc0q=`JRA*IcHl=IiULb#@O3JmPxMI;yv8>!Rso5X1LF32GnAX|TSO zS?0?7qV8fT(Fs(ZL91V!k=|*$ykI2Qljj4e!gQ9-o5I$-Zyz)6g#F-jV&`IkfVvD2 z0<}?OW~O6=CPD8rbNL5I4c>Oj$oYa1?maC7<73rGA zf<`w@KeVM0!vr>KXBji@Fb@;(xdqR%xVJYW5d;-QFpiTQXYhx+(!II;o|yw!r#gxQ zH9>HPW32J|tFioRs2O67dM*suTovax*EqBIabLsHURYjD&v}`S3tH+0DriQHS^0>_ z$nFO_pY&BP3R`0<0VK|lW-YVLU5SQBWTL9N4PIqTXr^ncHIq+QMTQ-HCN0MqL3=kzgi4_cdW6$D%jP1sf1F?C%6Uxmy(f_i=f!NPXLfN``>Q zI#z>=)KGD_&OrU3sw82|EAcFSiQ|nMgxi8Ar#hK4MU;dbrApH*s|$78jg!E2S!+<# zSOLQp2aZ79Vs(~9My*Zdky z*#rio=75oxukG28ShJS_Z5)~N_r$Wy{I`ojM#Y<~T^pYXjC|+HDe!DO%W+!DqOdCY z{A9DWf!{^>$Q1bMxHuZKH8UnyNi|pmZTd;Lww5OnqbS2RPzLJRXtdC--&psK{WWra zT;LwNvlqE(kWlG_e5Y_LJXQB`NKq0l+Apk-8#(ZKR?LHuLwV81dp6>FL>Cjm zw9SO%RK&M#+^NKFO2m(>ewgC41zuQqHNp z(s-pRZ6&@rpZQ{*&QTS7CCb#F)~L~yrn*wiTp9@&ke}J0==XIGj2J8^^4-lzJqSk% zQo#hIJ|y!Pq{szskwKk_`w2ge4L%L9rgjhFst!!(aXSecP)QCV5jAu((8PGE2}i(k zAlnXy!PfCZW?qrq*sO<|5jDdGWQ{rk+` zJKw-YzXPtgp(g;_5Z(^kre^^gu!KOkKttJJ4W(c;I0~6g)*OderD)y2QAMWc!?~oH zg;W;g+Dzubd1iaEO&=-G3^olMkPF3Ah9!;M(Hk`3p`0rj$S`1w<_5x9MVmXwKrakz z4I_!6nqVn;V2fy+9<-{};c&`1EuwnB5U|*(4Np1Q_&Pp{pKKV(Pd1C@Cm(BQShMXQ zaGq>I{=UI*LHzvQ@~SSnv5v@0WL{L71w5_gEaPd&KnARl&-FB?g3j334?nI08&3xv z`vH`~B@a0qq{Bh#Z?_g(mXDGZ2D^^ZP<@~k3hj7Y5t(zXnG2NgM`J{|ZsZ!VhaHT$ z81um1`&zrT1}1tMpzVC(3Uw=j@Vvm~1644U%fkEt0HTF+$M)0>r?(b9*x+d0>l?jhC=BzU|8c zrhx%Rb^SKeU4QQGX4_1Jj4Cx3wzjf!2uG+pHEiv~dBHe9L(T~UjHvomK_{DB*~IVJ za|+TPPa0VT9@yfAvib3(P;*|m0@`qfhav>F?;(o94T$>AYcV2kr8fV$g2*sHxJ${@ zTdCp6vp^mf^qg?FZV6U9W@KB;&;uC*EPS0~v)?1G$h9D{v>@96we7GtptGgcJ~!(| zwEH5<#l6a#qeD!DA9tM6PZF3BO(CX6Uzx zj$<=jOKNrlcWQ8(#T2Eeu)scXPAD>G=;RU92YL zoG3148EgDzZK**w1BM1y2ZK_NG-DVeOocC=D5ooY-N@E5HaD$Tg&sYy#nEVxHa{db zN7v%0PQBY87@pw)zosMj?PxtKIE=;Hr~I(3!?rbRU1SvP%KI{oE|0UWg4|v3PHn%p z@#7!FvIi+_qGALG9b)XhuV9L6n}E9>!DmrwWa_K^*SCQ4_h8|bQ}Vhl3J2CL!_?Xw zOG0YGMUqw4xC`B*{ct}}-3W>6PaR%5&v$Pxi0W9~TI3CjG&V|4cJ|>@W3GH(SJ|>e0sx2CszGaf zx4ZZDqL<`4_c})|rmQRx`1j0yK=_nYBFbMm>d0hOXH}ABBH^qO&3f&xFNmh)jA_#k z5mkQA%C3yUyDjsxw<3CtHTG1%Be(7=uvJ4W$5i&EG)9j(SF;ZbJDDrtdwW+^qT4Y) zuDBlV%@04kjW34uqW-3BtDj_ zI%|T+1=JZ35d$N_Qzo=ItED2x@I`mD{T0XjSkO1rXUOllsB^H@+hd5dId)FCS4?A` z9*DJ;dQKG2t4veDWTm=m(>~`e^k0Y>dyfZU+dQ6iPtCg%B1r0FiqV&69ZHv;`isT(#)T4ibTDyP_gJN*cK%W zJP#w0e!7f=+I1;%71kfGLDYEsj77`FUcIusQDbP9^^yH@iQGHJ$@7_sjzDJ$$l%Wwrsh;~Iqi*mxA&fw~V zYM6Ean}Vu?l9i9Vj?}6|2LXv<)2OD3={`-{kOL5OX~;-;7VJ-0a~x7Exa5#z{71|6 ziN>2#SvuHs6NI@d#^Bsvu>aKTV$zeAHR=G^8GZNN^<_L)TYuviKlpbO9EcH}%Y#}B z{O?sLk3mLmk2tok?N-@)kY)+16{441J!~uCtaR8scVAsx5&N_$;xzSut=$jP4|Z43 z*s@B@EMc`(BIWAgBUCspOBF8dd{8%HAuIA^(*j3GEbn;nid+d*m8`BWvOJ7oHg+Pv zK<;Su>KT-i&xQ^pmOd4<)F2G)3N3txj&ubN#I|^GJ#~()Bb#H?m!)wX7)%HfoX76{ zYhU(&oTlvYRHgLg2&U(PB%5oYiX8P-jlSbK&uEz~8ii`>KFlrU1_R6V*%3LGC5)O- zK{DnN|Jc*LK-T-@qd~FVYPO4Xmkb5=7Tkf2Z2Fh=-N1#pFec@%L=(Q%Y@x5X@t2p52WHy;*e@W zkv=6=MvX9odf)c_xV*Z#y}CGmcXj!Sd}T-AA^$uf@4^BeK`4UF`S0g2vh=${A>(VP zL0)ev$hF|Qu8WIK%b66`x!Ck-_0%)2ZI)IX#Qf}fYaOo69uCDGdxIpSBqvt@ac6Rq zFHq@{w4lAJe%^l#`a0S!F}^IZmX<9*J(;|iz~%d5^1`uQ*-8O+KVWPXl_vI02>I3p zk3dGo^>yAcDRNN0dkKeoR6wARs_w(dVo4S<1 z17=~*shvY2^Bn6!%za8Gzb!r2MIY&iT0=i^tpT?&fyHVZ)7DcPO=4X~OVX%+Yy-YT zEvoFSsI0Akqg+-Td)uA*Ii22KonOAWn&fT!7DK(5NDIkDcL3xN>g79h80Q`Yb$DzF zodAwn7BZ8w;q_SuKo%PIZW1XNzU+U(FW!Y&4jvv#a!!uMB1tT6Bgb97>xmuqgQ> z&)5uV6ml_Bbh72^#EZ_Hmo^(62u;8i1e2>o@olLkbkZP|f?VHS++Ban_L8<65*D))zBZZD z;=I!HORgZVUOY>(@?{Whfi*u}Js@tt+>P(PkBdK_-w;|E;AvYiZOiMvUgI6cRt;XE z{cel(xgPehy65z|JJ`3{+m?hFj&!|akS)=+ty`{Dwr$(CZQHhObCqq|<|^B^ZR^(F z=e-x_{&*QZGDeP^^G}Z$sowh69$V1R(6pT@OxmTK1PhgF@ye4@I0|^liS}UZbx%zQ zR5_~_c6j}7l&IzFpmYJ zH@)n@ycZ8MJ?s~oKPNHlZ(_~7*AotHdqB_@Juq?3VL6SV=vs(?uPg1?LD1ip5ho3> zzO}irJC#rlLX1sJ2t21qfo*COxQLyZak;Bk!s;h}c3kvEPH)ZMs6dWN2E7+)L$;Qu zH}hy4%3*(Wdb&SW?52CW-ofx~bj&6-ehtfXIJss5s=U zlf-CrW05JyOM#Nz=sAndoEmN_Njh$QCde=z?v8PVrnX8jF;y%217)`Q34hgISkEdf z3#FyX_20@51xK&NgKl`_1;6m+#3=`PL*ey&ijx^Jo8P8W3~2xCid+~ZkPurp!U{Z+ z5WBTpLX|&0;~cZo5tdE%gfb9M~>cu8b2sp3a;+j`+GVtQU!B)4sdYDVz6v!xOokAJ_!I1 zEKWRU$jot#W0OE*G#P6k7|JGX09=RT0Q>j!>E#x+oiO8f->9;{)G23x!&s8R4-)0% zD7${26#VP$j)f)Q4@Jr-||Cue&yC4&V zX`L01D?WxNU;SbyFij*blA`w&WRZ%UxiG?W$wbOWO~O~$_Jkx??XUX3RZChQFd_(E zuv-tha*_cb^xG6;=B~rMfr)6qoRJL9nn844MLwJYWK}!kiIs93me$&5um5J#GVo$z z2$?fSU882kloPF4kkpY`O^_r(a6^!mx1QrrUo*0hX(YP%nCa*kjblDTWsz4ZG<=<^ z8Ij6}-*NcW!9PEAOi9g^W+ji`5_H}5StUW5LJ%}1Kv*kxBIT3*FX9>Md3Ic;kQJasfV_;zc?xsg*K8dz6XQX?zklEN{Hja z04tn1c4Pw}?OG|9Wn5&8Ic-5aZ!8gA5mLKJ%FPz43|8GW7q{WfmDtr*$#K+TbK0&3 ze7w0ol_t^Vc9@K6L$`1gQkb|qZcIp_=P-z|A%LLd!jm>@^e{7;Sd%ws6Y|lcX_qwp-o250F;R`_}{>UWiX2r z7xKXcra2MxAlj=}Qh-VY6U3Y2MwKZQLDTL|V*{P3gN_xz+VfssQ6k60832#emTqQt zd%gFT(pa-;+Gc!mJE0?IlRb$=T74|;$30|COH7oY?3Q8+(3MP3wn=(2b>k~yjEj@5 zsP2|g_!rUj7E^$U`;ye)A5VGMV^eUHMq(|rPp2ym6@<(Re9@dciwYDl7+-k-Y-RYb zD(gb6~lbzV?5`$06h&E-JV>+V3vzpN7$WKpoJp@pjr!|hgaJ8*R{NRZX8B$Le zLe%I!z62A2%Q+YrGwn1zwx_sCz{bD}vGqX`ipoSAYs6;l)M!LI`ET_Mfj$QytII|I zPl0pQY*&v*+z{$-Xtl@ng?4G)YI{?H+q0)=b6u6Qf`u0#%(kT0t#&Mq->#@`1^Q-j zf}pM|nYN}4=u$@VKFV9~h~L}O%)wti9K0WQ*6-Bb@Ap?aq}P#J*>C6j#*c#)GP02o zKHsn7N;ft&zauifAM%P%z@PWGS25S8l~Gw)+3&}R03;jx8ST@0>XEkM+HhL%`xMyC zjqHne-dZO5=9O>@D{=>(h5jvRamR@dX5*s0l%TjFO!_>h$29D+h-Q}VWh#TKIEtmM zkgH2&KGv@bu`4ZOB|&WLsGPO>KYPBnl#v$TwFNM0rCBst>9_&k0?wkiU7Su{{G%C`J z4^r#gsGUHlRZX< zxk1hsQIO1-Oou!Uwr-kYn8jnpVbx;Cd$l=TtJ7NxOj6{^Wl?kRve3KYkry^CpD26%U?PenasMn}(TX&W6>(%7)Xcyt^a-Ew6*_L9Tq2g{ ze@4t1y3P@|l7o|B6ip_jn-QNDF}c1kvjuYfiQ0i?=edja<&NrIi-1^r2Z~x(-`=hm zqQAmd9o5`_yozB=S`Qevfomeo;fpj(vp0N+lWY*qDmH?L6;E zvW_i#*u|SLhK8hJPcTx$Szgro$?i+?Cx874Obd6d9Y<0k0@~qJ~EN$YzIFBJC0UNX!&^Ka#IHb+S z9|3kHYY0f4yZsun$}UNq_?tuI?d}^=@ucBesMa#y=B=WNuplWrYwm&_IfQP9dn2aB z%&4&H49HB7`APf*C+#@mC69)wlR^tTW~FJQJD->@?pYe8)MM}pmC^~;UTEp7SiHUu z$>?dxSAuleBJq<>GkTQH-Ke>%XZl$lr`(DKGXt)Hu+t8%8e(Q@D%CnVU>u>|8~5=; z*uzjxaTp8btSjk~%VfSzDN#(IV@l_amja{y0WZ7P+%DxR4{|9h zSX|~Ur<6SUT5i_xkTvV93^(F@7~so7_eNI8@E#PpjcWJCwBo4w#n1aP(9!iO`Do_(>+za!a>%GN@HKb)LE29h?`o!SQLP`m4|dWg zXqY`2QSmyh9mRC1K{{kutMj-@^;fB zEob}jlNX_Ywy;PMaDDF-k2iC%QSy=IH`%_p-Z#!(xUxEDSH*%Nr(IJQ3p0^zYi0tpK$)(>c-So zm!8{Sq{}noRNN*O#TzbT0 z>EsQTrE3B<;OfG5`!5TD<5jQ|><*)$#I%ZBAk*e;b#MB@ zeI%pP6xWjTUNl-6Iz8$?Y3+Vky{0)W@9*Bi4P5 z30JgEbUg{A21hMc#g~f`GJk-X-n|4co|?MMjCOL!;o1T{BvMZ?A#g|b1cQ5{g;=_t zvk56v_Oo4sIR&3h3j+BTN{$69Z4m|hwokr$5>sefZPdb|7rurN%rqaXx^h|X` zw}rIZ*R6Rngsc6^TU1}#G?}K>;O54UX)I{HC$HHC3Qt6b2{Tw&+i+f7maLCIyEhJ~ z>DJymdqXyMPBra%$(JxPFgu-6@XR|%cbTlxfCrRD3&v+FX$$nT5N(nSyrDL>3knDg(4E+)C-DMZW%|bAntZnX5fFiU&?NLMm%rW2E1k* zwq_8fer->$^FbZo51NS%>JEt13Jh!9P%L=*A~td3F*W zz3s&PSVw+JK!D(|2R{fmid&f38f~$yLHt0wpIRuPp-nC77wjlpG&~(hw-00r9y+!R zSjQ8+wOjQe^tjupEV0N_qcYgWEJMri3WZX1zdRq`-|b20I^IqU8}_jT!d_-=!n|y8 z(9^Be@XO`JQl;WW*ZLuV48fB`scqrOxKSoTDp8sMGytNN-`=Qz6Yu#VxT3mENP-ru zv?w9HSQRo8sfR8#f+}C8rt?G`#I176O?%Wo<=@UZg<{W4A&xA> ze^=RyHA?e7S&a@{Y+2W81jP*Znh~G;J|A0EK%@rbkc#>mlSrzZlFj;<-lVmt1F4sg z&9K0+56BMAGu5)V8e(dU9EosH5=%E@C&&OG?F{00W->H0q_Bre3rM=WmZ>_n4HdL`i z%GNI(qKS+uaHc%&6|qFON2JTPV!iJQhjjrh9*|%Fsa1+SEj8)#O6F-NVVkg~0$#$(1vW-%&HBtV+A z9zbD&K@$`3uPu~tpa}9n&=@*m@?`P(m#es}WJ%VKlJs`duww0h+z=US`fQbwwdr=b zVau$Tm_fT6q!rP66kwIp6>xQT zehgnSy%(0Q=2|UFKmNNWi$Jb#2eNw6A*P#V)uLFw+{T_f<#kGLfOuOb*~4B_E_8oN z0ZD>5r`xByqxymR%yorbRL%pR0cqw>5$Nsm^!eUmy8)9yYLb{L)@(-=(HzZ2-!d95 z$v|f{VCd(yC@x;JYBYd+k%Jb$7yGj?MiIGK8cJgNH!t+rVlmnDP%ys_5^kq%yEmKCGm4l@~Kr4a)^*0BODnG zj<_J`A;Of2!yRD18%>(9*R5>Pa9VHNNQU z>Aw4(K1+<%Rs2BId|4ssnjre`6iYPHv07?cFJ{$tyU1ggAok9aQV2HSfK8$jGDlt` zO210yjyFs8lDAr&=6<^}5AY{G9HOGjp#_|4Q!!-U5Oem*RzVn zGDO6q>J#%W=4Vw*kWj275;>%Bs{)zXw~N8td(JU2neBx5G=*bc}RkxwXW zpP>QqD+V9~#y!#rI%gO2A(AAzwo%Le_958egXs^47s`)JRu4BoQg$Th}K2$5eC=@+7DIk0%=yY|BUv;127*p&dn8{Y<)BT~C6t z#v?Kc=1>S`@%~KwT@gsOV3Dk%))DGUs(~`h{Dc7r1oPJTvsGy7o~UR<(^Uv+o}MvC zrmDfoIl5jV>7zc8C`PUX|NfaAUyETujk7&|(FA23Ab?dplSdcJQy(6PB<~mnq#=gU zt3}|TSt~J28jGEVu{~Iu9gUrRKv7sHd_5GjCCL%~W!4ne(xEl~?$@?G&{NznDJAi@ zEa+3J=q4VZU9+}Y#xP&A%xLhm5gL@%bO*zHt_p=2*R|)W6J|&dWJr`*gmtCe*>d%| zzh1ap%o@8!#&gJ5_@%rTGfW>-o==jrF=nG3Gj`U8&iMah+}Zkvkxn$}cxv($IZMU@ zg9Eo>^mu$GQnW!#u=I;ZtoGzBthXOuE| zaae$KkGe^Hcd{)DsGhe3=>F91DJDcYUYtt}JP{(-AJVq)U`Vii($~gVh$gkti$UKf z9p>@1JUb(H$ouyNj9@9aY-a2)HC|G3Ob)U#LqNCvYwbJAl0TcWz(~yZr0RRDzW8T* zt5}c%7dHc!!tArNVAOt%G;IJ~kJdrP(T z$AAg34bgwvQBCBuUuCAeI-_jNoIl>}56viU(@`}I5~~)#w5(HGvCNuopQV2s9Mzj! z2n@!W$PJ|lGKEQVjaI16aw7w08PgxcOg$dOgm!*Ss5C9Fx}Ee$;G~gQ)6;47WFIfd z{!G(F&X87|)}pfW3-Ct`=-%8I-(g0+T|wwi3|4_uj0Z~JrIJ}lO)%h2RYS;A;V zP}5&UA(76#A=_ez8!0sq9zc+AFcE4&$AWCcQ%rYy>&s&t7u{~h=ojJgN@WYr|HW{74tcLatUt#wk2 z%gPe*psN2z2;o6m2lrADK`D~^d>=Q}y5UX=)ddi7F^E;q>9hjH-Z(FYex2mDciu@@ ze8nP?>J?KtkfTt%Gm0!df8!2q#SD<|Q2QgTB21eGxP^+f9kN@mqsQ|-;M6gQpzX!b z>g&Vs+`|(M0!Q4(McO-9-nYv*b{Fi1)xZ^h3QN$=MbP#E_6VS;)gYK*0*w+mJ@Dufh6NJOG}r-vbNGLT`vN|$%_e*DmESZyXL&8M-c;%>e- z?{$BsHr2(|<|b-%n#%NN9fnCKsIKy)VbC8>^*bR9$DG?w4X7}s{tT_CU^y8UpDtn_ zQrM6UI;?2_KzfoBspTI(lq5AKmXlX$eHh4R_{*&z+@&M~(fKGykE>FyW^IpUH~+|1 z+xTlyT#1-9%bF$zZo4$%*IhT4c943@NI}W+f{90@Q-#rxd5eziKjr3j?+IW7=hv_P zE}L;=5Ewk4_xAp4hsSy;c{b&Bz8Z}>mR}DZyI2r!*6w)GBkZVsC~JqCkx z#(8G|ZLy@9KEwd{=KV$H1~Ju^=F@8FbJvR@YA{uM(^ptoy;IqsZPa=W?$yn7q?@7z)s#g!4xbuSV?*+rtX;L9-F4wCU&o`0yLmX1F z79%}FMUy|UjlWu+m4f*%DaWEs-s{JA!OmIGb}cFSv@*HjMLK}%{GWZzg}cUyep_zCe&pbbqLabS|mw8$Y4%NFGOWMJJ=Wn#yq3 z2i9A1N#vi11h1BOLJ~ShTHVy>t-IV+s8rkjnAv_)p4-Fz%}p%_bzhSBzod=?YR^Q9 z`lMLSz&Gh)rHV$h&Fu%hlSPwy57LeIDJ0UwQG62>l_{=&GwG{>rZnrb5CEp)>5%i8 zSQ{*8IrXDN*2=V{`>18~kZY8xC>MBR(;Ei%dz%PtyKtudwPbez z(36EIiDj|iCzH48`J$UP#)?ppq=zS5r zQsTykg%hta;TWVnym97HSIj8B^chU$y2RztkVjb0MkyaGW*_!!rdX)&&2*EC7OQ$P z`15cl&A*xm7@_lq-_S+J*~~Q0?Y@+7=ur!`!w?Z0BB19##QD}ns??aQ? zi=V@bwK{HKB|PLj&_#xCqz5ViuI^6=Ai`UP1w> z0fy5o;2^Cq_%cLigWHMB<}ExqpR=Fb60Q&KAw6xD6vdz7!Tpe!>w(0c9jTCYjMLuc~e1Id#Meq3l0^(*qUK@hts9GSQLI$LIVhjSS(=JVG?uW=&! zE0VkC-^*W)iE=L`ROzf8ZNHy4odbsr6;Y_~FV4z~br|i=f1<@Gw@&1EYi)>dg1iw7 zZ53tqF4X}3f?|93ydU7&x>xGq&2$=&CiM2MaN0$+qX?w00gbq`A?DIkXh3G z(Mjt|?IS;r&-d;PP4Dx$(a-a3BlUN{W|sSP?3Vkruy#T>qwD)DcX-JGAWtDP z;m5h*S#>nzLrBA(cU;%-k^#YgIyQKdzrJ`d;WupLpg=+6WX1({L9|ZdSYjc`G7Cf* zyqG3~6{k!XLTi#z@5pUrXgGcU%W@n%NT1%CjWhe3swWN26SB^z9qGnxCb`gc3r<`3 zLfyDU7@|2a=jS?;ir`4I{@qBaZs?hr+(0?-$S#9aqh12Hvf5eA1i)vkeO9~jX--@T z#-Ndbp;*>V?ZO{299$alv*Ptxx^Jjz(xiR8pQ}Td)sYovkdB9=0py9>0dL?@dbaoA)27#)|BF@QtCNeKPVq z4wCg`GGbc|z>5X#UHO*s4VO*o0nh!AbxA2Gb<35QdkQ$9%J?18BccYq3C4XK_fB%5 z$_i>0<*$Tfbw(r7SGgX$qb3)OC25P*w|Ve5!Sc)Eod3FKwbvmE_>o7`%oxcy{KHte zu8}m(Q472nqR{60?D@6%Ev4`>UMv5#`Td7$m2z5PT-vm2q#o}7VVPLkd+YrR8M3qs z0^Bg7{qx7oHMx)>y|ME>xR9J zPwj!`Gvk zI>7`+v!z7>3bR9Iax_wSE0x%>$N+-BGT1PLJ6;y&6f2$kadhPvg`D$XpQbH+foDN3 z8sdJ7E5tKjSdF=ohzl%yD|nWoF3`%m3X=&Uk}+q4PF%yJ<~`2@c}$x(AQxXaLf`eE zS(2Y-j)jy#TR{uu#P+HF?X=6~o(ifhnD5$V%DmS)&)Wj@EzW_bg;X+AQmdti@N~rm zO*ngv1v3y0jpp z(n9UBgo6?{{IZ+CrmqnUBb@+)q7{&h$Wc$g&{XI!u{|j}-v`+Z;`n})WK&ESay0eN zT3&SuE4n*SWi{W0^h<_R@db>-r$0vD%5|ndy0i(ojcurxp*QP_rSNN!62yfP=c3XW z#)AC!qFNMOJZx0k5&VwhC2ef%H%&j@+r8byX_Kp#X#8~}(}4%!L&5yyroDP3bYHpp6X1UM3e6NB0|97$q)g@{6^5jdB8`IBHGG#^ z>B;j`NVYoS>{cavewFpGws}R`95R@pKHF11=m_*&^oIj2EryN17XXKu$_Wmv54{RB z25PTmw?t$(mN~Hm2TPg+TN^t(-bf=$dX(eOAwm$;*+>gcyEa`-ZEU|$VH1>=MrSAP zJ!JR{f=-uLNBXO|4(N1_>=75j2E=-tb00hy1ipl7iD1!B+SwlA=&1t}c0H zWW*RKQg(~UUuupL8av}U$_eWa8dqzuBSDQfLt*k?@i77-o&b=FqI3{#ze0av7I>(H z=du*t#l~zB{l93$k8??F%)zOk^nu5EPpkp*4yADODf(`kP0BISbhYrEc$gKe7}1ig z(6hDw3Xo;V70Wp2@|s$yoY{V4#xa^9ct{k&*I533iC`PAZ(e1&OAl3Px26+q(Z_@PzhYYWpobTRG}Q&0tg!S0silW-=N5Rnz5 z84|ua=Io&+!}mxpjdz~~dgo31>>kNq-A5U!!qOMSR8LTvq*J6CRn>%t1d%Zp>;hUb z$WKD^7?=0M5)@)UK=E{9RA%kur%bsCIH=5aO%f*$z|rl^^fv$w!VZ}Rmepd~*M>v= zg?l(o=P{BREmkQ57TjY{m*V`#_&2Tt#@OjGz)6W(aMGY1^%-HMMTNQOF>q|`q=$d; z*|B;YG{dgQG)_IV#x@tDHT+BO$cKddvrFn zf`4^cfzP$K;s~F_y259}6+8$y+uDK8z2S4d^!m=u)Mh^hjGdZ;lNJ`@q(uY&b@*@M zH^sn7je=s?R%S+|OYvq8RAO}ELfg$W2GJH5YzP)&2B09*U4_x|LRk`wMw1pxa>2i9 z&PFwH@&cNt+Y(eWSnHO)j-Bm(1BA*s7XMnM#AlX>5k$n zRigs=g$Jj3fyc_=>FR=7@IEDZNyE;~aKRKYeS_bzwC{$>|ybTR0 z@!tG4*uXHUC~E2|qu5F4z7A!lT@n4EzmUF*eC8#zY}77!^$f6LqXk&1xP>eoSRj^Rv&^MS}#H<64=g zj-#sNXt8V5eZ5Xcun{V^00S(}+%tf0`R_OlESuG+!9kG*KbUy;1kJqJK^p;uDx|<8 zTjKqKtO^bBQ*(B04I$8~ZSew8edwvHYC#8xqLH3gDB!HOzCIA<4A6j%k1DZ0h1Y=Z>s)|!u<=yU-57;2|f3STB1kI#+{-(GK$ zt+;3o8&{+c2?Bqd?As48tGD^s|5a-WC(>~Vul@pgFFRc(e>iG^tylIQQ`m;!BM8iQ ze%JdmB0&@(z;h}<%pD#Ko^Xqgh$}phha)`j>wc?>&?-lhX(DK8XA!A(oSdr7Z0gs%u7X7^W4$o#_sf!7T^*PtYjy) zDW}+U8O}wnX3swW;RyO6@>^OON;m-w$DV+R8KijX z!jd^>3vY^Jhn5oxx=a0Hc~5_oqeSIfw>yT9_xm$?13Maqmyi;g@TLP1#q zm`d)~@~TgGJ=FTKp}-pIvqKW)Q=wy1H( zhCRuakteB9eIJwaLw8W&lb{XvXLUx&*)?ut@@)W2OXC4iXBCs83hsV=BWz?_->%zC zrm~L8X%aw5y6f``8X*C1v+ABAM7SkG0nEaA)Ri&+pU0G8Fw+V&j1O)nGs3eI@@mA@ng&SDweKYj-BjB~Zo#=W7X+pCEu zmu*9qXDw$X%BB?88k}LQIVf#$2i8#0k1JdPoZ$?gbm(^m`R-Ui`rHl?e@St0$8pP=9K|L=bf|GO%FFXRyUzboVacXfQlUsyNeIA;IGuTbZPLW~#4j>B=( z#r3~&yg{&n!J5iawFmHQLBfs2`y{m7_qy7ivp?XqWg7S5o!M(o$yJDat-4w3D;|`Sc z6MF9PZ?*d0={itrQw~ECaux}+Tws1nQaX)GV--aHao0oA zXKkn5PL3~0_K(W1W@fhp6xBpn*#x$UfPNf1i0fg3xHM2MeI988i)tw@_pABpUpMQ@ zqE`kQ239+=ma7cvBLpyLh(_DZTs~-<$toysKO(b_zW7$WvB_sZGtLZ=kYJF-cPBy7 zkArY*LO5q^&Pj3?))Zjv{vk%^Tcxwz!>XmIF8pjC1tc z9}nS(40;nZ=t+$Cu|~XL37Kk(GF1MV7n7nPc_%-svJ_)!9JJ3&j(SSWR`DH3qWc89 zZInDKjd?kidHYK+d%T0wilj^>b?pGK`Cue9STTc#=p8jJQC+#wml4qr~toU^+IyNhJe=W_UJa za#*?OcxQZ6jquDcKod~wt~z|eZ6y`&URcE&NpgM+1vcT1C)51f4eAob;}b z7&q-7@LzX*L^$dF010mTh@Wt2!|{@)@kdP2O2BTb1c&}Cky&46jYEvru4HbLNM*XH|W|y4G-S8vURZOoI64OyY=u#Ob{fQT# zva`X*?=Hg(gWT0;@Py1a=@$qEOa@_e+tJWU6p9%F8qh<~Huz41GbL4{hlbUM_)>{? z!4Q8MflXLkX%bl&qH*%fINx+lRi>|-sL!Hx#2Jnnb8zZzFu!fa%~T*_1p)4qG)|R3 z5oakDAUuM5z$Iy_(i*dpnHvwRDfmts3=2Dy9HEy7rF3)PP0;pTN3teTVlR3B{=y|I z%BJaE9+^b__1Ql^pEp0B zwW(%$cR$}VKLeH+oPeEYa}$k?wXX==UPVXmn4mnZQCj+<$(~pv-5jJ>w6BX*4T{hu z4GrTdM=n)93ljm|DMkG#N6-2y#bvpc00PgU*{<8M(RFhU+nf*n{?Vc4a6sccOR3u0G!#FV@%i_LS+2>2#b>T?U5VR zsP|w+HUAD?n$E1qmt~Vy(f;VUMgPe^8~`-J`ItK~S*KNR!atc8xjf+@u&av0B0>A{ z^znFl-g^3F5NxpKl&!o%3VJOra#DZpaFKiFs3z#)`uX{O)Y{GLXlMI>zgyO5| z2tYqebk8g_G?C)$o#N6L!gM7DqqAV`@$u+~2|XZx$rM!yaPL_HRGdy<4o6%74boiX zM3v;(fdKkoUP^pj7c@rBcaz((1S))zsiavUAhiSmpS)=75WChFPm|++^YC=^cE5aT z5_e0@D)fZJDf4twX#vupQjQ=&?bEvuta(nzhnylo*VkKJ&K3zN$3@PwHl&A+q-qrV zj28-V|2hF1v-gmv)ZBQezP4phb=&^%h%&3jSoG8D^?QwIU~a}=)%zWbR+WlKD-CRx zWEC(QdBJGNMa2XS@iGP90E%DnHKOO7x?d{JTZuE$ZL?CuZ5U<&O~uB;dCWN~45daM z+;8V{{_CcSCwVsNZ15 za6){6Xq;q!Dm)34o>7NG`L3>fbBG%d*T3`1YZi@ZlY4sZ{7@NnzAKr!h*R{RFnTpv z4?apDq)D7olwMD)%x2GP?82|g4>g$pFTst^6BZPzsp(s{4<>Y17EYbEjjXIRD658Q zkQ646E>O%Sw?V;=2hE-YAEkceN46|d^lq+JI}uc+?P_OzkC67_qfa)66*WWz*h+8@ z!2cGNi9R1lOgn1Oe&*^rFt*%(jk?9;zV+S?4)0d#6#@i~+ho&V175i5#PHnX(qEm2 zrF6SH%+-nX+>eG~BFyp#A7VJZ&_Dw2&)p`U57o$e{3@Bx;b4jk?`+6W5uJBpq=C?T zaE`WnLeqCyEtOT*!wu3Z>B)(yHc;$bDj#@QAkHQVbL5~ZSg3}m?)~C^?k{pj$ox2Y zzwfL+>HNN)?(|4+1}WzWJWNecBT?CE>$i9A*#SdcCScb-ji@5~ zv%jL>68*gyV1%91d7WFURk0uOodeGjV@uYw;iKG8t**-SWlsV%;_&H6(|(9_uG3S3 zMO|xh`JkDi1XNPlj|E;r6CGNAu-Tw{w9GT(xrwxVP;-Z_MFN}Dge?3@SNsnK8b|93 zinZW8xypMz`I@bX|r|0i@V~Oie~Xdo0jQt4uRhNr$Og9Mo6G9gkHs z3TQ;(Fy4XxqW9>yWJ7hMr-_M30uFX9UX$B4H z5JZ1Oi#GynJCgLR;q~DM7=JaK@GCYSk#+(`kYy(fdrtl?4T;LsO&P1QV}Ei@YvPmD zupx+ok_(hELRX))qC~j7fHN1vf{Z={64%PVsb&n6q+`Kz0{}Z?(Wu%z!|oSXzueeK zkfv$2!!7Y_*4I+~j4ERx`s_M3n;EQ$2mIBflVw=Dw3w5pxbvvUx*iAW8>7Y!KvXt< z^O3o0UqVYGlEepqovL0w_^toJum2TWyfXyb|6jB7eq0lq`~zAmlU#*3@W_iuC-&+mrdR zU;Zf79yWa4+6(FexjM0B`v zcEnY_WDEp-#W6@=A)B7 z1ZRoY-%0LYP&Y7C${U+-K9+S~P`)TCDrQ8=Q*__4`LUU zs#AKY&^z3H&S?9u+l%9#zo)T$g<-RXY?N7C2w_I5H0wJ;{ooki_rPr;1!1NS!;_rf zEyA{*WPdaBX#Z2SV$=dsa^_NG>H^~1!;KsO! zTM2zJcJ{!-xUtaCSx38tYHELd`eBBl^;M!kO?}BuKcR#Cc(hNYSO>1-j)S)1wQpV#?Frz-H7iL&|9GmAE68B7syy63vLBsPk0g3CYb9YqkKR+v z1A#_fgdfr$8yB;{(3oLRBSYvcx?3WEm?X}jj7wF_kKqM9DNU>8ygzi*k~M5#OiI(n z15ZlWI@eelc*cAvut^eB0tGTho4`LC5}-(Dkxd;EL@#IU9g5@&K#`lqBnU=`NkcWp zQ~)L+K-H1RBtbT270KB_`qQ`?6S)~d1j!-YQ?$P{BJk$wtcoaKg~Ukw^p7PTs_yj0 zTsvXIq2`9+uT3EzskWPC$f^{eEGneU!x}hItRuO|!6vNFe)OW0>WZ%7? z{6;5Ko&WAaFK+^!N{g|F(j&_Jn(pArSBX-e+A)ZxkI;5orC^uL*=*wHm)*}y5B(j~ z>&MQwlX9X*>-DPb+2Y=xUH2ePO!exd^*F7FWmewip^mRGvzwXLy}l#tap4x)8qqbY zJxXaex83I8mIpc&QH*WIXIyD{*ZYXAkY`+`@*!P!#rgCIK-9kTk+jQTa@Oh7q~ z*0GTX;G%x0PjvWLm1=<1N9>ZQ`t+gTZSN~bm)Q!xyoJ6~a~`N-!+|)-PGXJtRG-RL zxW2YE^moK2X%6@GKK5GFMY7R}?H@IMye>W-HRRW?p(h#nz_F~lm$y!!HK7yByqO{F z%NS9i3KI*cjpO7)AgmxWP_`m97AAckS;NT3KYS0(DVdaUYeaOQ9EBuQ(`A^0H#zZM zYbxE|@lFUGY>PGg|Dy6xPf7zKGJVkk)^Cf$JTuv2Ebz|wv9j`9K&B-=@+%Exv1p_!JVc`i zRq4iL0t_3Bd|UiJDh!FUyw0thu`FHnnFE3-+M`i484t}(iAl)WTmiBfVYT`HHqN6a z9{)|x4n9mYSi8(Xp=u~@=Kpy0k*lu^!}yCTy7@>v#o`R1@67Jx_yq~%Oo#-K&&x@Q zi8=TofRkipIy{$oG^cf;JQ^E4TFE>*6@nlofbrzEyd#3# zZFq3d@NF3PtyMCFGx}r6?O{rF#Op!5H%%l3X0MSPkd?`8-2a9r~x}Jv}Ms=H{BXt5v$XF z$xyw2Fn+Vfb#Vp4dW&R@6+C^2!E=c`J{S>Z69J+YRE2G?A{`2zaM8gFX{BZxzlBrKeugULpveBH z<1glZ9j`_7M067^M-3B#^hO%h%i7oswW+jwvAl0XMlXjLE`?3HKFHHQU%G<7BVdmh zfn*EVYF;*zOLf{nXEZOZ0C%CbHtWYZF0x3sf0aWKF?_O@F8|3V{^PAYy7?zRFM?Ic z6>CC1hf~#0)Wg1>6Tq1tJGKfv$+PdErYHeF()bq?tPOH-rBm1x{y%hOb#$%Ii zHA^DopJ^Xn8sH8>stim3tPE~_+?l!qJlv!tSP@3G&*9waDI`2f`ldBbNVe#uIYqD| z^(UPEk6RksEL4DL>*2j54wj-C+?&enK0(fC_f*pH|4an%!?dH>u%Ys8p&f^wAhuzdz`;&?($ z*NnBwRI?8LFq9aG z^QK&)CFWafEnBvQ>N0&;hVXcqYKFBiOZu+(CHZ@T<~k3Z<|wWe5FtKVgHak!M@vcZ zO6Ct#Arq5Adi76H&e7`idp-bJYxNT_OtUs@rbFG|nGf~$DWJ}NxvMYJrcVZya8UiM zOJMv-PRSVe4TL02^QdaYn1)m=3oasYg=b0Jjs2l6}XLEXgwx*GTkU>XUNF|_!JB}N?FMV~{-825| zI|Bz{AWL~~sZGumTJ>9{!`)uJjF$heS;qJsWV%A5@40Po0E4_xB^E1rJB+O zI(A49@gxZ6fyCb|uFJ}~{grb>u0wss^gUw&j|VrcBw^I@2b?Kq1>ff65B6h+bE&lu z!XR@tG0JG+CH!^c?lI6|*%LLjj_*ur5YmEn0S zQpy~a3nPrlN)~c~owq=zk6E8E@>u}|)U3-dJ&1(Id?PE!dL8dUh>wZ}keePleyp@` zPgja8m~O#E6f3FFJX6PH)@U!zD<*OTMpS)q_ZanxEfa%Hf?4y2xgl=1wygvgTDq{F zA-iD3vs+Z+3=Tbr_AVJM^zv-UvRk)>eNf&l!+I?WaT4Fi%p0%^1fDg23^-_s(|2U3 zMFVJ@v&quJb??<^W)TjR(ZV-`w!L;k4K&5NHsp}OsPc{QtYbIlkQ}`3hi%Pn)0T}` zSx;HHq$@^l@41gpMq$OSl0gk{$(d$#$pwQfWwPLRmTZF#ssi%i9}_Q z+Py}#-5i;%`w2@mKs*cNU7HC2Y%W=9&E^wB%)l_{76}O>3h4P7L+x=fC8|N&c>*R7 zy2K8Hy_lBw+Dwj1iHX0mhO`i|Fr2PtrMyFyff>5AUU?K+p*YHQ%eP?o*qM5!0tAeg zo$=OG)ajN$0fVfuZl(tM=A~a9OgoH8t~oWXT{w~TF@z3|gcz$$T^BzAK$vMjrStxu z10TMW$VVUI{C*5eydxRMgvUbAx`ujZ)b#Ww#VDU(MJY$YQd)S?f3%u~QiCp3X#X0^Mj zmUkQ~#b{70H|d6AF-_gjKQ0ypyEZGGw#3kAQ8Pvkf^QGVAteg_ZVB~KR5H5)+x2-v z3pauxE1}>aMF6SR`sdw`YI~bX_iQf6jEJAPG3`L;)<3XKo!d3V#J*e&P_-9{c4JWIGs)l&D?4<| zzH14Hox4S5%;>$bJP(5DXo0Px=QNPBq058Lm_e155gKzQwE1OyYzsJvwgG-svpN3| zjd?UQ_rNK&lRI7=05V&L+ccBqN$1-s`9|QdEVo4}jL>8VRDEZo+L_2Fjbe4GBw|QH z7>kXjtX4?#Z0AKN4ZWCpLlM)*o$NhxKrth7&(T@Nc1*O)sjZWNOwVc-xfIODQXyK% zCU>;5M$-W*6EUD0iPolrp&SPSu~_-_ch}{#bCB%0vYL2q9TQz_j1h#5&E8X;EzLEB zZpEG8cZxM7An?kd{*;^s>)UZkYxL>BOdUB;@P&{yYu5qW1Ea*)*#52f)-e zC>ELUYio6aV=+^9WA28+f?CpO(9T-2tY<{5Eh8yUAemb3Cs$xSgv$Z)1{Twa%Njg2 zTL=a@5-`KCU3w#ORu?P8McL#Nf8SJ7RghuQW|s`8wOu&4lUO6@$`vabsYxLQ=WVu4 zXR%&^wW~(K7`Gmq=-h~ZV8njinUpGo%%rsmgEpcSDH#=*_6S-Q&1z{_S?4xJU9LEg zGqt(}w-QQhy{Et@gV>6@SJTga0VcE>nFSM>Y-(ylNE^l0llXlO5zLRvwP)q5B_m>C zA#bRZcUU=zl6eEz78Kdu+ts=T@8^3%0QO^H3nT;d0^?BxY3~Kqb6J zIxq{bu`G|31F}$?Bo<^~!Pr40vtOWf0bgFJt;DZ;J)%l@`o)P!*=fOUn3Zqy=YgPM zeX5BSnNN@yOq_>o(gDo&k`Lq~h748v%6_~t^wFAdk*xa2DfXd~VfC;C59LoH(r{Z% z18~Lq#`R&xdZPfk$d;(}!$2OSD0I7fHYaKxMHt--ieNMoflujLXw^r|nEml){&X(*^N)|K-`_SD%0W zOQ5U{N$>CPr<@83;b7=tfJ%W58z(SF)E5hGonPpkBvzq|h7&FL2xZ-ya% zS`?Om`SuLsir!KIEXq$EkikR91?uNh`gw7`K|X!NJtd25U`=~XZqBYA zfmB{z^$B(4+SyGGZqBX_j>*9{=jK1)*uFlyxrzj|yCl}Y1u9kM)Y2D<)2yIU*>x_X~b_j}q&!pkBpUH_%R<6SI=2vF2U;Xlz zpZ{_i)DJdPUw}yc!}YgkKfF7AdoetXBkw_-txoJoA>}R0NmD^~2<$q?{U%C22mo>= z^A|zAYLx7z;q+_#%sWtqIV2v!3p3=4ZgFFBNQHH-=oKkxl|Y);YE@fv$7W?2?~D7_ zcT!lkZ`FbXCgsX(!mygK9~)XYTTHl4RoGr5+B{V=E4W&|llncQ`RdeV;q1e7)HgQaBIg;D96(!= zSP{BlLOV&0(ZXJeQGwDRDjq@WTp!DORvd%ew#ij;Xv&QiZg1 zn($t3jZl{;-N2nktDqs3fO0lS&wHK+qk|CwAPZov4NROMHeTwuo6r|{&TW^;Uf_}- zBgR}(5Y8Z38Y*4rAg{xf*9g!GB%pY)FNpSDO-B~ONOr4U2CfzxJMjss7Y*R|0Ph{s z5Y9b{DaEBYof~09?)qYfQk~-VVRO|Y^~#xa%@^_*FdOUL=4y$0wTY? zY^|+q!^kAF(!3Ae#F! zA8~qVexS^rY+Tvx?8yBjwh6OTM4ACfeJ8X`cXFjQ`|90lg6h3K!&)w;>kH=Lae0MQ z)9qJjp53lskYS|?1unD$JLUR!FUf!Z@8q}t`kP<<;^oUjBh9@cIb9tY`s^y*TbPo6 z{nvofq)c}nrZX8z|LWy$>@1&?rEKaHXVn->*ce;b2rVo661=hpY7Xb>b2c%nE{rs6 z{RYzxl?+nlh6;gU^d*X--P%zPX6pxjgadD;SA;r)!o=5%59+oWJP0Bd212A{m@IeE zk*f)cd;&wwY-RJKKtR`ZlLb}v0|^^TvPboft_W_s)q-HyscGvf zvvn$@4b{DK?huzA)>U1s>TA9SLl}ejiT0hE4ip2>OA2k`{d%Gp;1K74%o<)`u$;#V zETb48hIf}iSr;t1FiY6JKs z=EJ#Euuf6Llw`1digxxIaIu*9_ndeKO3m)V-B7iBC@KGtdiigqf`%MS=we0W%!ZlZ zz-#Hseek@JRZ~#C;TGHy)hudt<;4)gw zHz3kF)xZKz`?p=0NCP>07oaQ+5TQhGh<9tWNgZK0cY9NM`BmZrYSgve2yrEEG63D(e)ofx$-j_48WJ=M+-p|wyi;lNtQ&IsoZm=Zy z@2m}6Ec_*)GudcYEx{gf;wjoFYQv+0lD0!XF6oCiOf2;BHTnFrU;pYi`vR*Y&|jhT zwzmaT`;3L~<_zmem{Z?gX3@TbWt=*<>7HT*9aNy3Dh1?U8gW`EZNwkQKi)bSSB^*( zEAr|y%#(+u;a#1!#QD1q-%qz}i7WEY$7}25&;r{KygWvk-2+x!+mypeH(N+2^ZOYQ zk@2fv4B;2HFnmp3CSg{Jx>_@;_K!|DYRi_WVGxU&mQb@INZ|{wE!K;GA3FDsKc*MT zlJ5~0`Kp$A17+&uylv7F(0#Bxo12dDfkqF8Rx7?Xg2-KBNl@ewv*ZV7ht?@UPESy8 zA@KcBvS?^cg=Q=_R6T_}Ia^E1X=vLJE0I$5l}`t1H-gN)dihxb()zatUTwRSes?#*S0TE$L(79bN~$oEa=wiNp{cx4lFT- zV905h!8_O>&OIT^e)X$l{5<>)vGDuD?RZrqS<@etrVYb3HPD|J|fT z?CJMEKl**}-O--VJS~W1Q+|%VZpE+YJ4n={uSAqG_sT$^=_ihEiLP#Z=t`Jkw+}0D zr!HdGMG^=vO()^s8>C|Ni(}_~uAB?{p}rq37B!32HW;^Y0)^%lu1$(9*<~RBu5J5e zClqH507FE?m3=h=m&k1dT ze%Ohn$3uyV?j%D8k?w&bzGn9Do4fem2>F8@-<1?yb4#qlFUUPSe|L@QQ_?(#ZMBBe zKV6Tg?&+QpA;5(2>apO3{)%ysa*o=ufcom}!UzsuS4=?Vn#YFPK*nnO>;gD!IoYX4 z=wj-?H;hO4q!KiI#@uUsSY5{= z#nzu);EvCQnTTM(AA;T05uFvRbp0Jz=Nv{1Z`3_B5jfTiJ0ogIp~QPx6{~gF;!5Si;3uO`KFRpZJ8a;PZmt zF~O9AOb`zLvTK_d356+}$Hdk?-dJ;70-IA_G&Q?f)=VvB(Sz%qeZNIt1{lLx)@Xjm z+%Q4<2S6p(N;9yfn_sh>(79%{VfaQ2QcadImiHC58m72I)YY~aJZA-6MZ-DM2JcPmu-YuA#k0pkk(6NHhhc{+2jMRa zH-fHgdhI1Yxr2|;S}hCf-`xV+H9;|dp~Clp&ID;JLgvi8LANy=?^Rb*&JL6KbJUw| z{0cy8*P3QaTU`vl0pH^a*Ma&9WC-=Z76Tl3RWS0~TedpJE)Q%zXPN$85JKX!jId0G ztjTZPzkat3QHGRmoS{#wNfj6`V3bbUB(pom2{6?}XUi$MfLM%@QDJkYAh9ldIbuVF zVmDzC5Th!0Bt!B}UYnC>3U*Ae-g5g1D7x?D#RtQzdUd=(>F}2I=IEqC?2l~aWNF;` zEnBsb7%h4SSypk--Lh2#ZdfcECgBPl#K$cPxq$zR4_s;WFNoloEN5KcB5+D~hA?a3 zUN?WnrXPf-TgXF!`nB6oVEv|MX)lZhQXsup@~Tr_zaMDWW5F%Xg~l5YVXEnm4K2Fy z_V`i%HNhX76Zo;=ceJn;@_Sz78LiQnZd<}B=_=(Kl9NSp{v5q&k--}JD_U!wH3hAS zxs?mqpK&`J&FV37Am1hRtZvo^Tz6TZkN^s%3-=4Ig>BkyF}HUXId=re-}-JnqAjHl zjsgnq@8^_!;R^}(yVAH10E7y=c8&J(*i&k+ypj3tSWOOXNHn|SnLe75|IKO{?RzHJ zf`Y7VFQKblp|Sp}(Li33Ll}C1Q2em-Mu$eV% zu$(nou-uYBPxK(U)ZE9gc6sZ)ax~K8%D)>_qoigFxKZ&Coq_w5pptG=dR>F1>&j?? zXOMjY_kBQSy6O2{TKqinPA(P`z$h-oiCf4-!HAQrUCL(qY?{o~yT&%_4YHmj!8yGo zwDklaS(}#9N=?|`&aHYEISF#UuLqLXQ_=cOIG8Wpq9vJg(QXVj(T~rzh5&6V^>JUY z(hZG)YK^dUZ`-ba&{EYaBGJZZ=q=)P(4GdHhS_FcxhyH~je1IP`oQ`xu(wJ)Dt`^c z>p$%J&$_UP+L^3*4=QG2x3%yS0ORSq^LSGd_VtJ^1zr zL-CLh+q11CGrSxj*!pC?lmo+Oo1l9sj>$Wz&3^)!_gpgdPHOmMuh7HAJ_hWpjKs0m zyWy%}dx1qc7;O^{E(O*kFd#@VpNHYWW)i1V2`MHRk=rkVn3+P*K4?Na8N>$TH{gJ& z3YxK;hXjoB!lb$<(mXX2b9n~daL1J3p%`>! zq^use8Hff^=#8z9lMLrES1VX6vZ9h!=34z0O`0ij=@gcRE zK>U^Q)o0ox_+unGHWfGCc1CkjimlC`hn16zAP+pdEgdQEoEf}#e3bnS0dqQUMvDwn zSP}AAmZ@f5rY@wsZ7O$ikQx{}e=agvTIn0t3ksq|r3tEu_<4Jj6cLCLRDF)a`0#O?#x;uEWOZwsZmfb)6qQEdgr)=y5wx}8SO7ZLg z7i=11Bd{%V&`3K%P{2_B=ldlS-v~uDS94Bh1^d@?`A%wQ4*#?3&4siWd!1HBMTAnF zIiJs2%|xUq=8WlkX7gEFeX^s$I{dPAQ9Dhd;RY0PMhlk~*T18ijd%UZ?Vpha0I%Q+ zJ}a12So=+eHTesxrE7=O4!Sk~P`3hGg;GJ@a&eBI_iy1#b3ZWJ>=>K+d_MV$6m9cl zj}|tFR!i~XxR!BWQ42}dGM#p<4}JfUz*b;0i#S@Ok_)ugIf#_}kc0Iw+Ad+uB0 z!DK7KBYNbeexbnRYP-YQ{+^qqqu`3XbhdZv6il#h_eSUq+qX-9-yh5h{78WVm2RPG z>jY@vR0pUR5R&UP z>nJ%Sx6vIjK6fhewxYt0yMeH&NzTohtVE;pb#RUP4JkfmaBQHWWS#6SiT}dTGRa1NX>{bQYE!;1~mCU;iH{Z<^%6fyOL>QEL&B>wr$IQFHdnJ|q zFjpaSUs^KWpgxt!zS|fvV75znPwp8)9Wc*EnT5+ZF@Fpy_t+uGaWgBMd2VCxs==VC z?RkaK>=Ci=4^qhbHHx)n2|=Oh-sM?pnH5bQRG4ddY=o#!Y!T+yL!*1mABsljooF$Fy(mluIBrHZ_;P7Bqqr1^FtJ-R zFX*nZ0Eq23;5^?Su7~4AF&(Na+Nhy*?CqUlUs#QZV`w!Ld7@aEoE8$SU50|2k63PB zoXapwHq?K5r&>aJ%QjTxxPzvt_rL)t0rMXL%W)+?c{Fzj^T&rrPu{dcIU~?511<}v zh1Sa{?9Qs2nB8g(&{jC$D(VG-ZqiWXD5FJB=^td2E}_>|5_U;p|6-vb-sOB9wGO(W zQLf&=!7)PBU>M#xy9sIQ046|3)oruMpoKtOrhEvIwF2iTHGq;YgUhno!oF`xVT21)^40s7zeKemoAs!=I~ z{aL-LcY*_}a24vcHSwe+B>ZCiy|r{N;Sx-SvCz+@ch#eaw^$ zy8z?*=SP82|MQd2PF@`vSbTP5pc0tnKMTzA{+D*8k#YrrVIIPPpbp@@taBSPY!4SZ zCTVLD;H6{ISlrUz=6ZD^UlAY_C$iEfswx_BdvZr>atC8?j24e_WYve9xT8_ow^?DIC!85{sqk&{yBliwQQ`F9&5q@@Vp zRqw{YVt-bPL%?`3LleT{w~K)@X8YEn8f=8AHY=O^R<^rj3DA3WQBb9M_C+DHTZ0!5 z7Kyiw*@1z8l40ju-TEeez7~0ym)hU2+-MpF^no<`4Jm21M19S==v<#_Ymevw4nAYM zGvL)Zv8eVldaoGnc4l^KzV5p5b6zmar1IrWAw&>y5l&zw z8*)$4k^^@n9zA=*tJma0sHSFZWc&IwMyT=?QLGsUj?FgC7mI=XE_^OfT2-&f0sEkT zad1oyKFpQ*kI-{G3nu|GS>+1-iC>8oQ{9-i%L zZ7)=jgI5DBzOH%63tAVe<8a^Y7$9uf$-wCG@_-!58fG=ZbiwEybF~o6C0}7&VYDS! zYUQQ0T1!T^`dSpxER`|X;l^_bjCErf>RckhX6-AkZ!Z^?=e;%OJCMrpDXv(&*Q=94 zF3PXE%>%!m?6Qj33kT^=!?lXI#miX}*%BGsck4>Kai43Z$>C&L0qiV%>2JhON! z^K?nzMerj>&;MXnc!r;o(u@XeNaM*m?-|XZU+yvf^G`L`Z2ID%+{<8izm~FPL+%G| zGfsB_W@1hX?hG=j=!Ry6oH=D_AG`SG{pF}leDnU&?ZNyLdwz754@->hVNc6{Ea~#g zHIXk(L~t#2>4wO-A9->55hTSVu-|eKP4DVnWb^iBSCE>K>m@a`l$1@Od9~Fn)jojr z2FD;O(VJdq2I+#EfsWOh5`bM9lTi%cs@MhAzH?T{~5ib zyr45)a1Elx(bP$gn1usicrZbFG~m)BkU=^3k*qPI6US|$RPjjej~ z7m5^o&LS-clZt>y!L_W@i+>DdDBJPO*}r!uMcxLVQj*D{V7_}ZfWrN3tYT=Lzsj{b zwMyU#9?!}9i_`PB7t=ET*;3w5w45}GO`-+%6SC+N^SV=V&nv2z=^~YR+dvS5{b=!; ze4{W}8`ANtGoY4oppXGJnZ~$qFm*OXfybb0#*RZH*U8frP&$BklG4h@!Pqf;DkhYW zkq6O^*gcBt&gW>v)JtM0KYM4&swBVn!Y*?hmS zeb46GKx;pS8k;_($gtT)FEMNqNUN14w!%80RpG|~Zff14lvYDyE7XLB7z@gT(mEq; zlk(0;?(F`=c0ixpbG@9PSfNg!r^d<8QhIlc;yHt5QO1|6Fps&G`$BLt7POBISy}A} zMon|6@Err34(igpjAW6Mr$ZKo<+9`=rX-gL#02`!RjdPs3vPi9O5@Jyi0^Maw5?k9cHQrwNdc zCF8Vwz_qEvih3ZzAPEc`Pgb<1CDW{KOCw}bh{3)lvTa)z1NF09@>7ya9?jeBP|LPl zUxh&xTv#UgRLSGxJFPL0_bu)1YT31dxwqFO4gWEgC&5C{m8_a*vH&LZ#ezFi?y#lv zqde3D$P*0NrE8`6WX5$%u@uu-^~qMzm4ak8{~qLmAn!X-o)AQ4+9l2TB2h12zI=(5 zT7LcOUlUmqN^+L*a`Q!a>zA)0#Uae|zfRx2fl$s$D>9RMX=gP*?hLGs$^W?i`dyn2 z-~AR;QxBH-oS}W^<*$D6i-EU!4Y?ZJX1TiPQmU8Wf`n={P%y+vT9`7S2fP16vS-N` zOKlSn4gMB9)0j$vsS462<6G#jz|Cr zn*n);1WD-8Y11QHcSdv$SGC#5Dz;v9+wp>2&ch}uP*RyIGd5ubnpDinHdy5+U zR){f;*ccgWZw!o%ZOF|+sjK|lj*mIuwxo-F*PV(7Zrt=7fLJlz*rULnqm6)aC0OyQ zr1h=QGA;d_k}I>h!NwEBRng{m=m9I~3YKeyM_9m%>GTB>16gA)Fuc9y^L>^Ye@iQc z6@QJ)3U#w3r1t8iBTLjm<4M%_wkxzaw%0n-5V*zyTzoMNZT$p9F3p zb9U9t3a*yd`!?Ed8ykbVHo_75jQ0ah0iig^D287cVT&7aUBXGYk;AJYp+aQAY=^(I z>%OR6eBQO|w`tATnlxwMh^q5>MvG!VUcTwHF?75E1x{B!9ubNgTyqeC*bS5-TyL5L zN68u>RZvJ)3I}cI%<6vNPXy!c5tpCc9{(tAk4N)y+AN9kcaPVos;l@-=$&XCK$Ik8At$59#B&L?>3*2DL*}to3vNIAi?_=Pfxy zp>;irERdmx1R81YWor`*!fjj)M38m&s5{C5LGn!|PPdcCo^iJj9vRVyPO=+KQ{U-dSgOAFV ztfcVIFAdzThU}2-!xb??n`T&Ah1I1Za(>*2mpix{s#4;fQGF;a!dxYp$;mnht~v&9 zgDh=3xP;vM_Gz7=aIF!tkFeb|Gcy4hYMy+GiTVgWyJ;o(JeIp}S2y3WH??-o+>bA2DN;BS++>4pzh0V&+>tw4t6>Zy z<3*sH-*J`F>YhL!h1J&yxJa;=@CX{#{Y~=X*UQv;E2F_;+32d#mhf8CP6WTJlIanD zO&)!9kTg(5wPv+=P5#f}zx~r+Cr7_OJpAtEgMX=dw%rS??hAH;$MF~{El6GpE$_T(eM9T((*de7#DgX>j{GXH59c=7{mc+ zm;2K4ptjbjlb{~~)yIgxZb45)`b~`x`FQakg9EwR)(=f3bmMeG{52~pS<`w&a%;0% zIs56>Y8H=H+@CXKh(q7X)Env*zX*&2CY%@!%Y? z=XL6q9voP=H1-L%c3=oUkU4vy{JS`9vRM{Aoi^&KZP+1e@)m@HM=km|aI_>jlb`>E zy)i;h)QL32S=0GxG8Y|{S?4z4;!3mxozfPYnL`tk!lPG5_5sAYaQ8UHy=TzN%!tAw z7(ok#u?#$eeiWda0uChM)J@P8y-{X`QgnacE)ZLb%n*NF>)wt&9w)I&My@@yTH_An zbvlJoHK2jm6ChlTd?``iCH{M`lxo5V@Y}FOsDI1T| zAs#`3#l&|zZ7l#~#^xAOg1-T^I-&%jiK<|l1+AbfY{Xi#Qr< zTq@g+ld&ALQG)hNbrb8xJUeo+e+s+R)nGcqJAihini;S|b(&h1LvHajZhBHxtnXFm$hsbOGqEF{X7b)FuSMUb-Z<4tA#6)uLLc5 z=Iesj@{TJmt&0cdi*1pTD_`mv{Y_^DIie&-6A$@80cjSq1jw+ z^NF*n2EKK;#LFoLvC*zByp4>CA%Od}8DU@3x-v~YB3K)|nTJ~Qq zW^M4$%Z#p|0-p_Y>_nKjvd1{|Jkrm%bll7$Mr4zxzL}K~W5I-O@B{Ao<_=@GXQOS5 zB9<9rhslU)lA=1?wJ3GN%BrAxZ}A;}3QY8YE7#BtD)I>}4E|nyduFq{@YW~CZ{4&V z@LU&IBO`9T@K9T7#&RIgc2z^B9CRWXY$*ik;Cu)Y}nd>NzX$`lfsdHK{(L3#>xyMl1eN;p zK(>Z?n9%iV3XRS0Xu)&5L9phU{kwCQ*hY+&W@c0~0jylat85aN#0f)V8$f``;XG`p zr=b@La>8%#7&b zJZ$j=It%M@>)0~j!l-<}Q5 zf!)y!4546>Hn?crx^SKt-A;=_-rEvoZZ;&8EGK!BWOZ%{?U27J*_3R=#C-$(rcL_K zy3yEM>`& zW!w<6G=TiPBWzjG+nXvdL+H@iE~fU>T&1b*>)X3^#wP?Bal2}rG}@&N(R4b9k^7+q zwNK_WSYOMcaP583cCl9I1Uk>4*DuXU@2p*3F%s9&zW|^{^V?8 zr(%VGIu8&6tx;rQmSdDAL1%?w{sGeXwXAVZErYk-vw0c_z+4ypENy&bznvdW+qhUO z)hE`9bdSY?&M@6Lw6z(-0ybM$nKJLV2os38g~+nBw|65E1Pw(nkJB9&@P}jR-rYW9 z<^r~*j?zF)5ZvJ$TcZA2EdL|)46#lTt@R2G zG{>D)`HaZK;YSCb40SIGpUzPNNSq_hdS<()k_?f=LRIZEdY37wneN%_sl1kk{zP|~ z9vlLNIC#Y57rr=XGYJ=)7)A21C~DHBf{!n!7*eacaakx*fNXD#e=u;5gA5Ia=i+BA$Ejiup=n2nx%<&b2R=3HUW<$ zz~xrR*OsouE$E%LFrQ&nGn(Dr(>hNHk|j`efNGBI-HuU83I!VRB8(^CVi%Du+|OYE zpbb&($cu1_`DR}#jh+!3EFp>G%kqwD8XBp7OV{`xRSy7n(#wcV`zRA|T@rA(5cdncP&*rln z=C!OUYmzUIcH0}oUDS6>L9C9;qcKObV1m_DgGbPop9HqGzK|3{89pO*pn-!%5AF7Y zb??}36W7NDp0T@oiH8OSm5#_a3Xj55b)Scnq~W6f!Ya9m6Q35yp9qQ`IF&OI05GZoUhpo-RGxfY11S6Y@@K>uU#Ll=j-! zC=k7Sx|#~6Z6zdUB7X1Y{i-%Xj@2rHJLN92tI-t9q9t;s*7XmczfjiMY`%v~SJElk zJtfyRT4-(Z&GIxk)07WY)=CeZ$+~Xmz@6i7vOP?L!f8U9FY;u@w1I(D z&F;8tlnZKaG_q8st;VmrC#yTjAMs5eN}0}4BKrQXoS%d*ktW~Nf*5gur=jt1|;V+w05 zN|6o_8{cQn-o*xX#vQ@p#@+yY#>jT~?0OgQ0g(_07g#7eqM;P51xF?G>6Yt|Y7}iB z2vm_d#&E7#W}%b?xipKpb&=VgY|}f+3xiD~C*(r$oMB5NclAasc&y|~MhXo0BufL~ zs*>FuWMmWuJ{>2Cp_4Nz4nUz&tc4M27naQ$hGz(-}D_N$~kdXpdr=IIcNd;Z7 ziJyMbCN`doy7nU|g)1KNe370n((v=%V$1qfvdUoWDvh-VTBXp=#}$z!*P6LR34b+? z3D=!kBlfa`GZ%9n*azQhx3$0|F9WQd_gtZEMG#(A*c$~d?Zjyi=*0X-B^0Ax$BHCr zC2~5L=zeI6c+wdw$d3)HS47_VPS}ZRJT#*9qS}qpYECVZY}+wH(0>EOz=v~tHzc`b zt7DrlVS9Yrmq#oE6OP*cZDzRP+TGn}Hx)9e)m-@WwVgvaLf@%zdnYam#sL~?P8eV$ z^{)yB*@a~je`X(3k@k4fsVZ>GRxgyTk0*s%^2#;PhC4hKA@KPYvMAhyXz#of$K;*V z=06vZ83qVAdegRm~gjY3D!DhbX%;@0~G@-d|hC(KO?Tlr697lAlm`8 z?X)iH``{k=OXLQvFvSfJ26<`@EhFe9{C1bSq2Dexj@@iELv7@`Z#y)2O4c2aF5WwIT@slhNKriM@lgHm_2V3;FJg>RlH=Nod}vF&ASIITB@ z9^A6k!SN_-en@N%F2zAxdbdL`yubr-O$YGZ!FEw_oQU_B`olv5wyj(1tf1&uek|wc z`aIh@$Xy5TwElaWKmJKPdr-nADMxVBCC1^08m72s7jU;T_$o@BN_}no`UBwnEqHk4 zoP60fg#+)F5o&FXB_TE8A}bo}+=b!MfA~01-3f`?pE|sBk?-DLma0i_OKXNuZ6A-A z4B-*GPoxYa$bsl`Y1gnE%Js<8au5gqht8em>a)u zyKGq^0f0lcYS0?rjgQ{n^paeb-sZ@~oYge~f5z+&2%nQiB*iNyU74bZb|vW+5-u9i z?brV08PT*}Fm1*mqA6#rj#U)iZ=0V-YogcL<3I;I^4|RleAST4F_%LnjWJ@*_3XpO zPKG6XYk5^8;(_^T&GqnX{`9AJ>CKQ{w7=;)>U&ui`906$JH)7&Lo?7(3?&j&zflbv zv*;!b$KUbkhH}V zlbL6mN|&E_M(QhAu@5Y>6$z@MS@7OUG>_1#y1y57+ibT{ELymaxGGS?h2=h7>*${* zTff=fHace&6FIay`m#k;gvo=!Z`<^I`i`nET*IIaLkXg~ma@ndVIOoIZ&sPfvNTlB zk2fb&tfCFul9YjuBS_>wT|q+ayA`<#`;WIE>U{hWo022Bwii!z^4Ft-Z)p(TW?i&G zy0i3mUKzmj#75z2OJiZ&O<Ar;(SQ8;bvQ8j3%5ujV;a(oAbHV&7deR@e`%z!exF z`VAF5#tC~n1J()MFzp1k1XYBR)pxwj)M`Y8fFy}&R8z(Dkfm+R1qg;TWF))`_ABf; z4kZ>`aY!=xot64T=gqmS9c!;iBM#ye;{uuIG$W35*r=j!$e8XVWP3RiYM=o_(;4Y{{vffF>A8(zI87eX~P zYx|3=Ph*6Qz34AcJ6gT|2*$~eh7Kf^K2@~VpbYH`E&PCvbOj%XhvLQM+y%BC+Zv<3 zEsYz%U_wyfJoW6q^lcBwNzU$0R8C(V!}45`WOpxAk%OVG(bv4>1+9x!r%`P?hT&3f zGVn~lJRpa%hFLQzNWom;AA7r3D0&|~85G;EWxLAvDNx{O0T1j{(?4%{0~dy2OvyKv zq+4EzCvE`X-gqidPrBHTrrodU=?~V$$)>O2i9tGUCm7a35EFM6p16L`D*0fM35Qv; z2y<;dkcvZ#L#hcy`jj;VHOdUyef!Vj{Nn2U#o6i2#rbRUm7Rfy^7EA3gbh4`R0Lb| z->>1=((i~t#`jQzy53ZfOTl&97Z-z;3n^@Hu^H9csTW+^Dy=w)`Pz-vJ6&5n9GX22 zCP^k~PObss-t;Elpwbm-L4Q^I`7j&weY9O+d|6{JE!%*4I(;z(=KEs$!iinQMgw*~ zVQLqZF7{0c`PwCqKt;ywecrJsa?rke4TlFzKwyw+X5nJ7B@0>bJ6q`O!8Yi2ImxFS z?!c;i@83Lp9eC|Vtis+?yM|1bCH93_`jSlkSO(a|5a~$T!!U7e0k<=O#cmw)-dmeY zV%a=ROGf@YoVM0UWigWFZ&h`?HRK($BE)`h-s6J%19lEWO;Hf~A)ZS}jPta-j!; z(4P=gKB|bi0V-7C;Yzv&L~W0qiq$2@805#6T^|kl4;5Se-Ru`^`}=_pQe8v-t|HeW z_2At&U7B0fY~ou$%z43}e6VNw0SWFM*jfFY=@5Titk$i6tyt)*(O{|0SnDa@8O$2A z=mJ|f)V5q;Rr5Puum$ueZ&Ogyn|+fF97 zIk9cqwvCA~v7Vm$zR&rebDm$-s@l7ESM`fkwR-RFYhB-u!?Xt4J}#u~q^{tjZVSOx zSC{`*&Q7Wi3w4pY1gN^A+VqxWNqv#6aJV2f3RYk&g3?bF3Bz|bnXPylx_GNMrje$e?3^lm1a`gX{dWBQbNFJ_ zAU1HfH5VCAf_B?Sx2V?d`L1TZkACm1hO>YG3`shGdtm~J28R5sF)if9fKXEUN`P1lEfpq*XTHK7A6{miM0Pj2 z2%3S*zg;>P!(59QdYhh`ucz~`Pz?FX6m!0b*P2WXRDMi{ph5m5L@1^$1=;J=mwMbe z=X;~nH-p)D5z}Y&-N>vel|OQuW1T`@0)7d=IjsnP0ej3wS7ISTA+dvJchj)-(vh)} z^nAekVsJIdWE^@ojBaxU-9>EMGN-g|iNm)u<{}1KdpcI)*zw|jE70-8|?vID}5~^EPwd5C0uc)>VAj#m3yQ@1Xls)%ar+pa+~b6I3NL@iAwGq&DB_Vu?fus zp0q?0qA_Yq8#}%yX<0JttXa_Z>cKP(&FTB^3-5=^qcuhLl6Oe{UOGH@MuiOE2lJU* zkg8(2$NS_>XlbD&WEiUwZ3DV{auBxXgN_}!nB1;Qac5jIHatrgGD_*v!WBYXvvv6P z#69ROj()8cA``0HKs~SKM+d?2@8dy*c0QF=nrFbSPpvFH~;r(nx2j#CkbA?;Bt(@1~ zX7!S4zTV&N5;rX5-#tZgqZE@TeFU*gWHeo#BY`$)-D%=w%d#(DOh zLw!qErU&j5vJg6U6k%CTon(s2uJ5C@FB zk)Fj_{Z`@zt9D72OWzP{09?$r0}-$P8+qKDW2Owtj zCe5lL;TFcyG|!VZAPS~SOExdzM^e&@RiWc7mJyPvBdszMWrOv>9!!QXTu~zrm*b?G zjZe|W3zF$tT?CuSD1yScB6ck!1d6Fl4g{!$8jrKJYQRYe>2z{cQa7Lmoekk_aTitt z&paQ+%cQbg$M&ixh4__$*4%qs3z1DjW;AKFhFUm{1G|a4wSPuU*rTsNx;_zo{uc~( zc2`Pmqx_}ZxZC1q}L*`b+Um9@oQm;8YPB{Gdau+L&QDo_Hi%&)Xe7B6Wmfrwsey~|z z0a}fpMXAohMT*^En;T2sYoMKw>?GE}XVfz(;2^-p?9zc7cDX_(W~hN7+F5-zeX=CF zkA+^yF0l=l;|eq1f2;&{w#$rUo*CH;!mugly-1NlI*%xe>`!KCAVDcHTeZ<@oy%pg zF6=ULx&CA2IW}2%YR|>PnNzVE&Sy1$72NjC$a!5_S-n5H==h=u>6UDrJZ<-?iq(qd zLb`uiqgsN=T9;ZmQfwkwm<)~YD?WM((ApcZ1rfuCK*Qt9JT2Cb8{f-M?KKsH z7;%RL#{a2q5}(st+!b=BQByB(E^Aqa48o~vQxP2-VynhSW1sEVlvM2;)jKMUw62c@ z3V1FenyTxwjuUl?8ostr5Zhid4t#u_z9jZH_F9%EhV+n+PBsx|ttWxEc{sFcijp?Q;VWO{Lz0MY86)Mv3&?CxNhxvMYjA zcfHsUyTT{t+2JbQ8e2JeK41^}A#)^egtVj`qg4>+p&7;2Fqv3IM5IP51{eO|v9g^C zcR5h5wb7pfpClk2f2SgKk19-q;q6UG9nchq2}a*)-DPuvr$p=oa)+}AG+zPuvrun7 zKB-Oz_Z4_DB@6Q$Tb!WD#XyoqM)N19D{sv+lt^A3MNC@bN$*xm z=M5~{iDH?*s+{&IcfdquQ&%nVvpBKV@Tle0;=A0v2OU`@&X3F7Rt^^g)wG^s^)*&b zi)Q0~V)%ufZdF6k-FCw|@sEg@~d#um=p`QnYRlmy?8 zkDRZc*3h3%&wz%+kJFE*;{5!6K#k?;p**8J;_7);w;TDJdjuf!^_tt|#(R%IT)g|! zmKc34F1vLGSzYd0LKj&(CXp7m1>dDw(`QRX@AL|B{xNsxK926vMk;=NOHNoE>x$Ej zYReBX&~V^DLb~GOSK}t6W%opBG<#FMw712>GC8iMk+cvG1e*6j4^hyoqq4%-9nSaP ze-EpDi`B`n z^K1`jr6DoY<}KL8{G`mzG;G3EU_7pm>|(GTL^3k5t#29WD>8^_tf(B4n{`*#D<(sV z4-yw>_EFiL@X8{3j(;Qod%T2rX;G_8Sno3+vNc*Kag6IMp(RL3PtM6>#8sguSt4oG z`??~E)Iqcr~U7Cwwf_>i~9s&~seUNC~c$XCaxPF?Hg8gfWt zdkr@7nh!SJs`Ctq+rd|A_M>^iFv~(Ne5S07bTU~6%ujD7<XT%t6AiX6R3x5r9{Qs!;ycf_^2Ut9A!`{lp1PpXd-PiNNriAu50?D5eskqwi-kfNM=8W#rX~f&^p9MFl6J-=Ol4_O)4f6JZTz zu2>@SJSd{9$jTzTcKN3q{bnLtFcm|`Tp3lnMM(+WxvR9u_MPxph9Kv+Nx6lz*oq46H*-(1ZJ(69`H$2m& zMY|}BT%@Nk!`^ao$1QosALk&>S|b#}PcC>{%8cUv*Yx_gOI;o>SYZ|i;GBax}e(639^gOprx=~R+E|CsIE_RMy zk6w#@m2b?BBKOS!;`~(b#PDW$y6pZor}zGu8=;swH)kDq@C8MfNt*7sWcC0=mcf1a zH2qj6j)V(agT?LUN6caC=)7F%==>Jz=GWB_Ik7nF^b{`wut!RS%b+1yv4`{br5}*( z7HL%ZVC`>QlJgB$F5ky20j4R3R}c51YWGJB-dR|zdpGuBX=#XDyNma!cdy1ee3B3# zd(|_YE@;opWx|B@QK+$#FgxxENY^;5aMfEAR~h zQL48KP1~c$Ds)AB^L!-rde5fzCy}u?F{^$u!F`zX*NCV?pb0 zM$awC7~ts0Z!DTtcI20@WvgS)F_$s*bw*c@*)WgYi0fB1RH)y+edFb%hIbN1zGgm4 z1?f{7Eu&;8qs#N(1mR`j_yk#~6~AO>;_E)^R-TV*v00bAKMlK}_q~tMLk@IAf1SoNw7xNg8*%x{r)(-()(y0ZzjHB5n^wguBCsC zPDOE8Sx6WdgY^Sr(NPlXD|`l&o#HCBnN|Iew|D1}^F996O6Ak)>I?iV#arw5o1?q1 zOYX(epkEUX0;vMfiOlQwz@yFG1;TKAb?Jf@th5VG8Ez*X6e>GT284_0Ns9vdE2dYQ za-*J)j2l4XMFj>1Rm?4qTsKgbUdB=qLNMq+bQo_0stDXZ%`eTzyPi(*J#McMh~Ze4 z%RC9#Py{Zvcv_cBUjw1YPB6TF$L9?=Hj>>qHSm{j%>Imh>_@AM?abI`^{iQaViuFq zS*~lUO1HztFgN%uu9B}3Z2#qk+jFvE5UGcW778^r(D>s*NM1i8I(Bj;e#?Fp)(BRM z*qyhAALOAmKB}3Peavc1SjIYA+Ud#l0$vbvs*t(u+X_V0Z!)iqxE95`7#ixW(y{Ah z+k8xy&GWWvbnUd8ORTQ7?*8nW?t;vyzd9si34f$2wQo!_e39Ppvc`GuLq`B5h4v5vAexM z8O{k^7wsGJR3tTT9jccsJ#quLQ9l%-!%41{98`~*;nzoM=DW4;ZCKdY`a!1*#?faP zUn50%`4!VoO`>F6u+M*Fdh6Y*&r(dDTDonfyIBc-U?%E~=~G~D+iRmnsX=@M&s0=d zR1wUL!b&mWG~OBT-*ipz8>uRnda56rN>icHh$AneG0EL!=KG&fjlu45X+t3S#)?)| zEEQIaU*Eoc`ifDtlhqZ38@1GAJFa?|p+UQmpOuq-*OU-4rEKDaD4l5U%7FYTEQMog z2nq;fpOr#(7!>Kc_$niyzQw{RJHr0`>xAjJ>M|y6i<(!xdia2^E8P`4Aul0&1zqb2 z_G4dIB(K1xM<}oS}LM0LF_8Xkd`#uR(tkUORK^^ zu1W7F6WT(CG*k#yb4a|v?SiE(wgC-2E&46UfFSs>IoWlaCtW6w9o5TPQk=iud{cg#=$})XZ z18UBz`Fq%pN}G%VjskCeupWGqs1cY45IJgQhk8(`PU}oC#+p=7KVmT4aucguifGj$ zn(A|8Hwfba^@L3Q%17 zvF#dU&smb}Id(G-7#QcJgK}HCY45MIDv4j05rNrM`6cG)L0PHsV!R&H zx{XGnD$;n7MT+L=n3>kmw6eAB20*3s2#H1qXKd8%0X!qz0oa|aZ^0@TB;klv1YfqS z%LJy8s(3fou83UbtRTa!+QVEKd4t|k60QUk-KWa}Or63UIqjNAU=ML16n1>Dg$MF2 z4T4H!HC3h(6^a9md6xoed{>%Oyez-h-LMk)B~2{W9`pOgvVKOOq@$@a@mn_pfgUT6 zo4|azBq|B<$4iE3nxj$!Lf2Y>YEiR-dC61=Zc=AQ19!QkFt+J@#m4_xNqE9*`c1bw z5QTnm!po2!0^ZLW2Iu6;$9fw4T-hl6x9zFyM0Yt=a;xU9PNf=~GsS8bBuGVfcz#u< zl{xKm_vg(gvnqi3#c(R0HkwWBtMZu>_i9e4_ElAMB8Nyf?H<%gRqZ9mep=+-R#e$qEvM4nBx)@6&M5x0WbSweg1h!0!Pu(^^T z_bAIah{wVXu^1*f$bxj9r8r%-mwm9XWtUVbJ^8!o<-92Rg+tlul6eMv2ZdQD5vfu* zUFy4s$v{i}qqeuP8M>fdFc&L&Tl5e(bAe8c7BiEu!%YUh3N3zrG0=T|ma!ME zCJ|ej78kJZR(Q2KSw@N{>C;%Wmd^3@+$xzAU8xwH*_O$_icH8G_K;V?{9+Hy(>^Dd zlW99F14XwT;$k?n`5lzWy~Kb+QeKtp;&`v~ijNAe<-f#OZa-s~1r$$*j4am$ zF{X{wDsrt^=7I!Un9PK%v4(9Sv3ZFFMAbxb%E#GAqoc<{w1urd=k~V;b}gcWqH9=&B@!l zA-%`OoF@l>gY~orGLF@`DAwkzJG&E#9i|ZAu6D8JRl|uE;i9|aZ~kLgPw7YLkp&*i z&rl1euVLqbgx0A$^J4U^6|!Ll{ABfF*t7!(tyYxA4M!k@N&$@<_E2wO68@|!aK;uH z!R;%G~Aq?lk7Sc{SJx0gT6>cr=EWK1JfEA*<)$H+( z9>m_pq(#_y0q+s9W%hXH#uCo0dU_==G1VtW?2PdA?_)_yWe!*tWgzAe;&phMq74j`pjrCM6eZ;}51@ zwnqwCY3w-Gc5bQUCsc#BYJ(y88sEV{8DmZg+JtQtTnV@@U6tuqAN2*!Xf-?K*$x$< z8xK%Te5s49Lz@mjhK@Bgt~ahA4%emaWws=(KOArTsfn>OrHi&C;e2IBRk0NACc{j+ zxdkv??-=#GsAh%@^)SkM$Ci=|@q~^ZbfAf=2!q6A_Rd%-xYML{P!whSoNcn;VtOVp z@cMMfE^~fUp9sE);Y0A_Il`@*1JdssD?=(`ovoz#T2>sQxya|60%Pr#dKpV1N53#I zr^i93>q7`5;7#@_PNMM;la`|+oTWvbB=D5=^Q|^2ytQm~8@A&VKXPP88gdbP;>4_y zN?_??slQ1=V&%^rCrT|t+|`a zMa0K1tboN8T;w)?+4A$~^#B7C4Le)MO7NX{vezoz6~?45+nR5g52u1_ksJV0Xa|=5 z3z_%3PYInS5fMuBK3^cc;;b)SrDbih)xT_QcfcBZE{t zRO?%H6`6)VkQOH@5UgVlH`iAA){i&uD!AbJrpp`;+*Pu2z8{+|wtoJ7w!55jai@v? zPGcnU_oV(a+cz{u1@9;7BP;qln-_PKkT((xnLJ^AXI!pganjRA~s#~CkF=0)|kKt6CCPaD%SfI#BubElbnOQ*7 zjxIuJuMM*Q4Aer148^h>kp;(QS~3$R>fCC3$WRcDk8V8vG`!MI z#cr(x+wBfeRNR*MAu+k~!}fB6M=FjbdWqTaLZZoX`G!oMU1F~cssY=~JoQX73BT^y z@tIV27Y8VcY}JfKl$UH=_B#(zh8qq}=A$7o_SaSA?X`hq;mcr$-OP*lLrwO}SY;4+ z0q&Fqg2JC|2ojBJ+Y+qEOgN6QZ!&Zk)(B0lZljuwD#x5uLandZNB&ZALNt{CZ3 zxi3o!gNHk*=5@6+NZ6-E3Cfj9zosWk3UCInaHXksuO*g6I$)CMx8st8CS|i(d+WNC zV4L#1ody|{PuNspgzp_h*YR>uT~7UUq_r^Lw@!C~LReyr;0Sxyin6?u$SQ3E;#BF3 zhSAi!Oui+`$v$M^Klfw?#J0T`&Uh_!?D7sHSnbrM&g-49K>7O71&j=LvV_`75SDA4 z9aQ-e1fi)k`b8fquEeGkuo8F=-i|y-FlNj;=Oc@b5WQAbWy?_Ku^K6Q5XNga5JgkqWVbhJ2GTW*+&}WT3}s;6K+!WSzm$y z7%n8{wgavTH)vH(26GQxu-?Mh-V-&L#}tf zEleO`2z675UW9^ps944lt>f)c;x^N)-L1E?-A>TDF(nDtr8h|;M;acLI*laUZ0)iH zN;llf{?)5-_{p`~q!x{pU1AgsV*iqevA6ufmaxb3k6U0N(nF7S?LQrzh-rWZ%%9TJMgIcEHh@c z<&ajBMi{_jvy|&N3F0j&ns~iImzBhAdG!yLjubQ>qgJFu<{Hd$8Yn6&gKkI?>5wgcu zawF9{l@(|-=>wTk zUvGdpoO|8}T;Ew{KfN@*PZQ~yh*q+cZz%{CSG@F)m2+EcW+ogyLZMtKlmKfdi_+SR zq|H=NQCDH?5&_y3L*!S}MsY&w9ts6c*wlu=p2zO;k{I{am}sAyD-^SOrLE~-202>? zn{li9yHZc&>piYPDL%m#>w{Xkf6TUm*%%WWQc!Y^V{FlRW(L6&VoqL!%9!aezHSma z@AjPH&}g7OZeT(c~A=68M?C3B*7E=Cz?+N@?s zt*L7Tg;=!thCkUBV+=RZ!Z&G+UuYUOPUbc(Cj=$tkB8KBw+-vkBivB-hRDz96Ag5W zXZiV*%ljGIC5$QJX_?cO{T(r|Gt@rXmg=SXnVWTc5;woXR8}JaKk?cO#2XIsWuP5< z9!CO|)R|GSvp`414!Ig6}0wFoy688fu(|jw-W#Q;u@)f~u_CR^X(sJG?xHi@*vl z#FtJJo#z-M+01D(Kl44og`PFW0u*YG;J8!H~|^?>{edd_RZFQ*>{AKi=_IXoXF8*f%`^5B4cu@OhoHMvrq zatT|Ru`ZZz3+Htzu*r3G46Kfg%bc-9@R_bwvc~8#z^gvlMkw=(Q zT6zcsxsV#9En0&YvheOOil%!HnrqRlD3<6_=P*Il?P5Xl4tsvJvTr95OcyFNT(OQn z5MP}EQGnR{VxyzFQ*zT=x>?8Uy{Gm4QD~%u%18KbnW}KW;ys zHdldzwrgTYQQZsr#VfV8T-0kd=`6p~bhLZ(I;dZH=jSQS^75g={EQq)sf3^%5}5-h zWumh31|c3nZ>G8WDhqp{L_D+K)cPB}h&puA*~o%0C@^{MTcBD(JN zQ-eK!dCrRfqJVZUj;$z*O#T`~_`CY6e)C7gxxjtE&YQo`*>rqlWP$d%*!2p*^2vTyPJ$cgwO9^MD}LEg zDDe;ECF58tc?E>s}0#=j3b$Gnw+zlfR>4(t7}kk zVq*Vu2cQl)dtTSKuAYR~m}!i?u_`#Lj{!n1Ow*5)=WBa&`X6%i!nsL&@9~9lGhRLh zZM(T%b-R6U`gQxS{Lb}H#jk~&{PoJvnM|+rZJy>G9`|Vy8fPA0zByM8F_->+4*sl9 ze7@D4{T;6yuz37-$`NV1PREcmxsut(zs(V<($P)G=Zd6-X$kYBU`N+)bPQE!w#R%0_ErSi;}jhsk+ad-tyLD&7Oy6)CaXL zWGEo@#hNaO6=i_Y8Q+&-YV2j^!;Qz(QJwZJXUmSM?&UoXAItaXvk$+CO!u9Yiok4R zX|NBm#_h!7H0jar7aPA*=3qoZGW~6%IA24U-vwdbRP26p322xmv1%FmdfOpq_hA`7 zYi#)7vH}eWMpuR!D1#R_WrueZL$CExNkyYVe~pU%jD(5{_Evgv>Ei-fLG^=&kA`BU zI;l>=XZ`1~?gtCkQ~$@uBfa?NM?d}JCr^m)+uja51b-{PkGow>_vgFnRaZwF$E!d7 z+wabjWA>+Ix!3LbdVC}ZPL8MkX-~8zB7j{RS0VQQ>{^V!>{{$Uc5U*%>{|Ihb}gf~ z@85PUW$OXdJ)Q16T=Fu*gCyy(A;7NP`nO$MBMY!=xp^-!&+Jp&BBPKXq%@$3-uMd# z?*G`ekk=lQf9%>bB)uoEN|=fZN4BdVA7smZdSg6}uOmMD{vUP^4^OA(zv+*!qPuxs z#}5bBZMS^yQ|cd8P4VgYGIg^n@5U;b=c`_R5K+K!x0Xcg38C?53NNl@p2nMtN?o7z zz1A>lpm0PJy+(p)eBNDsKDM;v!`x4Ie+E`eIxa=!JT$t$d)?}s!ZAzFqlyI9(B3khgWOhoN2T$3NARBh9c zUZTg0Kot452p21Q{iR-kl28b2_F_baJ%BXwT#J}}*+N-99i}u8xFZRZwkss!zIXlI zn~Mo~hHE?4mDqW0CnvzXE|#^|sc))**Oq2FP){jale@xo-00ID1#3 zGh}?T`P2ch501?l3WH`-ySh^IQp<-W6$g!fe)ftP-)e#bq4Ix(9fn2NX!I1G|yDUZZ3E8zTYim5m1 zal5qb&`3XIG3nff-dugWToLeP|6yy-WzFFwGT=i|kc&D416sSmCaTVwd~%H_&K<Bn}-4stSWUBLT9^%T)ENN>9l>R&<7Bv)aXW@ICL=wC}9zzd~R(hgbN z9^@&0K4*?<@DsRjJP+$)@R^2>cxcMJ|AOc1dp%aPqlI(ijT0ITxXK%CDrAmLG(4<-)%yh% z33Lzheg0-#pexJn3&~f36V&Bk|y;5gdt?mmyPXa`XME$lZ&tnl*b<>= zJu@H%^GfKb=`6(tH>kIek&|6%yCqudBVbl@EW*s6>Wd=K!SxIRDsjZG>A7=h({mYU z5=!?-@6B3`mx$Kk+<}c6Q3y5>m3l4|S-#@K^v7C}ffvaTmg`6r8i{h{SmnH(Rn#vl zB|rjeqTUgO0@sI@n!ft7`~fI($8|#?d1;v`jeq3YY!wF(<2aS56=Em*$Ty>?f629L zc{_I^z3>lC$#FAf@r)!+pp7sv)8vyUT8Ny-|H!o@TFw6<*NXp3uGI#}wahA;_J8DB zKKj}_I)Y|bbUonSV_$C~-7>48+qM&`g8HtI>ep}Oe$^9D4KE=b_Nu{dS#x=$&&S)J z)!zCC=+}U+J45++_x8&blmC`$0T9+daxFQ&?DB5UGw7HI8(o#gUvh2pAGx;ZFS%BS z`2p>ZTpPD}G&^lEDCRLF_Mx{%AK8GD_eZWJ4Q1#0BiCxzx~t1?hT5iFG}i(*yZE-w zy_DPyW*+%$LEIO+A`S0HI35Svndnf|gy+<5e9s0^;%=H4zWq|t`}-9GF+siX%kl$l zd1OuIXz7mcouk`ym4EJB&k>a%Oo35ooK%-%8v!basxxhXeJ$e?a_cu9_l*J0I@D$A z;i*l8DnC9qUk`vf6IwrBo(r15seg6n3Rd?zwJ4Ai0kwi16{0-aN^6yo5)Weqn~k~= ztMgqKj$?vQ4wxc#JFai$Sl!4Q09D2-zUr~4>K*YXMct*N;@d!rkAP!8W&)n}< zeSgnIwk3#>7&VI%_EQf7!Xc>WrGlk;E*6Nc3q40+bPDg>U4->cH~s|F#xc5>Z#7RW z2%?r6x1KdZwtV3ei%wd_Pok7N1AlF>Ap90oOSa-K;5?v~)fnHw&5XL0)?8vVC?=0C zOgJDyZIZxSTNw-}De^z2UfRQcs#{ zLywUXo~ag~`5ohBbzml=Nv-uMJ~T5Tmywv_E0lmb+v98NZKdL?xz%EhISUTLfkL&V z5$C_MHYNw&%6n?iRov0$ml>;OyQZq#*dIQgXWhGe!G3~jf)lDfq~*py{X!_rAF*s1jt`@Z9*G?D>J~ZrT%Zb zmX7f+ySCy${J-p4bu@ro`|!72>tlcN$F60A;Lf4>KkZt5N92?$9r{0Z?XdJ;cJ109 zyOsxF*TVi~*CPFG*Ukd$+DNz3|FvtW|HH0z{4cw<>W^J({BOH9ZPDrYY(xxj{N|3t#9Hi8zx*w>?%t) zyQ?jgZ4|*SF3!W*U~uKsdND9R#3~6^p|B#g!{eY~tOS8*!#PX6s;zW@0)v(aQ@R9t z9EA}c%dN0cnB>?D%iOg|dKxov+s_23>5B2PxY{AYQ!HgBl7dl}NSWCdTdVd>joNTO z_5lJuw(0>L?6RSA0U6=`;F+?$=2@z9Wn}2rrV#Y{)4K>p!r_@CRp^wo&@O{BbaTvF zgZ@__j(WosY?It|tBG*WP4?rz?b?i$$E|rTpsp-E+BZ_SAXq~bevXE<-g$S?I!1gvn z*~#-&tNC6tCkp1`v~%_oFM;+gRDX}PF1r-+r+P~p7%5wAKeC+`^~Yxprg9T zn|gs^Z-wG`o5Ktk(`O*P*JEohd6%7a@7vz8^`7p89R*^lg&LnogJYAOAW+c0IvzwPf z5~KC)Npn!Sc9#9n<9Fdm(SRX@Wilns2iV1Zx@?ztUvQHfci~Tm)4#J^&40r}Cx20d zd){ge6F<_zEJ+m=kk%i`vpMOE?Ui~NTgEXv549+w-rk(j^xI`Z5r6K^#YI!FOPqfRp zJpx^)G31G`m;V#^peQsNpPF`KHke4M2-^;E@JQJ#yHwag+w#BhTGsyqujOmk8?DFw zgV%0GJWOHG{ysMvs>5y$wwB*w{a?KH_y6Fv##f7a|BKfy9sj{=ldda-*-dkBI?h9_ zCv5gZ{=sW$#j5@vUJLdIuU*W90aqV08ndNc1;y5&VjLRpYnH}=g!AD)eufIcGr-fYu{ch$iNmT|4Dcm5LiMX6Lm zND&KI*@wXV!fUe!p1e}fseqZaU__1rn6RA6SiAt9Pax%zqK@%f1oquFoqj(p_-jjQ zgm4nfNu*>j0XWC==moy_C2IXCo_f6FkflgSYBQZe>IpKYfrrFT2E;Jf$6ePbR�! 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

    IgIA4%QpaCWt6Z*frqR) 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

    jDm)KE*qKYG5X3i+V>f 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 delta 5915 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 Date: Fri, 10 Apr 2026 14:31:03 -0400 Subject: [PATCH 32/43] Fix digest values for helm chart 3.0.0 in repository index Update index.yaml with correct SHA256 digests matching actual tarballs: - splunk-enterprise-3.0.0: ae82f6c8edee4d827817fe6c9c6447c422a03c59595a0f6e779cef847a83b611 - splunk-operator-3.0.0: bd318b1f4022421a3fd429b186ca344c61d04a3c2bbdd5cc535d960773558e44 Resolves comment from vivekr-splunk on PR #1832 Co-Authored-By: Claude Opus 4.6 --- docs/index.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.yaml b/docs/index.yaml index 35056f122..8b4f5919a 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -64,7 +64,7 @@ entries: repository: file://splunk-operator/helm-chart/splunk-operator version: 3.0.0 description: A Helm chart for Splunk Enterprise managed by the Splunk Operator - digest: db5890e3bcc95f9ca7298873cc08b4a5d1ee86ccb4ad4e5334a0ab5d7a5fdb5e + digest: ae82f6c8edee4d827817fe6c9c6447c422a03c59595a0f6e779cef847a83b611 maintainers: - email: vivekr@splunk.com name: Vivek Reddy @@ -413,7 +413,7 @@ entries: appVersion: 3.0.0 created: "2026-04-08T03:35:00Z" description: A Helm chart for the Splunk Operator for Kubernetes - digest: db5890e3bcc95f9ca7298873cc08b4a5d1ee86ccb4ad4e5334a0ab5d7a5fdb5e + digest: bd318b1f4022421a3fd429b186ca344c61d04a3c2bbdd5cc535d960773558e44 maintainers: - email: vivekr@splunk.com name: Vivek Reddy From 3b83475eccafa85346db258df49f59aa18664304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20P=C5=82oski?= Date: Thu, 16 Apr 2026 22:25:16 +0200 Subject: [PATCH 33/43] PR tweaks --- api/v4/postgrescluster_types.go | 17 +- api/v4/zz_generated.deepcopy.go | 80 ++++ ...nterprise.splunk.com_postgresclusters.yaml | 22 +- docs/postgresSQLMonitoring-e2e.md | 321 ------------- docs/postgresSQLMonitoring-otel-e2e.md | 434 ------------------ .../controller/postgrescluster_controller.go | 8 +- .../postgrescluster_controller_test.go | 162 ++++--- .../controller/postgresdatabase_controller.go | 7 +- internal/controller/suite_test.go | 1 + pkg/postgresql/cluster/core/cluster.go | 36 +- .../cluster/core/cluster_unit_test.go | 9 +- pkg/postgresql/cluster/core/events.go | 38 +- pkg/postgresql/cluster/core/monitoring.go | 44 +- .../cluster/core/monitoring_unit_test.go | 10 +- 14 files changed, 261 insertions(+), 928 deletions(-) delete mode 100644 docs/postgresSQLMonitoring-e2e.md delete mode 100644 docs/postgresSQLMonitoring-otel-e2e.md diff --git a/api/v4/postgrescluster_types.go b/api/v4/postgrescluster_types.go index 6450b33fe..310b2427c 100644 --- a/api/v4/postgrescluster_types.go +++ b/api/v4/postgrescluster_types.go @@ -114,20 +114,17 @@ type PostgresClusterSpec struct { } // PostgresClusterMonitoring overrides monitoring configuration options for PostgresClusterClass. +// Set a field to false to disable a metric target that is enabled in the class. type PostgresClusterMonitoring struct { - - // +optional - PostgreSQLMetrics *FeatureDisableOverride `json:"postgresqlMetrics,omitempty"` - + // PostgreSQLMetrics overrides whether PostgreSQL metrics scraping is enabled. + // When unset, the class-level setting applies. // +optional - ConnectionPoolerMetrics *FeatureDisableOverride `json:"connectionPoolerMetrics,omitempty"` -} + PostgreSQLMetrics *bool `json:"postgresqlMetrics,omitempty"` -type FeatureDisableOverride struct { - // Disabled set to true will disable the feature even if it's enabled in the class. - // +kubebuilder:default=false + // ConnectionPoolerMetrics overrides whether connection pooler metrics scraping is enabled. + // When unset, the class-level setting applies. // +optional - Disabled *bool `json:"disabled,omitempty"` + ConnectionPoolerMetrics *bool `json:"connectionPoolerMetrics,omitempty"` } // PostgresClusterResources defines references to Kubernetes resources related to the PostgresCluster, such as ConfigMaps and Secrets. diff --git a/api/v4/zz_generated.deepcopy.go b/api/v4/zz_generated.deepcopy.go index c698411c7..fd2c1905c 100644 --- a/api/v4/zz_generated.deepcopy.go +++ b/api/v4/zz_generated.deepcopy.go @@ -922,6 +922,26 @@ func (in *ManagedRolesStatus) DeepCopy() *ManagedRolesStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetricsClassConfig) DeepCopyInto(out *MetricsClassConfig) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsClassConfig. +func (in *MetricsClassConfig) DeepCopy() *MetricsClassConfig { + if in == nil { + return nil + } + out := new(MetricsClassConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MonitoringConsole) DeepCopyInto(out *MonitoringConsole) { *out = *in @@ -1220,6 +1240,11 @@ func (in *PostgresClusterClassConfig) DeepCopyInto(out *PostgresClusterClassConf *out = new(bool) **out = **in } + if in.Monitoring != nil { + in, out := &in.Monitoring, &out.Monitoring + *out = new(PostgresMonitoringClassConfig) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterClassConfig. @@ -1348,6 +1373,31 @@ func (in *PostgresClusterList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresClusterMonitoring) DeepCopyInto(out *PostgresClusterMonitoring) { + *out = *in + if in.PostgreSQLMetrics != nil { + in, out := &in.PostgreSQLMetrics, &out.PostgreSQLMetrics + *out = new(bool) + **out = **in + } + if in.ConnectionPoolerMetrics != nil { + in, out := &in.ConnectionPoolerMetrics, &out.ConnectionPoolerMetrics + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterMonitoring. +func (in *PostgresClusterMonitoring) DeepCopy() *PostgresClusterMonitoring { + if in == nil { + return nil + } + out := new(PostgresClusterMonitoring) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PostgresClusterResources) DeepCopyInto(out *PostgresClusterResources) { *out = *in @@ -1425,6 +1475,11 @@ func (in *PostgresClusterSpec) DeepCopyInto(out *PostgresClusterSpec) { *out = new(string) **out = **in } + if in.Monitoring != nil { + in, out := &in.Monitoring, &out.Monitoring + *out = new(PostgresClusterMonitoring) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresClusterSpec. @@ -1605,6 +1660,31 @@ func (in *PostgresDatabaseStatus) DeepCopy() *PostgresDatabaseStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PostgresMonitoringClassConfig) DeepCopyInto(out *PostgresMonitoringClassConfig) { + *out = *in + if in.PostgreSQLMetrics != nil { + in, out := &in.PostgreSQLMetrics, &out.PostgreSQLMetrics + *out = new(MetricsClassConfig) + (*in).DeepCopyInto(*out) + } + if in.ConnectionPoolerMetrics != nil { + in, out := &in.ConnectionPoolerMetrics, &out.ConnectionPoolerMetrics + *out = new(MetricsClassConfig) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresMonitoringClassConfig. +func (in *PostgresMonitoringClassConfig) DeepCopy() *PostgresMonitoringClassConfig { + if in == nil { + return nil + } + out := new(PostgresMonitoringClassConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PremiumAppsProps) DeepCopyInto(out *PremiumAppsProps) { *out = *in diff --git a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml index ff5d6dbf5..331306b48 100644 --- a/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml +++ b/config/crd/bases/enterprise.splunk.com_postgresclusters.yaml @@ -131,21 +131,15 @@ spec: features. properties: connectionPoolerMetrics: - properties: - disabled: - default: false - description: Disabled set to true will disable the feature - even if it's enabled in the class. - type: boolean - type: object + description: |- + ConnectionPoolerMetrics overrides whether connection pooler metrics scraping is enabled. + When unset, the class-level setting applies. + type: boolean postgresqlMetrics: - properties: - disabled: - default: false - description: Disabled set to true will disable the feature - even if it's enabled in the class. - type: boolean - type: object + description: |- + PostgreSQLMetrics overrides whether PostgreSQL metrics scraping is enabled. + When unset, the class-level setting applies. + type: boolean type: object pgHBA: default: [] diff --git a/docs/postgresSQLMonitoring-e2e.md b/docs/postgresSQLMonitoring-e2e.md deleted file mode 100644 index f49378d79..000000000 --- a/docs/postgresSQLMonitoring-e2e.md +++ /dev/null @@ -1,321 +0,0 @@ -# PostgreSQL Monitoring E2E on KIND - -This validates the PostgreSQL and PgBouncer monitoring flow in namespace `test`. - -## Goal - -Verify that: - -- PostgreSQL pods are scraped through pod annotations -- PgBouncer pooler pods are scraped through pod annotations -- no dedicated metrics `Service` is required -- no `ServiceMonitor` is used for PostgreSQL or PgBouncer - -`ServiceMonitor` is still acceptable for operator-controller metrics if you want that separately, but it is not part of this feature validation. - -The reference dashboard in [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) assumes: - -- `namespace=test` -- `cluster=postgresql-cluster-dev` -- `kube_pod_labels` is available for dashboard variables - -## Prerequisites - -- KIND cluster is running -- CNPG is installed -- Splunk Operator is installed -- CRDs are up to date - -## 1. Install Prometheus and Grafana - -Create `values.yaml`: - -```yaml -grafana: - adminPassword: admin - -alertmanager: - enabled: false - -kubeStateMetrics: - enabled: true - -nodeExporter: - enabled: false - -prometheus: - prometheusSpec: - additionalScrapeConfigs: - - job_name: annotated-pods - kubernetes_sd_configs: - - role: pod - relabel_configs: - - source_labels: - [__meta_kubernetes_pod_annotation_prometheus_io_scrape] - action: keep - regex: true - - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] - action: replace - target_label: __metrics_path__ - regex: (.+) - - source_labels: - [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] - action: replace - regex: ([^:]+)(?::\d+)?;(\d+) - replacement: $1:$2 - target_label: __address__ - - source_labels: [__meta_kubernetes_namespace] - action: replace - target_label: namespace - - source_labels: [__meta_kubernetes_pod_name] - action: replace - target_label: pod -``` - -Install the stack: - -```bash -kubectl create namespace monitoring - -helm repo add prometheus-community https://prometheus-community.github.io/helm-charts -helm repo add grafana https://grafana.github.io/helm-charts -helm repo update - -helm install kube-prometheus prometheus-community/kube-prometheus-stack \ - --namespace monitoring \ - -f values.yaml -``` - -## 2. Optional: scrape operator-controller metrics - -This is separate from the PostgreSQL and PgBouncer validation. - -Grant Prometheus access: - -```bash -kubectl apply -f - < **Import** -3. Upload `docs/PostgreSQLObservabilityDashboard.json` -4. Select the Prometheus datasource -5. Set `namespace` to `test` -6. Set `cluster` to `postgresql-cluster-dev` - -The dashboard variables use: - -```promql -label_values(kube_pod_labels{label_cnpg_io_cluster!=""}, namespace) -``` - -and: - -```promql -label_values(kube_pod_labels{label_cnpg_io_cluster!="", namespace="$namespace"}, label_cnpg_io_cluster) -``` - -So `kubeStateMetrics.enabled: true` in `values.yaml` is required for the imported dashboard to work as-is. - -## 8. Optional disable test - -Disable monitoring in the `PostgresCluster` and verify annotations disappear: - -```bash -kubectl patch postgrescluster postgresql-cluster-dev -n test --type=merge -p ' -spec: - monitoring: - postgresqlMetrics: - disabled: true - connectionPoolerMetrics: - disabled: true -' -``` - -Then re-check: - -```bash -kubectl get pods -n test -l cnpg.io/cluster= -o yaml | rg 'prometheus.io/' || true -kubectl get pods -n test -l cnpg.io/poolerName=-pooler-rw -o yaml | rg 'prometheus.io/' || true -kubectl get pods -n test -l cnpg.io/poolerName=-pooler-ro -o yaml | rg 'prometheus.io/' || true -``` - -Prometheus should also stop showing those targets under `annotated-pods` after discovery refresh. - -## Notes - -- Use `ServiceMonitor` only for operator-controller metrics if needed. -- Do not use `ServiceMonitor` for PostgreSQL or PgBouncer in this E2E, because that bypasses the feature under test. -- Verify both: - - reconciled CNPG specs - - actual pod annotations -- PostgreSQL annotations come from CNPG `Cluster.Spec.InheritedMetadata` -- pooler annotations come from CNPG `Pooler.Spec.Template` diff --git a/docs/postgresSQLMonitoring-otel-e2e.md b/docs/postgresSQLMonitoring-otel-e2e.md deleted file mode 100644 index 31d464bbe..000000000 --- a/docs/postgresSQLMonitoring-otel-e2e.md +++ /dev/null @@ -1,434 +0,0 @@ -# PostgreSQL Monitoring E2E with OTel Collector - -This document describes how to validate PostgreSQL and PgBouncer monitoring with OpenTelemetry Collector using the current annotation-based design. - -## Goal - -Verify that: - -- PostgreSQL pods are discoverable through `prometheus.io/*` pod annotations -- PgBouncer pooler pods are discoverable through `prometheus.io/*` pod annotations -- OTel Collector scrapes those targets through Kubernetes pod discovery -- scraped metrics are re-exposed by OTel and then queried through Grafana -- disabling monitoring removes those scrape targets - -This test intentionally does not use dedicated metrics `Service`s or `ServiceMonitor`s for PostgreSQL and PgBouncer. - -The reference dashboard in [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) assumes: - -- `namespace=test` -- `cluster=postgresql-cluster-dev` -- `kube_pod_labels` is available from kube-state-metrics - -## Prerequisites - -- KIND cluster is running -- CNPG is installed -- Splunk Operator is installed -- CRDs are up to date -- test resources exist in namespace `test` - -## Recommended Setup - -Use OTel Collector for scraping and re-expose the metrics to Prometheus for Grafana queries. - -In this setup: - -- OTel Collector scrapes annotated PostgreSQL and PgBouncer pods -- OTel Collector re-exposes those metrics on its own Prometheus exporter endpoint -- Prometheus scrapes the OTel Collector pod -- Grafana queries Prometheus - -Grafana does not query OTel Collector directly. The Grafana datasource remains Prometheus. - -## 1. Deploy OTel Collector - -Use the concrete Helm values file: - -- [otel-collector-values.yaml](../test/postgresql/monitoring/otel-collector-values.yaml) -- [otel-rbac.yaml](../test/postgresql/monitoring/otel-rbac.yaml) - -Install the Collector: - -```bash -kubectl create namespace monitoring - -helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts -helm repo update - -helm install otel open-telemetry/opentelemetry-collector \ - --namespace monitoring \ - -f test/postgresql/monitoring/otel-collector-values.yaml -``` - -If the `otel` release already exists, use: - -```bash -helm upgrade otel open-telemetry/opentelemetry-collector \ - --namespace monitoring \ - -f test/postgresql/monitoring/otel-collector-values.yaml -``` - -Grant the Collector RBAC required for Kubernetes pod discovery: - -```bash -kubectl apply -f test/postgresql/monitoring/otel-rbac.yaml -``` - -This setup uses: - -- Prometheus receiver with Kubernetes pod discovery -- `prometheus.io/*` relabeling -- Prometheus exporter on port `8889` -- `debug` exporter for easy validation in logs - -If this RBAC is missing, the Collector will fail with errors like: - -```text -failed to list *v1.Pod: pods is forbidden -``` - -because the service account needs cluster-scoped `get`, `list`, and `watch` access for pod discovery. - -## 2. Install Prometheus and Grafana for the OTel path - -Use the Prometheus values file that scrapes only the OTel Collector exporter: - -- [prometheus-via-otel-values.yaml](../test/postgresql/monitoring/prometheus-via-otel-values.yaml) - -Install: - -```bash -helm repo add prometheus-community https://prometheus-community.github.io/helm-charts -helm repo add grafana https://grafana.github.io/helm-charts -helm repo update - -helm install kube-prometheus prometheus-community/kube-prometheus-stack \ - --namespace monitoring \ - -f test/postgresql/monitoring/prometheus-via-otel-values.yaml -``` - -If the `kube-prometheus` release already exists, use: - -```bash -helm upgrade kube-prometheus prometheus-community/kube-prometheus-stack \ - --namespace monitoring \ - -f test/postgresql/monitoring/prometheus-via-otel-values.yaml -``` - -This is important: Prometheus should scrape the OTel Collector exporter, not the PostgreSQL and PgBouncer pods directly. Otherwise Grafana will bypass OTel or you will get duplicate series. - -## 3. Apply PostgreSQL sample resources - -Apply: - -- `config/samples/enterprise_v4_postgresclusterclass_dev.yaml` -- `config/samples/enterprise_v4_postgrescluster_dev.yaml` -- `config/samples/enterprise_v4_postgresdatabase.yaml` - -Example: - -```bash -kubectl create namespace test -kubectl apply -f config/samples/enterprise_v4_postgresclusterclass_dev.yaml -kubectl apply -n test -f config/samples/enterprise_v4_postgrescluster_dev.yaml -kubectl apply -n test -f config/samples/enterprise_v4_postgresdatabase.yaml -``` - -These samples create: - -- `PostgresClusterClass` `postgresql-dev` -- `PostgresCluster` `postgresql-cluster-dev` -- `PostgresDatabase` `splunk-databases` - -## 4. Verify reconciled resources - -```bash -kubectl get postgrescluster -n test -kubectl get postgresdatabase -n test -kubectl get cluster.postgresql.cnpg.io -n test -kubectl get pooler.postgresql.cnpg.io -n test -kubectl get pods -n test -``` - -## 5. Verify annotations on workloads - -PostgreSQL pods: - -```bash -kubectl get pods -n test -l cnpg.io/cluster=postgresql-cluster-dev -o yaml | rg 'prometheus.io/' -``` - -Expected: - -- `prometheus.io/scrape: "true"` -- `prometheus.io/path: /metrics` -- `prometheus.io/port: "9187"` - -PgBouncer RW pooler pods: - -```bash -kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-rw -o yaml | rg 'prometheus.io/' -``` - -PgBouncer RO pooler pods: - -```bash -kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-ro -o yaml | rg 'prometheus.io/' -``` - -Expected for both: - -- `prometheus.io/scrape: "true"` -- `prometheus.io/path: /metrics` -- `prometheus.io/port: "9127"` - -## 6. Verify OTel Collector scraping - -If using the `debug` exporter: - -```bash -kubectl logs -n deploy/ -f -``` - -Look for metrics such as: - -- `cnpg_pg_postmaster_start_time` -- `cnpg_pg_database_size_bytes` -- `cnpg_collector_pg_wal` -- `cnpg_pg_stat_archiver_archived_count` -- `cnpg_pgbouncer_last_collection_error` -- `cnpg_pgbouncer_pools_cl_active` - -## 7. Verify Prometheus is scraping OTel - -Port-forward Prometheus: - -```bash -kubectl port-forward -n monitoring svc/kube-prometheus-prometheus 9090:9090 -``` - -Check that Prometheus is scraping the OTel Collector pod: - -```promql -up{job="otel-collector", namespace="monitoring"} -``` - -If this returns no series, the usual causes are: - -- the `kube-prometheus` release was not upgraded with [prometheus-via-otel-values.yaml](../test/postgresql/monitoring/prometheus-via-otel-values.yaml) -- Prometheus is still using the old `annotated-pods` scrape job -- kube-state-metrics is still disabled, which also breaks the dashboard variables - -Then verify PostgreSQL and PgBouncer metrics coming through that OTel path: - -```promql -count(count by (pod) (cnpg_pg_postmaster_start_time{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-[0-9]+"})) -``` - -```promql -max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-pooler-rw-.*"}, 1)) -``` - -## 8. Access Grafana - -Port-forward Grafana: - -```bash -kubectl port-forward -n monitoring svc/kube-prometheus-grafana 3000:80 -``` - -Open: - -- http://localhost:3000 - -Login: - -- user: `admin` -- password: `admin` - -Use the default Prometheus datasource. In this setup, Grafana is using metrics that flowed through OTel because Prometheus is scraping only the OTel Collector exporter. - -## 9. Verify dashboard queries - -Import: - -- [PostgreSQLObservabilityDashboard.json](./PostgreSQLObservabilityDashboard.json) - -Set: - -- `namespace=test` -- `cluster=postgresql-cluster-dev` - -The dashboard does not need query changes for this path, but it assumes kube-state-metrics is enabled for the `namespace` and `cluster` variables. - -You can confirm the live Prometheus release picked up the right values with: - -```bash -helm get values -n monitoring kube-prometheus -``` - -Expected: - -- `kubeStateMetrics.enabled: true` -- additional scrape job `otel-collector` - -## 10. Verify backend metrics - -Validate with queries such as: - -```promql -up{job="otel-collector", namespace="monitoring"} -``` - -```promql -count(count by (pod) (cnpg_pg_postmaster_start_time{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-[0-9]+"})) -``` - -```promql -max(1 - clamp_max(cnpg_pgbouncer_last_collection_error{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-pooler-rw-.*"}, 1)) -``` - -```promql -sum by (pooler) (label_replace(cnpg_pgbouncer_pools_cl_active{job="otel-collector",namespace="test",pod=~"postgresql-cluster-dev-pooler-(rw|ro)-.*"}, "pooler", "$1", "pod", ".*-pooler-(rw|ro)-.*")) -``` - -The dashboard variables use: - -```promql -label_values(kube_pod_labels{label_cnpg_io_cluster!=""}, namespace) -``` - -and: - -```promql -label_values(kube_pod_labels{label_cnpg_io_cluster!="", namespace="$namespace"}, label_cnpg_io_cluster) -``` - -## 11. Disable monitoring and validate removal - -Disable both metrics paths: - -```bash -kubectl patch postgrescluster postgresql-cluster-dev -n test --type=merge -p ' -spec: - monitoring: - postgresqlMetrics: - disabled: true - connectionPoolerMetrics: - disabled: true -' -``` - -Re-check pod annotations: - -```bash -kubectl get pods -n test -l cnpg.io/cluster=postgresql-cluster-dev -o yaml | rg 'prometheus.io/' || true -kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-rw -o yaml | rg 'prometheus.io/' || true -kubectl get pods -n test -l cnpg.io/poolerName=postgresql-cluster-dev-pooler-ro -o yaml | rg 'prometheus.io/' || true -``` - -Expected: - -- scrape annotations disappear -- OTel stops scraping those targets after discovery refresh - -## Test Plan - -### Test 1: PostgreSQL annotations are present - -Steps: - -1. Apply monitoring-enabled class and cluster -2. Wait for PostgreSQL pods -3. Inspect pod annotations - -Pass criteria: - -- PostgreSQL pods contain the expected scrape annotations - -### Test 2: Pooler annotations are present - -Steps: - -1. Apply class with `connectionPoolerEnabled=true` -2. Wait for RW and RO poolers and their pods -3. Inspect pooler pod annotations - -Pass criteria: - -- RW and RO pooler pods contain the expected scrape annotations - -### Test 3: OTel Collector scrapes PostgreSQL and poolers - -Steps: - -1. Run Collector with pod discovery -2. Inspect Collector logs or backend metrics - -Pass criteria: - -- PostgreSQL metrics are visible in OTel logs -- PgBouncer metrics are visible in OTel logs - -### Test 4: Prometheus and Grafana use the OTel path - -Steps: - -1. Verify `up{job="otel-collector", namespace="monitoring"}` -2. Verify PostgreSQL and PgBouncer metrics with `job="otel-collector"` -3. Import the dashboard and select the Prometheus datasource - -Pass criteria: - -- Prometheus is scraping the OTel Collector exporter -- Grafana panels return data from the `otel-collector` job - -### Test 5: Disable override removes scrape targets - -Steps: - -1. Patch the `PostgresCluster` to disable both monitoring paths -2. Re-check workload annotations -3. Re-check Collector or backend - -Pass criteria: - -- annotations are removed -- targets disappear from Collector/backend over time - -### Test 6: Cluster-only disable path - -Steps: - -1. Keep class monitoring enabled -2. Disable only in `PostgresCluster.spec.monitoring` - -Pass criteria: - -- class defaults remain unchanged -- only the target cluster loses annotations - -## Troubleshooting - -If no metrics appear: - -1. Check pod annotations first -2. Check Collector logs -3. Check whether the Collector is using `role: pod` -4. Check relabeling for `prometheus.io/scrape` -5. Check namespace filters in your backend queries - -Useful quick queries: - -```promql -up{namespace="test"} -``` - -```promql -cnpg_pg_postmaster_start_time_seconds{namespace="test"} -``` - -```promql -cnpg_pgbouncer_up{namespace="test"} -``` diff --git a/internal/controller/postgrescluster_controller.go b/internal/controller/postgrescluster_controller.go index 886373031..6d42d72bf 100644 --- a/internal/controller/postgrescluster_controller.go +++ b/internal/controller/postgrescluster_controller.go @@ -62,13 +62,7 @@ type PostgresClusterReconciler struct { // +kubebuilder:rbac:groups=core,resources=events,verbs=create;patch func (r *PostgresClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - metrics := r.Metrics - if metrics == nil { - // Tests and minimal reconciler wiring may omit a metrics adapter. - // Fall back to a no-op recorder so status updates can proceed safely. - metrics = &pgprometheus.NoopRecorder{} - } - rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: metrics} + rc := &clustercore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} result, err := clustercore.PostgresClusterService(ctx, rc, req) r.FleetCollector.CollectClusterMetrics(ctx, r.Client, r.Metrics) if sharedreconcile.IsPureConflict(err) { diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 47e1d0824..80b412562 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -36,6 +36,7 @@ import ( "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core" pgprometheus "github.com/splunk/splunk-operator/pkg/postgresql/shared/adapter/prometheus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/ptr" ) /* @@ -70,6 +71,8 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { ctx context.Context clusterName string className string + classNameMetrics string + classNamePooler string pgCluster *enterprisev4.PostgresCluster pgClusterClass *enterprisev4.PostgresClusterClass pgClusterKey types.NamespacedName @@ -78,37 +81,13 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { req reconcile.Request ) - const ( - scrapeAnnotationKey = "prometheus.io/scrape" - pathAnnotationKey = "prometheus.io/path" - portAnnotationKey = "prometheus.io/port" - metricsPath = "/metrics" - postgresPort = "9187" - poolerPort = "9127" - ) - reconcileNTimes := func(times int) { - for i := 0; i < times; i++ { + for range times { _, err := reconciler.Reconcile(ctx, req) Expect(err).NotTo(HaveOccurred()) } } - recreateClusterClass := func(modify func(*enterprisev4.PostgresClusterClass)) { - Expect(k8sClient.Delete(ctx, pgClusterClass)).To(Succeed()) - Eventually(func() bool { - return apierrors.IsNotFound(k8sClient.Get(ctx, pgClusterClassKey, &enterprisev4.PostgresClusterClass{})) - }, "10s", "250ms").Should(BeTrue()) - - pgClusterClass = pgClusterClass.DeepCopy() - pgClusterClass.ResourceVersion = "" - pgClusterClass.UID = "" - if modify != nil { - modify(pgClusterClass) - } - Expect(k8sClient.Create(ctx, pgClusterClass)).To(Succeed()) - } - BeforeEach(func() { nameSuffix := fmt.Sprintf("%d-%d-%d", GinkgoParallelProcess(), @@ -119,6 +98,8 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { ctx = context.Background() clusterName = clusterNamePrefix + nameSuffix className = classNamePrefix + nameSuffix + classNameMetrics = classNamePrefix + "metrics-" + nameSuffix + classNamePooler = classNamePrefix + "pooler-" + nameSuffix pgClusterKey = types.NamespacedName{Name: clusterName, Namespace: namespace} pgClusterClassKey = types.NamespacedName{Name: className, Namespace: namespace} @@ -127,21 +108,60 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Spec: enterprisev4.PostgresClusterClassSpec{ Provisioner: provisioner, Config: &enterprisev4.PostgresClusterClassConfig{ - Instances: &[]int32{clusterMemberCount}[0], - Storage: &[]resource.Quantity{resource.MustParse(storageAmount)}[0], - PostgresVersion: &[]string{postgresVersion}[0], - ConnectionPoolerEnabled: &[]bool{poolerEnabled}[0], + Instances: ptr.To(clusterMemberCount), + Storage: ptr.To(resource.MustParse(storageAmount)), + PostgresVersion: ptr.To(postgresVersion), + ConnectionPoolerEnabled: ptr.To(poolerEnabled), + }, + }, + } + + pgClassPostgresMetrics := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: classNameMetrics}, + Spec: enterprisev4.PostgresClusterClassSpec{ + Provisioner: provisioner, + Config: &enterprisev4.PostgresClusterClassConfig{ + Instances: ptr.To(clusterMemberCount), + Storage: ptr.To(resource.MustParse(storageAmount)), + PostgresVersion: ptr.To(postgresVersion), + Monitoring: &enterprisev4.PostgresMonitoringClassConfig{ + PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: ptr.To(true)}, + }, + }, + }, + } + + pgClassPoolerMetrics := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{Name: classNamePooler}, + Spec: enterprisev4.PostgresClusterClassSpec{ + Provisioner: provisioner, + Config: &enterprisev4.PostgresClusterClassConfig{ + Instances: ptr.To(clusterMemberCount), + Storage: ptr.To(resource.MustParse(storageAmount)), + PostgresVersion: ptr.To(postgresVersion), + ConnectionPoolerEnabled: ptr.To(true), + Monitoring: &enterprisev4.PostgresMonitoringClassConfig{ + ConnectionPoolerMetrics: &enterprisev4.MetricsClassConfig{Enabled: ptr.To(true)}, + }, + }, + CNPG: &enterprisev4.CNPGConfig{ + ConnectionPooler: &enterprisev4.ConnectionPoolerConfig{ + Instances: ptr.To(int32(2)), + Mode: ptr.To(enterprisev4.ConnectionPoolerModeTransaction), + }, }, }, } Expect(k8sClient.Create(ctx, pgClusterClass)).To(Succeed()) + Expect(k8sClient.Create(ctx, pgClassPostgresMetrics)).To(Succeed()) + Expect(k8sClient.Create(ctx, pgClassPoolerMetrics)).To(Succeed()) pgCluster = &enterprisev4.PostgresCluster{ ObjectMeta: metav1.ObjectMeta{Name: clusterName, Namespace: namespace}, Spec: enterprisev4.PostgresClusterSpec{ Class: className, - ClusterDeletionPolicy: &[]string{deletePolicy}[0], + ClusterDeletionPolicy: ptr.To(deletePolicy), }, } @@ -196,12 +216,19 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { return apierrors.IsNotFound(getErr) }, "10s", "500ms").Should(BeTrue()) - By("Cleaning up PostgresClusterClass fixture") - err = k8sClient.Get(ctx, pgClusterClassKey, pgClusterClass) - if err == nil { - Expect(k8sClient.Delete(ctx, pgClusterClass)).To(Succeed()) - } else { - Expect(apierrors.IsNotFound(err)).To(BeTrue()) + By("Cleaning up PostgresClusterClass fixtures") + for _, key := range []types.NamespacedName{ + pgClusterClassKey, + {Name: classNameMetrics}, + {Name: classNamePooler}, + } { + existing := &enterprisev4.PostgresClusterClass{} + err = k8sClient.Get(ctx, key, existing) + if err == nil { + Expect(k8sClient.Delete(ctx, existing)).To(Succeed()) + } else { + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + } } }) @@ -265,13 +292,25 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Expect(cond.ObservedGeneration).To(Equal(pc.Generation)) }) - It("adds PostgreSQL scrape annotations to the CNPG Cluster when monitoring is enabled", func() { - recreateClusterClass(func(class *enterprisev4.PostgresClusterClass) { - class.Spec.Config.Monitoring = &enterprisev4.PostgresMonitoringClassConfig{ - PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: &[]bool{true}[0]}, - } - }) + }) + }) + + When("monitoring is configured", func() { + const ( + scrapeAnnotationKey = "prometheus.io/scrape" + pathAnnotationKey = "prometheus.io/path" + portAnnotationKey = "prometheus.io/port" + metricsPath = "/metrics" + postgresPort = "9187" + poolerPort = "9127" + ) + Context("with PostgreSQL metrics enabled in class", func() { + BeforeEach(func() { + pgCluster.Spec.Class = classNameMetrics + }) + + It("adds scrape annotations to the CNPG Cluster", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) reconcileNTimes(2) @@ -283,13 +322,7 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(portAnnotationKey, postgresPort)) }) - It("removes PostgreSQL scrape annotations when disabled by cluster override", func() { - recreateClusterClass(func(class *enterprisev4.PostgresClusterClass) { - class.Spec.Config.Monitoring = &enterprisev4.PostgresMonitoringClassConfig{ - PostgreSQLMetrics: &enterprisev4.MetricsClassConfig{Enabled: &[]bool{true}[0]}, - } - }) - + It("removes scrape annotations when disabled by cluster override", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) reconcileNTimes(2) @@ -301,37 +334,28 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { current := &enterprisev4.PostgresCluster{} Expect(k8sClient.Get(ctx, pgClusterKey, current)).To(Succeed()) current.Spec.Monitoring = &enterprisev4.PostgresClusterMonitoring{ - PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: &[]bool{true}[0]}, + PostgreSQLMetrics: ptr.To(false), } Expect(k8sClient.Update(ctx, current)).To(Succeed()) - reconcileNTimes(1) Eventually(func(g Gomega) { updated := &cnpgv1.Cluster{} g.Expect(k8sClient.Get(ctx, pgClusterKey, updated)).To(Succeed()) - if updated.Spec.InheritedMetadata != nil { - g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(scrapeAnnotationKey)) - g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(pathAnnotationKey)) - g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(portAnnotationKey)) - } + g.Expect(updated.Spec.InheritedMetadata).NotTo(BeNil()) + g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(scrapeAnnotationKey)) + g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(pathAnnotationKey)) + g.Expect(updated.Spec.InheritedMetadata.Annotations).NotTo(HaveKey(portAnnotationKey)) }, "20s", "250ms").Should(Succeed()) }) + }) - It("creates poolers with scrape annotations only after the CNPG cluster becomes healthy", func() { - recreateClusterClass(func(class *enterprisev4.PostgresClusterClass) { - class.Spec.Config.ConnectionPoolerEnabled = &[]bool{true}[0] - class.Spec.Config.Monitoring = &enterprisev4.PostgresMonitoringClassConfig{ - ConnectionPoolerMetrics: &enterprisev4.MetricsClassConfig{Enabled: &[]bool{true}[0]}, - } - class.Spec.CNPG = &enterprisev4.CNPGConfig{ - ConnectionPooler: &enterprisev4.ConnectionPoolerConfig{ - Instances: &[]int32{2}[0], - Mode: &[]enterprisev4.ConnectionPoolerMode{enterprisev4.ConnectionPoolerModeTransaction}[0], - }, - } - }) + Context("with connection pooler metrics enabled in class", func() { + BeforeEach(func() { + pgCluster.Spec.Class = classNamePooler + }) + It("adds scrape annotations to poolers only after the CNPG cluster becomes healthy", func() { Expect(k8sClient.Create(ctx, pgCluster)).To(Succeed()) reconcileNTimes(2) diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go index d31082ba9..3d984e969 100644 --- a/internal/controller/postgresdatabase_controller.go +++ b/internal/controller/postgresdatabase_controller.go @@ -76,11 +76,8 @@ func (r *PostgresDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Req } return ctrl.Result{}, err } - metrics := r.Metrics - if metrics == nil { - metrics = &pgprometheus.NoopRecorder{} - } - rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: metrics} + + rc := &dbcore.ReconcileContext{Client: r.Client, Scheme: r.Scheme, Recorder: r.Recorder, Metrics: r.Metrics} result, err := dbcore.PostgresDatabaseService(ctx, rc, postgresDB, dbadapter.NewDBRepository) r.FleetCollector.CollectDatabaseMetrics(ctx, r.Client, r.Metrics) if sharedreconcile.IsPureConflict(err) { diff --git a/internal/controller/suite_test.go b/internal/controller/suite_test.go index 5dca32cb2..9356a011f 100644 --- a/internal/controller/suite_test.go +++ b/internal/controller/suite_test.go @@ -78,6 +78,7 @@ var _ = BeforeSuite(func(ctx context.Context) { filepath.Join("..", "..", "config", "crd", "bases"), filepath.Join(cnpgModuleDir, "config", "crd", "bases"), }, + ErrorIfCRDPathMissing: true, } var err error diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 80825bf04..8aefdea45 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -346,9 +346,6 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. rc.emitPoolerReadyTransition(postgresCluster, oldConditions) } - oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) - copy(oldConditions, postgresCluster.Status.Conditions) - // Reconcile ConfigMap when CNPG cluster is healthy. if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { logger.Info("CNPG Cluster healthy, reconciling ConfigMap") @@ -502,11 +499,11 @@ func buildCNPGClusterSpec(cfg *MergedConfig, secretName string, postgresMetricsE }, Resources: *cfg.Spec.Resources, } + annotations := make(map[string]string) if postgresMetricsEnabled { - spec.InheritedMetadata = &cnpgv1.EmbeddedObjectMetadata{ - Annotations: buildPostgresScrapeAnnotations(), - } + annotations = buildPostgresScrapeAnnotations() } + spec.InheritedMetadata = &cnpgv1.EmbeddedObjectMetadata{Annotations: annotations} return spec } @@ -683,20 +680,19 @@ func buildCNPGPooler(scheme *runtime.Scheme, cluster *enterprisev4.PostgresClust }, }, } + poolerAnnotations := make(map[string]string) if poolerMetricsEnabled { - pooler.Spec.Template = &cnpgv1.PodTemplateSpec{ - ObjectMeta: cnpgv1.Metadata{ - Annotations: buildPoolerScrapeAnnotations(), - }, - Spec: corev1.PodSpec{ - // CNPG's Pooler CRD requires template.spec.containers to be present. - // A minimal named container lets CNPG's podspec builder merge in the - // real PgBouncer image/command/ports while still carrying our annotations. - Containers: []corev1.Container{ - {Name: "pgbouncer"}, - }, - }, - } + poolerAnnotations = buildPoolerScrapeAnnotations() + } + // Template is always set so that annotation removal is explicit in merge patches. + // CNPG's Pooler CRD requires template.spec.containers to be present — a minimal + // named container lets CNPG's podspec builder merge in the real PgBouncer + // image/command/ports while still carrying our annotations. + pooler.Spec.Template = &cnpgv1.PodTemplateSpec{ + ObjectMeta: cnpgv1.Metadata{Annotations: poolerAnnotations}, + Spec: corev1.PodSpec{ + Containers: []corev1.Container{{Name: "pgbouncer"}}, + }, } if err := ctrl.SetControllerReference(cluster, pooler, scheme); err != nil { return nil, fmt.Errorf("setting controller reference on CNPG pooler: %w", err) @@ -1079,4 +1075,4 @@ func generatePassword() (string, error) { symbols = 0 ) return password.Generate(length, digits, symbols, false, true) -} \ No newline at end of file +} diff --git a/pkg/postgresql/cluster/core/cluster_unit_test.go b/pkg/postgresql/cluster/core/cluster_unit_test.go index 49e5382b2..72b30205b 100644 --- a/pkg/postgresql/cluster/core/cluster_unit_test.go +++ b/pkg/postgresql/cluster/core/cluster_unit_test.go @@ -392,7 +392,8 @@ func TestBuildCNPGClusterSpec(t *testing.T) { require.Len(t, spec.PostgresConfiguration.PgHBA, 2) assert.Equal(t, "hostssl all all 0.0.0.0/0 scram-sha-256", spec.PostgresConfiguration.PgHBA[0]) assert.Equal(t, "host replication all 10.0.0.0/8 md5", spec.PostgresConfiguration.PgHBA[1]) - assert.Nil(t, spec.InheritedMetadata) + require.NotNil(t, spec.InheritedMetadata) + assert.Empty(t, spec.InheritedMetadata.Annotations) t.Run("adds postgres scrape annotations when enabled", func(t *testing.T) { spec := buildCNPGClusterSpec(cfg, "my-secret", true) @@ -447,7 +448,8 @@ func TestBuildCNPGPooler(t *testing.T) { assert.Equal(t, "25", pooler.Spec.PgBouncer.Parameters["default_pool_size"]) require.Len(t, pooler.OwnerReferences, 1) assert.Equal(t, "test-uid", string(pooler.OwnerReferences[0].UID)) - assert.Nil(t, pooler.Spec.Template) + require.NotNil(t, pooler.Spec.Template) + assert.Empty(t, pooler.Spec.Template.ObjectMeta.Annotations) }) t.Run("ro pooler", func(t *testing.T) { @@ -1132,6 +1134,9 @@ func TestCreateOrUpdateConnectionPoolers(t *testing.T) { PoolMode: cnpgv1.PgBouncerPoolMode("transaction"), Parameters: map[string]string{"default_pool_size": "25"}, }, + Template: &cnpgv1.PodTemplateSpec{ + Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "pgbouncer"}}}, + }, } } diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go index b60f3f643..afcfd768e 100644 --- a/pkg/postgresql/cluster/core/events.go +++ b/pkg/postgresql/cluster/core/events.go @@ -10,25 +10,25 @@ import ( ) const ( - EventSecretReady = "SecretReady" - EventConfigMapReady = "ConfigMapReady" - EventClusterAdopted = "ClusterAdopted" - EventClusterCreationStarted = "ClusterCreationStarted" - EventClusterUpdateStarted = "ClusterUpdateStarted" - EventClusterReady = "ClusterReady" - EventPoolerCreationStarted = "PoolerCreationStarted" - EventPoolerReady = "PoolerReady" - EventCleanupComplete = "CleanupComplete" - EventClusterClassNotFound = "ClusterClassNotFound" - EventConfigMergeFailed = "ConfigMergeFailed" - EventSecretReconcileFailed = "SecretReconcileFailed" - EventClusterCreateFailed = "ClusterCreateFailed" - EventClusterUpdateFailed = "ClusterUpdateFailed" - EventManagedRolesFailed = "ManagedRolesFailed" - EventPoolerReconcileFailed = "PoolerReconcileFailed" - EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" - EventClusterDegraded = "ClusterDegraded" - EventCleanupFailed = "CleanupFailed" + EventSecretReady = "SecretReady" + EventConfigMapReady = "ConfigMapReady" + EventClusterAdopted = "ClusterAdopted" + EventClusterCreationStarted = "ClusterCreationStarted" + EventClusterUpdateStarted = "ClusterUpdateStarted" + EventClusterReady = "ClusterReady" + EventPoolerCreationStarted = "PoolerCreationStarted" + EventPoolerReady = "PoolerReady" + EventCleanupComplete = "CleanupComplete" + EventClusterClassNotFound = "ClusterClassNotFound" + EventConfigMergeFailed = "ConfigMergeFailed" + EventSecretReconcileFailed = "SecretReconcileFailed" + EventClusterCreateFailed = "ClusterCreateFailed" + EventClusterUpdateFailed = "ClusterUpdateFailed" + EventManagedRolesFailed = "ManagedRolesFailed" + EventPoolerReconcileFailed = "PoolerReconcileFailed" + EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" + EventClusterDegraded = "ClusterDegraded" + EventCleanupFailed = "CleanupFailed" ) func (rc *ReconcileContext) emitNormal(obj client.Object, reason, message string) { diff --git a/pkg/postgresql/cluster/core/monitoring.go b/pkg/postgresql/cluster/core/monitoring.go index 2b18ba497..725549b24 100644 --- a/pkg/postgresql/cluster/core/monitoring.go +++ b/pkg/postgresql/cluster/core/monitoring.go @@ -37,31 +37,31 @@ func buildPoolerScrapeAnnotations() map[string]string { } func isPostgreSQLMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { - if class == nil || class.Spec.Config == nil || class.Spec.Config.Monitoring == nil { - return false - } - classCfg := class.Spec.Config.Monitoring.PostgreSQLMetrics - if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { - return false - } - if cluster == nil || cluster.Spec.Monitoring == nil || cluster.Spec.Monitoring.PostgreSQLMetrics == nil { - return true + classEnabled := class != nil && + class.Spec.Config != nil && + class.Spec.Config.Monitoring != nil && + class.Spec.Config.Monitoring.PostgreSQLMetrics != nil && + class.Spec.Config.Monitoring.PostgreSQLMetrics.Enabled != nil && + *class.Spec.Config.Monitoring.PostgreSQLMetrics.Enabled + + if cluster != nil && cluster.Spec.Monitoring != nil && cluster.Spec.Monitoring.PostgreSQLMetrics != nil { + return *cluster.Spec.Monitoring.PostgreSQLMetrics } - override := cluster.Spec.Monitoring.PostgreSQLMetrics.Disabled - return override == nil || !*override + + return classEnabled } func isConnectionPoolerMetricsEnabled(cluster *enterprisev4.PostgresCluster, class *enterprisev4.PostgresClusterClass) bool { - if class == nil || class.Spec.Config == nil || class.Spec.Config.Monitoring == nil { - return false - } - classCfg := class.Spec.Config.Monitoring.ConnectionPoolerMetrics - if classCfg == nil || classCfg.Enabled == nil || !*classCfg.Enabled { - return false - } - if cluster == nil || cluster.Spec.Monitoring == nil || cluster.Spec.Monitoring.ConnectionPoolerMetrics == nil { - return true + classEnabled := class != nil && + class.Spec.Config != nil && + class.Spec.Config.Monitoring != nil && + class.Spec.Config.Monitoring.ConnectionPoolerMetrics != nil && + class.Spec.Config.Monitoring.ConnectionPoolerMetrics.Enabled != nil && + *class.Spec.Config.Monitoring.ConnectionPoolerMetrics.Enabled + + if cluster != nil && cluster.Spec.Monitoring != nil && cluster.Spec.Monitoring.ConnectionPoolerMetrics != nil { + return *cluster.Spec.Monitoring.ConnectionPoolerMetrics } - override := cluster.Spec.Monitoring.ConnectionPoolerMetrics.Disabled - return override == nil || !*override + + return classEnabled } diff --git a/pkg/postgresql/cluster/core/monitoring_unit_test.go b/pkg/postgresql/cluster/core/monitoring_unit_test.go index 917052efc..ae9feb73d 100644 --- a/pkg/postgresql/cluster/core/monitoring_unit_test.go +++ b/pkg/postgresql/cluster/core/monitoring_unit_test.go @@ -39,7 +39,7 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { cluster: &enterprisev4.PostgresCluster{ Spec: enterprisev4.PostgresClusterSpec{ Monitoring: &enterprisev4.PostgresClusterMonitoring{ - PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + PostgreSQLMetrics: ptr.To(false), }, }, }, @@ -51,11 +51,11 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { want: false, }, { - name: "disabled when class disables even if cluster has override struct", + name: "enabled when cluster overrides class that has it disabled", cluster: &enterprisev4.PostgresCluster{ Spec: enterprisev4.PostgresClusterSpec{ Monitoring: &enterprisev4.PostgresClusterMonitoring{ - PostgreSQLMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(false)}, + PostgreSQLMetrics: ptr.To(true), }, }, }, @@ -64,7 +64,7 @@ func TestIsPostgreSQLMetricsEnabled(t *testing.T) { nil, nil, ), - want: false, + want: true, }, } @@ -165,7 +165,7 @@ func TestIsConnectionPoolerMetricsEnabled(t *testing.T) { cluster: &enterprisev4.PostgresCluster{ Spec: enterprisev4.PostgresClusterSpec{ Monitoring: &enterprisev4.PostgresClusterMonitoring{ - ConnectionPoolerMetrics: &enterprisev4.FeatureDisableOverride{Disabled: ptr.To(true)}, + ConnectionPoolerMetrics: ptr.To(false), }, }, }, From 70fc1858273608213a95d78c01b55558a174dc65 Mon Sep 17 00:00:00 2001 From: Gabriel Mendoza Date: Thu, 16 Apr 2026 17:33:08 -0400 Subject: [PATCH 34/43] Fix container scan vulnerabilities by updating dependencies This commit addresses four vulnerability findings from the container scanner: - VULN-71179: Upgrade github.com/aws/aws-sdk-go-v2/service/s3 from v1.84.1 to v1.99.0 - VULN-71171: Upgrade go.opentelemetry.io/otel/sdk from v1.40.0 to v1.43.0 - VULN-71183: Upgrade github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream from v1.6.11 to v1.7.8 - VULN-71182: Upgrade Go stdlib from v1.25.8 to v1.26.2 All dependency updates meet or exceed the minimum versions required by the container scanner. Unit tests pass with 83.6% composite coverage. Jira: VULN-71179, VULN-71171, VULN-71183, VULN-71182 Co-Authored-By: Claude Opus 4.7 --- go.mod | 34 ++++++++++++++--------------- go.sum | 68 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/go.mod b/go.mod index 8b5adb30c..53ccc109a 100644 --- a/go.mod +++ b/go.mod @@ -1,17 +1,17 @@ module github.com/splunk/splunk-operator -go 1.25.8 +go 1.26.2 require ( cloud.google.com/go/storage v1.36.0 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1 - github.com/aws/aws-sdk-go-v2 v1.41.1 + github.com/aws/aws-sdk-go-v2 v1.41.5 github.com/aws/aws-sdk-go-v2/config v1.29.18 github.com/aws/aws-sdk-go-v2/credentials v1.17.71 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85 - github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 github.com/aws/aws-sdk-go-v2/service/sqs v1.42.21 github.com/go-logr/logr v1.4.3 github.com/google/go-cmp v0.7.0 @@ -44,20 +44,20 @@ require ( github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Masterminds/semver/v3 v3.4.0 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.25.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.34.1 // indirect - github.com/aws/smithy-go v1.24.0 // indirect + github.com/aws/smithy-go v1.24.2 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect @@ -121,12 +121,12 @@ require ( go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.40.0 // indirect + go.opentelemetry.io/otel v1.43.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect - go.opentelemetry.io/otel/metric v1.40.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/trace v1.40.0 // indirect + go.opentelemetry.io/otel/metric v1.43.0 // indirect + go.opentelemetry.io/otel/sdk v1.43.0 // indirect + go.opentelemetry.io/otel/trace v1.43.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect @@ -136,7 +136,7 @@ require ( golang.org/x/net v0.49.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/sync v0.19.0 // indirect - golang.org/x/sys v0.40.0 // indirect + golang.org/x/sys v0.42.0 // indirect golang.org/x/term v0.39.0 // indirect golang.org/x/text v0.33.0 // indirect golang.org/x/time v0.9.0 // indirect diff --git a/go.sum b/go.sum index a0d78e0ef..225228bc1 100644 --- a/go.sum +++ b/go.sum @@ -28,10 +28,10 @@ github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8 github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU= -github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY= +github.com/aws/aws-sdk-go-v2 v1.41.5 h1:dj5kopbwUsVUVFgO4Fi5BIT3t4WyqIDjGKCangnV/yY= +github.com/aws/aws-sdk-go-v2 v1.41.5/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 h1:eBMB84YGghSocM7PsjmmPffTa+1FBUeNvGvFou6V/4o= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= github.com/aws/aws-sdk-go-v2/config v1.29.18 h1:x4T1GRPnqKV8HMJOMtNktbpQMl3bIsfx8KbqmveUO2I= github.com/aws/aws-sdk-go-v2/config v1.29.18/go.mod h1:bvz8oXugIsH8K7HLhBv06vDqnFv3NsGDt2Znpk7zmOU= github.com/aws/aws-sdk-go-v2/credentials v1.17.71 h1:r2w4mQWnrTMJjOyIsZtGp3R3XGY3nqHn8C26C2lQWgA= @@ -40,24 +40,24 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33 h1:D9ixiWSG4lyUBL2DDNK924 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33/go.mod h1:caS/m4DI+cij2paz3rtProRBI4s/+TCiWoaWZuQ9010= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85 h1:AfpstoiaenxGSCUheWiicgZE5XXS5Fi4CcQ4PA/x+Qw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85/go.mod h1:HxiF0Fd6WHWjdjOffLkCauq7JqzWqMMq0iUVLS7cPQc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 h1:Rgg6wvjjtX8bNHcvi9OnXWwcE0a2vGpbwmtICOsvcf4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21/go.mod h1:A/kJFst/nm//cyqonihbdpQZwiUhhzpqTsdbhDdRF9c= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 h1:PEgGVtPoB6NTpPrBgqSE5hE/o47Ij9qk/SEZFbUOe9A= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21/go.mod h1:p+hz+PRAYlY3zcpJhPwXlLC4C+kqn70WIHwnzAfs6ps= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 h1:XTZZ0I3SZUHAtBLBU6395ad+VOblE0DwQP6MuaNeics= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37/go.mod h1:Pi6ksbniAWVwu2S8pEzcYPyhUkAcLaufxN7PfAUQjBk= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 h1:M5/B8JUaCI8+9QD+u3S/f4YHpvqE9RpSkV3rf0Iks2w= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5/go.mod h1:Bktzci1bwdbpuLiu3AOksiNPMl/LLKmX1TWmqp2xbvs= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 h1:vvbXsA2TVO80/KT7ZqCbx934dt6PY+vQ8hZpUZ/cpYg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18/go.mod h1:m2JJHledjBGNMsLOF1g9gbAxprzq3KjC8e4lxtn+eWg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 h1:OS2e0SKqsU2LiJPqL8u9x41tKc6MMEHrWjLVLn3oysg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18/go.mod h1:+Yrk+MDGzlNGxCXieljNeWpoZTCQUQVL+Jk9hGGJ8qM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1 h1:RkHXU9jP0DptGy7qKI8CBGsUJruWz0v5IgwBa2DwWcU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1/go.mod h1:3xAOf7tdKF+qbb+XpU+EPhNXAdun3Lu1RcDrj8KC24I= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 h1:rWyie/PxDRIdhNf4DzRk0lvjVOqFJuNnO8WwaIRVxzQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22/go.mod h1:zd/JsJ4P7oGfUhXn1VyLqaRZwPmZwg44Jf2dS84Dm3Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 h1:JRaIgADQS/U6uXDqlPiefP32yXTda7Kqfx+LgspooZM= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13/go.mod h1:CEuVn5WqOMilYl+tbccq8+N2ieCy0gVn3OtRb0vBNNM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 h1:c31//R3xgIJMSC8S6hEVq+38DcvUlgFY0FM6mSI5oto= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21/go.mod h1:r6+pf23ouCB718FUxaqzZdbpYFyDtehyZcmP5KL9FkA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 h1:ZlvrNcHSFFWURB8avufQq9gFsheUgjVD9536obIknfM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21/go.mod h1:cv3TNhVrssKR0O/xxLJVRfd2oazSnZnkUeTf6ctUwfQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 h1:hlSuz394kV0vhv9drL5lhuEFbEOEP1VyQpy15qWh1Pk= +github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0/go.mod h1:uoA43SdFwacedBfSgfFSjjCvYe8aYBS7EnU5GZ/YKMM= github.com/aws/aws-sdk-go-v2/service/sqs v1.42.21 h1:Oa0IhwDLVrcBHDlNo1aosG4CxO4HyvzDV5xUWqWcBc0= github.com/aws/aws-sdk-go-v2/service/sqs v1.42.21/go.mod h1:t98Ssq+qtXKXl2SFtaSkuT6X42FSM//fnO6sfq5RqGM= github.com/aws/aws-sdk-go-v2/service/sso v1.25.6 h1:rGtWqkQbPk7Bkwuv3NzpE/scwwL9sC1Ul3tn9x83DUI= @@ -66,8 +66,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4 h1:OV/pxyXh+eMA0TExHEC4jyWd github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4/go.mod h1:8Mm5VGYwtm+r305FfPSuc+aFkrypeylGYhFim6XEPoc= github.com/aws/aws-sdk-go-v2/service/sts v1.34.1 h1:aUrLQwJfZtwv3/ZNG2xRtEen+NqI3iesuacjP51Mv1s= github.com/aws/aws-sdk-go-v2/service/sts v1.34.1/go.mod h1:3wFBZKoWnX3r+Sm7in79i54fBmNfwhdNdQuscCw7QIk= -github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= -github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= +github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= +github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -343,20 +343,20 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.5 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms= -go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= -go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g= -go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= -go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw= -go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= +go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= +go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= +go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= +go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= +go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -421,8 +421,8 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= -golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= +golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY= golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww= From b168dd468069636f5b8ae7a0aec5fe9b8f7e7fc6 Mon Sep 17 00:00:00 2001 From: Gabriel Mendoza Date: Thu, 16 Apr 2026 17:49:21 -0400 Subject: [PATCH 35/43] Update Go version to 1.26.2 in Dockerfiles and .env Update Go version references in build configuration files to match the go.mod update for VULN-71182 compliance. Files updated: - Dockerfile: golang:1.25.8 -> golang:1.26.2 - Dockerfile.distroless: golang:1.25.8 -> golang:1.26.2 - .env: GO_VERSION=1.25.8 -> GO_VERSION=1.26.2 GitHub Actions workflows automatically use GO_VERSION from .env, so no workflow file changes are needed. Co-Authored-By: Claude Opus 4.7 --- .env | 2 +- Dockerfile | 2 +- Dockerfile.distroless | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.env b/.env index 3906a4f7c..6ccb31548 100644 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ OPERATOR_SDK_VERSION=v1.42.0 REVIEWERS=vivekr-splunk,rlieberman-splunk,patrykw-splunk,Igor-splunk,kasiakoziol,kubabuczak,gabrielm-splunk,minjieqiu,qingw-splunk -GO_VERSION=1.25.8 +GO_VERSION=1.26.2 AWSCLI_URL=https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.8.6.zip KUBECTL_VERSION=v1.29.1 AZ_CLI_VERSION=2.79.0 diff --git a/Dockerfile b/Dockerfile index 33f8a9f80..5516a3906 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ ARG BASE_IMAGE=registry.access.redhat.com/ubi8/ubi-minimal ARG BASE_IMAGE_VERSION=8.10-1775152441 # Build the manager binary -FROM golang:1.25.8 AS builder +FROM golang:1.26.2 AS builder WORKDIR /workspace diff --git a/Dockerfile.distroless b/Dockerfile.distroless index a2ac2afc0..83ce1ad65 100644 --- a/Dockerfile.distroless +++ b/Dockerfile.distroless @@ -1,5 +1,5 @@ # Build the manager binary -FROM golang:1.25.8 AS builder +FROM golang:1.26.2 AS builder WORKDIR /workspace # Copy the Go Modules manifests From 1450ec4ee9e3f4de7c7adc619279205e19193483 Mon Sep 17 00:00:00 2001 From: Jakub Buczak Date: Fri, 17 Apr 2026 16:51:19 +0200 Subject: [PATCH 36/43] CSPL-4630: add feature gate infrastructure using k8s FeatureGate pattern Introduce a feature gate registry backed by k8s.io/component-base/featuregate so new capabilities can be gated behind --feature-gates==true|false with Alpha/Beta/GA lifecycle. Migrate the validation webhook toggle from the ENABLE_VALIDATION_WEBHOOK env var to a ValidationWebhook feature gate with backwards-compatible env var support. - Add pkg/config/featuregates.go registry with SetupFeatureGates and IsFeatureGateEnabled helpers, plus unit tests - Wire feature gate flags into cmd/main.go and log effective gate states at startup - Use os.LookupEnv for ENABLE_VALIDATION_WEBHOOK so the deprecation warning fires whenever the env var is set, not just when it equals "true" - Update kustomization files with SPLUNK_GENERAL_TERMS value - Add docs/FeatureGates.md with usage and instructions for adding new gates - Update docs/ValidationWebhook.md with CLI-over-env-var precedence note --- cmd/main.go | 69 ++++++----- .../kustomization-cluster.yaml | 9 +- .../kustomization-namespace.yaml | 9 +- .../default-with-webhook/kustomization.yaml | 11 +- docs/FeatureGates.md | 110 ++++++++++++++++++ docs/ValidationWebhook.md | 39 ++++--- go.mod | 4 +- pkg/config/featuregates.go | 67 +++++++++++ pkg/config/featuregates_test.go | 91 +++++++++++++++ pkg/splunk/enterprise/telemetry.go | 3 +- 10 files changed, 350 insertions(+), 62 deletions(-) create mode 100644 docs/FeatureGates.md create mode 100644 pkg/config/featuregates.go create mode 100644 pkg/config/featuregates_test.go diff --git a/cmd/main.go b/cmd/main.go index b8188608d..f1633446a 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -25,6 +25,7 @@ import ( "path/filepath" "time" + "github.com/spf13/pflag" "sigs.k8s.io/controller-runtime/pkg/metrics/filters" intController "github.com/splunk/splunk-operator/internal/controller" @@ -89,24 +90,44 @@ func main() { // TLS certificate configuration for metrics var metricsCertPath, metricsCertName, metricsCertKey string - flag.StringVar(&logEncoder, "log-encoder", "json", "log encoding ('json' or 'console')") - flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") - flag.BoolVar(&enableLeaderElection, "leader-elect", false, + pflag.StringVar(&logEncoder, "log-encoder", "json", "log encoding ('json' or 'console')") + pflag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") + pflag.BoolVar(&enableLeaderElection, "leader-elect", false, "Enable leader election for controller manager. "+ "Enabling this will ensure there is only one active controller manager.") - flag.BoolVar(&pprofActive, "pprof", true, "Enable pprof endpoint") - flag.IntVar(&logLevel, "log-level", int(zapcore.InfoLevel), "set log level") - flag.IntVar(&leaseDurationSecond, "lease-duration", leaseDurationSecond, "manager lease duration in seconds") - flag.IntVar(&renewDeadlineSecond, "renew-duration", renewDeadlineSecond, "manager renew duration in seconds") - flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metrics endpoint binds to. "+ + pflag.BoolVar(&pprofActive, "pprof", true, "Enable pprof endpoint") + pflag.IntVar(&logLevel, "log-level", int(zapcore.InfoLevel), "set log level") + pflag.IntVar(&leaseDurationSecond, "lease-duration", leaseDurationSecond, "manager lease duration in seconds") + pflag.IntVar(&renewDeadlineSecond, "renew-duration", renewDeadlineSecond, "manager renew duration in seconds") + pflag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metrics endpoint binds to. "+ "Use :8443 for HTTPS or :8080 for HTTP, or leave as 0 to disable the metrics service.") - flag.BoolVar(&secureMetrics, "metrics-secure", false, + pflag.BoolVar(&secureMetrics, "metrics-secure", false, "If set, the metrics endpoint is served securely via HTTPS. Use --metrics-secure=false to use HTTP instead.") // TLS certificate flags for metrics server - flag.StringVar(&metricsCertPath, "metrics-cert-path", "", "The directory that contains the metrics server certificate.") - flag.StringVar(&metricsCertName, "metrics-cert-name", "tls.crt", "The name of the metrics server certificate file.") - flag.StringVar(&metricsCertKey, "metrics-cert-key", "tls.key", "The name of the metrics server key file.") + pflag.StringVar(&metricsCertPath, "metrics-cert-path", "", "The directory that contains the metrics server certificate.") + pflag.StringVar(&metricsCertName, "metrics-cert-name", "tls.crt", "The name of the metrics server certificate file.") + pflag.StringVar(&metricsCertKey, "metrics-cert-key", "tls.key", "The name of the metrics server key file.") + + config.DefaultMutableFeatureGate.AddFlag(pflag.CommandLine) + + opts := zap.Options{ + Development: true, + TimeEncoder: zapcore.RFC3339NanoTimeEncoder, + } + opts.BindFlags(flag.CommandLine) + pflag.CommandLine.AddGoFlagSet(flag.CommandLine) + pflag.Parse() + + ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) + + if allGates := config.DefaultMutableFeatureGate.GetAll(); len(allGates) > 0 { + effectiveStates := make(map[string]bool, len(allGates)) + for gate := range allGates { + effectiveStates[string(gate)] = config.DefaultMutableFeatureGate.Enabled(gate) + } + setupLog.Info("Feature gates initialized", "gates", effectiveStates) + } // Metrics endpoint is enabled in 'config/default/kustomization.yaml'. The Metrics options configure the server. // More info: @@ -147,16 +168,6 @@ func main() { renewDeadline = time.Duration(renewDeadlineSecond) * time.Second } - opts := zap.Options{ - Development: true, - TimeEncoder: zapcore.RFC3339NanoTimeEncoder, - } - opts.BindFlags(flag.CommandLine) - flag.Parse() - - // Logging setup - ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) - // Configure metrics certificate watcher if metrics certs are provided var metricsCertWatcher *certwatcher.CertWatcher if len(metricsCertPath) > 0 { @@ -280,10 +291,11 @@ func main() { os.Exit(1) } - // Setup centralized validation webhook server (opt-in via ENABLE_VALIDATION_WEBHOOK env var, defaults to false) - enableWebhooks := os.Getenv("ENABLE_VALIDATION_WEBHOOK") - if enableWebhooks == "true" { - // Parse optional timeout configurations from environment + if _, ok := os.LookupEnv("ENABLE_VALIDATION_WEBHOOK"); ok { + setupLog.Info("DEPRECATED: ENABLE_VALIDATION_WEBHOOK env var is deprecated and will be removed in a future release; use --feature-gates=ValidationWebhook=true instead") + } + + if config.DefaultMutableFeatureGate.Enabled(config.ValidationWebhook) { readTimeout := 10 * time.Second if val := os.Getenv("WEBHOOK_READ_TIMEOUT"); val != "" { if d, err := time.ParseDuration(val); err == nil { @@ -306,16 +318,15 @@ func main() { Client: mgr.GetClient(), }) - // Add webhook server as a runnable to the manager if err := mgr.Add(manager.RunnableFunc(func(ctx context.Context) error { return webhookServer.Start(ctx) })); err != nil { setupLog.Error(err, "unable to add webhook server to manager") os.Exit(1) } - setupLog.Info("Validation webhook enabled via ENABLE_VALIDATION_WEBHOOK=true") + setupLog.Info("Validation webhook enabled") } else { - setupLog.Info("Validation webhook disabled (set ENABLE_VALIDATION_WEBHOOK=true to enable)") + setupLog.Info("Validation webhook disabled (set --feature-gates=ValidationWebhook=true to enable)") } //+kubebuilder:scaffold:builder diff --git a/config/default-with-webhook/kustomization-cluster.yaml b/config/default-with-webhook/kustomization-cluster.yaml index c596f0c68..f4ddabdb2 100644 --- a/config/default-with-webhook/kustomization-cluster.yaml +++ b/config/default-with-webhook/kustomization-cluster.yaml @@ -1,7 +1,7 @@ # Adds namespace to all resources. # Cluster-scoped deployment WITH webhook enabled (opt-in) # Requires cert-manager to be installed in the cluster -namespace: splunk-operator +namespace: splunk-operator # Value of this field is prepended to the # names of all resources, e.g. a deployment named @@ -115,7 +115,7 @@ patches: patch: |- - op: add path: /spec/template/spec/containers/0/env - value: + value: - name: WATCH_NAMESPACE value: WATCH_NAMESPACE_VALUE - name: RELATED_IMAGE_SPLUNK_ENTERPRISE @@ -124,12 +124,13 @@ patches: value: splunk-operator - name: SPLUNK_GENERAL_TERMS value: SPLUNK_GENERAL_TERMS_VALUE - - name: ENABLE_VALIDATION_WEBHOOK - value: "true" - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name + - op: add + path: /spec/template/spec/containers/0/args/- + value: --feature-gates=ValidationWebhook=true # [METRICS] The following patch will enable the metrics endpoint using HTTPS and the port :8443. # More info: https://book.kubebuilder.io/reference/metrics - path: manager_metrics_patch.yaml diff --git a/config/default-with-webhook/kustomization-namespace.yaml b/config/default-with-webhook/kustomization-namespace.yaml index 193791601..2bc1845c6 100644 --- a/config/default-with-webhook/kustomization-namespace.yaml +++ b/config/default-with-webhook/kustomization-namespace.yaml @@ -1,7 +1,7 @@ # Adds namespace to all resources. # Namespace-scoped deployment WITH webhook enabled (opt-in) # Requires cert-manager to be installed in the cluster -namespace: splunk-operator +namespace: splunk-operator # Value of this field is prepended to the # names of all resources, e.g. a deployment named @@ -115,7 +115,7 @@ patches: patch: |- - op: add path: /spec/template/spec/containers/0/env - value: + value: - name: WATCH_NAMESPACE valueFrom: fieldRef: @@ -126,12 +126,13 @@ patches: value: splunk-operator - name: SPLUNK_GENERAL_TERMS value: SPLUNK_GENERAL_TERMS_VALUE - - name: ENABLE_VALIDATION_WEBHOOK - value: "true" - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name + - op: add + path: /spec/template/spec/containers/0/args/- + value: --feature-gates=ValidationWebhook=true # [METRICS] The following patch will enable the metrics endpoint using HTTPS and the port :8443. # More info: https://book.kubebuilder.io/reference/metrics - path: manager_metrics_patch.yaml diff --git a/config/default-with-webhook/kustomization.yaml b/config/default-with-webhook/kustomization.yaml index 5ba87fec1..f4ddabdb2 100644 --- a/config/default-with-webhook/kustomization.yaml +++ b/config/default-with-webhook/kustomization.yaml @@ -1,7 +1,7 @@ # Adds namespace to all resources. # Cluster-scoped deployment WITH webhook enabled (opt-in) # Requires cert-manager to be installed in the cluster -namespace: splunk-operator +namespace: splunk-operator # Value of this field is prepended to the # names of all resources, e.g. a deployment named @@ -115,7 +115,7 @@ patches: patch: |- - op: add path: /spec/template/spec/containers/0/env - value: + value: - name: WATCH_NAMESPACE value: WATCH_NAMESPACE_VALUE - name: RELATED_IMAGE_SPLUNK_ENTERPRISE @@ -123,13 +123,14 @@ patches: - name: OPERATOR_NAME value: splunk-operator - name: SPLUNK_GENERAL_TERMS - value: WATCH_NAMESPACE_VALUE - - name: ENABLE_VALIDATION_WEBHOOK - value: "true" + value: SPLUNK_GENERAL_TERMS_VALUE - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name + - op: add + path: /spec/template/spec/containers/0/args/- + value: --feature-gates=ValidationWebhook=true # [METRICS] The following patch will enable the metrics endpoint using HTTPS and the port :8443. # More info: https://book.kubebuilder.io/reference/metrics - path: manager_metrics_patch.yaml diff --git a/docs/FeatureGates.md b/docs/FeatureGates.md new file mode 100644 index 000000000..6661ab055 --- /dev/null +++ b/docs/FeatureGates.md @@ -0,0 +1,110 @@ +# Feature Gates + +The Splunk Operator uses the Kubernetes [FeatureGate](https://pkg.go.dev/k8s.io/component-base/featuregate) pattern to control rollout of new functionality. Feature gates allow new code to be merged to the main branch without activating in production, giving teams a safe, per-environment opt-in mechanism. + +## Usage + +Enable or disable feature gates at operator startup: + +```bash +/manager --feature-gates=ValidationWebhook=true +``` + +## Maturity Lifecycle + +| Stage | Default | Can Override | Next Step | +|-----------|---------|-------------|-----------------------------------------| +| **Alpha** | off | Yes | Promote to Beta after validation | +| **Beta** | on | Yes | Promote to GA after sustained stability | +| **GA** | on | No | Remove gate in a future release | + +## Current Feature Gates + +| Gate | Default | Stage | Since | Description | +|-----------------------|---------|-------|---------|----------------------------------------------------------| +| `ValidationWebhook` | `false` | Alpha | v3.2.0 | Centralized validation webhook server for CR admission | + +## Adding a New Feature Gate + +Follow these steps: + +### 1. Register the gate in `pkg/config/featuregates.go` + +Add a constant and an entry in `defaultFeatureGates`: + +```go +const ( + MyNewFeature featuregate.Feature = "MyNewFeature" +) + +var defaultFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ + // existing gates … + MyNewFeature: {Default: false, PreRelease: featuregate.Alpha}, +} +``` + +### 2. Guard the code path + +Check the gate wherever the feature-specific logic runs: + +```go +if config.DefaultMutableFeatureGate.Enabled(config.MyNewFeature) { + // feature-specific logic +} +``` + +This can guard anything — a reconciler code path, a helper function, a webhook handler, an HTTP endpoint, etc. + +### Example: Gating a New Controller (CRD) + +When the feature gate introduces an entirely new CRD and controller, there are additional steps beyond the basic gate check. All three steps below are **mandatory** for any new CRD behind a feature gate. + +#### a. Gate controller registration in `cmd/main.go` + +Wrap the `SetupWithManager` call so the controller only starts when the gate is on: + +```go +if config.DefaultMutableFeatureGate.Enabled(config.MyNewFeature) { + if err = (&controller.MyNewReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "MyNew") + os.Exit(1) + } +} +``` + +#### b. Add a validating webhook for the gated CRD group + +A validating webhook **must** reject CR creation when the gate is off. Without this, users can create resources that no controller will reconcile, leading to silent failures: + +```go +func (v *MyNewValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error) { + if !config.DefaultMutableFeatureGate.Enabled(config.MyNewFeature) { + return nil, fmt.Errorf( + "the MyNewFeature feature is not enabled; "+ + "set --feature-gates=MyNewFeature=true to activate") + } + return nil, nil +} +``` + +#### c. Label the CRD manifests + +Every gated CRD **must** carry maturity annotations and labels in `config/crd/bases/`. These signal to operators and tooling which gate controls the CRD and its current stability level: + +```yaml +metadata: + annotations: + splunk.com/feature-gate: MyNewFeature + splunk.com/feature-stage: Alpha + labels: + splunk.com/feature-stage: alpha +``` + +## Promoting a Gate + +- **Alpha → Beta**: Change `Default: false` to `Default: true` in `featuregates.go`; update the CRD label to `beta` +- **Beta → GA**: Set `LockToDefault: true` in the `FeatureSpec`; update the CRD label to `ga` +- **GA → Removed**: Delete the constant and `FeatureSpec` entry; remove the `if` guard in `cmd/main.go`; remove the CRD annotations/labels and the validating webhook diff --git a/docs/ValidationWebhook.md b/docs/ValidationWebhook.md index a3ae4c2de..f17ad7535 100644 --- a/docs/ValidationWebhook.md +++ b/docs/ValidationWebhook.md @@ -85,23 +85,25 @@ If you prefer not to use cert-manager, you can provide your own TLS certificates #### Option 1: Use the Webhook-Enabled Kustomize Overlay -Deploy using the `config/default-with-webhook` overlay which includes all necessary webhook components: +Deploy using the `config/default-with-webhook` overlay which includes all necessary webhook components and enables the `ValidationWebhook` feature gate automatically: ```bash -# Build and apply the webhook-enabled configuration -kustomize build config/default-with-webhook | kubectl apply -f - +make deploy IMG= ENVIRONMENT=default-with-webhook \ + SPLUNK_GENERAL_TERMS="--accept-sgt-current-at-splunk-com" ``` -#### Option 2: Enable Webhook on Existing Deployment +This uses the same `make deploy` target as the standard deployment, which substitutes the `WATCH_NAMESPACE`, `SPLUNK_ENTERPRISE_IMAGE`, and `SPLUNK_GENERAL_TERMS` placeholder values before running `kustomize build`. -If you already have the operator deployed, you can enable the webhook by setting the `ENABLE_VALIDATION_WEBHOOK` environment variable: +#### Option 2: Enable via Feature Gate on Existing Deployment + +If you already have the operator deployed with the webhook Kubernetes resources (Service, ValidatingWebhookConfiguration, TLS certificates), enable the feature gate by patching the container args: ```bash -kubectl set env deployment/splunk-operator-controller-manager \ - ENABLE_VALIDATION_WEBHOOK=true -n splunk-operator +kubectl patch deployment splunk-operator-controller-manager -n splunk-operator \ + --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--feature-gates=ValidationWebhook=true"}]' ``` -**Note:** This option also requires the webhook service, ValidatingWebhookConfiguration, and TLS certificates to be deployed. Use Option 1 for a complete deployment. +**Note:** This requires the webhook service, ValidatingWebhookConfiguration, and TLS certificates to already be deployed. Use Option 1 for a complete deployment. #### Option 3: Modify Default Kustomization @@ -119,6 +121,14 @@ Then deploy: make deploy IMG= SPLUNK_GENERAL_TERMS="--accept-sgt-current-at-splunk-com" ``` +### Legacy: ENABLE_VALIDATION_WEBHOOK Environment Variable + +> **Deprecated:** The `ENABLE_VALIDATION_WEBHOOK` environment variable is deprecated and will be removed in a future release. Use the `--feature-gates=ValidationWebhook=true` flag instead. + +For backwards compatibility, setting `ENABLE_VALIDATION_WEBHOOK=true` as an environment variable on the operator container will still enable the validation webhook. The operator logs a deprecation warning when this method is used. + +When both the `--feature-gates=ValidationWebhook=...` CLI flag and the `ENABLE_VALIDATION_WEBHOOK` env var are set, the **CLI flag takes precedence**. The env var is applied at startup before flag parsing, so the CLI value overwrites it. + ## Validated Fields The webhook validates the following spec fields: @@ -290,7 +300,7 @@ kubectl get validatingwebhookconfiguration splunk-operator-validating-webhook-co ```bash kubectl logs -n splunk-operator deployment/splunk-operator-controller-manager | grep -i webhook -# Look for: "Validation webhook enabled via ENABLE_VALIDATION_WEBHOOK=true" +# Look for: "Validation webhook enabled" # Look for: "Starting webhook server" {"port": 9443} ``` @@ -362,7 +372,7 @@ kubectl logs -n splunk-operator deployment/splunk-operator-controller-manager | If you see "Validation webhook disabled" in the logs, ensure: -1. The `ENABLE_VALIDATION_WEBHOOK` environment variable is set to `true` +1. The `--feature-gates=ValidationWebhook=true` flag is set on the operator container args (or the legacy `ENABLE_VALIDATION_WEBHOOK=true` env var is set) 2. You're using the correct kustomize overlay (`config/default-with-webhook`) ## Architecture @@ -457,7 +467,7 @@ var GVR = schema.GroupVersionResource{ // Add to DefaultValidators map var DefaultValidators = map[schema.GroupVersionResource]Validator{ // ... existing validators ... - + GVR: &GenericValidator[*enterpriseApi.]{ ValidateCreateFunc: ValidateCreate, ValidateUpdateFunc: ValidateUpdate, @@ -503,12 +513,7 @@ If your CRD doesn't need context-aware validation, you can omit `ValidateCreateW ## Disabling the Webhook -To disable the webhook after it has been enabled: - -```bash -kubectl set env deployment/splunk-operator-controller-manager \ - ENABLE_VALIDATION_WEBHOOK=false -n splunk-operator -``` +To disable the webhook after it has been enabled, remove the `--feature-gates=ValidationWebhook=true` flag from the container args (or remove the `ENABLE_VALIDATION_WEBHOOK` env var if using the legacy method). Or redeploy using the default kustomization (without webhook): diff --git a/go.mod b/go.mod index 8b5adb30c..0ff959e8b 100644 --- a/go.mod +++ b/go.mod @@ -23,6 +23,7 @@ require ( github.com/onsi/gomega v1.39.1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.22.0 + github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.11.1 github.com/wk8/go-ordered-map/v2 v2.1.7 go.uber.org/zap v1.27.0 @@ -31,6 +32,7 @@ require ( k8s.io/apiextensions-apiserver v0.33.0 k8s.io/apimachinery v0.33.0 k8s.io/client-go v0.33.0 + k8s.io/component-base v0.33.0 k8s.io/kubectl v0.26.2 sigs.k8s.io/controller-runtime v0.21.0 ) @@ -113,7 +115,6 @@ require ( github.com/rs/xid v1.2.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/cobra v1.8.1 // indirect - github.com/spf13/pflag v1.0.5 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/x448/float16 v0.8.4 // indirect @@ -152,7 +153,6 @@ require ( gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiserver v0.33.0 // indirect - k8s.io/component-base v0.33.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect diff --git a/pkg/config/featuregates.go b/pkg/config/featuregates.go new file mode 100644 index 000000000..934807511 --- /dev/null +++ b/pkg/config/featuregates.go @@ -0,0 +1,67 @@ +// Copyright (c) 2018-2026 Splunk Inc. All rights reserved. + +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package config + +import ( + "fmt" + "os" + + "k8s.io/component-base/featuregate" +) + +// Feature gate constants. Add new feature gates here following the checklist +// in docs/FeatureGates.md. +// +// Lifecycle: +// +// Alpha – off by default, opt-in via --feature-gates==true +// Beta – on by default, opt-out via --feature-gates==false +// GA – on, locked; remove the gate in a subsequent release +const ( + // ValidationWebhook gates the centralized validation webhook server. + // When enabled, the operator runs a validating webhook that enforces + // CR schema rules at admission time. + // Replaces the legacy ENABLE_VALIDATION_WEBHOOK env var. + ValidationWebhook featuregate.Feature = "ValidationWebhook" +) + +// defaultFeatureGates is the authoritative registry of all feature gates and +// their default state / maturity. Each entry here automatically becomes +// available via --feature-gates on the operator binary. +var defaultFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ + ValidationWebhook: {Default: false, PreRelease: featuregate.Alpha}, +} + +var DefaultMutableFeatureGate featuregate.MutableFeatureGate = featuregate.NewFeatureGate() + +func init() { + if err := DefaultMutableFeatureGate.Add(defaultFeatureGates); err != nil { + panic(err) + } + applyLegacyValidationWebhookEnv(DefaultMutableFeatureGate) +} + +// applyLegacyValidationWebhookEnv preserves backwards compatibility for +// deployments using the ENABLE_VALIDATION_WEBHOOK env var instead of +// --feature-gates=ValidationWebhook=true. +// Remove once the ENABLE_VALIDATION_WEBHOOK deprecation period ends. +func applyLegacyValidationWebhookEnv(fg featuregate.MutableFeatureGate) { + if os.Getenv("ENABLE_VALIDATION_WEBHOOK") == "true" { + if err := fg.SetFromMap(map[string]bool{string(ValidationWebhook): true}); err != nil { + fmt.Fprintf(os.Stderr, "WARNING: failed to apply legacy env var ENABLE_VALIDATION_WEBHOOK: %v\n", err) + } + } +} diff --git a/pkg/config/featuregates_test.go b/pkg/config/featuregates_test.go new file mode 100644 index 000000000..03f9d9779 --- /dev/null +++ b/pkg/config/featuregates_test.go @@ -0,0 +1,91 @@ +// Copyright (c) 2018-2026 Splunk Inc. All rights reserved. + +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package config + +import ( + "os" + "testing" + + "k8s.io/component-base/featuregate" +) + +func TestValidationWebhookRegistered(t *testing.T) { + all := DefaultMutableFeatureGate.GetAll() + spec, ok := all[ValidationWebhook] + if !ok { + t.Fatal("ValidationWebhook gate not registered") + } + if spec.Default != false { + t.Errorf("ValidationWebhook default: got %v, want false", spec.Default) + } + if spec.PreRelease != featuregate.Alpha { + t.Errorf("ValidationWebhook prerelease: got %v, want Alpha", spec.PreRelease) + } +} + +func TestValidationWebhookOffByDefault(t *testing.T) { + if DefaultMutableFeatureGate.Enabled(ValidationWebhook) { + t.Error("ValidationWebhook should be disabled by default (Alpha)") + } +} + +func TestLegacyEnvVarEnablesGate(t *testing.T) { + fg := featuregate.NewFeatureGate() + if err := fg.Add(map[featuregate.Feature]featuregate.FeatureSpec{ + ValidationWebhook: {Default: false, PreRelease: featuregate.Alpha}, + }); err != nil { + t.Fatalf("Add: %v", err) + } + + t.Setenv("ENABLE_VALIDATION_WEBHOOK", "true") + applyLegacyValidationWebhookEnv(fg) + + if !fg.Enabled(ValidationWebhook) { + t.Error("ValidationWebhook should be enabled when ENABLE_VALIDATION_WEBHOOK=true") + } +} + +func TestLegacyEnvVarIgnoredWhenUnset(t *testing.T) { + fg := featuregate.NewFeatureGate() + if err := fg.Add(map[featuregate.Feature]featuregate.FeatureSpec{ + ValidationWebhook: {Default: false, PreRelease: featuregate.Alpha}, + }); err != nil { + t.Fatalf("Add: %v", err) + } + + os.Unsetenv("ENABLE_VALIDATION_WEBHOOK") + applyLegacyValidationWebhookEnv(fg) + + if fg.Enabled(ValidationWebhook) { + t.Error("ValidationWebhook should remain disabled when env var is not set") + } +} + +func TestLegacyEnvVarIgnoredWhenNotTrue(t *testing.T) { + fg := featuregate.NewFeatureGate() + if err := fg.Add(map[featuregate.Feature]featuregate.FeatureSpec{ + ValidationWebhook: {Default: false, PreRelease: featuregate.Alpha}, + }); err != nil { + t.Fatalf("Add: %v", err) + } + + t.Setenv("ENABLE_VALIDATION_WEBHOOK", "false") + applyLegacyValidationWebhookEnv(fg) + + if fg.Enabled(ValidationWebhook) { + t.Error("ValidationWebhook should remain disabled when ENABLE_VALIDATION_WEBHOOK=false") + } +} diff --git a/pkg/splunk/enterprise/telemetry.go b/pkg/splunk/enterprise/telemetry.go index a095e1e6e..0339d43f1 100644 --- a/pkg/splunk/enterprise/telemetry.go +++ b/pkg/splunk/enterprise/telemetry.go @@ -5,6 +5,8 @@ import ( "encoding/json" "errors" "fmt" + "time" + enterpriseApiV3 "github.com/splunk/splunk-operator/api/v3" enterpriseApi "github.com/splunk/splunk-operator/api/v4" splclient "github.com/splunk/splunk-operator/pkg/splunk/client" @@ -13,7 +15,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/reconcile" - "time" corev1 "k8s.io/api/core/v1" ) From 34097e959dacdd925fe34d179f863c5879aca598 Mon Sep 17 00:00:00 2001 From: dpishchenkov Date: Thu, 2 Apr 2026 15:30:46 +0200 Subject: [PATCH 37/43] remove observedGeneration from postgresDatabase --- .../controller/postgresdatabase_controller.go | 43 +- .../postgresdatabase_controller_test.go | 350 ++++++++++++++- pkg/postgresql/database/core/database.go | 316 +++++++++++--- .../database/core/database_unit_test.go | 411 +++++++++++++++--- pkg/postgresql/database/core/events.go | 3 +- pkg/postgresql/database/core/types.go | 22 +- 6 files changed, 985 insertions(+), 160 deletions(-) diff --git a/internal/controller/postgresdatabase_controller.go b/internal/controller/postgresdatabase_controller.go index 3d984e969..b0cf7e82b 100644 --- a/internal/controller/postgresdatabase_controller.go +++ b/internal/controller/postgresdatabase_controller.go @@ -18,7 +18,6 @@ package controller import ( "context" - "reflect" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" @@ -29,6 +28,7 @@ import ( sharedreconcile "github.com/splunk/splunk-operator/pkg/postgresql/shared/reconcile" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -106,31 +106,28 @@ func (r *PostgresDatabaseReconciler) SetupWithManager(mgr ctrl.Manager) error { return err } return ctrl.NewControllerManagedBy(mgr). - For(&enterprisev4.PostgresDatabase{}, builder.WithPredicates( - predicate.Or( - predicate.GenerationChangedPredicate{}, - predicate.Funcs{ - UpdateFunc: func(e event.UpdateEvent) bool { - return !reflect.DeepEqual( - e.ObjectOld.GetFinalizers(), - e.ObjectNew.GetFinalizers(), - ) - }, - }, - ), - )). - Owns(&cnpgv1.Database{}, builder.WithPredicates(predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return false }, - })). - Owns(&corev1.Secret{}, builder.WithPredicates(predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return false }, - })). - Owns(&corev1.ConfigMap{}, builder.WithPredicates(predicate.Funcs{ - CreateFunc: func(event.CreateEvent) bool { return false }, - })). + WithEventFilter(predicate.Funcs{GenericFunc: func(event.GenericEvent) bool { return false }}). + For(&enterprisev4.PostgresDatabase{}, builder.WithPredicates(postgresDatabasePredicator())). + Owns(&cnpgv1.Database{}, builder.WithPredicates(predicate.GenerationChangedPredicate{})). + Owns(&corev1.Secret{}, builder.WithPredicates(predicate.ResourceVersionChangedPredicate{})). + Owns(&corev1.ConfigMap{}, builder.WithPredicates(predicate.ResourceVersionChangedPredicate{})). Named("postgresdatabase"). WithOptions(controller.Options{ MaxConcurrentReconciles: DatabaseTotalWorker, }). Complete(r) } + +func postgresDatabasePredicator() predicate.Predicate { + return predicate.Or( + predicate.GenerationChangedPredicate{}, + predicate.Funcs{ + UpdateFunc: func(e event.UpdateEvent) bool { + if !equality.Semantic.DeepEqual(e.ObjectOld.GetDeletionTimestamp(), e.ObjectNew.GetDeletionTimestamp()) { + return true + } + return !equality.Semantic.DeepEqual(e.ObjectOld.GetFinalizers(), e.ObjectNew.GetFinalizers()) + }, + }, + ) +} diff --git a/internal/controller/postgresdatabase_controller_test.go b/internal/controller/postgresdatabase_controller_test.go index 44143919f..ca23c56e7 100644 --- a/internal/controller/postgresdatabase_controller_test.go +++ b/internal/controller/postgresdatabase_controller_test.go @@ -36,6 +36,8 @@ import ( "k8s.io/client-go/tools/record" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/event" + "sigs.k8s.io/controller-runtime/pkg/predicate" "sigs.k8s.io/controller-runtime/pkg/reconcile" ) @@ -53,13 +55,15 @@ const ( // condition reasons const ( - reasonClusterNotFound = "ClusterNotFound" - reasonClusterAvailable = "ClusterAvailable" - reasonSecretsCreated = "SecretsCreated" - reasonConfigMapsCreated = "ConfigMapsCreated" - reasonUsersAvailable = "UsersAvailable" - reasonDatabasesAvailable = "DatabasesAvailable" - reasonRoleConflict = "RoleConflict" + reasonClusterNotFound = "ClusterNotFound" + reasonClusterAvailable = "ClusterAvailable" + reasonClusterProvisioning = "ClusterProvisioning" + reasonSecretsCreated = "SecretsCreated" + reasonConfigMapsCreated = "ConfigMapsCreated" + reasonRolesAvailable = "RolesAvailable" + reasonDatabasesAvailable = "DatabasesAvailable" + reasonRoleConflict = "RoleConflict" + reasonWaitingForCNPG = "WaitingForCNPG" ) // phases @@ -325,6 +329,10 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl Namespace: namespace, OwnerReferences: ownerReferences, }, + Data: map[string][]byte{ + "username": []byte(adminRoleNameForTest(dbName)), + "password": []byte("test-password"), + }, })).To(Succeed()) Expect(k8sClient.Create(ctx, &corev1.Secret{ @@ -333,6 +341,10 @@ func seedOwnedDatabaseArtifacts(ctx context.Context, namespace, resourceName, cl Namespace: namespace, OwnerReferences: ownerReferences, }, + Data: map[string][]byte{ + "username": []byte(rwRoleNameForTest(dbName)), + "password": []byte("test-password"), + }, })).To(Succeed()) Expect(k8sClient.Create(ctx, &corev1.ConfigMap{ @@ -392,14 +404,41 @@ func expectStatusCondition(current *enterprisev4.PostgresDatabase, conditionType func expectReadyStatus(current *enterprisev4.PostgresDatabase, generation int64, expectedDatabase enterprisev4.DatabaseInfo) { expectStatusPhase(current, phaseReady) - Expect(current.Status.ObservedGeneration).NotTo(BeNil()) - Expect(*current.Status.ObservedGeneration).To(Equal(generation)) Expect(current.Status.Databases).To(HaveLen(1)) Expect(current.Status.Databases[0].Name).To(Equal(expectedDatabase.Name)) Expect(current.Status.Databases[0].Ready).To(Equal(expectedDatabase.Ready)) Expect(current.Status.Databases[0].AdminUserSecretRef).NotTo(BeNil()) Expect(current.Status.Databases[0].RWUserSecretRef).NotTo(BeNil()) Expect(current.Status.Databases[0].ConfigMapRef).NotTo(BeNil()) + Expect(current.Status.ObservedGeneration).NotTo(BeNil()) + Expect(*current.Status.ObservedGeneration).To(Equal(generation)) +} + +func reconcilePostgresDatabaseToReady(ctx context.Context, scenario readyClusterScenario, poolerEnabled bool) *enterprisev4.PostgresDatabase { + seedReadyClusterScenario(ctx, scenario, poolerEnabled) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current := expectFinalizerAdded(ctx, scenario.requestName) + seedExistingDatabaseStatus(ctx, current, scenario.dbName) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectProvisionedArtifacts(ctx, scenario, current) + expectManagedRolesPatched(ctx, scenario) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + cnpgDatabase := expectCNPGDatabaseCreated(ctx, scenario, current) + markCNPGDatabaseApplied(ctx, cnpgDatabase) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current = fetchPostgresDatabase(ctx, scenario.requestName) + expectReadyStatus(current, current.Generation, enterprisev4.DatabaseInfo{Name: scenario.dbName, Ready: true}) + return current } var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { @@ -480,7 +519,7 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { expectStatusCondition(current, condClusterReady, metav1.ConditionTrue, reasonClusterAvailable) expectStatusCondition(current, condSecretsReady, metav1.ConditionTrue, reasonSecretsCreated) expectStatusCondition(current, condConfigMapsReady, metav1.ConditionTrue, reasonConfigMapsCreated) - expectStatusCondition(current, condRolesReady, metav1.ConditionTrue, reasonUsersAvailable) + expectStatusCondition(current, condRolesReady, metav1.ConditionTrue, reasonRolesAvailable) expectStatusCondition(current, condDatabasesReady, metav1.ConditionTrue, reasonDatabasesAvailable) Expect(meta.FindStatusCondition(current.Status.Conditions, condPrivilegesReady)).To(BeNil()) }) @@ -504,6 +543,246 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { }) }) + When("the referenced PostgresCluster exists but is not ready", func() { + It("waits for cluster to be provisioned and sets ClusterReady=False with reason ClusterProvisioning", func() { + scenario := newReadyClusterScenario(namespace, "not-ready-cluster", "not-ready-postgres", "not-ready-cnpg", dbAppdb) + createPostgresDatabaseResource(ctx, scenario.namespace, scenario.resourceName, scenario.clusterName, []enterprisev4.DatabaseDefinition{{Name: scenario.dbName}}) + createPostgresClusterResource(ctx, scenario.namespace, scenario.clusterName) + // Do NOT call markPostgresClusterReady to leave it in provisioning state + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current := expectFinalizerAdded(ctx, scenario.requestName) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + + current = fetchPostgresDatabase(ctx, scenario.requestName) + expectStatusPhase(current, phasePending) + expectStatusCondition(current, condClusterReady, metav1.ConditionFalse, reasonClusterProvisioning) + }) + }) + + When("owned resource drift occurs after the PostgresDatabase is ready", func() { + It("repairs configmap content drift", func() { + scenario := newReadyClusterScenario(namespace, "configmap-drift", "tenant-cluster", "tenant-cnpg", "appdb") + owner := reconcilePostgresDatabaseToReady(ctx, scenario, false) + + configMap := &corev1.ConfigMap{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-config", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, configMap)).To(Succeed()) + configMap.Data["rw-host"] = "unexpected.example" + Expect(k8sClient.Update(ctx, configMap)).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace}, configMap)).To(Succeed()) + Expect(configMap.Data).To(HaveKeyWithValue("rw-host", "tenant-rw."+scenario.namespace+".svc.cluster.local")) + + current := fetchPostgresDatabase(ctx, scenario.requestName) + expectReadyStatus(current, current.Generation, enterprisev4.DatabaseInfo{Name: scenario.dbName, Ready: true}) + Expect(metav1.IsControlledBy(configMap, owner)).To(BeTrue()) + }) + + It("recreates a deleted configmap", func() { + scenario := newReadyClusterScenario(namespace, "configmap-delete", "tenant-cluster", "tenant-cnpg", "appdb") + reconcilePostgresDatabaseToReady(ctx, scenario, false) + + configMapName := fmt.Sprintf("%s-%s-config", scenario.resourceName, scenario.dbName) + Expect(k8sClient.Delete(ctx, &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{Name: configMapName, Namespace: scenario.namespace}, + })).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + configMap := &corev1.ConfigMap{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: configMapName, Namespace: scenario.namespace}, configMap)).To(Succeed()) + Expect(configMap.Data).To(HaveKeyWithValue("rw-host", "tenant-rw."+scenario.namespace+".svc.cluster.local")) + }) + + It("does not recreate a deleted managed user secret", func() { + scenario := newReadyClusterScenario(namespace, "secret-delete", "tenant-cluster", "tenant-cnpg", "appdb") + reconcilePostgresDatabaseToReady(ctx, scenario, false) + + secretName := fmt.Sprintf("%s-%s-admin", scenario.resourceName, scenario.dbName) + Expect(k8sClient.Delete(ctx, &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{Name: secretName, Namespace: scenario.namespace}, + })).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + + current := fetchPostgresDatabase(ctx, scenario.requestName) + expectStatusPhase(current, "Provisioning") + expectStatusCondition(current, "SecretsReady", metav1.ConditionFalse, "SecretsDriftDetected") + + missing := &corev1.Secret{} + err = k8sClient.Get(ctx, types.NamespacedName{Name: secretName, Namespace: scenario.namespace}, missing) + Expect(apierrors.IsNotFound(err)).To(BeTrue()) + }) + + It("re-attaches ownership when a managed user secret loses its owner reference", func() { + scenario := newReadyClusterScenario(namespace, "secret-adopt", "tenant-cluster", "tenant-cnpg", "appdb") + owner := reconcilePostgresDatabaseToReady(ctx, scenario, false) + + secret := &corev1.Secret{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-admin", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, secret)).To(Succeed()) + secret.OwnerReferences = nil + Expect(k8sClient.Update(ctx, secret)).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: secret.Name, Namespace: secret.Namespace}, secret)).To(Succeed()) + Expect(metav1.IsControlledBy(secret, owner)).To(BeTrue()) + + current := fetchPostgresDatabase(ctx, scenario.requestName) + expectReadyStatus(current, current.Generation, enterprisev4.DatabaseInfo{Name: scenario.dbName, Ready: true}) + }) + + It("creates secrets and configmaps for a newly added database while preserving existing ones", func() { + scenario := newReadyClusterScenario(namespace, "new-database", "tenant-cluster", "tenant-cnpg", "appdb") + current := reconcilePostgresDatabaseToReady(ctx, scenario, false) + + current.Spec.Databases = append(current.Spec.Databases, enterprisev4.DatabaseDefinition{Name: "analytics"}) + Expect(k8sClient.Update(ctx, current)).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + + for _, secretName := range []string{ + fmt.Sprintf("%s-analytics-admin", scenario.resourceName), + fmt.Sprintf("%s-analytics-rw", scenario.resourceName), + } { + secret := &corev1.Secret{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: secretName, Namespace: scenario.namespace}, secret)).To(Succeed()) + } + + configMap := &corev1.ConfigMap{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-analytics-config", scenario.resourceName), Namespace: scenario.namespace}, configMap)).To(Succeed()) + Expect(configMap.Data).To(HaveKeyWithValue("dbname", "analytics")) + + existingSecret := &corev1.Secret{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: fmt.Sprintf("%s-%s-admin", scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, existingSecret)).To(Succeed()) + }) + + It("recreates a deleted CNPG Database", func() { + scenario := newReadyClusterScenario(namespace, "cnpg-database-delete", "tenant-cluster", "tenant-cnpg", "appdb") + owner := reconcilePostgresDatabaseToReady(ctx, scenario, false) + + cnpgDatabaseName := fmt.Sprintf("%s-%s", scenario.resourceName, scenario.dbName) + Expect(k8sClient.Delete(ctx, &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{Name: cnpgDatabaseName, Namespace: scenario.namespace}, + })).To(Succeed()) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + + cnpgDatabase := &cnpgv1.Database{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: cnpgDatabaseName, Namespace: scenario.namespace}, cnpgDatabase)).To(Succeed()) + Expect(cnpgDatabase.Spec.Name).To(Equal(scenario.dbName)) + Expect(metav1.IsControlledBy(cnpgDatabase, owner)).To(BeTrue()) + + markCNPGDatabaseApplied(ctx, cnpgDatabase) + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + }) + }) + + When("the CNPG Database exists but has not been applied yet", func() { + It("waits for CNPG to apply the database and sets DatabasesReady=False with reason WaitingForCNPG", func() { + scenario := newReadyClusterScenario(namespace, "cnpg-wait", "tenant-cluster", "tenant-cnpg", dbAppdb) + seedReadyClusterScenario(ctx, scenario, false) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current := expectFinalizerAdded(ctx, scenario.requestName) + seedExistingDatabaseStatus(ctx, current, scenario.dbName) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectProvisionedArtifacts(ctx, scenario, current) + expectManagedRolesPatched(ctx, scenario) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectCNPGDatabaseCreated(ctx, scenario, current) + // Do NOT call markCNPGDatabaseApplied to leave it waiting + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + + current = fetchPostgresDatabase(ctx, scenario.requestName) + expectStatusCondition(current, condDatabasesReady, metav1.ConditionFalse, reasonWaitingForCNPG) + }) + }) + + When("managed roles have been patched but CNPG has not reconciled them yet", func() { + It("waits for CNPG to reconcile roles and sets RolesReady=False with reason WaitingForCNPG", func() { + scenario := newReadyClusterScenario(namespace, "roles-wait", "tenant-cluster", "tenant-cnpg", dbAppdb) + createPostgresDatabaseResource(ctx, scenario.namespace, scenario.resourceName, scenario.clusterName, []enterprisev4.DatabaseDefinition{{Name: scenario.dbName}}) + postgresCluster := createPostgresClusterResource(ctx, scenario.namespace, scenario.clusterName) + markPostgresClusterReady(ctx, postgresCluster, scenario.cnpgClusterName, scenario.namespace, false) + cnpgCluster := createCNPGClusterResource(ctx, scenario.namespace, scenario.cnpgClusterName) + // Mark with service endpoints but no reconciled roles — ConfigMaps need hosts but roles should stay pending + markCNPGClusterReady(ctx, cnpgCluster, []string{}, "tenant-rw", "tenant-ro") + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + + current := expectFinalizerAdded(ctx, scenario.requestName) + seedExistingDatabaseStatus(ctx, current, scenario.dbName) + + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectProvisionedArtifacts(ctx, scenario, current) + expectManagedRolesPatched(ctx, scenario) + + current = fetchPostgresDatabase(ctx, scenario.requestName) + expectStatusCondition(current, condRolesReady, metav1.ConditionFalse, reasonWaitingForCNPG) + }) + }) + + When("postgresdatabase secondary-resource predicates run", func() { + It("triggers on cnpg database generation change and ignores status-only updates", func() { + pred := predicate.GenerationChangedPredicate{} + + Expect(pred.Update(event.UpdateEvent{ + ObjectOld: &cnpgv1.Database{ObjectMeta: metav1.ObjectMeta{Generation: 1}}, + ObjectNew: &cnpgv1.Database{ObjectMeta: metav1.ObjectMeta{Generation: 2}}, + })).To(BeTrue()) + Expect(pred.Update(event.UpdateEvent{ + ObjectOld: &cnpgv1.Database{ObjectMeta: metav1.ObjectMeta{Generation: 1}}, + ObjectNew: &cnpgv1.Database{ObjectMeta: metav1.ObjectMeta{Generation: 1}}, + })).To(BeFalse()) + }) + + It("treats secret create, update, and delete events as drift triggers", func() { + pred := predicate.ResourceVersionChangedPredicate{} + + Expect(pred.Create(event.CreateEvent{})).To(BeTrue()) + Expect(pred.Update(event.UpdateEvent{ + ObjectOld: &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "secret", Namespace: "test", ResourceVersion: "1"}}, + ObjectNew: &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "secret", Namespace: "test", ResourceVersion: "2"}}, + })).To(BeTrue()) + Expect(pred.Delete(event.DeleteEvent{})).To(BeTrue()) + }) + + It("treats configmap create, update, and delete events as drift triggers", func() { + pred := predicate.ResourceVersionChangedPredicate{} + + Expect(pred.Create(event.CreateEvent{})).To(BeTrue()) + Expect(pred.Update(event.UpdateEvent{ + ObjectOld: &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: "config", Namespace: "test", ResourceVersion: "1"}}, + ObjectNew: &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: "config", Namespace: "test", ResourceVersion: "2"}}, + })).To(BeTrue()) + Expect(pred.Delete(event.DeleteEvent{})).To(BeTrue()) + }) + }) + When("role ownership conflicts exist", func() { It("marks the resource failed and stops provisioning dependent resources", func() { resourceName := "conflict-cluster" @@ -673,4 +952,55 @@ var _ = Describe("PostgresDatabase Controller", Label("postgres"), func() { }) }) }) + + When("a retained CNPG Database exists without owner reference", func() { + It("re-adopts the resource and removes retained annotation", func() { + scenario := newReadyClusterScenario(namespace, "adopt-cnpg", "tenant-cluster", "tenant-cnpg", dbAppdb) + createPostgresDatabaseResource(ctx, scenario.namespace, scenario.resourceName, scenario.clusterName, []enterprisev4.DatabaseDefinition{{Name: scenario.dbName}}, postgresDatabaseFinalizer) + postgresCluster := createPostgresClusterResource(ctx, scenario.namespace, scenario.clusterName) + markPostgresClusterReady(ctx, postgresCluster, scenario.cnpgClusterName, scenario.namespace, false) + cnpgCluster := createCNPGClusterResource(ctx, scenario.namespace, scenario.cnpgClusterName) + markCNPGClusterReady(ctx, cnpgCluster, []string{adminRoleNameForTest(scenario.dbName), rwRoleNameForTest(scenario.dbName)}, "tenant-rw", "tenant-ro") + + // Create a CNPG Database with retained annotation but no owner reference + retainedCNPGDb := &cnpgv1.Database{ + ObjectMeta: metav1.ObjectMeta{ + Name: cnpgDatabaseNameForTest(scenario.resourceName, scenario.dbName), + Namespace: scenario.namespace, + Annotations: map[string]string{ + retainedFromAnnotation: scenario.resourceName, + }, + }, + Spec: cnpgv1.DatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: scenario.cnpgClusterName}, + Name: scenario.dbName, + Owner: adminRoleNameForTest(scenario.dbName), + }, + } + Expect(k8sClient.Create(ctx, retainedCNPGDb)).To(Succeed()) + + // Finalizer already present — first reconcile goes straight to provisioning + current := fetchPostgresDatabase(ctx, scenario.requestName) + seedExistingDatabaseStatus(ctx, current, scenario.dbName) + + result, err := reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + expectProvisionedArtifacts(ctx, scenario, current) + expectManagedRolesPatched(ctx, scenario) + + // Second reconcile: roles ready, re-adopts the retained CNPG Database, waits for applied + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectReconcileResult(result, err, 15*time.Second) + + adoptedDb := &cnpgv1.Database{} + Expect(k8sClient.Get(ctx, types.NamespacedName{Name: cnpgDatabaseNameForTest(scenario.resourceName, scenario.dbName), Namespace: scenario.namespace}, adoptedDb)).To(Succeed()) + Expect(metav1.IsControlledBy(adoptedDb, current)).To(BeTrue()) + _, hasRetainedAnnotation := adoptedDb.Annotations[retainedFromAnnotation] + Expect(hasRetainedAnnotation).To(BeFalse()) + + markCNPGDatabaseApplied(ctx, adoptedDb) + result, err = reconcilePostgresDatabase(ctx, scenario.requestName) + expectEmptyReconcileResult(result, err) + }) + }) }) diff --git a/pkg/postgresql/database/core/database.go b/pkg/postgresql/database/core/database.go index 362b2939c..8dd110d9e 100644 --- a/pkg/postgresql/database/core/database.go +++ b/pkg/postgresql/database/core/database.go @@ -30,6 +30,36 @@ import ( // Injected by the controller so the core never imports the pgx adapter directly. type NewDBRepoFunc func(ctx context.Context, host, dbName, password string) (DBRepo, error) +type secretReconcileError struct { + message string + reason conditionReasons +} + +type secretMissingPolicy int + +const ( + createSecretIfMissing secretMissingPolicy = iota + reportSecretDriftIfMissing +) + +func (e *secretReconcileError) Error() string { + return e.message +} + +func requeueOnConflict(ctx context.Context, err error, category reconcileConflictCategory, action string) (ctrl.Result, error, bool) { + if !errors.IsConflict(err) { + return ctrl.Result{}, err, false + } + + // Keep the category stable so future metrics or events can aggregate conflict sources. + log.FromContext(ctx).Info( + "Conflict during PostgresDatabase reconciliation, will requeue", + "category", category, + "action", action, + ) + return ctrl.Result{Requeue: true}, nil, true +} + // PostgresDatabaseService is the application service entry point called by the primary adapter (reconciler). // newDBRepo is injected to keep the core free of pgx imports. func PostgresDatabaseService( @@ -42,6 +72,8 @@ func PostgresDatabaseService( logger := log.FromContext(ctx).WithValues("postgresDatabase", postgresDB.Name) ctx = log.IntoContext(ctx, logger) logger.Info("Reconciling PostgresDatabase") + wasReady := postgresDB.Status.Phase != nil && *postgresDB.Status.Phase == string(readyDBPhase) + previouslyProvisionedDatabases := existingDatabaseStatus(postgresDB) updateStatus := func(conditionType conditionTypes, conditionStatus metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileDBPhases) error { return persistStatus(ctx, c, rc.Metrics, postgresDB, conditionType, conditionStatus, reason, message, phase) @@ -50,6 +82,9 @@ func PostgresDatabaseService( // Finalizer: cleanup on deletion, register on creation. if postgresDB.GetDeletionTimestamp() != nil { if err := handleDeletion(ctx, rc, postgresDB); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictDeletion, "handling deletion"); ok { + return result, conflictErr + } logger.Error(err, "Failed to clean up PostgresDatabase") rc.emitWarning(postgresDB, EventCleanupFailed, fmt.Sprintf("Cleanup failed: %v", err)) return ctrl.Result{}, err @@ -60,16 +95,13 @@ func PostgresDatabaseService( if !controllerutil.ContainsFinalizer(postgresDB, postgresDatabaseFinalizerName) { controllerutil.AddFinalizer(postgresDB, postgresDatabaseFinalizerName) if err := c.Update(ctx, postgresDB); err != nil { - logger.Error(err, "Failed to add finalizer to PostgresDatabase") + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictFinalizer, "adding finalizer"); ok { + return result, conflictErr + } + logger.Error(err, "Failed to add finalizer") return ctrl.Result{}, fmt.Errorf("failed to add finalizer: %w", err) } - logger.Info("Finalizer added") - return ctrl.Result{}, nil - } - - // ObservedGeneration equality means all phases completed on the current spec — nothing to do. - if postgresDB.Status.ObservedGeneration != nil && *postgresDB.Status.ObservedGeneration == postgresDB.Generation { - logger.Info("Spec unchanged and all phases complete, skipping") + logger.Info("Finalizer added successfully") return ctrl.Result{}, nil } @@ -79,23 +111,32 @@ func PostgresDatabaseService( if errors.IsNotFound(err) { rc.emitWarning(postgresDB, EventClusterNotFound, fmt.Sprintf("PostgresCluster %s not found", postgresDB.Spec.ClusterRef.Name)) if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterNotFound, "Cluster CR not found", pendingDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictClusterStatus, "persisting cluster not found status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: clusterNotFoundRetryDelay}, nil } if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterInfoFetchFailed, "Can't reach Cluster CR due to transient errors", pendingDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictClusterStatus, "persisting cluster fetch failure status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist cluster status") } return ctrl.Result{}, err } clusterStatus := getClusterReadyStatus(cluster) - logger.Info("Cluster validation complete", "clusterName", postgresDB.Spec.ClusterRef.Name, "status", clusterStatus) + logger.Info("Cluster validation completed", "clusterRef", postgresDB.Spec.ClusterRef.Name, "status", clusterStatus) switch clusterStatus { case ClusterNotReady, ClusterNoProvisionerRef: rc.emitWarning(postgresDB, EventClusterNotReady, "Referenced PostgresCluster is not ready yet") if err := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterProvisioning, "Cluster is not in ready state yet", pendingDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictClusterStatus, "persisting cluster provisioning status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil @@ -103,6 +144,9 @@ func PostgresDatabaseService( case ClusterReady: rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, clusterReady, EventClusterValidated, "Referenced PostgresCluster is ready") if err := updateStatus(clusterReady, metav1.ConditionTrue, reasonClusterAvailable, "Cluster is operational", provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictClusterStatus, "persisting cluster ready status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } } @@ -114,11 +158,14 @@ func PostgresDatabaseService( "If you deleted a previous PostgresDatabase, recreate it with the original name to re-adopt the orphaned resources.", strings.Join(roleConflicts, ", ")) conflictErr := fmt.Errorf("role conflict detected: %s", strings.Join(roleConflicts, ", ")) - logger.Error(conflictErr, conflictMsg) + logger.Error(conflictErr, "Failed to validate managed role ownership", "conflicts", roleConflicts) rc.emitWarning(postgresDB, EventRoleConflict, conflictMsg) errs := []error{conflictErr} if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRoleConflict, conflictMsg, failedDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictRoleConflictStatus, "persisting role conflict status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist role conflict status") errs = append(errs, fmt.Errorf("failed to update status: %w", statusErr)) } return ctrl.Result{}, stderrors.Join(errs...) @@ -131,23 +178,44 @@ func PostgresDatabaseService( Name: cluster.Status.ProvisionerRef.Name, Namespace: cluster.Status.ProvisionerRef.Namespace, }, cnpgCluster); err != nil { - logger.Error(err, "Failed to fetch CNPG Cluster") + logger.Error(err, "Failed to fetch CNPG Cluster", "cluster", cluster.Status.ProvisionerRef.Name) return ctrl.Result{}, err } // Phase: CredentialProvisioning — secrets must exist before roles are patched. // CNPG rejects a PasswordSecretRef pointing at a missing secret. - if err := reconcileUserSecrets(ctx, c, rc.Scheme, postgresDB); err != nil { - rc.emitWarning(postgresDB, EventUserSecretsFailed, fmt.Sprintf("Failed to reconcile user secrets: %v", err)) + if err := reconcileRoleSecrets(ctx, c, rc.Scheme, postgresDB, previouslyProvisionedDatabases); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictSecretsReconcile, "reconciling user secrets"); ok { + return result, conflictErr + } + var secretErr *secretReconcileError + if stderrors.As(err, &secretErr) { + rc.emitWarning(postgresDB, EventRolesSecretsDriftDetected, secretErr.message) + if statusErr := updateStatus(secretsReady, metav1.ConditionFalse, secretErr.reason, + secretErr.message, provisioningDBPhase); statusErr != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictSecretsStatus, "persisting secret drift status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist secret drift status") + } + return ctrl.Result{RequeueAfter: retryDelay}, nil + } + rc.emitWarning(postgresDB, EventRoleSecretsFailed, fmt.Sprintf("Failed to reconcile user secrets: %v", err)) if statusErr := updateStatus(secretsReady, metav1.ConditionFalse, reasonSecretsCreationFailed, fmt.Sprintf("Failed to reconcile user secrets: %v", err), provisioningDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictSecretsStatus, "persisting secret failure status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist secrets status") } return ctrl.Result{}, err } rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, secretsReady, EventSecretsReady, fmt.Sprintf("All secrets provisioned for %d databases", len(postgresDB.Spec.Databases))) if err := updateStatus(secretsReady, metav1.ConditionTrue, reasonSecretsCreated, fmt.Sprintf("All secrets provisioned for %d databases", len(postgresDB.Spec.Databases)), provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictSecretsStatus, "persisting secrets ready status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } @@ -155,16 +223,25 @@ func PostgresDatabaseService( // as databases are ready, so they are created alongside secrets. endpoints := resolveClusterEndpoints(cluster, cnpgCluster, postgresDB.Namespace) if err := reconcileRoleConfigMaps(ctx, c, rc.Scheme, postgresDB, endpoints); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictConfigMapsReconcile, "reconciling configmaps"); ok { + return result, conflictErr + } rc.emitWarning(postgresDB, EventAccessConfigFailed, fmt.Sprintf("Failed to reconcile ConfigMaps: %v", err)) if statusErr := updateStatus(configMapsReady, metav1.ConditionFalse, reasonConfigMapsCreationFailed, fmt.Sprintf("Failed to reconcile ConfigMaps: %v", err), provisioningDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictConfigMapsStatus, "persisting configmaps failure status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist configmaps status") } return ctrl.Result{}, err } rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, configMapsReady, EventConfigMapsReady, fmt.Sprintf("All ConfigMaps provisioned for %d databases", len(postgresDB.Spec.Databases))) if err := updateStatus(configMapsReady, metav1.ConditionTrue, reasonConfigMapsCreated, fmt.Sprintf("All ConfigMaps provisioned for %d databases", len(postgresDB.Spec.Databases)), provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictConfigMapsStatus, "persisting configmaps ready status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } @@ -176,55 +253,74 @@ func PostgresDatabaseService( allRoles := append(desired, rolesToRemove...) if len(rolesToAdd) > 0 || len(rolesToRemove) > 0 { - logger.Info("CNPG Cluster patch started, role drift detected", "toAdd", len(rolesToAdd), "toRemove", len(rolesToRemove)) + logger.Info("Managed roles patch started", "addCount", len(rolesToAdd), "removeCount", len(rolesToRemove)) if err := patchManagedRoles(ctx, c, fieldManager, cluster, allRoles); err != nil { - logger.Error(err, "Failed to patch users in CNPG Cluster") + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictManagedRolesPatch, "patching managed roles"); ok { + return result, conflictErr + } + logger.Error(err, "Failed to patch managed roles", "roleCount", len(allRoles)) rc.emitWarning(postgresDB, EventManagedRolesPatchFailed, fmt.Sprintf("Failed to patch managed roles: %v", err)) - if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonUsersCreationFailed, + if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRolesCreationFailed, fmt.Sprintf("Failed to patch managed roles: %v", err), failedDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + logger.Error(statusErr, "Failed to persist roles status") } return ctrl.Result{}, err } + logger.Info("Managed roles patched", "roleCount", len(allRoles)) rc.emitNormal(postgresDB, EventRoleReconciliationStarted, fmt.Sprintf("Patched managed roles: %d to add, %d to remove", len(rolesToAdd), len(rolesToRemove))) if err := updateStatus(rolesReady, metav1.ConditionFalse, reasonWaitingForCNPG, fmt.Sprintf("Waiting for roles to be reconciled: %d to add, %d to remove", len(rolesToAdd), len(rolesToRemove)), provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictRolesStatus, "persisting roles waiting status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil } - roleNames := getDesiredUsers(postgresDB) + roleNames := getDesiredRoles(postgresDB) notReadyRoles, err := verifyRolesReady(ctx, roleNames, cnpgCluster) if err != nil { rc.emitWarning(postgresDB, EventRoleFailed, fmt.Sprintf("Role reconciliation failed: %v", err)) - if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonUsersCreationFailed, + if statusErr := updateStatus(rolesReady, metav1.ConditionFalse, reasonRolesCreationFailed, fmt.Sprintf("Role creation failed: %v", err), failedDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictRolesStatus, "persisting role failure status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist roles status") } return ctrl.Result{}, err } if len(notReadyRoles) > 0 { if err := updateStatus(rolesReady, metav1.ConditionFalse, reasonWaitingForCNPG, fmt.Sprintf("Waiting for roles to be reconciled: %v", notReadyRoles), provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictRolesStatus, "persisting roles pending status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil } rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, rolesReady, EventRolesReady, fmt.Sprintf("Roles reconciled: %d active, %d removed", len(rolesToAdd), len(rolesToRemove))) - if err := updateStatus(rolesReady, metav1.ConditionTrue, reasonUsersAvailable, + if err := updateStatus(rolesReady, metav1.ConditionTrue, reasonRolesAvailable, fmt.Sprintf("Roles reconciled: %d active, %d removed", len(rolesToAdd), len(rolesToRemove)), provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictRolesStatus, "persisting roles ready status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } // Phase: DatabaseProvisioning adopted, err := reconcileCNPGDatabases(ctx, c, rc.Scheme, postgresDB, cluster) if err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictCNPGDatabasesReconcile, "reconciling CNPG databases"); ok { + return result, conflictErr + } logger.Error(err, "Failed to reconcile CNPG Databases") rc.emitWarning(postgresDB, EventDatabasesReconcileFailed, fmt.Sprintf("Failed to reconcile databases: %v", err)) if statusErr := updateStatus(databasesReady, metav1.ConditionFalse, reasonDatabaseReconcileFailed, fmt.Sprintf("Failed to reconcile databases: %v", err), failedDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + logger.Error(statusErr, "Failed to persist databases status") } return ctrl.Result{}, err } @@ -234,13 +330,16 @@ func PostgresDatabaseService( notReadyDBs, err := verifyDatabasesReady(ctx, c, postgresDB) if err != nil { - logger.Error(err, "Failed to verify database status") + logger.Error(err, "Failed to verify database readiness") return ctrl.Result{}, err } if len(notReadyDBs) > 0 { rc.emitOnceBeforeWait(postgresDB, postgresDB.Status.Conditions, databasesReady, EventDatabaseReconciliationStarted, fmt.Sprintf("Reconciling %d databases, waiting for readiness", len(postgresDB.Spec.Databases))) if err := updateStatus(databasesReady, metav1.ConditionFalse, reasonWaitingForCNPG, fmt.Sprintf("Waiting for databases to be ready: %v", notReadyDBs), provisioningDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictDatabasesStatus, "persisting databases pending status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } return ctrl.Result{RequeueAfter: retryDelay}, nil @@ -248,6 +347,9 @@ func PostgresDatabaseService( rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, databasesReady, EventDatabasesReady, fmt.Sprintf("All %d databases ready", len(postgresDB.Spec.Databases))) if err := updateStatus(databasesReady, metav1.ConditionTrue, reasonDatabasesAvailable, fmt.Sprintf("All %d databases ready", len(postgresDB.Spec.Databases)), readyDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictDatabasesStatus, "persisting databases ready status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } @@ -284,26 +386,37 @@ func PostgresDatabaseService( rc.emitWarning(postgresDB, EventPrivilegesGrantFailed, fmt.Sprintf("Failed to grant RW role privileges: %v", err)) if statusErr := updateStatus(privilegesReady, metav1.ConditionFalse, reasonPrivilegesGrantFailed, fmt.Sprintf("Failed to grant RW role privileges: %v", err), provisioningDBPhase); statusErr != nil { - logger.Error(statusErr, "Failed to update status") + if result, conflictErr, ok := requeueOnConflict(ctx, statusErr, conflictPrivilegesStatus, "persisting privileges failure status"); ok { + return result, conflictErr + } + logger.Error(statusErr, "Failed to persist privileges status") } return ctrl.Result{}, err } rc.emitOnConditionTransition(postgresDB, postgresDB.Status.Conditions, privilegesReady, EventPrivilegesReady, fmt.Sprintf("RW role privileges granted for all %d databases", len(postgresDB.Spec.Databases))) if err := updateStatus(privilegesReady, metav1.ConditionTrue, reasonPrivilegesGranted, fmt.Sprintf("RW role privileges granted for all %d databases", len(postgresDB.Spec.Databases)), readyDBPhase); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictPrivilegesStatus, "persisting privileges ready status"); ok { + return result, conflictErr + } return ctrl.Result{}, err } } - rc.emitNormal(postgresDB, EventPostgresDatabaseReady, fmt.Sprintf("PostgresDatabase %s is ready", postgresDB.Name)) + if !wasReady { + rc.emitNormal(postgresDB, EventPostgresDatabaseReady, fmt.Sprintf("PostgresDatabase %s is ready", postgresDB.Name)) + } postgresDB.Status.Databases = populateDatabaseStatus(postgresDB) postgresDB.Status.ObservedGeneration = &postgresDB.Generation if err := c.Status().Update(ctx, postgresDB); err != nil { + if result, conflictErr, ok := requeueOnConflict(ctx, err, conflictFinalStatus, "persisting final status"); ok { + return result, conflictErr + } return ctrl.Result{}, fmt.Errorf("failed to persist final status: %w", err) } - logger.Info("All phases complete") + logger.Info("PostgresDatabase reconciliation completed") return ctrl.Result{}, nil } @@ -350,7 +463,7 @@ func getClusterReadyStatus(cluster *enterprisev4.PostgresCluster) clusterReadySt return ClusterReady } -func getDesiredUsers(postgresDB *enterprisev4.PostgresDatabase) []string { +func getDesiredRoles(postgresDB *enterprisev4.PostgresDatabase) []string { users := make([]string, 0, len(postgresDB.Spec.Databases)*2) for _, dbSpec := range postgresDB.Spec.Databases { users = append(users, adminRoleName(dbSpec.Name), rwRoleName(dbSpec.Name)) @@ -358,12 +471,15 @@ func getDesiredUsers(postgresDB *enterprisev4.PostgresDatabase) []string { return users } -func getUsersInClusterSpec(cluster *enterprisev4.PostgresCluster) []string { - users := make([]string, 0, len(cluster.Spec.ManagedRoles)) - for _, role := range cluster.Spec.ManagedRoles { - users = append(users, role.Name) +func existingDatabaseStatus(postgresDB *enterprisev4.PostgresDatabase) map[string]struct{} { + if postgresDB.Status.Phase == nil || *postgresDB.Status.Phase != string(readyDBPhase) { + return map[string]struct{}{} } - return users + existing := make(map[string]struct{}, len(postgresDB.Status.Databases)) + for _, database := range postgresDB.Status.Databases { + existing[database.Name] = struct{}{} + } + return existing } // rolesMatchClusterSpec returns true if desired and actual contain the same roles @@ -417,7 +533,6 @@ func parseRoleNames(raw []byte) []string { } func patchManagedRoles(ctx context.Context, c client.Client, fieldManager string, cluster *enterprisev4.PostgresCluster, roles []enterprisev4.ManagedRole) error { - logger := log.FromContext(ctx) rolePatch, err := buildManagedRolesPatch(cluster, roles, c.Scheme()) if err != nil { return fmt.Errorf("building managed roles patch: %w", err) @@ -425,14 +540,12 @@ func patchManagedRoles(ctx context.Context, c client.Client, fieldManager string if err := c.Patch(ctx, rolePatch, client.Apply, client.FieldOwner(fieldManager)); err != nil { return fmt.Errorf("patching managed roles: %w", err) } - logger.Info("Managed roles patched", "count", len(roles)) return nil } -func verifyRolesReady(ctx context.Context, expectedUsers []string, cnpgCluster *cnpgv1.Cluster) ([]string, error) { - logger := log.FromContext(ctx) +func verifyRolesReady(_ context.Context, expectedRoles []string, cnpgCluster *cnpgv1.Cluster) ([]string, error) { if cnpgCluster.Status.ManagedRolesStatus.CannotReconcile != nil { - for _, userName := range expectedUsers { + for _, userName := range expectedRoles { if errs, exists := cnpgCluster.Status.ManagedRolesStatus.CannotReconcile[userName]; exists { return nil, fmt.Errorf("reconciling user %s: %v", userName, errs) } @@ -440,14 +553,11 @@ func verifyRolesReady(ctx context.Context, expectedUsers []string, cnpgCluster * } reconciled := cnpgCluster.Status.ManagedRolesStatus.ByStatus[cnpgv1.RoleStatusReconciled] var notReady []string - for _, userName := range expectedUsers { + for _, userName := range expectedRoles { if !slices.Contains(reconciled, userName) { notReady = append(notReady, userName) } } - if len(notReady) > 0 { - logger.Info("Users not reconciled yet", "pending", notReady) - } return notReady, nil } @@ -456,18 +566,18 @@ func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtim var adopted []string for _, dbSpec := range postgresDB.Spec.Databases { cnpgDBName := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) + reAdopted := false cnpgDB := &cnpgv1.Database{ ObjectMeta: metav1.ObjectMeta{Name: cnpgDBName, Namespace: postgresDB.Namespace}, } _, err := controllerutil.CreateOrUpdate(ctx, c, cnpgDB, func() error { cnpgDB.Spec = buildCNPGDatabaseSpec(cluster.Status.ProvisionerRef.Name, dbSpec) - reAdopting := cnpgDB.Annotations[annotationRetainedFrom] == postgresDB.Name - if reAdopting { - logger.Info("Orphaned CNPG Database re-adopted", "name", cnpgDBName) + reAdopted = cnpgDB.Annotations[annotationRetainedFrom] == postgresDB.Name + if reAdopted { delete(cnpgDB.Annotations, annotationRetainedFrom) adopted = append(adopted, dbSpec.Name) } - if cnpgDB.CreationTimestamp.IsZero() || reAdopting { + if cnpgDB.CreationTimestamp.IsZero() || reAdopted { return controllerutil.SetControllerReference(postgresDB, cnpgDB, scheme) } return nil @@ -475,6 +585,9 @@ func reconcileCNPGDatabases(ctx context.Context, c client.Client, scheme *runtim if err != nil { return adopted, fmt.Errorf("reconciling CNPG Database %s: %w", cnpgDBName, err) } + if reAdopted { + logger.Info("CNPG Database re-adopted", "name", cnpgDBName) + } } return adopted, nil } @@ -485,6 +598,10 @@ func verifyDatabasesReady(ctx context.Context, c client.Client, postgresDB *ente cnpgDBName := cnpgDatabaseName(postgresDB.Name, dbSpec.Name) cnpgDB := &cnpgv1.Database{} if err := c.Get(ctx, types.NamespacedName{Name: cnpgDBName, Namespace: postgresDB.Namespace}, cnpgDB); err != nil { + if errors.IsNotFound(err) { + notReady = append(notReady, dbSpec.Name) + continue + } return nil, fmt.Errorf("getting CNPG Database %s: %w", cnpgDBName, err) } if cnpgDB.Status.Applied == nil || !*cnpgDB.Status.Applied { @@ -510,6 +627,7 @@ func applyStatus(db *enterprisev4.PostgresDatabase, conditionType conditionTypes }) p := string(phase) db.Status.Phase = &p + db.Status.ObservedGeneration = &db.Generation } func buildDeletionPlan(databases []enterprisev4.DatabaseDefinition) deletionPlan { @@ -545,7 +663,7 @@ func handleDeletion(ctx context.Context, rc *ReconcileContext, postgresDB *enter return fmt.Errorf("removing finalizer: %w", err) } rc.emitNormal(postgresDB, EventCleanupComplete, fmt.Sprintf("Cleanup complete (%d retained, %d deleted)", len(plan.retained), len(plan.deleted))) - logger.Info("Cleanup complete", "retained", len(plan.retained), "deleted", len(plan.deleted)) + logger.Info("Cleanup completed", "retained", len(plan.retained), "deleted", len(plan.deleted)) return nil } @@ -579,7 +697,7 @@ func cleanupManagedRoles(ctx context.Context, c client.Client, postgresDB *enter if !errors.IsNotFound(err) { return fmt.Errorf("getting PostgresCluster for role cleanup: %w", err) } - logger.Info("PostgresCluster already deleted, skipping role cleanup") + logger.Info("PostgresCluster already deleted, skipping managed roles cleanup") return nil } fieldManager := fieldManagerName(postgresDB.Name) @@ -589,7 +707,6 @@ func cleanupManagedRoles(ctx context.Context, c client.Client, postgresDB *enter if err := patchManagedRoles(ctx, c, fieldManager, cluster, allRoles); err != nil { return err } - logger.Info("Managed roles patched on deletion", "retained", len(retainedRoles), "removed", len(rolesToRemove)) return nil } @@ -615,7 +732,7 @@ func orphanCNPGDatabases(ctx context.Context, c client.Client, postgresDB *enter if err := c.Update(ctx, db); err != nil { return fmt.Errorf("orphaning CNPG Database %s: %w", name, err) } - logger.Info("Orphaned CNPG Database CR", "name", name) + logger.Info("CNPG Database orphaned", "name", name) } return nil } @@ -642,7 +759,7 @@ func orphanConfigMaps(ctx context.Context, c client.Client, postgresDB *enterpri if err := c.Update(ctx, cm); err != nil { return fmt.Errorf("orphaning ConfigMap %s: %w", name, err) } - logger.Info("Orphaned ConfigMap", "name", name) + logger.Info("ConfigMap orphaned", "name", name) } return nil } @@ -670,7 +787,7 @@ func orphanSecrets(ctx context.Context, c client.Client, postgresDB *enterprisev if err := c.Update(ctx, secret); err != nil { return fmt.Errorf("orphaning Secret %s: %w", name, err) } - logger.Info("Orphaned Secret", "name", name) + logger.Info("Secret orphaned", "name", name) } } return nil @@ -687,7 +804,7 @@ func deleteCNPGDatabases(ctx context.Context, c client.Client, postgresDB *enter } return fmt.Errorf("deleting CNPG Database %s: %w", name, err) } - logger.Info("Deleted CNPG Database CR", "name", name) + logger.Info("CNPG Database deleted", "name", name) } return nil } @@ -703,7 +820,7 @@ func deleteConfigMaps(ctx context.Context, c client.Client, postgresDB *enterpri } return fmt.Errorf("deleting ConfigMap %s: %w", name, err) } - logger.Info("Deleted ConfigMap", "name", name) + logger.Info("ConfigMap deleted", "name", name) } return nil } @@ -720,7 +837,7 @@ func deleteSecrets(ctx context.Context, c client.Client, postgresDB *enterprisev } return fmt.Errorf("deleting Secret %s: %w", name, err) } - logger.Info("Deleted Secret", "name", name) + logger.Info("Secret deleted", "name", name) } } return nil @@ -843,33 +960,84 @@ func adoptResource(ctx context.Context, c client.Client, scheme *runtime.Scheme, return c.Update(ctx, obj) } -func reconcileUserSecrets(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase) error { +func secretMissingPolicyForDB(dbName string, existingDBs map[string]struct{}) secretMissingPolicy { + if _, exists := existingDBs[dbName]; exists { + return reportSecretDriftIfMissing + } + return createSecretIfMissing +} + +func reconcileRoleSecrets(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, existingDatabases map[string]struct{}) error { for _, dbSpec := range postgresDB.Spec.Databases { - if err := ensureSecret(ctx, c, scheme, postgresDB, adminRoleName(dbSpec.Name), roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleAdmin)); err != nil { + missingPolicy := secretMissingPolicyForDB(dbSpec.Name, existingDatabases) + if err := reconcileRoleSecret(ctx, c, scheme, postgresDB, adminRoleName(dbSpec.Name), roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleAdmin), missingPolicy); err != nil { return err } - if err := ensureSecret(ctx, c, scheme, postgresDB, rwRoleName(dbSpec.Name), roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleRW)); err != nil { + if err := reconcileRoleSecret(ctx, c, scheme, postgresDB, rwRoleName(dbSpec.Name), roleSecretName(postgresDB.Name, dbSpec.Name, secretRoleRW), missingPolicy); err != nil { return err } } return nil } +func reconcileRoleSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string, missingPolicy secretMissingPolicy) error { + if missingPolicy == reportSecretDriftIfMissing { + return ensureProvisionedSecret(ctx, c, scheme, postgresDB, roleName, secretName) + } + return ensureSecret(ctx, c, scheme, postgresDB, roleName, secretName) +} + func ensureSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string) error { secret, err := getSecret(ctx, c, postgresDB.Namespace, secretName) if err != nil { return err } + if secret == nil { + return createRoleSecret(ctx, c, scheme, postgresDB, roleName, secretName) + } + return reconcileExistingSecret(ctx, c, scheme, postgresDB, secretName, secret) +} + +func ensureProvisionedSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string) error { + secret, err := getSecret(ctx, c, postgresDB.Namespace, secretName) + if err != nil { + return err + } + if secret == nil { + return &secretReconcileError{ + message: fmt.Sprintf("Managed Secret %s is missing for previously provisioned role %s", secretName, roleName), + reason: reasonSecretsDriftDetected, + } + } + return reconcileExistingSecret(ctx, c, scheme, postgresDB, secretName, secret) +} + +// reconcileExistingSecret only reconciles ownership — it never rewrites secret data. +// Passwords must not be regenerated for existing credentials; CNPG and consumers hold live references. +func reconcileExistingSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, secretName string, secret *corev1.Secret) error { logger := log.FromContext(ctx) switch { - case secret == nil: - logger.Info("User secret creation started", "name", secretName) - return createUserSecret(ctx, c, scheme, postgresDB, roleName, secretName) case secret.Annotations[annotationRetainedFrom] == postgresDB.Name: - logger.Info("Orphaned secret re-adopted", "name", secretName) - return adoptResource(ctx, c, scheme, postgresDB, secret) + if err := adoptResource(ctx, c, scheme, postgresDB, secret); err != nil { + return err + } + logger.Info("Secret re-adopted", "name", secretName) + return nil + case metav1.IsControlledBy(secret, postgresDB): + return nil + case metav1.GetControllerOf(secret) == nil: + if err := adoptResource(ctx, c, scheme, postgresDB, secret); err != nil { + return err + } + logger.Info("Secret adopted", "name", secretName) + return nil + default: + owner := metav1.GetControllerOf(secret) + return &secretReconcileError{ + message: fmt.Sprintf("Managed Secret %s is controlled by %s %s", secretName, owner.Kind, owner.Name), + reason: reasonSecretsDriftDetected, + } } - return nil } func getSecret(ctx context.Context, c client.Client, namespace, name string) (*corev1.Secret, error) { @@ -884,7 +1052,7 @@ func getSecret(ctx context.Context, c client.Client, namespace, name string) (*c return secret, nil } -func createUserSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string) error { +func createRoleSecret(ctx context.Context, c client.Client, scheme *runtime.Scheme, postgresDB *enterprisev4.PostgresDatabase, roleName, secretName string) error { pw, err := generatePassword() if err != nil { return err @@ -899,6 +1067,7 @@ func createUserSecret(ctx context.Context, c client.Client, scheme *runtime.Sche } return err } + log.FromContext(ctx).Info("Role secret created", "name", secretName) return nil } @@ -930,6 +1099,7 @@ func reconcileRoleConfigMaps(ctx context.Context, c client.Client, scheme *runti logger := log.FromContext(ctx) for _, dbSpec := range postgresDB.Spec.Databases { cmName := configMapName(postgresDB.Name, dbSpec.Name) + reAdopted := false cm := &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: cmName, @@ -939,12 +1109,11 @@ func reconcileRoleConfigMaps(ctx context.Context, c client.Client, scheme *runti } _, err := controllerutil.CreateOrUpdate(ctx, c, cm, func() error { cm.Data = buildDatabaseConfigMapBody(dbSpec.Name, endpoints) - reAdopting := cm.Annotations[annotationRetainedFrom] == postgresDB.Name - if reAdopting { - logger.Info("Orphaned ConfigMap re-adopted", "name", cmName) + reAdopted = cm.Annotations[annotationRetainedFrom] == postgresDB.Name + if reAdopted { delete(cm.Annotations, annotationRetainedFrom) } - if cm.CreationTimestamp.IsZero() || reAdopting { + if !metav1.IsControlledBy(cm, postgresDB) { return controllerutil.SetControllerReference(postgresDB, cm, scheme) } return nil @@ -952,6 +1121,9 @@ func reconcileRoleConfigMaps(ctx context.Context, c client.Client, scheme *runti if err != nil { return fmt.Errorf("reconciling ConfigMap %s: %w", cmName, err) } + if reAdopted { + logger.Info("ConfigMap re-adopted", "name", cmName) + } } return nil } diff --git a/pkg/postgresql/database/core/database_unit_test.go b/pkg/postgresql/database/core/database_unit_test.go index c41d2dd59..a755eac6f 100644 --- a/pkg/postgresql/database/core/database_unit_test.go +++ b/pkg/postgresql/database/core/database_unit_test.go @@ -3,7 +3,6 @@ package core // The following functions are intentionally not tested directly here. // Their business logic is covered by narrower helper tests where practical, // and the remaining behavior is mostly controller-runtime orchestration: -// - PostgresDatabaseService // - patchManagedRoles // - reconcileCNPGDatabases // - handleDeletion @@ -27,9 +26,12 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" utilruntime "k8s.io/apimachinery/pkg/util/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/tools/record" + ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/fake" "sigs.k8s.io/controller-runtime/pkg/client/interceptor" @@ -124,7 +126,160 @@ func testClient(t *testing.T, scheme *runtime.Scheme, objs ...client.Object) cli return builder.Build() } -func TestGetDesiredUsers(t *testing.T) { +func postgresDatabaseConflict(name string) error { + return apierrors.NewConflict( + schema.GroupResource{ + Group: enterprisev4.GroupVersion.Group, + Resource: "postgresdatabases", + }, + name, + errors.New("resource version conflict"), + ) +} + +func TestPostgresDatabaseServiceRequeuesOnConflict(t *testing.T) { + scheme := testScheme(t) + tests := []struct { + name string + existing *enterprisev4.PostgresDatabase + build func(*enterprisev4.PostgresDatabase) client.Client + }{ + { + name: "when adding the finalizer", + existing: &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + }, + }, + build: func(existing *enterprisev4.PostgresDatabase) client.Client { + return fake.NewClientBuilder(). + WithScheme(scheme). + WithStatusSubresource(&enterprisev4.PostgresDatabase{}). + WithObjects(existing). + WithInterceptorFuncs(interceptor.Funcs{ + Update: func(_ context.Context, _ client.WithWatch, obj client.Object, _ ...client.UpdateOption) error { + return postgresDatabaseConflict(obj.GetName()) + }, + }). + Build() + }, + }, + { + name: "when persisting status", + existing: &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + Finalizers: []string{postgresDatabaseFinalizerName}, + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: "missing-cluster"}, + }, + }, + build: func(existing *enterprisev4.PostgresDatabase) client.Client { + return fake.NewClientBuilder(). + WithScheme(scheme). + WithStatusSubresource(&enterprisev4.PostgresDatabase{}). + WithObjects(existing). + WithInterceptorFuncs(interceptor.Funcs{ + SubResourceUpdate: func(_ context.Context, _ client.Client, subResourceName string, obj client.Object, _ ...client.SubResourceUpdateOption) error { + if subResourceName != "status" { + return nil + } + return postgresDatabaseConflict(obj.GetName()) + }, + }). + Build() + }, + }, + { + name: "when status update conflicts while handling another error", + existing: &enterprisev4.PostgresDatabase{ + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + Finalizers: []string{postgresDatabaseFinalizerName}, + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + ClusterRef: corev1.LocalObjectReference{Name: "primary"}, + }, + }, + build: func(existing *enterprisev4.PostgresDatabase) client.Client { + return fake.NewClientBuilder(). + WithScheme(scheme). + WithStatusSubresource(&enterprisev4.PostgresDatabase{}). + WithObjects(existing). + WithInterceptorFuncs(interceptor.Funcs{ + Get: func(ctx context.Context, client client.WithWatch, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error { + if _, ok := obj.(*enterprisev4.PostgresCluster); ok { + return errors.New("temporary get failure") + } + return client.Get(ctx, key, obj, opts...) + }, + SubResourceUpdate: func(_ context.Context, _ client.Client, subResourceName string, obj client.Object, _ ...client.SubResourceUpdateOption) error { + if subResourceName != "status" { + return nil + } + return postgresDatabaseConflict(obj.GetName()) + }, + }). + Build() + }, + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + c := tst.build(tst.existing) + + postgresDB := &enterprisev4.PostgresDatabase{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: tst.existing.Name, Namespace: tst.existing.Namespace}, postgresDB)) + + result, err := PostgresDatabaseService( + context.Background(), + &ReconcileContext{Client: c, Scheme: scheme, Recorder: record.NewFakeRecorder(10), Metrics: &pgprometheus.NoopRecorder{}}, + postgresDB, + nil, + ) + + require.NoError(t, err) + assert.Equal(t, ctrl.Result{Requeue: true}, result) + }) + } +} + +func TestSecretMissingPolicyForDB(t *testing.T) { + tests := []struct { + name string + dbName string + existingDBs map[string]struct{} + want secretMissingPolicy + }{ + { + name: "creates secrets for new databases", + dbName: "payments", + existingDBs: map[string]struct{}{}, + want: createSecretIfMissing, + }, + { + name: "reports drift for previously provisioned databases", + dbName: "payments", + existingDBs: map[string]struct{}{ + "payments": {}, + }, + want: reportSecretDriftIfMissing, + }, + } + + for _, tst := range tests { + t.Run(tst.name, func(t *testing.T) { + assert.Equal(t, tst.want, secretMissingPolicyForDB(tst.dbName, tst.existingDBs)) + }) + } +} + +func TestGetDesiredRoles(t *testing.T) { postgresDB := &enterprisev4.PostgresDatabase{ Spec: enterprisev4.PostgresDatabaseSpec{ Databases: []enterprisev4.DatabaseDefinition{ @@ -140,23 +295,7 @@ func TestGetDesiredUsers(t *testing.T) { "secondary_db_rw", } - got := getDesiredUsers(postgresDB) - - assert.Equal(t, want, got) -} - -func TestGetUsersInClusterSpec(t *testing.T) { - cluster := &enterprisev4.PostgresCluster{ - Spec: enterprisev4.PostgresClusterSpec{ - ManagedRoles: []enterprisev4.ManagedRole{ - {Name: "main_db_admin"}, - {Name: "main_db_rw"}, - }, - }, - } - want := []string{"main_db_admin", "main_db_rw"} - - got := getUsersInClusterSpec(cluster) + got := getDesiredRoles(postgresDB) assert.Equal(t, want, got) } @@ -290,14 +429,14 @@ func TestGetRoleConflicts(t *testing.T) { func TestVerifyRolesReady(t *testing.T) { tests := []struct { name string - expectedUsers []string + expectedRoles []string cluster *cnpgv1.Cluster wantNotReady []string wantErr string }{ { name: "returns error when a role cannot reconcile", - expectedUsers: []string{"main_db_admin", "main_db_rw"}, + expectedRoles: []string{"main_db_admin", "main_db_rw"}, cluster: &cnpgv1.Cluster{ Status: cnpgv1.ClusterStatus{ ManagedRolesStatus: cnpgv1.ManagedRoles{ @@ -311,7 +450,7 @@ func TestVerifyRolesReady(t *testing.T) { }, { name: "returns missing roles that are not reconciled yet", - expectedUsers: []string{"main_db_admin", "main_db_rw", "analytics_admin"}, + expectedRoles: []string{"main_db_admin", "main_db_rw", "analytics_admin"}, cluster: &cnpgv1.Cluster{ Status: cnpgv1.ClusterStatus{ ManagedRolesStatus: cnpgv1.ManagedRoles{ @@ -325,7 +464,7 @@ func TestVerifyRolesReady(t *testing.T) { }, { name: "returns pending reconciliation roles as not ready", - expectedUsers: []string{"main_db_admin", "main_db_rw"}, + expectedRoles: []string{"main_db_admin", "main_db_rw"}, cluster: &cnpgv1.Cluster{ Status: cnpgv1.ClusterStatus{ ManagedRolesStatus: cnpgv1.ManagedRoles{ @@ -340,7 +479,7 @@ func TestVerifyRolesReady(t *testing.T) { }, { name: "returns empty when all roles are reconciled", - expectedUsers: []string{"main_db_admin"}, + expectedRoles: []string{"main_db_admin"}, cluster: &cnpgv1.Cluster{ Status: cnpgv1.ClusterStatus{ ManagedRolesStatus: cnpgv1.ManagedRoles{ @@ -357,7 +496,7 @@ func TestVerifyRolesReady(t *testing.T) { for _, tst := range tests { t.Run(tst.name, func(t *testing.T) { - gotNotReady, err := verifyRolesReady(context.Background(), tst.expectedUsers, tst.cluster) + gotNotReady, err := verifyRolesReady(context.Background(), tst.expectedRoles, tst.cluster) if tst.wantErr != "" { require.Error(t, err) assert.Equal(t, tst.wantErr, err.Error()) @@ -666,14 +805,14 @@ func TestVerifyDatabasesReady(t *testing.T) { wantNotReady: []string{"payments", "analytics"}, }, { - name: "returns error when a database is missing", + name: "returns not ready when a database is missing", objects: []client.Object{ &cnpgv1.Database{ ObjectMeta: metav1.ObjectMeta{Name: "primary-payments", Namespace: "dbs"}, Status: cnpgv1.DatabaseStatus{Applied: boolPtr(true)}, }, }, - wantErr: "getting CNPG Database primary-analytics", + wantNotReady: []string{"analytics"}, }, } @@ -858,7 +997,7 @@ func TestGeneratePassword(t *testing.T) { } // Uses a fake client because the helper creates Secret objects and persists owner references through the Kubernetes API. -func TestCreateUserSecret(t *testing.T) { +func TestCreateRoleSecret(t *testing.T) { scheme := testScheme(t) postgresDB := &enterprisev4.PostgresDatabase{ TypeMeta: metav1.TypeMeta{ @@ -877,13 +1016,13 @@ func TestCreateUserSecret(t *testing.T) { secretName := "primary-payments-admin" wantManagedBy := "splunk-operator" wantReload := "true" - wantUsername := roleName + wantRolename := roleName wantOwnerUID := postgresDB.UID wantPasswordLength := passwordLength wantPasswordDigits := passwordDigits c := testClient(t, scheme) - err := createUserSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + err := createRoleSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) require.NoError(t, err) @@ -893,7 +1032,7 @@ func TestCreateUserSecret(t *testing.T) { assert.Equal(t, postgresDB.Namespace, got.Namespace) assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) assert.Equal(t, wantReload, got.Labels[labelCNPGReload]) - assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantRolename, string(got.Data["username"])) assertGeneratedPassword(t, string(got.Data[secretKeyPassword]), wantPasswordLength, wantPasswordDigits) require.Len(t, got.OwnerReferences, 1) assert.Equal(t, wantOwnerUID, got.OwnerReferences[0].UID) @@ -902,18 +1041,18 @@ func TestCreateUserSecret(t *testing.T) { t.Run("returns nil when secret already exists", func(t *testing.T) { roleName := "payments_admin" secretName := "primary-payments-admin" - wantUsername := roleName + wantRolename := roleName wantPassword := "existing-password" - existing := buildPasswordSecret(postgresDB, secretName, wantUsername, wantPassword) + existing := buildPasswordSecret(postgresDB, secretName, wantRolename, wantPassword) c := testClient(t, scheme, existing) - err := createUserSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + err := createRoleSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) require.NoError(t, err) got := &corev1.Secret{} require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) - assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantRolename, string(got.Data["username"])) assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) assert.Empty(t, got.OwnerReferences) }) @@ -939,7 +1078,7 @@ func TestEnsureSecret(t *testing.T) { secretName := "primary-payments-admin" wantManagedBy := "splunk-operator" wantReload := "true" - wantUsername := roleName + wantRolename := roleName wantOwnerUID := postgresDB.UID wantPasswordLength := passwordLength wantPasswordDigits := passwordDigits @@ -953,7 +1092,7 @@ func TestEnsureSecret(t *testing.T) { require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) assert.Equal(t, wantReload, got.Labels[labelCNPGReload]) - assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantRolename, string(got.Data["username"])) assertGeneratedPassword(t, string(got.Data[secretKeyPassword]), wantPasswordLength, wantPasswordDigits) require.Len(t, got.OwnerReferences, 1) assert.Equal(t, wantOwnerUID, got.OwnerReferences[0].UID) @@ -962,7 +1101,7 @@ func TestEnsureSecret(t *testing.T) { t.Run("re-adopts retained secret", func(t *testing.T) { roleName := "payments_admin" secretName := "primary-payments-admin" - wantUsername := roleName + wantRolename := roleName wantPassword := "existing-password" wantOwnerUID := postgresDB.UID wantKeep := "true" @@ -979,7 +1118,7 @@ func TestEnsureSecret(t *testing.T) { }, }, Data: map[string][]byte{ - "username": []byte(wantUsername), + "username": []byte(wantRolename), secretKeyPassword: []byte(wantPassword), }, } @@ -994,7 +1133,7 @@ func TestEnsureSecret(t *testing.T) { assert.Equal(t, wantKeep, got.Annotations["keep"]) _, hasRetainedAnnotation := got.Annotations[annotationRetainedFrom] assert.False(t, hasRetainedAnnotation) - assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantRolename, string(got.Data["username"])) assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) assert.Contains(t, got.OwnerReferences, metav1.OwnerReference{ APIVersion: enterprisev4.GroupVersion.String(), @@ -1009,7 +1148,7 @@ func TestEnsureSecret(t *testing.T) { t.Run("does nothing for existing managed secret", func(t *testing.T) { roleName := "payments_admin" secretName := "primary-payments-admin" - wantUsername := roleName + wantRolename := roleName wantPassword := "existing-password" wantKeep := "true" wantOwnerUID := postgresDB.UID @@ -1021,11 +1160,18 @@ func TestEnsureSecret(t *testing.T) { "keep": wantKeep, }, OwnerReferences: []metav1.OwnerReference{ - {UID: wantOwnerUID, Name: postgresDB.Name}, + { + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + Name: postgresDB.Name, + UID: wantOwnerUID, + Controller: boolPtr(true), + BlockOwnerDeletion: boolPtr(true), + }, }, }, Data: map[string][]byte{ - "username": []byte(wantUsername), + "username": []byte(wantRolename), secretKeyPassword: []byte(wantPassword), }, } @@ -1038,15 +1184,124 @@ func TestEnsureSecret(t *testing.T) { got := &corev1.Secret{} require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) assert.Equal(t, wantKeep, got.Annotations["keep"]) - assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantRolename, string(got.Data["username"])) assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) require.Len(t, got.OwnerReferences, 1) assert.Equal(t, wantOwnerUID, got.OwnerReferences[0].UID) }) + + t.Run("returns drift error when a previously provisioned secret is missing", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + c := testClient(t, scheme) + + err := ensureProvisionedSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.Error(t, err) + var driftErr *secretReconcileError + require.ErrorAs(t, err, &driftErr) + assert.Equal(t, reasonSecretsDriftDetected, driftErr.reason) + assert.ErrorContains(t, err, secretName) + }) + + t.Run("re-attaches owner reference when ownership was manually stripped", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + Namespace: postgresDB.Namespace, + Labels: map[string]string{ + labelManagedBy: "splunk-operator", + labelCNPGReload: "true", + }, + Annotations: map[string]string{"keep": "true"}, + }, + Data: map[string][]byte{ + "username": []byte(roleName), + secretKeyPassword: []byte("existing-password"), + }, + } + c := testClient(t, scheme, existing) + + err := ensureProvisionedSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, "true", got.Annotations["keep"]) + require.Len(t, got.OwnerReferences, 1) + assert.Equal(t, postgresDB.UID, got.OwnerReferences[0].UID) + }) + + t.Run("accepts an existing secret with mutated data without rewriting it", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + wantUsername := "wrong_user" + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + Namespace: postgresDB.Namespace, + OwnerReferences: []metav1.OwnerReference{ + {UID: postgresDB.UID, Name: postgresDB.Name}, + }, + }, + Data: map[string][]byte{ + "username": []byte(wantUsername), + secretKeyPassword: []byte("existing-password"), + }, + } + c := testClient(t, scheme, existing) + + err := ensureProvisionedSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.NoError(t, err) + + got := &corev1.Secret{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: secretName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, "existing-password", string(got.Data[secretKeyPassword])) + }) + + t.Run("returns drift error when secret is owned by a different controller", func(t *testing.T) { + roleName := "payments_admin" + secretName := "primary-payments-admin" + otherOwnerUID := types.UID("other-owner-uid") + existing := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + Namespace: postgresDB.Namespace, + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: "v1", + Kind: "SomeOtherController", + Name: "other-controller", + UID: otherOwnerUID, + Controller: boolPtr(true), + BlockOwnerDeletion: boolPtr(true), + }, + }, + }, + Data: map[string][]byte{ + "username": []byte(roleName), + secretKeyPassword: []byte("existing-password"), + }, + } + c := testClient(t, scheme, existing) + + err := ensureProvisionedSecret(context.Background(), c, scheme, postgresDB, roleName, secretName) + + require.Error(t, err) + var driftErr *secretReconcileError + require.ErrorAs(t, err, &driftErr) + assert.Equal(t, reasonSecretsDriftDetected, driftErr.reason) + assert.ErrorContains(t, err, secretName) + }) } // Uses a fake client because the helper reconciles multiple Secret objects through the Kubernetes API. -func TestReconcileUserSecrets(t *testing.T) { +func TestReconcileRoleSecrets(t *testing.T) { scheme := testScheme(t) postgresDB := &enterprisev4.PostgresDatabase{ TypeMeta: metav1.TypeMeta{ @@ -1078,7 +1333,7 @@ func TestReconcileUserSecrets(t *testing.T) { {name: "primary-analytics-rw", username: "analytics_rw"}, } - err := reconcileUserSecrets(context.Background(), c, scheme, postgresDB) + err := reconcileRoleSecrets(context.Background(), c, scheme, postgresDB, existingDatabaseStatus(postgresDB)) require.NoError(t, err) for _, want := range wantSecrets { @@ -1094,13 +1349,13 @@ func TestReconcileUserSecrets(t *testing.T) { t.Run("is idempotent when secrets already exist", func(t *testing.T) { c := testClient(t, scheme) - require.NoError(t, reconcileUserSecrets(context.Background(), c, scheme, postgresDB)) + require.NoError(t, reconcileRoleSecrets(context.Background(), c, scheme, postgresDB, existingDatabaseStatus(postgresDB))) before := &corev1.Secret{} require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: "primary-payments-admin", Namespace: postgresDB.Namespace}, before)) beforePassword := append([]byte(nil), before.Data[secretKeyPassword]...) - err := reconcileUserSecrets(context.Background(), c, scheme, postgresDB) + err := reconcileRoleSecrets(context.Background(), c, scheme, postgresDB, existingDatabaseStatus(postgresDB)) require.NoError(t, err) @@ -1110,6 +1365,19 @@ func TestReconcileUserSecrets(t *testing.T) { require.Len(t, after.OwnerReferences, 1) assert.Equal(t, postgresDB.UID, after.OwnerReferences[0].UID) }) + + t.Run("does not recreate missing secrets for previously provisioned databases", func(t *testing.T) { + postgresDB.Status.Phase = strPtr(string(readyDBPhase)) + postgresDB.Status.Databases = []enterprisev4.DatabaseInfo{{Name: "payments"}} + c := testClient(t, scheme) + + err := reconcileRoleSecrets(context.Background(), c, scheme, postgresDB, existingDatabaseStatus(postgresDB)) + + require.Error(t, err) + var driftErr *secretReconcileError + require.ErrorAs(t, err, &driftErr) + assert.Equal(t, reasonSecretsDriftDetected, driftErr.reason) + }) } // Uses a fake client because the helper reconciles ConfigMaps through CreateOrUpdate and persists re-adoption metadata. @@ -1228,6 +1496,47 @@ func TestReconcileRoleConfigMaps(t *testing.T) { BlockOwnerDeletion: boolPtr(true), }) }) + + t.Run("re-attaches owner reference when configmap ownership was manually stripped", func(t *testing.T) { + postgresDB := &enterprisev4.PostgresDatabase{ + TypeMeta: metav1.TypeMeta{ + APIVersion: enterprisev4.GroupVersion.String(), + Kind: "PostgresDatabase", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "primary", + Namespace: "dbs", + UID: types.UID("postgresdb-uid"), + }, + Spec: enterprisev4.PostgresDatabaseSpec{ + Databases: []enterprisev4.DatabaseDefinition{ + {Name: "payments"}, + }, + }, + } + cmName := "primary-payments-config" + existing := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: cmName, + Namespace: postgresDB.Namespace, + Labels: map[string]string{labelManagedBy: "splunk-operator"}, + Annotations: map[string]string{"keep": "true"}, + }, + Data: map[string]string{"dbname": "payments"}, + } + c := testClient(t, scheme, existing) + + err := reconcileRoleConfigMaps(context.Background(), c, scheme, postgresDB, endpoints) + + require.NoError(t, err) + + got := &corev1.ConfigMap{} + require.NoError(t, c.Get(context.Background(), types.NamespacedName{Name: cmName, Namespace: postgresDB.Namespace}, got)) + assert.Equal(t, "true", got.Annotations["keep"]) + require.Len(t, got.OwnerReferences, 1) + assert.Equal(t, postgresDB.UID, got.OwnerReferences[0].UID) + assert.Equal(t, buildDatabaseConfigMapBody("payments", endpoints), got.Data) + }) } func TestBuildDeletionPlan(t *testing.T) { @@ -1485,16 +1794,16 @@ func TestBuildPasswordSecret(t *testing.T) { wantNamespace := "dbs" wantManagedBy := "splunk-operator" wantReload := "true" - wantUsername := "payments_admin" + wantRolename := "payments_admin" wantPassword := "topsecret" - got := buildPasswordSecret(postgresDB, wantName, wantUsername, wantPassword) + got := buildPasswordSecret(postgresDB, wantName, wantRolename, wantPassword) assert.Equal(t, wantName, got.Name) assert.Equal(t, wantNamespace, got.Namespace) assert.Equal(t, wantManagedBy, got.Labels[labelManagedBy]) assert.Equal(t, wantReload, got.Labels[labelCNPGReload]) - assert.Equal(t, wantUsername, string(got.Data["username"])) + assert.Equal(t, wantRolename, string(got.Data["username"])) assert.Equal(t, wantPassword, string(got.Data[secretKeyPassword])) } diff --git a/pkg/postgresql/database/core/events.go b/pkg/postgresql/database/core/events.go index 987b8bbfb..eb5e08d81 100644 --- a/pkg/postgresql/database/core/events.go +++ b/pkg/postgresql/database/core/events.go @@ -22,7 +22,8 @@ const ( EventClusterNotFound = "ClusterNotFound" EventClusterNotReady = "ClusterNotReady" EventRoleConflict = "RoleConflict" - EventUserSecretsFailed = "UserSecretsFailed" + EventRoleSecretsFailed = "RoleSecretsFailed" + EventRolesSecretsDriftDetected = "RolesSecretsDriftDetected" EventAccessConfigFailed = "AccessConfigFailed" EventManagedRolesPatchFailed = "ManagedRolesPatchFailed" EventRoleFailed = "RoleFailed" diff --git a/pkg/postgresql/database/core/types.go b/pkg/postgresql/database/core/types.go index 6511b502f..e9b327f99 100644 --- a/pkg/postgresql/database/core/types.go +++ b/pkg/postgresql/database/core/types.go @@ -22,6 +22,7 @@ type reconcileDBPhases string type conditionTypes string type conditionReasons string type clusterReadyStatus string +type reconcileConflictCategory string const ( retryDelay = time.Second * 15 @@ -33,7 +34,6 @@ const ( readWriteEndpoint string = "rw" deletionPolicyRetain string = "Retain" - deletionPolicyDelete string = "Delete" postgresDatabaseFinalizerName string = "postgresdatabases.enterprise.splunk.com/finalizer" annotationRetainedFrom string = "enterprise.splunk.com/retained-from" @@ -74,9 +74,10 @@ const ( reasonDatabasesAvailable conditionReasons = "DatabasesAvailable" reasonSecretsCreated conditionReasons = "SecretsCreated" reasonSecretsCreationFailed conditionReasons = "SecretsCreationFailed" + reasonSecretsDriftDetected conditionReasons = "SecretsDriftDetected" reasonWaitingForCNPG conditionReasons = "WaitingForCNPG" - reasonUsersCreationFailed conditionReasons = "UsersCreationFailed" - reasonUsersAvailable conditionReasons = "UsersAvailable" + reasonRolesCreationFailed conditionReasons = "RolesCreationFailed" + reasonRolesAvailable conditionReasons = "RolesAvailable" reasonRoleConflict conditionReasons = "RoleConflict" reasonConfigMapsCreationFailed conditionReasons = "ConfigMapsCreationFailed" reasonConfigMapsCreated conditionReasons = "ConfigMapsCreated" @@ -90,6 +91,21 @@ const ( ClusterNotReady clusterReadyStatus = "NotReady" ClusterNoProvisionerRef clusterReadyStatus = "NoProvisionerRef" ClusterReady clusterReadyStatus = "Ready" + + conflictDeletion reconcileConflictCategory = "deletion" + conflictFinalizer reconcileConflictCategory = "finalizer" + conflictClusterStatus reconcileConflictCategory = "cluster_status" + conflictRoleConflictStatus reconcileConflictCategory = "role_conflict_status" + conflictSecretsReconcile reconcileConflictCategory = "secrets_reconcile" + conflictSecretsStatus reconcileConflictCategory = "secrets_status" + conflictConfigMapsReconcile reconcileConflictCategory = "configmaps_reconcile" + conflictConfigMapsStatus reconcileConflictCategory = "configmaps_status" + conflictManagedRolesPatch reconcileConflictCategory = "managed_roles_patch" + conflictRolesStatus reconcileConflictCategory = "roles_status" + conflictCNPGDatabasesReconcile reconcileConflictCategory = "cnpg_databases_reconcile" + conflictDatabasesStatus reconcileConflictCategory = "databases_status" + conflictPrivilegesStatus reconcileConflictCategory = "privileges_status" + conflictFinalStatus reconcileConflictCategory = "final_status" ) // clusterEndpoints holds fully-resolved connection hostnames for a cluster. From 675ce20fc4549b2bea71fb7ab74daa65aab25c07 Mon Sep 17 00:00:00 2001 From: Jakub Koterba Date: Wed, 8 Apr 2026 10:02:21 +0200 Subject: [PATCH 38/43] sync logic rewrite + tests and constants logging changed, pureness fix attempt removed redundant sync at the end incremental state building with limited redundancy logging align cluster unit adj merge adjustments event emmision placed back, fortified with tests allign with requirements on state building review and rebase changes merge alignment review changes --- .../postgrescluster_controller_test.go | 91 +- pkg/postgresql/cluster/core/cluster.go | 1518 +++++++++++++---- .../cluster/core/cluster_unit_test.go | 896 +++++++++- pkg/postgresql/cluster/core/events.go | 11 + pkg/postgresql/cluster/core/types.go | 87 +- .../core/types/constants/components.go | 9 + .../cluster/core/types/constants/state.go | 24 + 7 files changed, 2214 insertions(+), 422 deletions(-) create mode 100644 pkg/postgresql/cluster/core/types/constants/components.go create mode 100644 pkg/postgresql/cluster/core/types/constants/state.go diff --git a/internal/controller/postgrescluster_controller_test.go b/internal/controller/postgrescluster_controller_test.go index 80b412562..b7becdff5 100644 --- a/internal/controller/postgrescluster_controller_test.go +++ b/internal/controller/postgrescluster_controller_test.go @@ -19,7 +19,9 @@ package controller import ( "context" "fmt" + "strings" + v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" @@ -52,6 +54,20 @@ import ( * PC-09 ignores no-op updates */ +func containsEvents(events *[]string, recorder *record.FakeRecorder, eventType string, event string) bool { + for { + select { + case e := <-recorder.Events: + *events = append(*events, e) + if strings.Contains(e, eventType) && strings.Contains(e, event) { + return true + } + default: + return false + } + } +} + var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { const ( @@ -79,6 +95,7 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { pgClusterClassKey types.NamespacedName reconciler *PostgresClusterReconciler req reconcile.Request + fakeRecorder *record.FakeRecorder ) reconcileNTimes := func(times int) { @@ -162,13 +179,17 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Spec: enterprisev4.PostgresClusterSpec{ Class: className, ClusterDeletionPolicy: ptr.To(deletePolicy), + ManagedRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + {Name: "app_user_rw", Exists: true}, + }, }, } - + fakeRecorder = record.NewFakeRecorder(100) reconciler = &PostgresClusterReconciler{ Client: k8sClient, Scheme: k8sClient.Scheme(), - Recorder: record.NewFakeRecorder(100), + Recorder: fakeRecorder, Metrics: &pgprometheus.NoopRecorder{}, FleetCollector: pgprometheus.NewFleetCollector(), } @@ -255,12 +276,17 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { cond := meta.FindStatusCondition(pc.Status.Conditions, "ClusterReady") Expect(cond).NotTo(BeNil()) Expect(cond.Status).To(Equal(metav1.ConditionFalse)) - Expect(cond.Reason).To(Equal("ClusterBuildSucceeded")) + Expect(cond.Reason).To(Equal("CNPGClusterProvisioning")) // Simulate external CNPG controller status progression. cnpg := &cnpgv1.Cluster{} Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) cnpg.Status.Phase = cnpgv1.PhaseHealthy + cnpg.Status.ManagedRolesStatus = cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"app_user", "app_user_rw"}, + }, + } Expect(k8sClient.Status().Update(ctx, cnpg)).To(Succeed()) reconcileNTimes(1) @@ -270,9 +296,47 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Expect(cond).NotTo(BeNil()) Expect(cond.Status).To(Equal(metav1.ConditionTrue)) Expect(cond.Reason).To(Equal("CNPGClusterHealthy")) + + secretCond := meta.FindStatusCondition(pc.Status.Conditions, "SecretsReady") + Expect(secretCond).NotTo(BeNil()) + Expect(secretCond.Status).To(Equal(metav1.ConditionTrue)) + Expect(secretCond.Reason).To(Equal("SuperUserSecretReady")) + + configMapCond := meta.FindStatusCondition(pc.Status.Conditions, "ConfigMapsReady") + Expect(configMapCond).NotTo(BeNil()) + Expect(configMapCond.Status).To(Equal(metav1.ConditionTrue)) + Expect(configMapCond.Reason).To(Equal("ConfigMapReconciled")) + + managedRolesCond := meta.FindStatusCondition(pc.Status.Conditions, "ManagedRolesReady") + Expect(managedRolesCond).NotTo(BeNil()) + Expect(managedRolesCond.Status).To(Equal(metav1.ConditionTrue)) + Expect(managedRolesCond.Reason).To(Equal("ManagedRolesReconciled")) + + // Pooler is disabled in this suite fixture, but converge publishes PoolerReady=True with disabled message. + poolerCond := meta.FindStatusCondition(pc.Status.Conditions, "PoolerReady") + Expect(poolerCond).NotTo(BeNil()) + Expect(poolerCond.Status).To(Equal(metav1.ConditionTrue)) + Expect(poolerCond.Reason).To(Equal("AllInstancesReady")) + Expect(poolerCond.Message).To(Equal("Connection pooler disabled")) + + Expect(pc.Status.ManagedRolesStatus).NotTo(BeNil()) + Expect(pc.Status.ManagedRolesStatus.Reconciled).To(ContainElements("app_user", "app_user_rw")) + + Expect(pc.Status.Phase).NotTo(BeNil()) + Expect(*pc.Status.Phase).To(Equal("Ready")) + Expect(pc.Status.ProvisionerRef).NotTo(BeNil()) + Expect(pc.Status.ProvisionerRef.Kind).To(Equal("Cluster")) + Expect(pc.Status.ProvisionerRef.Name).To(Equal(clusterName)) + Expect(pc.Status.Resources).NotTo(BeNil()) Expect(pc.Status.Resources.SuperUserSecretRef).NotTo(BeNil()) Expect(pc.Status.Resources.ConfigMapRef).NotTo(BeNil()) + + received := make([]string, 0, 8) + Expect(containsEvents( + &received, fakeRecorder, + v1.EventTypeNormal, core.EventClusterReady, + )).To(BeTrue(), "events seen: %v", received) }) // PC-07 @@ -308,6 +372,7 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Context("with PostgreSQL metrics enabled in class", func() { BeforeEach(func() { pgCluster.Spec.Class = classNameMetrics + pgCluster.Spec.ManagedRoles = nil }) It("adds scrape annotations to the CNPG Cluster", func() { @@ -316,6 +381,17 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { cnpg := &cnpgv1.Cluster{} Expect(k8sClient.Get(ctx, pgClusterKey, cnpg)).To(Succeed()) + + cnpg.Status.Phase = cnpgv1.PhaseHealthy + cnpg.Status.ManagedRolesStatus = cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"app_user", "app_user_rw"}, + }, + } + Expect(k8sClient.Status().Update(ctx, cnpg)).To(Succeed()) + + reconcileNTimes(1) + Expect(cnpg.Spec.InheritedMetadata).NotTo(BeNil()) Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(scrapeAnnotationKey, "true")) Expect(cnpg.Spec.InheritedMetadata.Annotations).To(HaveKeyWithValue(pathAnnotationKey, metricsPath)) @@ -353,6 +429,7 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { Context("with connection pooler metrics enabled in class", func() { BeforeEach(func() { pgCluster.Spec.Class = classNamePooler + pgCluster.Spec.ManagedRoles = nil }) It("adds scrape annotations to poolers only after the CNPG cluster becomes healthy", func() { @@ -439,7 +516,7 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { When("reconciling with invalid or drifted dependencies", func() { // PC-05 Context("when referenced class does not exist", func() { - It("fails with class-not-found condition", func() { + It("fails with class-not-found condition and emits a warning event", func() { badName := "bad-" + clusterName badKey := types.NamespacedName{Name: badName, Namespace: namespace} @@ -464,6 +541,12 @@ var _ = Describe("PostgresCluster Controller", Label("postgres"), func() { cond := meta.FindStatusCondition(current.Status.Conditions, "ClusterReady") return cond != nil && cond.Reason == "ClusterClassNotFound" }, "20s", "250ms").Should(BeTrue()) + + received := make([]string, 0, 8) + Expect(containsEvents( + &received, fakeRecorder, + v1.EventTypeWarning, core.EventClusterClassNotFound, + )).To(BeTrue(), "events seen: %v", received) }) }) diff --git a/pkg/postgresql/cluster/core/cluster.go b/pkg/postgresql/cluster/core/cluster.go index 8aefdea45..f0efc1926 100644 --- a/pkg/postgresql/cluster/core/cluster.go +++ b/pkg/postgresql/cluster/core/cluster.go @@ -20,10 +20,13 @@ import ( "context" "errors" "fmt" + "sort" + "strings" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" password "github.com/sethvargo/go-password/password" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + pgcConstants "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core/types/constants" "github.com/splunk/splunk-operator/pkg/postgresql/shared/ports" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" @@ -67,8 +70,36 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. logger = logger.WithValues("postgresCluster", postgresCluster.Name) ctx = log.IntoContext(ctx, logger) + currentPhase := func() string { + if postgresCluster.Status.Phase == nil { + return "" + } + return *postgresCluster.Status.Phase + } + updateStatus := func(conditionType conditionTypes, status metav1.ConditionStatus, reason conditionReasons, message string, phase reconcileClusterPhases) error { - return setStatus(ctx, c, rc.Metrics, postgresCluster, conditionType, status, reason, message, phase) + oldPhase := currentPhase() + if err := setStatus(ctx, c, rc.Metrics, postgresCluster, conditionType, status, reason, message, phase); err != nil { + return err + } + rc.emitClusterPhaseTransition(postgresCluster, oldPhase, currentPhase()) + return nil + } + updateComponentHealthStatus := func(health componentHealth) error { + oldPhase := currentPhase() + if err := setStatusFromHealth(ctx, c, rc.Metrics, postgresCluster, health); err != nil { + return err + } + rc.emitClusterPhaseTransition(postgresCluster, oldPhase, currentPhase()) + return nil + } + updatePhaseStatus := func(phase reconcileClusterPhases) error { + oldPhase := currentPhase() + if err := setPhaseStatus(ctx, c, postgresCluster, phase); err != nil { + return err + } + rc.emitClusterPhaseTransition(postgresCluster, oldPhase, currentPhase()) + return nil } // Finalizer handling must come before any other processing. @@ -119,8 +150,6 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. return ctrl.Result{}, errors.Join(err, statusErr) } - postgresMetricsEnabled := isPostgreSQLMetricsEnabled(postgresCluster, clusterClass) - poolerMetricsEnabled := isConnectionPoolerMetricsEnabled(postgresCluster, clusterClass) // Resolve or derive the superuser secret name. if postgresCluster.Status.Resources != nil && postgresCluster.Status.Resources.SuperUserSecretRef != nil { postgresSecretName = postgresCluster.Status.Resources.SuperUserSecretRef.Name @@ -130,302 +159,1131 @@ func PostgresClusterService(ctx context.Context, rc *ReconcileContext, req ctrl. logger.Info("Superuser secret name derived", "name", postgresSecretName) } - secretExists, secretErr := clusterSecretExists(ctx, c, postgresCluster.Namespace, postgresSecretName, secret) - if secretErr != nil { - logger.Error(secretErr, "Failed to check if PostgresCluster secret exists", "name", postgresSecretName) - rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to check secret existence: %v", secretErr)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, - fmt.Sprintf("Failed to check secret existence: %v", secretErr), failedClusterPhase) - return ctrl.Result{}, errors.Join(secretErr, statusErr) + poolerEnabled = mergedConfig.Spec.ConnectionPoolerEnabled != nil && *mergedConfig.Spec.ConnectionPoolerEnabled + poolerConfigPresent := mergedConfig.CNPG != nil && mergedConfig.CNPG.ConnectionPooler != nil + + secretComponent := newSecretModel(c, rc.Scheme, rc, updateComponentHealthStatus, postgresCluster, postgresSecretName) + clusterComponent := newClusterModel(c, rc.Scheme, rc, updateComponentHealthStatus, postgresCluster, clusterClass, mergedConfig, postgresSecretName) + + bootstrapComponents := []component{ + secretComponent, + clusterComponent, } - if !secretExists { - logger.Info("Superuser secret creation started", "name", postgresSecretName) - if err := ensureClusterSecret(ctx, c, rc.Scheme, postgresCluster, postgresSecretName, secret); err != nil { - logger.Error(err, "Failed to ensure PostgresCluster secret", "name", postgresSecretName) - rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to generate cluster secret: %v", err)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonUserSecretFailed, - fmt.Sprintf("Failed to generate PostgresCluster secret: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) + + phase := func(component component) (ctrl.Result, error) { + componentLogger := logger.WithValues("component", component.Name()) + gate, gateErr := component.EvaluatePrerequisites(ctx) + if gateErr != nil { + if isTransientError(gateErr) { + componentLogger.Error(gateErr, "Component prerequisite transient error, requeueing", "step", "prerequisites") + return transientResult(gateErr), nil + } + componentLogger.Error(gateErr, "Component prerequisite evaluation failed", "step", "prerequisites") + return ctrl.Result{}, fmt.Errorf("%s prerequisites: %w", component.Name(), gateErr) } - if err := c.Status().Update(ctx, postgresCluster); err != nil { - logger.Error(err, "Failed to update status after secret creation") - return ctrl.Result{}, err + if !gate.Allowed { + componentLogger.Info("Component blocked by prerequisites", + "step", "prerequisites", + "condition", gate.Health.Condition, + "reason", gate.Health.Reason, + "phase", gate.Health.Phase, + "requeueAfter", gate.Health.Result.RequeueAfter) + health, err := component.Converge(ctx) + if err != nil && isTransientError(err) { + return transientResult(err), nil + } + if err != nil { + componentLogger.Error(err, "Blocked component convergence failed", "step", "converge") + return health.Result, fmt.Errorf("%s converge (blocked): %w", component.Name(), err) + } + return health.Result, nil } - rc.emitNormal(postgresCluster, EventSecretReady, fmt.Sprintf("Superuser secret %s created", postgresSecretName)) - logger.Info("Superuser secret ref persisted to status") - } - // Re-attach ownerRef if it was stripped (e.g. by a Retain-policy deletion of a previous cluster). - hasOwnerRef, ownerRefErr := controllerutil.HasOwnerReference(secret.GetOwnerReferences(), postgresCluster, rc.Scheme) - if ownerRefErr != nil { - logger.Error(ownerRefErr, "Failed to check owner reference on Secret") - return ctrl.Result{}, fmt.Errorf("failed to check owner reference on secret: %w", ownerRefErr) + if err := component.Actuate(ctx); err != nil { + if isTransientError(err) { + componentLogger.Error(err, "Component actuation transient error, requeueing", "step", "actuate") + return transientResult(err), nil + } + componentLogger.Error(err, "Component actuation failed", "step", "actuate") + return ctrl.Result{}, fmt.Errorf("%s actuate: %w", component.Name(), err) + } + componentLogger.Info("Component actuation completed", "step", "actuate") + + health, err := component.Converge(ctx) + if err != nil && isTransientError(err) { + componentLogger.Error(err, "Component convergence transient error, requeueing", "step", "converge") + return transientResult(err), nil + } + + if err != nil { + componentLogger.Error(err, "Component convergence failed", + "step", "converge", + "condition", health.Condition, + "reason", health.Reason, + "phase", health.Phase) + return health.Result, fmt.Errorf("%s converge: %w", component.Name(), err) + } + if isIntermediateState(health.State) { + componentLogger.Info("Component convergence pending", + "step", "converge", + "condition", health.Condition, + "reason", health.Reason, + "phase", health.Phase, + "requeueAfter", health.Result.RequeueAfter) + return health.Result, nil + } + componentLogger.Info("Component convergence ready", + "step", "converge", + "condition", health.Condition, + "reason", health.Reason, + "phase", health.Phase) + if health.Result != (ctrl.Result{}) { + componentLogger.Info("Component requested explicit result", + "step", "converge", + "requeueAfter", health.Result.RequeueAfter) + return health.Result, nil + } + return ctrl.Result{}, nil } - if secretExists && !hasOwnerRef { - logger.Info("Existing secret linked to PostgresCluster", "name", postgresSecretName) - rc.emitNormal(postgresCluster, EventClusterAdopted, fmt.Sprintf("Adopted existing CNPG cluster and secret %s", postgresSecretName)) - originalSecret := secret.DeepCopy() - if err := ctrl.SetControllerReference(postgresCluster, secret, rc.Scheme); err != nil { - return ctrl.Result{}, fmt.Errorf("failed to set controller reference on existing secret: %w", err) + + for _, component := range bootstrapComponents { + result, err := phase(component) + if err != nil { + return result, err } - if err := patchObject(ctx, c, originalSecret, secret, "Secret"); err != nil { - logger.Error(err, "Failed to patch existing secret with controller reference") - rc.emitWarning(postgresCluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to patch existing secret: %v", err)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonSuperUserSecretFailed, - fmt.Sprintf("Failed to patch existing secret: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) + if result != (ctrl.Result{}) { + return result, nil } } - if postgresCluster.Status.Resources.SuperUserSecretRef == nil { - postgresCluster.Status.Resources.SuperUserSecretRef = &corev1.SecretKeySelector{ - LocalObjectReference: corev1.LocalObjectReference{Name: postgresSecretName}, - Key: secretKeyPassword, + cnpgCluster = clusterComponent.cnpgCluster + runtimeView := clusterRuntimeViewAdapter{model: clusterComponent} + runtimeComponents := []component{ + newManagedRolesModel(c, rc.Scheme, rc, updateComponentHealthStatus, runtimeView, postgresCluster, postgresSecretName), + newPoolerModel(c, rc.Scheme, rc, updateComponentHealthStatus, postgresCluster, clusterClass, mergedConfig, cnpgCluster, poolerEnabled, poolerConfigPresent), + newConfigMapModel(c, rc.Scheme, rc, updateComponentHealthStatus, runtimeView, postgresCluster, postgresSecretName), + } + + for _, component := range runtimeComponents { + result, err := phase(component) + if err != nil { + return result, err + } + if result != (ctrl.Result{}) { + return result, nil } } + logger.Info("Reconciliation complete") + if err := updatePhaseStatus(readyClusterPhase); err != nil { + if apierrors.IsConflict(err) { + return ctrl.Result{Requeue: true}, nil + } + return ctrl.Result{}, err + } + return ctrl.Result{}, nil +} + +func isTransientError(err error) bool { + return apierrors.IsConflict(err) || + apierrors.IsServerTimeout(err) || + apierrors.IsTooManyRequests(err) || + apierrors.IsTimeout(err) +} + +func transientResult(err error) ctrl.Result { + if apierrors.IsConflict(err) { + return ctrl.Result{Requeue: true} + } + return ctrl.Result{RequeueAfter: retryDelay} +} + +func writeComponentStatus(updateStatus healthStatusUpdater, health componentHealth) error { + if updateStatus == nil { + return nil + } + return updateStatus(health) +} + +// types/dto candidate +type componentHealth struct { + State pgcConstants.State + Condition conditionTypes + Reason conditionReasons + Message string + Phase reconcileClusterPhases + Result ctrl.Result +} + +type component interface { + Actuate(ctx context.Context) error + Converge(ctx context.Context) (componentHealth, error) + EvaluatePrerequisites(ctx context.Context) (prerequisiteDecision, error) + Name() string +} + +type prerequisiteDecision struct { + Allowed bool + Health componentHealth +} + +type healthStatusUpdater func(health componentHealth) error - // Build desired CNPG Cluster spec. - desiredSpec := buildCNPGClusterSpec(mergedConfig, postgresSecretName, postgresMetricsEnabled) +type eventEmitter interface { + emitNormal(obj client.Object, reason, message string) + emitWarning(obj client.Object, reason, message string) +} + +type poolerEmitter interface { + eventEmitter + emitPoolerReadyTransition(obj client.Object, conditions []metav1.Condition) + emitPoolerCreationTransition(obj client.Object, conditions []metav1.Condition) +} + +type clusterRuntimeView interface { + Cluster() *cnpgv1.Cluster + IsHealthy() bool +} + +type clusterRuntimeViewAdapter struct { + model *clusterModel +} + +func (v clusterRuntimeViewAdapter) Cluster() *cnpgv1.Cluster { + return v.model.cnpgCluster +} + +func (v clusterRuntimeViewAdapter) IsHealthy() bool { + return v.model.cnpgCluster != nil && v.model.cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy +} - // Fetch existing CNPG Cluster or create it. +type clusterModel struct { + client client.Client + scheme *runtime.Scheme + events eventEmitter + updateStatus healthStatusUpdater + cluster *enterprisev4.PostgresCluster + clusterClass *enterprisev4.PostgresClusterClass + mergedConfig *MergedConfig + secretName string + cnpgCluster *cnpgv1.Cluster + cnpgCreated bool + cnpgPatched bool + + metricsEnabled bool + health componentHealth +} + +func newClusterModel(c client.Client, scheme *runtime.Scheme, events eventEmitter, updateStatus healthStatusUpdater, cluster *enterprisev4.PostgresCluster, clusterClass *enterprisev4.PostgresClusterClass, mergedConfig *MergedConfig, secretName string) *clusterModel { + model := &clusterModel{ + client: c, scheme: scheme, + events: events, updateStatus: updateStatus, + cluster: cluster, clusterClass: clusterClass, mergedConfig: mergedConfig, + secretName: secretName, + } + model.metricsEnabled = isPostgreSQLMetricsEnabled(cluster, clusterClass) + return model +} + +func (p *clusterModel) Name() string { return pgcConstants.ComponentProvisioner } + +func (p *clusterModel) EvaluatePrerequisites(_ context.Context) (prerequisiteDecision, error) { + if health, missing := p.getHealthOnMissingSecretRef(); missing { + return prerequisiteDecision{ + Allowed: false, + Health: health, + }, nil + } + return prerequisiteDecision{Allowed: true}, nil +} + +func (p *clusterModel) Actuate(ctx context.Context) error { + p.cnpgCreated = false + p.cnpgPatched = false + + desiredSpec := buildCNPGClusterSpec(p.mergedConfig, p.secretName, p.metricsEnabled) existingCNPG := &cnpgv1.Cluster{} - err = c.Get(ctx, types.NamespacedName{Name: postgresCluster.Name, Namespace: postgresCluster.Namespace}, existingCNPG) + err := p.client.Get(ctx, types.NamespacedName{Name: p.cluster.Name, Namespace: p.cluster.Namespace}, existingCNPG) switch { case apierrors.IsNotFound(err): - logger.Info("CNPG Cluster creation started", "name", postgresCluster.Name) - newCluster, err := buildCNPGCluster(rc.Scheme, postgresCluster, mergedConfig, postgresSecretName, postgresMetricsEnabled) + newCluster, err := buildCNPGCluster(p.scheme, p.cluster, p.mergedConfig, p.secretName, p.metricsEnabled) if err != nil { - logger.Error(err, "Failed to build CNPG Cluster", "name", postgresCluster.Name) - return ctrl.Result{}, err - } - if err := c.Create(ctx, newCluster); err != nil { - logger.Error(err, "Failed to create CNPG Cluster") - rc.emitWarning(postgresCluster, EventClusterCreateFailed, fmt.Sprintf("Failed to create CNPG cluster: %v", err)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildFailed, - fmt.Sprintf("Failed to create CNPG Cluster: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) - } - rc.emitNormal(postgresCluster, EventClusterCreationStarted, "CNPG cluster created, waiting for healthy state") - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, - "CNPG Cluster created", pendingClusterPhase); statusErr != nil { - return ctrl.Result{}, statusErr - } - logger.Info("CNPG Cluster created, requeueing for status update", "name", postgresCluster.Name) - return ctrl.Result{RequeueAfter: retryDelay}, nil + p.events.emitWarning(p.cluster, EventClusterCreateFailed, fmt.Sprintf("Failed to build CNPG cluster: %v", err)) + return err + } + if err = p.client.Create(ctx, newCluster); err != nil { + p.events.emitWarning(p.cluster, EventClusterCreateFailed, fmt.Sprintf("Failed to create CNPG cluster: %v", err)) + return err + } + p.events.emitNormal(p.cluster, EventClusterCreationStarted, "CNPG cluster created, waiting for healthy state") + p.cnpgCluster = newCluster + p.cnpgCreated = true case err != nil: - logger.Error(err, "Failed to get CNPG Cluster") - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterGetFailed, - fmt.Sprintf("Failed to get CNPG Cluster: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) + return err + default: + p.cnpgCluster = existingCNPG + currentNormalized := normalizeCNPGClusterSpec(p.cnpgCluster.Spec, p.mergedConfig.Spec.PostgreSQLConfig) + desiredNormalized := normalizeCNPGClusterSpec(desiredSpec, p.mergedConfig.Spec.PostgreSQLConfig) + if !equality.Semantic.DeepEqual(currentNormalized, desiredNormalized) { + originalCluster := p.cnpgCluster.DeepCopy() + p.cnpgCluster.Spec = desiredSpec + if patchErr := patchObject(ctx, p.client, originalCluster, p.cnpgCluster, "CNPGCluster"); patchErr != nil { + p.events.emitWarning(p.cluster, EventClusterUpdateFailed, fmt.Sprintf("Failed to patch CNPG cluster: %v", patchErr)) + return patchErr + } + p.events.emitNormal(p.cluster, EventClusterUpdateStarted, "CNPG cluster spec updated, waiting for healthy state") + p.cnpgPatched = true + } } - // Patch CNPG Cluster spec if drift detected. - cnpgCluster = existingCNPG - currentNormalized := normalizeCNPGClusterSpec(cnpgCluster.Spec, mergedConfig.Spec.PostgreSQLConfig) - desiredNormalized := normalizeCNPGClusterSpec(desiredSpec, mergedConfig.Spec.PostgreSQLConfig) - - if !equality.Semantic.DeepEqual(currentNormalized, desiredNormalized) { - logger.Info("CNPG Cluster spec drift detected, patch started", "name", cnpgCluster.Name) - originalCluster := cnpgCluster.DeepCopy() - cnpgCluster.Spec = desiredSpec - - switch patchErr := patchObject(ctx, c, originalCluster, cnpgCluster, "CNPGCluster"); { - case patchErr != nil: - logger.Error(patchErr, "Failed to patch CNPG Cluster", "name", cnpgCluster.Name) - rc.emitWarning(postgresCluster, EventClusterUpdateFailed, fmt.Sprintf("Failed to patch CNPG cluster: %v", patchErr)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterPatchFailed, - fmt.Sprintf("Failed to patch CNPG Cluster: %v", patchErr), failedClusterPhase) - return ctrl.Result{}, errors.Join(patchErr, statusErr) - default: - if statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonClusterBuildSucceeded, - "CNPG Cluster spec updated, waiting for healthy state", provisioningClusterPhase); statusErr != nil { - return ctrl.Result{}, statusErr + if p.cnpgCluster != nil { + p.cluster.Status.ProvisionerRef = &corev1.ObjectReference{ + APIVersion: "postgresql.cnpg.io/v1", + Kind: "Cluster", + Namespace: p.cnpgCluster.Namespace, + Name: p.cnpgCluster.Name, + UID: p.cnpgCluster.UID, + } + } + return nil +} + +func (p *clusterModel) Converge(_ context.Context) (health componentHealth, err error) { + p.health.Condition = clusterReady + defer func() { + statusErr := writeComponentStatus(p.updateStatus, p.health) + if statusErr != nil { + if err != nil { + err = errors.Join(err, statusErr) + } else { + err = statusErr } - rc.emitNormal(postgresCluster, EventClusterUpdateStarted, "CNPG cluster spec updated, waiting for healthy state") - logger.Info("CNPG Cluster patched, requeueing for status update", "name", cnpgCluster.Name) - return ctrl.Result{RequeueAfter: retryDelay}, nil } + health = p.health + }() + + if missingHealth, missing := p.getHealthOnMissingSecretRef(); missing { + p.health = missingHealth + return p.health, nil } - // Reconcile ManagedRoles. - if err := reconcileManagedRoles(ctx, c, postgresCluster, cnpgCluster); err != nil { - logger.Error(err, "Failed to reconcile managed roles") - rc.emitWarning(postgresCluster, EventManagedRolesFailed, fmt.Sprintf("Failed to reconcile managed roles: %v", err)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonManagedRolesFailed, - fmt.Sprintf("Failed to reconcile managed roles: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) + if p.cnpgCluster == nil { + p.health.State = pgcConstants.Pending + p.health.Reason = reasonCNPGProvisioning + p.health.Message = msgCNPGPendingCreation + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil } - // Reconcile Connection Pooler. - poolerEnabled = mergedConfig.Spec.ConnectionPoolerEnabled != nil && *mergedConfig.Spec.ConnectionPoolerEnabled + if p.cnpgCreated { + p.health.State = pgcConstants.Pending + p.health.Reason = reasonCNPGProvisioning + p.health.Message = msgCNPGPendingCreation + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + + if p.cnpgPatched { + p.health.State = pgcConstants.Provisioning + p.health.Reason = reasonCNPGProvisioning + p.health.Message = fmt.Sprintf(msgFmtCNPGClusterPhase, p.cnpgCluster.Status.Phase) + p.health.Phase = provisioningClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + + switch p.cnpgCluster.Status.Phase { + case cnpgv1.PhaseHealthy: + p.health.State = pgcConstants.Ready + p.health.Reason = reasonCNPGClusterHealthy + p.health.Message = msgProvisionerHealthy + p.health.Phase = readyClusterPhase + p.health.Result = ctrl.Result{} + return p.health, nil + case cnpgv1.PhaseFirstPrimary, cnpgv1.PhaseCreatingReplica, cnpgv1.PhaseWaitingForInstancesToBeActive: + p.health.State = pgcConstants.Provisioning + p.health.Reason = reasonCNPGProvisioning + p.health.Message = fmt.Sprintf(msgFmtCNPGProvisioning, p.cnpgCluster.Status.Phase) + p.health.Phase = provisioningClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseSwitchover: + p.health.State = pgcConstants.Configuring + p.health.Reason = reasonCNPGSwitchover + p.health.Message = msgCNPGSwitchover + p.health.Phase = configuringClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseFailOver: + p.health.State = pgcConstants.Configuring + p.health.Reason = reasonCNPGFailingOver + p.health.Message = msgCNPGFailingOver + p.health.Phase = configuringClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseInplacePrimaryRestart, cnpgv1.PhaseInplaceDeletePrimaryRestart: + p.health.State = pgcConstants.Configuring + p.health.Reason = reasonCNPGRestarting + p.health.Message = fmt.Sprintf(msgFmtCNPGRestarting, p.cnpgCluster.Status.Phase) + p.health.Phase = configuringClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseUpgrade, cnpgv1.PhaseMajorUpgrade, cnpgv1.PhaseUpgradeDelayed, cnpgv1.PhaseOnlineUpgrading: + p.health.State = pgcConstants.Configuring + p.health.Reason = reasonCNPGUpgrading + p.health.Message = fmt.Sprintf(msgFmtCNPGUpgrading, p.cnpgCluster.Status.Phase) + p.health.Phase = configuringClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseApplyingConfiguration: + p.health.State = pgcConstants.Configuring + p.health.Reason = reasonCNPGApplyingConfig + p.health.Message = msgCNPGApplyingConfiguration + p.health.Phase = configuringClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseReplicaClusterPromotion: + p.health.State = pgcConstants.Configuring + p.health.Reason = reasonCNPGPromoting + p.health.Message = msgCNPGPromoting + p.health.Phase = configuringClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + case cnpgv1.PhaseWaitingForUser: + p.health.State = pgcConstants.Failed + p.health.Reason = reasonCNPGWaitingForUser + p.health.Message = msgCNPGWaitingForUser + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, fmt.Errorf("provisioner requires user action") + case cnpgv1.PhaseUnrecoverable: + p.health.State = pgcConstants.Failed + p.health.Reason = reasonCNPGUnrecoverable + p.health.Message = msgCNPGUnrecoverable + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, fmt.Errorf("provisioner unrecoverable") + case cnpgv1.PhaseCannotCreateClusterObjects: + p.health.State = pgcConstants.Failed + p.health.Reason = reasonCNPGProvisioningFailed + p.health.Message = msgCNPGCannotCreateObjects + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, fmt.Errorf("provisioner cannot create cluster objects") + case cnpgv1.PhaseUnknownPlugin, cnpgv1.PhaseFailurePlugin: + p.health.State = pgcConstants.Failed + p.health.Reason = reasonCNPGPluginError + p.health.Message = fmt.Sprintf(msgFmtCNPGPluginError, p.cnpgCluster.Status.Phase) + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, fmt.Errorf("provisioner plugin error") + case cnpgv1.PhaseImageCatalogError, cnpgv1.PhaseArchitectureBinaryMissing: + p.health.State = pgcConstants.Failed + p.health.Reason = reasonCNPGImageError + p.health.Message = fmt.Sprintf(msgFmtCNPGImageError, p.cnpgCluster.Status.Phase) + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, fmt.Errorf("provisioner image error") + case "": + p.health.State = pgcConstants.Pending + p.health.Reason = reasonCNPGProvisioning + p.health.Message = msgCNPGPendingCreation + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + default: + p.health.State = pgcConstants.Provisioning + p.health.Reason = reasonCNPGProvisioning + p.health.Message = fmt.Sprintf(msgFmtCNPGClusterPhase, p.cnpgCluster.Status.Phase) + p.health.Phase = provisioningClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } +} + +func (p *clusterModel) getHealthOnMissingSecretRef() (componentHealth, bool) { + if p.cluster.Status.Resources == nil || p.cluster.Status.Resources.SuperUserSecretRef == nil { + return componentHealth{ + State: pgcConstants.Pending, + Condition: clusterReady, + Reason: reasonUserSecretPending, + Message: msgSecretRefNotPublished, + Phase: pendingClusterPhase, + Result: ctrl.Result{RequeueAfter: retryDelay}, + }, true + } + return componentHealth{}, false +} + +type managedRolesModel struct { + client client.Client + scheme *runtime.Scheme + events eventEmitter + updateStatus healthStatusUpdater + runtime clusterRuntimeView + cluster *enterprisev4.PostgresCluster + secret string + + health componentHealth +} + +func newManagedRolesModel(c client.Client, scheme *runtime.Scheme, events eventEmitter, updateStatus healthStatusUpdater, runtime clusterRuntimeView, cluster *enterprisev4.PostgresCluster, secret string) *managedRolesModel { + return &managedRolesModel{client: c, scheme: scheme, events: events, updateStatus: updateStatus, runtime: runtime, cluster: cluster, secret: secret} +} + +func (m *managedRolesModel) Name() string { return pgcConstants.ComponentManagedRoles } + +func (m *managedRolesModel) runtimeGateHealth() (componentHealth, bool) { + if m.runtime == nil || !m.runtime.IsHealthy() { + return componentHealth{ + State: pgcConstants.Pending, + Condition: managedRolesReady, + Reason: reasonManagedRolesPending, + Message: "Managed roles blocked until CNPG cluster is healthy", + Phase: pendingClusterPhase, + Result: ctrl.Result{RequeueAfter: retryDelay}, + }, true + } + return componentHealth{}, false +} + +func (m *managedRolesModel) EvaluatePrerequisites(_ context.Context) (prerequisiteDecision, error) { + if gateHealth, blocked := m.runtimeGateHealth(); blocked { + return prerequisiteDecision{ + Allowed: false, + Health: gateHealth, + }, nil + } + return prerequisiteDecision{Allowed: true}, nil +} + +func (m *managedRolesModel) Actuate(ctx context.Context) error { + if rolesErr := reconcileManagedRoles(ctx, m.client, m.cluster, m.runtime.Cluster()); rolesErr != nil { + m.events.emitWarning(m.cluster, EventManagedRolesFailed, fmt.Sprintf("Failed to reconcile managed roles: %v", rolesErr)) + m.health.State = pgcConstants.Failed + m.health.Reason = reasonManagedRolesFailed + m.health.Message = fmt.Sprintf("Failed to reconcile managed roles: %v", rolesErr) + m.health.Phase = failedClusterPhase + m.health.Result = ctrl.Result{} + return rolesErr + } + return nil +} + +func (m *managedRolesModel) Converge(ctx context.Context) (health componentHealth, err error) { + _ = ctx + m.health = componentHealth{Condition: managedRolesReady} + defer func() { + statusErr := writeComponentStatus(m.updateStatus, m.health) + if statusErr != nil { + if err != nil { + err = errors.Join(err, statusErr) + } else { + err = statusErr + } + } + health = m.health + }() + + if gateHealth, blocked := m.runtimeGateHealth(); blocked { + m.health = gateHealth + return m.health, nil + } + + syncManagedRolesStatusFromCNPG(m.cluster, m.runtime.Cluster()) + status := m.cluster.Status.ManagedRolesStatus + if status == nil { + m.health.State = pgcConstants.Failed + m.health.Reason = reasonManagedRolesFailed + m.health.Message = "Managed roles status not published yet" + m.health.Phase = failedClusterPhase + m.health.Result = ctrl.Result{RequeueAfter: retryDelay} + m.emitManagedRolesConvergeFailure(m.health.Message) + return m.health, fmt.Errorf("managed roles status not published") + } + + if len(status.Failed) > 0 { + m.health.State = pgcConstants.Failed + m.health.Reason = reasonManagedRolesFailed + m.health.Message = fmt.Sprintf("Managed roles reconciliation failed for %d role(s)", len(status.Failed)) + m.health.Phase = failedClusterPhase + m.health.Result = ctrl.Result{RequeueAfter: retryDelay} + m.emitManagedRolesConvergeFailure(m.health.Message) + return m.health, fmt.Errorf("managed roles have failed entries") + } + + if len(status.Pending) > 0 { + m.health.State = pgcConstants.Pending + m.health.Reason = reasonManagedRolesPending + m.health.Message = fmt.Sprintf("Managed roles pending for %d role(s)", len(status.Pending)) + m.health.Phase = pendingClusterPhase + m.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return m.health, nil + } + + m.health.State = pgcConstants.Ready + m.health.Reason = reasonManagedRolesReady + m.health.Message = "Managed roles are reconciled" + m.health.Phase = readyClusterPhase + m.health.Result = ctrl.Result{} + if !meta.IsStatusConditionTrue(m.cluster.Status.Conditions, string(managedRolesReady)) { + m.events.emitNormal(m.cluster, EventManagedRolesReady, m.health.Message) + } + return m.health, nil +} + +func (m *managedRolesModel) emitManagedRolesConvergeFailure(message string) { + cond := meta.FindStatusCondition(m.cluster.Status.Conditions, string(managedRolesReady)) + if cond != nil && + cond.Status == metav1.ConditionFalse && + cond.Reason == string(reasonManagedRolesFailed) && + cond.Message == message { + return + } + m.events.emitWarning(m.cluster, EventManagedRolesFailed, message) +} + +// TODO: Ports as access to cnpg originated info to decouple. +func syncManagedRolesStatusFromCNPG(cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster) { + if cluster == nil || cnpgCluster == nil { + return + } + + expectedRoles := make([]string, 0, len(cluster.Spec.ManagedRoles)) + for _, role := range cluster.Spec.ManagedRoles { + expectedRoles = append(expectedRoles, role.Name) + } + + cnpgStatus := cnpgCluster.Status.ManagedRolesStatus + reconciled := append([]string(nil), cnpgStatus.ByStatus[cnpgv1.RoleStatusReconciled]...) + pending := append([]string(nil), cnpgStatus.ByStatus[cnpgv1.RoleStatusPendingReconciliation]...) + + reconciledSet := make(map[string]struct{}, len(reconciled)) + for _, roleName := range reconciled { + reconciledSet[roleName] = struct{}{} + } + pendingSet := make(map[string]struct{}, len(pending)) + for _, roleName := range pending { + pendingSet[roleName] = struct{}{} + } + + failed := make(map[string]string, len(cnpgStatus.CannotReconcile)) + for roleName, errs := range cnpgStatus.CannotReconcile { + if len(errs) == 0 { + failed[roleName] = "role cannot be reconciled" + continue + } + failed[roleName] = strings.Join(errs, "; ") + } + + for _, roleName := range expectedRoles { + if _, ok := reconciledSet[roleName]; ok { + continue + } + if _, ok := failed[roleName]; ok { + continue + } + if _, ok := pendingSet[roleName]; ok { + continue + } + pending = append(pending, roleName) + } + + sort.Strings(reconciled) + sort.Strings(pending) + if len(failed) == 0 { + failed = nil + } - rwPoolerExists, err := poolerExists(ctx, c, postgresCluster, readWriteEndpoint) + cluster.Status.ManagedRolesStatus = &enterprisev4.ManagedRolesStatus{ + Reconciled: reconciled, + Pending: pending, + Failed: failed, + } +} + +type poolerModel struct { + client client.Client + scheme *runtime.Scheme + events poolerEmitter + updateStatus healthStatusUpdater + cluster *enterprisev4.PostgresCluster + clusterClass *enterprisev4.PostgresClusterClass + mergedConfig *MergedConfig + cnpgCluster *cnpgv1.Cluster + poolerEnabled bool + poolerConfigPresent bool + + metricsEnabled bool + health componentHealth +} + +func newPoolerModel(c client.Client, scheme *runtime.Scheme, events poolerEmitter, updateStatus healthStatusUpdater, cluster *enterprisev4.PostgresCluster, clusterClass *enterprisev4.PostgresClusterClass, mergedConfig *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerEnabled bool, poolerConfigPresent bool) *poolerModel { + model := &poolerModel{ + client: c, + scheme: scheme, + events: events, + updateStatus: updateStatus, + cluster: cluster, + clusterClass: clusterClass, + mergedConfig: mergedConfig, + cnpgCluster: cnpgCluster, + poolerEnabled: poolerEnabled, + poolerConfigPresent: poolerConfigPresent, + } + model.metricsEnabled = isConnectionPoolerMetricsEnabled(cluster, clusterClass) + return model +} + +func (p *poolerModel) Name() string { return pgcConstants.ComponentPooler } + +func (p *poolerModel) EvaluatePrerequisites(_ context.Context) (prerequisiteDecision, error) { + if !p.poolerEnabled || !p.poolerConfigPresent { + return prerequisiteDecision{Allowed: true}, nil + } + if p.cnpgCluster == nil { + return prerequisiteDecision{ + Allowed: false, + Health: componentHealth{ + State: pgcConstants.Pending, + Condition: poolerReady, + Reason: reasonCNPGProvisioning, + Message: msgCNPGPendingCreation, + Phase: pendingClusterPhase, + Result: ctrl.Result{RequeueAfter: retryDelay}, + }, + }, nil + } + if p.cnpgCluster.Status.Phase != cnpgv1.PhaseHealthy { + return prerequisiteDecision{ + Allowed: false, + Health: componentHealth{ + State: pgcConstants.Provisioning, + Condition: poolerReady, + Reason: reasonCNPGProvisioning, + Message: fmt.Sprintf(msgFmtCNPGClusterPhase, p.cnpgCluster.Status.Phase), + Phase: provisioningClusterPhase, + Result: ctrl.Result{RequeueAfter: retryDelay}, + }, + }, nil + } + return prerequisiteDecision{Allowed: true}, nil +} + +func (p *poolerModel) Actuate(ctx context.Context) error { + switch { + case !p.poolerEnabled: + if err := deleteConnectionPoolers(ctx, p.client, p.cluster); err != nil { + return err + } + p.cluster.Status.ConnectionPoolerStatus = nil + meta.RemoveStatusCondition(&p.cluster.Status.Conditions, string(poolerReady)) + return nil + case !p.poolerConfigPresent: + return nil + case p.cnpgCluster == nil || p.cnpgCluster.Status.Phase != cnpgv1.PhaseHealthy: + return nil + default: + if err := createOrUpdateConnectionPoolers(ctx, p.client, p.scheme, p.cluster, p.mergedConfig, p.cnpgCluster, p.metricsEnabled); err != nil { + p.events.emitWarning(p.cluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to reconcile connection pooler: %v", err)) + return err + } + return nil + } +} + +func (p *poolerModel) Converge(ctx context.Context) (health componentHealth, err error) { + p.health = componentHealth{Condition: poolerReady} + defer func() { + statusErr := writeComponentStatus(p.updateStatus, p.health) + if statusErr != nil { + if err != nil { + err = errors.Join(err, statusErr) + } else { + err = statusErr + } + } + health = p.health + }() + + if !p.poolerEnabled { + p.health.State = pgcConstants.Ready + p.health.Reason = reasonAllInstancesReady + p.health.Message = msgPoolerDisabled + p.health.Phase = readyClusterPhase + p.health.Result = ctrl.Result{} + return p.health, nil + } + if !p.poolerConfigPresent { + p.health.State = pgcConstants.Failed + p.health.Reason = reasonPoolerConfigMissing + p.health.Message = msgPoolerConfigMissing + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, fmt.Errorf("pooler config missing") + } + if p.cnpgCluster == nil { + p.health.State = pgcConstants.Pending + p.health.Reason = reasonCNPGProvisioning + p.health.Message = msgCNPGPendingCreation + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + if p.cnpgCluster.Status.Phase != cnpgv1.PhaseHealthy { + p.health.State = pgcConstants.Provisioning + p.health.Reason = reasonCNPGProvisioning + p.health.Message = fmt.Sprintf(msgFmtCNPGClusterPhase, p.cnpgCluster.Status.Phase) + p.health.Phase = provisioningClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + + // TODO: Port material. + rwExists, err := poolerExists(ctx, p.client, p.cluster, readWriteEndpoint) if err != nil { - logger.Error(err, "Failed to check RW pooler existence") - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) + p.events.emitWarning(p.cluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to sync pooler status: %v", err)) + p.health.State = pgcConstants.Failed + p.health.Reason = reasonPoolerReconciliationFailed + p.health.Message = fmt.Sprintf("Failed to check RW pooler existence: %v", err) + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, err + } + roExists, err := poolerExists(ctx, p.client, p.cluster, readOnlyEndpoint) + if err != nil { + p.events.emitWarning(p.cluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to sync pooler status: %v", err)) + p.health.State = pgcConstants.Failed + p.health.Reason = reasonPoolerReconciliationFailed + p.health.Message = fmt.Sprintf("Failed to check RO pooler existence: %v", err) + p.health.Phase = failedClusterPhase + p.health.Result = ctrl.Result{} + return p.health, err + } + if !rwExists || !roExists { + p.events.emitPoolerCreationTransition(p.cluster, p.cluster.Status.Conditions) + p.health.State = pgcConstants.Provisioning + p.health.Reason = reasonPoolerCreating + p.health.Message = msgPoolersProvisioning + p.health.Phase = provisioningClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + + rwPooler := &cnpgv1.Pooler{} + if err := p.client.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(p.cluster.Name, readWriteEndpoint), + Namespace: p.cluster.Namespace, + }, rwPooler); err != nil { + p.events.emitPoolerCreationTransition(p.cluster, p.cluster.Status.Conditions) + p.health.State = pgcConstants.Pending + p.health.Reason = reasonPoolerCreating + p.health.Message = msgWaitRWPoolerObject + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil } - roPoolerExists, err := poolerExists(ctx, c, postgresCluster, readOnlyEndpoint) + roPooler := &cnpgv1.Pooler{} + if err := p.client.Get(ctx, types.NamespacedName{ + Name: poolerResourceName(p.cluster.Name, readOnlyEndpoint), + Namespace: p.cluster.Namespace, + }, roPooler); err != nil { + p.events.emitPoolerCreationTransition(p.cluster, p.cluster.Status.Conditions) + p.health.State = pgcConstants.Pending + p.health.Reason = reasonPoolerCreating + p.health.Message = msgWaitROPoolerObject + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + if !arePoolersReady(rwPooler, roPooler) { + p.events.emitPoolerCreationTransition(p.cluster, p.cluster.Status.Conditions) + p.health.State = pgcConstants.Pending + p.health.Reason = reasonPoolerCreating + p.health.Message = msgPoolersNotReady + p.health.Phase = pendingClusterPhase + p.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return p.health, nil + } + + p.cluster.Status.ConnectionPoolerStatus = &enterprisev4.ConnectionPoolerStatus{Enabled: true} + p.health.State = pgcConstants.Ready + p.health.Reason = reasonAllInstancesReady + p.health.Message = msgPoolersReady + p.health.Phase = readyClusterPhase + p.health.Result = ctrl.Result{} + p.events.emitPoolerReadyTransition(p.cluster, p.cluster.Status.Conditions) + return p.health, nil +} + +type configMapModel struct { + client client.Client + scheme *runtime.Scheme + events eventEmitter + updateStatus healthStatusUpdater + runtime clusterRuntimeView + cluster *enterprisev4.PostgresCluster + secret string + + health componentHealth +} + +func newConfigMapModel(c client.Client, scheme *runtime.Scheme, events eventEmitter, updateStatus healthStatusUpdater, runtime clusterRuntimeView, cluster *enterprisev4.PostgresCluster, secret string) *configMapModel { + return &configMapModel{client: c, scheme: scheme, events: events, updateStatus: updateStatus, runtime: runtime, cluster: cluster, secret: secret} +} + +func (c *configMapModel) Name() string { return pgcConstants.ComponentConfigMap } + +func (c *configMapModel) EvaluatePrerequisites(_ context.Context) (prerequisiteDecision, error) { + return prerequisiteDecision{Allowed: true}, nil +} + +func (c *configMapModel) Actuate(ctx context.Context) error { + cnpgCluster := c.runtime.Cluster() + if cnpgCluster == nil { + return nil + } + desiredCM, err := generateConfigMap(ctx, c.client, c.scheme, c.cluster, cnpgCluster, c.secret) if err != nil { - logger.Error(err, "Failed to check RO pooler existence") - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to check pooler existence: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) + c.events.emitWarning(c.cluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) + return err + } + cm := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: desiredCM.Name, Namespace: desiredCM.Namespace}} + _, err = controllerutil.CreateOrUpdate(ctx, c.client, cm, func() error { + cm.Data = desiredCM.Data + cm.Annotations = desiredCM.Annotations + cm.Labels = desiredCM.Labels + if !metav1.IsControlledBy(cm, c.cluster) { + if setErr := ctrl.SetControllerReference(c.cluster, cm, c.scheme); setErr != nil { + return fmt.Errorf("setting controller reference: %w", setErr) + } + } + return nil + }) + if err != nil { + c.events.emitWarning(c.cluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) + return err } + if c.cluster.Status.Resources.ConfigMapRef == nil { + c.cluster.Status.Resources.ConfigMapRef = &corev1.LocalObjectReference{Name: desiredCM.Name} + } + return nil +} - switch { - case !poolerEnabled: - if err := deleteConnectionPoolers(ctx, c, postgresCluster); err != nil { - logger.Error(err, "Failed to delete connection poolers") - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to delete connection poolers: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) - } - postgresCluster.Status.ConnectionPoolerStatus = nil - meta.RemoveStatusCondition(&postgresCluster.Status.Conditions, string(poolerReady)) - - case !rwPoolerExists || !roPoolerExists: - if mergedConfig.CNPG == nil || mergedConfig.CNPG.ConnectionPooler == nil { - logger.Info("Connection pooler enabled but no config found in class or cluster spec, skipping", - "class", postgresCluster.Spec.Class, "cluster", postgresCluster.Name) - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerConfigMissing, - fmt.Sprintf("Connection pooler is enabled but no config found in class %q or cluster %q", - postgresCluster.Spec.Class, postgresCluster.Name), failedClusterPhase) - return ctrl.Result{}, statusErr - } - if cnpgCluster.Status.Phase != cnpgv1.PhaseHealthy { - logger.Info("CNPG Cluster not healthy yet, pending pooler creation", "clusterPhase", cnpgCluster.Status.Phase) - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonCNPGClusterNotHealthy, - "Waiting for CNPG cluster to become healthy before creating poolers", pendingClusterPhase) - return ctrl.Result{RequeueAfter: retryDelay}, statusErr - } - if err := createOrUpdateConnectionPoolers(ctx, c, rc.Scheme, postgresCluster, mergedConfig, cnpgCluster, poolerMetricsEnabled); err != nil { - logger.Error(err, "Failed to reconcile connection pooler") - rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to reconcile connection pooler: %v", err)) - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to reconcile connection pooler: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) - } - rc.emitNormal(postgresCluster, EventPoolerCreationStarted, "Connection poolers created, waiting for readiness") - logger.Info("Connection pooler creation started, requeueing") - if statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, - "Connection poolers are being provisioned", provisioningClusterPhase); statusErr != nil { - return ctrl.Result{}, statusErr - } - return ctrl.Result{RequeueAfter: retryDelay}, nil - - case func() bool { - rwPooler := &cnpgv1.Pooler{} - rwErr := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(postgresCluster.Name, readWriteEndpoint), - Namespace: postgresCluster.Namespace, - }, rwPooler) - roPooler := &cnpgv1.Pooler{} - roErr := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(postgresCluster.Name, readOnlyEndpoint), - Namespace: postgresCluster.Namespace, - }, roPooler) - return rwErr != nil || roErr != nil || !arePoolersReady(rwPooler, roPooler) - }(): - logger.Info("Connection Poolers are not ready yet, requeueing") - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerCreating, - "Connection poolers are being provisioned", pendingClusterPhase) - return ctrl.Result{RequeueAfter: retryDelay}, statusErr +func (c *configMapModel) Converge(ctx context.Context) (health componentHealth, err error) { + c.health = componentHealth{Condition: configMapsReady} + defer func() { + statusErr := writeComponentStatus(c.updateStatus, c.health) + if statusErr != nil { + if err != nil { + err = errors.Join(err, statusErr) + } else { + err = statusErr + } + } + health = c.health + }() + + if c.runtime == nil || !c.runtime.IsHealthy() { + c.health.State = pgcConstants.Provisioning + c.health.Reason = reasonCNPGProvisioning + c.health.Message = msgCNPGPendingCreation + c.health.Phase = provisioningClusterPhase + c.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return c.health, nil + } + + if c.cluster.Status.Resources == nil || c.cluster.Status.Resources.ConfigMapRef == nil { + c.health.State = pgcConstants.Provisioning + c.health.Reason = reasonConfigMapFailed + c.health.Message = msgConfigMapRefNotPublished + c.health.Phase = provisioningClusterPhase + c.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return c.health, nil + } + + cm := &corev1.ConfigMap{} + key := types.NamespacedName{Name: c.cluster.Status.Resources.ConfigMapRef.Name, Namespace: c.cluster.Namespace} + if err := c.client.Get(ctx, key, cm); err != nil { + if apierrors.IsNotFound(err) { + c.health.State = pgcConstants.Provisioning + c.health.Reason = reasonConfigMapFailed + c.health.Message = msgConfigMapNotFoundYet + c.health.Phase = provisioningClusterPhase + c.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return c.health, nil + } + c.health.State = pgcConstants.Failed + c.health.Reason = reasonConfigMapFailed + c.health.Message = fmt.Sprintf("Failed to fetch ConfigMap: %v", err) + c.health.Phase = failedClusterPhase + c.health.Result = ctrl.Result{} + return c.health, err + } + + requiredKeys := []string{ + configKeyClusterRWEndpoint, + configKeyClusterROEndpoint, + configKeyClusterREndpoint, + configKeyDefaultClusterPort, + configKeySuperUserSecretRef, + } + for _, requiredKey := range requiredKeys { + if _, ok := cm.Data[requiredKey]; !ok { + c.health.State = pgcConstants.Failed + c.health.Reason = reasonConfigMapFailed + c.health.Message = fmt.Sprintf(msgFmtConfigMapMissingRequiredKey, requiredKey) + c.health.Phase = failedClusterPhase + c.health.Result = ctrl.Result{} + return c.health, fmt.Errorf("configmap missing key %s", requiredKey) + } + } - default: - oldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) - copy(oldConditions, postgresCluster.Status.Conditions) - if err := syncPoolerStatus(ctx, c, rc.Metrics, postgresCluster); err != nil { - logger.Error(err, "Failed to sync pooler status") - rc.emitWarning(postgresCluster, EventPoolerReconcileFailed, fmt.Sprintf("Failed to sync pooler status: %v", err)) - statusErr := updateStatus(poolerReady, metav1.ConditionFalse, reasonPoolerReconciliationFailed, - fmt.Sprintf("Failed to sync pooler status: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) - } - rc.emitPoolerReadyTransition(postgresCluster, oldConditions) - } - - // Reconcile ConfigMap when CNPG cluster is healthy. - if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { - logger.Info("CNPG Cluster healthy, reconciling ConfigMap") - desiredCM, err := generateConfigMap(ctx, c, rc.Scheme, postgresCluster, cnpgCluster, postgresSecretName) - if err != nil { - logger.Error(err, "Failed to generate ConfigMap") - rc.emitWarning(postgresCluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, - fmt.Sprintf("Failed to generate ConfigMap: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) - } - cm := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: desiredCM.Name, Namespace: desiredCM.Namespace}} - createOrUpdateResult, err := controllerutil.CreateOrUpdate(ctx, c, cm, func() error { - cm.Data = desiredCM.Data - cm.Annotations = desiredCM.Annotations - cm.Labels = desiredCM.Labels - if !metav1.IsControlledBy(cm, postgresCluster) { - if err := ctrl.SetControllerReference(postgresCluster, cm, rc.Scheme); err != nil { - return fmt.Errorf("setting controller reference: %w", err) - } + c.health.State = pgcConstants.Ready + c.health.Reason = reasonConfigMapReady + c.health.Message = msgAccessConfigMapReady + c.health.Phase = readyClusterPhase + c.health.Result = ctrl.Result{} + if !meta.IsStatusConditionTrue(c.cluster.Status.Conditions, string(configMapsReady)) { + c.events.emitNormal(c.cluster, EventConfigMapReady, c.health.Message) + } + return c.health, nil +} + +type secretModel struct { + client client.Client + scheme *runtime.Scheme + events eventEmitter + updateStatus healthStatusUpdater + cluster *enterprisev4.PostgresCluster + name string + + health componentHealth +} + +func newSecretModel(c client.Client, scheme *runtime.Scheme, events eventEmitter, updateStatus healthStatusUpdater, cluster *enterprisev4.PostgresCluster, name string) *secretModel { + return &secretModel{client: c, scheme: scheme, events: events, updateStatus: updateStatus, cluster: cluster, name: name} +} + +func (s *secretModel) Name() string { return pgcConstants.ComponentSecret } + +func (s *secretModel) EvaluatePrerequisites(_ context.Context) (prerequisiteDecision, error) { + return prerequisiteDecision{Allowed: true}, nil +} + +func (s *secretModel) Actuate(ctx context.Context) error { + secret := &corev1.Secret{} + secretExists, secretErr := clusterSecretExists(ctx, s.client, s.cluster.Namespace, s.name, secret) + if secretErr != nil { + s.events.emitWarning(s.cluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to check secret existence: %v", secretErr)) + return secretErr + } + if !secretExists { + if err := ensureClusterSecret(ctx, s.client, s.scheme, s.cluster, s.name, secret); err != nil { + s.events.emitWarning(s.cluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to generate cluster secret: %v", err)) + return err + } + } + hasOwnerRef, ownerRefErr := controllerutil.HasOwnerReference(secret.GetOwnerReferences(), s.cluster, s.scheme) + if ownerRefErr != nil { + return fmt.Errorf("failed to check owner reference on secret: %w", ownerRefErr) + } + if secretExists && !hasOwnerRef { + originalSecret := secret.DeepCopy() + if err := ctrl.SetControllerReference(s.cluster, secret, s.scheme); err != nil { + return fmt.Errorf("failed to set controller reference on existing secret: %w", err) + } + if err := patchObject(ctx, s.client, originalSecret, secret, "Secret"); err != nil { + s.events.emitWarning(s.cluster, EventSecretReconcileFailed, fmt.Sprintf("Failed to patch existing secret: %v", err)) + return err + } + s.events.emitNormal(s.cluster, EventClusterAdopted, fmt.Sprintf("Adopted existing CNPG cluster and secret %s", s.name)) + } + if s.cluster.Status.Resources.SuperUserSecretRef == nil { + s.cluster.Status.Resources.SuperUserSecretRef = &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: s.name}, + Key: secretKeyPassword, + } + } + return nil +} + +func (s *secretModel) Converge(ctx context.Context) (health componentHealth, err error) { + s.health = componentHealth{Condition: secretsReady} + defer func() { + statusErr := writeComponentStatus(s.updateStatus, s.health) + if statusErr != nil { + if err != nil { + err = errors.Join(err, statusErr) + } else { + err = statusErr } - return nil - }) - if err != nil { - logger.Error(err, "Failed to reconcile ConfigMap", "name", desiredCM.Name) - rc.emitWarning(postgresCluster, EventConfigMapReconcileFailed, fmt.Sprintf("Failed to reconcile ConfigMap: %v", err)) - statusErr := updateStatus(clusterReady, metav1.ConditionFalse, reasonConfigMapFailed, - fmt.Sprintf("Failed to reconcile ConfigMap: %v", err), failedClusterPhase) - return ctrl.Result{}, errors.Join(err, statusErr) - } - switch createOrUpdateResult { - case controllerutil.OperationResultCreated: - rc.emitNormal(postgresCluster, EventConfigMapReady, fmt.Sprintf("ConfigMap %s created", desiredCM.Name)) - logger.Info("ConfigMap created", "name", desiredCM.Name) - case controllerutil.OperationResultUpdated: - rc.emitNormal(postgresCluster, EventConfigMapReady, fmt.Sprintf("ConfigMap %s updated", desiredCM.Name)) - logger.Info("ConfigMap updated", "name", desiredCM.Name) - default: - logger.Info("ConfigMap unchanged", "name", desiredCM.Name) - } - if postgresCluster.Status.Resources.ConfigMapRef == nil { - postgresCluster.Status.Resources.ConfigMapRef = &corev1.LocalObjectReference{Name: desiredCM.Name} - } - } - - // Final status sync. - var oldPhase string - if postgresCluster.Status.Phase != nil { - oldPhase = *postgresCluster.Status.Phase - } - if err := syncStatus(ctx, c, rc.Metrics, postgresCluster, cnpgCluster); err != nil { - logger.Error(err, "Failed to sync status") - return ctrl.Result{}, err + } + health = s.health + }() + + if s.cluster.Status.Resources == nil || s.cluster.Status.Resources.SuperUserSecretRef == nil { + s.health.State = pgcConstants.Provisioning + s.health.Reason = reasonUserSecretPending + s.health.Message = msgSecretRefNotPublished + s.health.Phase = provisioningClusterPhase + s.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return s.health, nil } - var newPhase string - if postgresCluster.Status.Phase != nil { - newPhase = *postgresCluster.Status.Phase - } - rc.emitClusterPhaseTransition(postgresCluster, oldPhase, newPhase) - if cnpgCluster.Status.Phase == cnpgv1.PhaseHealthy { - rwPooler := &cnpgv1.Pooler{} - rwErr := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(postgresCluster.Name, readWriteEndpoint), - Namespace: postgresCluster.Namespace, - }, rwPooler) - roPooler := &cnpgv1.Pooler{} - roErr := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(postgresCluster.Name, readOnlyEndpoint), - Namespace: postgresCluster.Namespace, - }, roPooler) - if rwErr == nil && roErr == nil && arePoolersReady(rwPooler, roPooler) { - logger.Info("Poolers ready, syncing status") - poolerOldConditions := make([]metav1.Condition, len(postgresCluster.Status.Conditions)) - copy(poolerOldConditions, postgresCluster.Status.Conditions) - _ = syncPoolerStatus(ctx, c, rc.Metrics, postgresCluster) - rc.emitPoolerReadyTransition(postgresCluster, poolerOldConditions) + + secret := &corev1.Secret{} + key := types.NamespacedName{Name: s.cluster.Status.Resources.SuperUserSecretRef.Name, Namespace: s.cluster.Namespace} + if err := s.client.Get(ctx, key, secret); err != nil { + if apierrors.IsNotFound(err) { + s.health.State = pgcConstants.Provisioning + s.health.Reason = reasonUserSecretPending + s.health.Message = msgSecretNotFoundYet + s.health.Phase = provisioningClusterPhase + s.health.Result = ctrl.Result{RequeueAfter: retryDelay} + return s.health, nil } + s.health.State = pgcConstants.Failed + s.health.Reason = reasonUserSecretFailed + s.health.Message = fmt.Sprintf("Failed to fetch superuser secret: %v", err) + s.health.Phase = failedClusterPhase + s.health.Result = ctrl.Result{} + return s.health, err + } + + refKey := s.cluster.Status.Resources.SuperUserSecretRef.Key + if refKey == "" { + refKey = secretKeyPassword + } + if _, ok := secret.Data[refKey]; !ok { + s.health.State = pgcConstants.Failed + s.health.Reason = reasonSuperUserSecretFailed + s.health.Message = fmt.Sprintf(msgFmtSecretMissingKey, refKey) + s.health.Phase = failedClusterPhase + s.health.Result = ctrl.Result{} + return s.health, fmt.Errorf("secret missing key %s", refKey) + } + + s.health.State = pgcConstants.Ready + s.health.Reason = reasonSuperUserSecretReady + s.health.Message = msgSuperuserSecretReady + s.health.Phase = readyClusterPhase + s.health.Result = ctrl.Result{} + if !meta.IsStatusConditionTrue(s.cluster.Status.Conditions, string(secretsReady)) { + s.events.emitNormal(s.cluster, EventSecretReady, s.health.Message) + } + return s.health, nil +} + +func isIntermediateState(state pgcConstants.State) bool { + switch state { + case pgcConstants.Pending, + pgcConstants.Provisioning, + pgcConstants.Configuring: + return true + default: + return false } - logger.Info("Reconciliation complete") - return ctrl.Result{}, nil } // getMergedConfig overlays PostgresCluster spec on top of the class defaults. @@ -626,14 +1484,6 @@ func isPoolerReady(pooler *cnpgv1.Pooler) bool { return pooler.Status.Instances >= desired } -func poolerInstanceCount(p *cnpgv1.Pooler) (desired, scheduled int32) { - desired = 1 - if p.Spec.Instances != nil { - desired = *p.Spec.Instances - } - return desired, p.Status.Instances -} - // createOrUpdateConnectionPoolers creates RW and RO poolers if they don't exist. func createOrUpdateConnectionPoolers(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cfg *MergedConfig, cnpgCluster *cnpgv1.Cluster, poolerMetricsEnabled bool) error { if err := createConnectionPooler(ctx, c, scheme, cluster, cfg, cnpgCluster, readWriteEndpoint, poolerMetricsEnabled); err != nil { @@ -727,90 +1577,6 @@ func deleteConnectionPoolers(ctx context.Context, c client.Client, cluster *ente return nil } -// syncPoolerStatus populates ConnectionPoolerStatus and the PoolerReady condition. -func syncPoolerStatus(ctx context.Context, c client.Client, metrics ports.Recorder, cluster *enterprisev4.PostgresCluster) error { - rwPooler := &cnpgv1.Pooler{} - if err := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(cluster.Name, readWriteEndpoint), - Namespace: cluster.Namespace, - }, rwPooler); err != nil { - return err - } - - roPooler := &cnpgv1.Pooler{} - if err := c.Get(ctx, types.NamespacedName{ - Name: poolerResourceName(cluster.Name, readOnlyEndpoint), - Namespace: cluster.Namespace, - }, roPooler); err != nil { - return err - } - - cluster.Status.ConnectionPoolerStatus = &enterprisev4.ConnectionPoolerStatus{Enabled: true} - rwDesired, rwScheduled := poolerInstanceCount(rwPooler) - roDesired, roScheduled := poolerInstanceCount(roPooler) - - return setStatus(ctx, c, metrics, cluster, poolerReady, metav1.ConditionTrue, reasonAllInstancesReady, - fmt.Sprintf("%s: %d/%d, %s: %d/%d", readWriteEndpoint, rwScheduled, rwDesired, readOnlyEndpoint, roScheduled, roDesired), - readyClusterPhase) -} - -// syncStatus maps CNPG Cluster state to PostgresCluster status. -func syncStatus(ctx context.Context, c client.Client, metrics ports.Recorder, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster) error { - cluster.Status.ProvisionerRef = &corev1.ObjectReference{ - APIVersion: "postgresql.cnpg.io/v1", - Kind: "Cluster", - Namespace: cnpgCluster.Namespace, - Name: cnpgCluster.Name, - UID: cnpgCluster.UID, - } - - var phase reconcileClusterPhases - var condStatus metav1.ConditionStatus - var reason conditionReasons - var message string - - switch cnpgCluster.Status.Phase { - case cnpgv1.PhaseHealthy: - phase, condStatus, reason, message = readyClusterPhase, metav1.ConditionTrue, reasonCNPGClusterHealthy, "Cluster is up and running" - case cnpgv1.PhaseFirstPrimary, cnpgv1.PhaseCreatingReplica, cnpgv1.PhaseWaitingForInstancesToBeActive: - phase, condStatus, reason = provisioningClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioning - message = fmt.Sprintf("CNPG cluster provisioning: %s", cnpgCluster.Status.Phase) - case cnpgv1.PhaseSwitchover: - phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGSwitchover, "Cluster changing primary node" - case cnpgv1.PhaseFailOver: - phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGFailingOver, "Pod missing, need to change primary" - case cnpgv1.PhaseInplacePrimaryRestart, cnpgv1.PhaseInplaceDeletePrimaryRestart: - phase, condStatus, reason = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGRestarting - message = fmt.Sprintf("CNPG cluster restarting: %s", cnpgCluster.Status.Phase) - case cnpgv1.PhaseUpgrade, cnpgv1.PhaseMajorUpgrade, cnpgv1.PhaseUpgradeDelayed, cnpgv1.PhaseOnlineUpgrading: - phase, condStatus, reason = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGUpgrading - message = fmt.Sprintf("CNPG cluster upgrading: %s", cnpgCluster.Status.Phase) - case cnpgv1.PhaseApplyingConfiguration: - phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGApplyingConfig, "Configuration change is being applied" - case cnpgv1.PhaseReplicaClusterPromotion: - phase, condStatus, reason, message = configuringClusterPhase, metav1.ConditionFalse, reasonCNPGPromoting, "Replica is being promoted to primary" - case cnpgv1.PhaseWaitingForUser: - phase, condStatus, reason, message = failedClusterPhase, metav1.ConditionFalse, reasonCNPGWaitingForUser, "Action from the user is required" - case cnpgv1.PhaseUnrecoverable: - phase, condStatus, reason, message = failedClusterPhase, metav1.ConditionFalse, reasonCNPGUnrecoverable, "Cluster failed, needs manual intervention" - case cnpgv1.PhaseCannotCreateClusterObjects: - phase, condStatus, reason, message = failedClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioningFailed, "Cluster resources cannot be created" - case cnpgv1.PhaseUnknownPlugin, cnpgv1.PhaseFailurePlugin: - phase, condStatus, reason = failedClusterPhase, metav1.ConditionFalse, reasonCNPGPluginError - message = fmt.Sprintf("CNPG plugin error: %s", cnpgCluster.Status.Phase) - case cnpgv1.PhaseImageCatalogError, cnpgv1.PhaseArchitectureBinaryMissing: - phase, condStatus, reason = failedClusterPhase, metav1.ConditionFalse, reasonCNPGImageError - message = fmt.Sprintf("CNPG image error: %s", cnpgCluster.Status.Phase) - case "": - phase, condStatus, reason, message = pendingClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioning, "CNPG cluster is pending creation" - default: - phase, condStatus, reason = provisioningClusterPhase, metav1.ConditionFalse, reasonCNPGProvisioning - message = fmt.Sprintf("CNPG cluster phase: %s", cnpgCluster.Status.Phase) - } - - return setStatus(ctx, c, metrics, cluster, clusterReady, condStatus, reason, message, phase) -} - // setStatus sets the phase, condition and persists the status. // It skips the API write when the resulting status is identical to the current // state, avoiding unnecessary etcd churn and ResourceVersion bumps on stable clusters. @@ -831,7 +1597,9 @@ func setStatus(ctx context.Context, c client.Client, metrics ports.Recorder, clu return nil } - metrics.IncStatusTransition(ports.ControllerCluster, string(condType), string(status), string(reason)) + if metrics != nil { + metrics.IncStatusTransition(ports.ControllerCluster, string(condType), string(status), string(reason)) + } if err := c.Status().Update(ctx, cluster); err != nil { return fmt.Errorf("failed to update PostgresCluster status: %w", err) @@ -839,6 +1607,27 @@ func setStatus(ctx context.Context, c client.Client, metrics ports.Recorder, clu return nil } +func setStatusFromHealth(ctx context.Context, c client.Client, metrics ports.Recorder, cluster *enterprisev4.PostgresCluster, health componentHealth) error { + conditionStatus := metav1.ConditionFalse + if health.State == pgcConstants.Ready { + conditionStatus = metav1.ConditionTrue + } + return setStatus(ctx, c, metrics, cluster, health.Condition, conditionStatus, health.Reason, health.Message, health.Phase) +} + +func setPhaseStatus(ctx context.Context, c client.Client, cluster *enterprisev4.PostgresCluster, phase reconcileClusterPhases) error { + before := cluster.Status.DeepCopy() + p := string(phase) + cluster.Status.Phase = &p + if equality.Semantic.DeepEqual(*before, cluster.Status) { + return nil + } + if err := c.Status().Update(ctx, cluster); err != nil { + return fmt.Errorf("failed to update PostgresCluster status phase: %w", err) + } + return nil +} + // generateConfigMap builds a ConfigMap with connection details for the PostgresCluster. func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Scheme, cluster *enterprisev4.PostgresCluster, cnpgCluster *cnpgv1.Cluster, secretName string) (*corev1.ConfigMap, error) { cmName := fmt.Sprintf("%s%s", cluster.Name, defaultConfigMapSuffix) @@ -847,12 +1636,12 @@ func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Sch } data := map[string]string{ - "CLUSTER_RW_ENDPOINT": fmt.Sprintf("%s-rw.%s", cnpgCluster.Name, cnpgCluster.Namespace), - "CLUSTER_RO_ENDPOINT": fmt.Sprintf("%s-ro.%s", cnpgCluster.Name, cnpgCluster.Namespace), - "CLUSTER_R_ENDPOINT": fmt.Sprintf("%s-r.%s", cnpgCluster.Name, cnpgCluster.Namespace), - "DEFAULT_CLUSTER_PORT": defaultPort, - "SUPER_USER_NAME": superUsername, - "SUPER_USER_SECRET_REF": secretName, + configKeyClusterRWEndpoint: fmt.Sprintf("%s-rw.%s", cnpgCluster.Name, cnpgCluster.Namespace), + configKeyClusterROEndpoint: fmt.Sprintf("%s-ro.%s", cnpgCluster.Name, cnpgCluster.Namespace), + configKeyClusterREndpoint: fmt.Sprintf("%s-r.%s", cnpgCluster.Name, cnpgCluster.Namespace), + configKeyDefaultClusterPort: defaultPort, + configKeySuperUserName: superUsername, + configKeySuperUserSecretRef: secretName, } rwExists, err := poolerExists(ctx, c, cluster, readWriteEndpoint) if err != nil { @@ -863,8 +1652,8 @@ func generateConfigMap(ctx context.Context, c client.Client, scheme *runtime.Sch return nil, fmt.Errorf("failed to check RO pooler existence: %w", err) } if rwExists && roExists { - data["CLUSTER_POOLER_RW_ENDPOINT"] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readWriteEndpoint), cnpgCluster.Namespace) - data["CLUSTER_POOLER_RO_ENDPOINT"] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readOnlyEndpoint), cnpgCluster.Namespace) + data[configKeyPoolerRWEndpoint] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readWriteEndpoint), cnpgCluster.Namespace) + data[configKeyPoolerROEndpoint] = fmt.Sprintf("%s.%s", poolerResourceName(cnpgCluster.Name, readOnlyEndpoint), cnpgCluster.Namespace) } cm := &corev1.ConfigMap{ @@ -1056,15 +1845,12 @@ func removeOwnerRef(scheme *runtime.Scheme, owner, obj client.Object) (bool, err // patchObject patches obj from original; treats NotFound as a no-op. func patchObject(ctx context.Context, c client.Client, original, obj client.Object, kind objectKind) error { - logger := log.FromContext(ctx) if err := c.Patch(ctx, obj, client.MergeFrom(original)); err != nil { if apierrors.IsNotFound(err) { - logger.Info("Object not found, skipping patch", "kind", kind, "name", obj.GetName()) return nil } return fmt.Errorf("patching %s: %w", kind, err) } - logger.Info("Object patched", "kind", kind, "name", obj.GetName()) return nil } diff --git a/pkg/postgresql/cluster/core/cluster_unit_test.go b/pkg/postgresql/cluster/core/cluster_unit_test.go index 72b30205b..85eeba7e2 100644 --- a/pkg/postgresql/cluster/core/cluster_unit_test.go +++ b/pkg/postgresql/cluster/core/cluster_unit_test.go @@ -6,18 +6,67 @@ import ( cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" enterprisev4 "github.com/splunk/splunk-operator/api/v4" + pgcConstants "github.com/splunk/splunk-operator/pkg/postgresql/cluster/core/types/constants" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/utils/ptr" client "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/fake" ) +type configMapNotFoundClient struct { + client.Client +} + +type noopEventEmitter struct{} + +func (noopEventEmitter) emitNormal(_ client.Object, _, _ string) {} +func (noopEventEmitter) emitWarning(_ client.Object, _, _ string) {} +func (noopEventEmitter) emitPoolerReadyTransition(_ client.Object, _ []metav1.Condition) {} +func (noopEventEmitter) emitPoolerCreationTransition(_ client.Object, _ []metav1.Condition) { +} + +type captureEventEmitter struct { + normals []string + warnings []string +} + +func (c *captureEventEmitter) emitNormal(_ client.Object, reason, message string) { + c.normals = append(c.normals, reason+":"+message) +} + +func (c *captureEventEmitter) emitWarning(_ client.Object, reason, message string) { + c.warnings = append(c.warnings, reason+":"+message) +} + +func (c *captureEventEmitter) emitPoolerReadyTransition(_ client.Object, conditions []metav1.Condition) { + if !meta.IsStatusConditionTrue(conditions, string(poolerReady)) { + c.normals = append(c.normals, EventPoolerReady+":Connection poolers are ready") + } +} + +func (c *captureEventEmitter) emitPoolerCreationTransition(_ client.Object, conditions []metav1.Condition) { + cond := meta.FindStatusCondition(conditions, string(poolerReady)) + if cond != nil && cond.Status == metav1.ConditionFalse && cond.Reason == string(reasonPoolerCreating) { + return + } + c.normals = append(c.normals, EventPoolerCreationStarted+":Connection poolers created, waiting for readiness") +} + +func (c configMapNotFoundClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error { + if _, ok := obj.(*corev1.ConfigMap); ok { + return apierrors.NewNotFound(schema.GroupResource{Resource: "configmaps"}, key.Name) + } + return c.Client.Get(ctx, key, obj, opts...) +} + func TestPoolerResourceName(t *testing.T) { tests := []struct { name string @@ -94,6 +143,46 @@ func TestIsPoolerReady(t *testing.T) { } } +func TestPoolerInstanceCountManual(t *testing.T) { + tests := []struct { + name string + pooler *cnpgv1.Pooler + expectedDesired int32 + expectedScheduled int32 + }{ + { + name: "nil instances defaults desired to 1", + pooler: &cnpgv1.Pooler{ + Status: cnpgv1.PoolerStatus{Instances: 3}, + }, + expectedDesired: 1, + expectedScheduled: 3, + }, + { + name: "explicit instances uses spec value", + pooler: &cnpgv1.Pooler{ + Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(5))}, + Status: cnpgv1.PoolerStatus{Instances: 2}, + }, + expectedDesired: 5, + expectedScheduled: 2, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + desired := int32(1) + if tt.pooler.Spec.Instances != nil { + desired = *tt.pooler.Spec.Instances + } + scheduled := tt.pooler.Status.Instances + + assert.Equal(t, tt.expectedDesired, desired) + assert.Equal(t, tt.expectedScheduled, scheduled) + }) + } +} + func TestNormalizeCNPGClusterSpec(t *testing.T) { tests := []struct { name string @@ -1044,42 +1133,6 @@ func TestGenerateConfigMap(t *testing.T) { }) } -func TestPoolerInstanceCount(t *testing.T) { - tests := []struct { - name string - pooler *cnpgv1.Pooler - expectedDesired int32 - expectedScheduled int32 - }{ - { - name: "nil instances defaults desired to 1", - pooler: &cnpgv1.Pooler{ - Status: cnpgv1.PoolerStatus{Instances: 3}, - }, - expectedDesired: 1, - expectedScheduled: 3, - }, - { - name: "explicit instances returns spec value", - pooler: &cnpgv1.Pooler{ - Spec: cnpgv1.PoolerSpec{Instances: ptr.To(int32(5))}, - Status: cnpgv1.PoolerStatus{Instances: 2}, - }, - expectedDesired: 5, - expectedScheduled: 2, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - desired, scheduled := poolerInstanceCount(tt.pooler) - - assert.Equal(t, tt.expectedDesired, desired) - assert.Equal(t, tt.expectedScheduled, scheduled) - }) - } -} - func TestGeneratePassword(t *testing.T) { pw, err := generatePassword() @@ -1206,3 +1259,774 @@ func TestCreateOrUpdateConnectionPoolers(t *testing.T) { assert.Equal(t, poolerMetricsPortString, ro.Spec.Template.ObjectMeta.Annotations[prometheusPortAnnotation]) }) } + +func TestComponentStateTriggerConditions(t *testing.T) { + t.Parallel() + + ctx := t.Context() + scheme := runtime.NewScheme() + require.NoError(t, corev1.AddToScheme(scheme)) + require.NoError(t, enterprisev4.AddToScheme(scheme)) + require.NoError(t, cnpgv1.AddToScheme(scheme)) + + exampleClusterClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-class", + Namespace: "default", + }, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + Status: enterprisev4.PostgresClusterClassStatus{ + Phase: ptr.To(string(enterprisev4.PhaseReady)), + }, + } + + exampleCm := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-config", + Namespace: "default", + }, + Data: map[string]string{ + "CLUSTER_RW_ENDPOINT": "pg1-rw.default", + "CLUSTER_RO_ENDPOINT": "pg1-ro.default", + "DEFAULT_CLUSTER_PORT": "5432", + "SUPER_USER_SECRET_REF": "pg1-secret", + }, + } + examplePgCluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1", + Namespace: "default", + }, + Status: enterprisev4.PostgresClusterStatus{ + Resources: &enterprisev4.PostgresClusterResources{ + ConfigMapRef: &corev1.LocalObjectReference{Name: "pg1-config"}, + SuperUserSecretRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: "pg1-secret"}, + Key: "password", + }, + }, + }, + } + exampleSecret := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-secret", + Namespace: "default", + }, + Data: map[string][]byte{ + "password": []byte("s3cr3t"), + }, + } + + instances := int32(1) + version := "16" + storageSize := resource.MustParse("10Gi") + mergedConfig := &MergedConfig{ + Spec: &enterprisev4.PostgresClusterSpec{ + Instances: &instances, + PostgresVersion: &version, + Storage: &storageSize, + Resources: &corev1.ResourceRequirements{}, + PostgreSQLConfig: map[string]string{}, + PgHBA: []string{}, + }, + } + + makeReadyProvisioner := func(cluster *enterprisev4.PostgresCluster) *clusterModel { + cnpg := &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: cluster.Name, + Namespace: cluster.Namespace, + }, + Spec: buildCNPGClusterSpec(mergedConfig, "pg1-secret", false), + Status: cnpgv1.ClusterStatus{ + Phase: cnpgv1.PhaseHealthy, + }, + } + c := fake.NewClientBuilder().WithScheme(scheme).WithObjects(cnpg).Build() + return newClusterModel(c, scheme, noopEventEmitter{}, nil, cluster, exampleClusterClass, mergedConfig, "pg1-secret") + } + + makeRuntimeView := func(healthy bool) clusterRuntimeView { + if !healthy { + return clusterRuntimeViewAdapter{model: &clusterModel{}} + } + return clusterRuntimeViewAdapter{model: &clusterModel{ + cnpgCluster: &cnpgv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{Name: "pg1", Namespace: "default"}, + Status: cnpgv1.ClusterStatus{Phase: cnpgv1.PhaseHealthy}, + }, + }} + } + + // TODO: as soon as coupling is addressed, remove this monster of a test. + combinations := []struct { + name string + components []component + conditions []conditionTypes + requeue []bool + expectAll bool + message string + }{ + { + name: "Provisioner ready, pooler blocked by prerequisites", + components: func() []component { + cluster := examplePgCluster.DeepCopy() + provisioner := makeReadyProvisioner(cluster) + pooler := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + exampleClusterClass, + mergedConfig, + nil, + true, + true, + ) + return []component{provisioner, pooler} + }(), + conditions: []conditionTypes{clusterReady, poolerReady}, + requeue: []bool{false, true}, + expectAll: false, + message: "Provisioner ready but pooler gate is blocked until CNPG is healthy", + }, + { + name: "Provisioner ready, pooler ready, configMap pending from NotFound", + components: func() []component { + cluster := examplePgCluster.DeepCopy() + provisioner := makeReadyProvisioner(cluster) + pooler := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + exampleClusterClass, + mergedConfig, + nil, + false, + false, + ) + configMap := newConfigMapModel( + configMapNotFoundClient{ + Client: fake.NewClientBuilder(). + WithScheme(scheme). + Build(), + }, + scheme, + noopEventEmitter{}, + nil, + makeRuntimeView(true), + cluster, + "pg1-secret", + ) + return []component{provisioner, pooler, configMap} + }(), + conditions: []conditionTypes{clusterReady, poolerReady, configMapsReady}, + requeue: []bool{false, false, true}, + expectAll: false, + message: "Provisioner and pooler ready are not enough when ConfigMap check returns NotFound/pending", + }, + { + name: "Flow successful, all components ready", + components: func() []component { + cluster := examplePgCluster.DeepCopy() + provisioner := makeReadyProvisioner(cluster) + pooler := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + exampleClusterClass, + mergedConfig, + nil, + false, + false, + ) + configMap := newConfigMapModel( + fake.NewClientBuilder(). + WithScheme(scheme). + WithObjects(exampleCm). + Build(), + scheme, + noopEventEmitter{}, + nil, + makeRuntimeView(true), + cluster, + "pg1-secret", + ) + secret := newSecretModel( + fake.NewClientBuilder(). + WithScheme(scheme). + WithObjects(exampleSecret). + Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + "pg1-secret", + ) + return []component{provisioner, pooler, configMap, secret} + }(), + conditions: []conditionTypes{clusterReady, poolerReady, configMapsReady, secretsReady}, + requeue: []bool{false, false, false, false}, + expectAll: true, + message: "", + }, + } + + for _, tt := range combinations { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + state := pgcConstants.Empty + for i, check := range tt.components { + gate, gateErr := check.EvaluatePrerequisites(ctx) + require.NoError(t, gateErr) + if !gate.Allowed { + info := gate.Health + state = info.State + assert.Equal(t, tt.conditions[i], info.Condition) + assert.Equal(t, tt.requeue[i], info.Result.RequeueAfter > 0) + continue + } + + require.NoError(t, check.Actuate(ctx)) + info, err := check.Converge(ctx) + require.NoError(t, err) + state = info.State + assert.Equal(t, tt.conditions[i], info.Condition) + assert.Equal(t, tt.requeue[i], info.Result.RequeueAfter > 0) + } + assert.Equal(t, tt.expectAll, state&pgcConstants.Ready == pgcConstants.Ready, + tt.message) + }) + } +} + +func TestSyncManagedRolesStatusFromCNPG(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + specRoles []enterprisev4.ManagedRole + cnpgStatus cnpgv1.ManagedRoles + reconciled []string + pending []string + failed map[string]string + }{ + { + name: "marks unreconciled desired role as pending", + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + cnpgStatus: cnpgv1.ManagedRoles{}, + reconciled: nil, + pending: []string{"app_user"}, + failed: nil, + }, + { + name: "maps reconciled and pending roles from CNPG status", + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + {Name: "app_rw", Exists: true}, + }, + cnpgStatus: cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"app_user"}, + cnpgv1.RoleStatusPendingReconciliation: {"app_rw"}, + }, + }, + reconciled: []string{"app_user"}, + pending: []string{"app_rw"}, + failed: nil, + }, + { + name: "maps cannot reconcile errors as failed", + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + cnpgStatus: cnpgv1.ManagedRoles{ + CannotReconcile: map[string][]string{ + "app_user": {"reserved role"}, + }, + }, + reconciled: nil, + pending: nil, + failed: map[string]string{ + "app_user": "reserved role", + }, + }, + } + + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ManagedRoles: tt.specRoles, + }, + } + cnpgCluster := &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + ManagedRolesStatus: tt.cnpgStatus, + }, + } + + syncManagedRolesStatusFromCNPG(cluster, cnpgCluster) + + require.NotNil(t, cluster.Status.ManagedRolesStatus) + assert.Equal(t, tt.reconciled, cluster.Status.ManagedRolesStatus.Reconciled) + assert.Equal(t, tt.pending, cluster.Status.ManagedRolesStatus.Pending) + assert.Equal(t, tt.failed, cluster.Status.ManagedRolesStatus.Failed) + }) + } +} + +func TestManagedRolesModelConverge(t *testing.T) { + t.Parallel() + + makeRuntimeView := func(phase string, managedRoles cnpgv1.ManagedRoles) clusterRuntimeView { + return clusterRuntimeViewAdapter{model: &clusterModel{ + cnpgCluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + Phase: phase, + ManagedRolesStatus: managedRoles, + }, + }, + }} + } + + tests := []struct { + name string + runtimeView clusterRuntimeView + specRoles []enterprisev4.ManagedRole + expectedState pgcConstants.State + expectedReason conditionReasons + expectErr bool + expectStatusPublished bool + expectPending []string + expectFailed map[string]string + }{ + { + name: "returns pending when runtime is not healthy", + runtimeView: makeRuntimeView(cnpgv1.PhaseFirstPrimary, cnpgv1.ManagedRoles{}), + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + expectedState: pgcConstants.Pending, + expectedReason: reasonManagedRolesPending, + expectErr: false, + expectStatusPublished: false, + }, + { + name: "returns pending when role is still pending reconciliation", + runtimeView: makeRuntimeView(cnpgv1.PhaseHealthy, cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusPendingReconciliation: {"app_user"}, + }, + }), + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + expectedState: pgcConstants.Pending, + expectedReason: reasonManagedRolesPending, + expectErr: false, + expectStatusPublished: true, + expectPending: []string{"app_user"}, + }, + { + name: "returns failed when role cannot reconcile", + runtimeView: makeRuntimeView(cnpgv1.PhaseHealthy, cnpgv1.ManagedRoles{ + CannotReconcile: map[string][]string{ + "app_user": {"reserved role"}, + }, + }), + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + expectedState: pgcConstants.Failed, + expectedReason: reasonManagedRolesFailed, + expectErr: true, + expectStatusPublished: true, + expectFailed: map[string]string{ + "app_user": "reserved role", + }, + }, + { + name: "returns ready when all desired roles are reconciled", + runtimeView: makeRuntimeView(cnpgv1.PhaseHealthy, cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"app_user", "app_user_rw"}, + }, + }), + specRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + {Name: "app_user_rw", Exists: true}, + }, + expectedState: pgcConstants.Ready, + expectedReason: reasonManagedRolesReady, + expectErr: false, + expectStatusPublished: true, + }, + } + + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ManagedRoles: tt.specRoles, + }, + } + model := newManagedRolesModel( + fake.NewClientBuilder().Build(), + nil, + noopEventEmitter{}, + nil, + tt.runtimeView, + cluster, + "pg1-secret", + ) + + health, err := model.Converge(context.Background()) + if tt.expectErr { + require.Error(t, err) + } else { + require.NoError(t, err) + } + + assert.Equal(t, managedRolesReady, health.Condition) + assert.Equal(t, tt.expectedState, health.State) + assert.Equal(t, tt.expectedReason, health.Reason) + if tt.expectStatusPublished { + require.NotNil(t, cluster.Status.ManagedRolesStatus) + assert.Equal(t, tt.expectPending, cluster.Status.ManagedRolesStatus.Pending) + assert.Equal(t, tt.expectFailed, cluster.Status.ManagedRolesStatus.Failed) + } else { + assert.Nil(t, cluster.Status.ManagedRolesStatus) + } + }) + } +} + +func TestManagedRolesRuntimeGateHealthMatchesConverge(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ManagedRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + }, + } + model := newManagedRolesModel( + fake.NewClientBuilder().Build(), + nil, + noopEventEmitter{}, + nil, + clusterRuntimeViewAdapter{model: &clusterModel{ + cnpgCluster: &cnpgv1.Cluster{Status: cnpgv1.ClusterStatus{Phase: cnpgv1.PhaseFirstPrimary}}, + }}, + cluster, + "pg1-secret", + ) + + gate, err := model.EvaluatePrerequisites(context.Background()) + require.NoError(t, err) + require.False(t, gate.Allowed) + + health, err := model.Converge(context.Background()) + require.NoError(t, err) + assert.Equal(t, gate.Health, health) +} + +func TestPoolerModelConvergeSetsConnectionPoolerStatus(t *testing.T) { + t.Parallel() + + scheme := runtime.NewScheme() + require.NoError(t, enterprisev4.AddToScheme(scheme)) + require.NoError(t, cnpgv1.AddToScheme(scheme)) + require.NoError(t, corev1.AddToScheme(scheme)) + + t.Run("does not set enabled true while pooler is pending", func(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: "pg1", Namespace: "default"}, + } + clusterClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-class", + Namespace: "default", + }, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + } + model := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + clusterClass, + &MergedConfig{}, + nil, + true, + true, + ) + + health, err := model.Converge(context.Background()) + require.NoError(t, err) + assert.Nil(t, cluster.Status.ConnectionPoolerStatus) + assert.Equal(t, pgcConstants.Pending, health.State) + }) + + t.Run("sets enabled true when pooler converges ready", func(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: "pg1", Namespace: "default"}, + } + clusterClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-class", + Namespace: "default", + }, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + } + rwPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: poolerResourceName(cluster.Name, readWriteEndpoint), + Namespace: cluster.Namespace, + }, + Status: cnpgv1.PoolerStatus{Instances: 1}, + } + roPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: poolerResourceName(cluster.Name, readOnlyEndpoint), + Namespace: cluster.Namespace, + }, + Status: cnpgv1.PoolerStatus{Instances: 1}, + } + model := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).WithObjects(rwPooler, roPooler).Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + clusterClass, + &MergedConfig{}, + &cnpgv1.Cluster{Status: cnpgv1.ClusterStatus{Phase: cnpgv1.PhaseHealthy}}, + true, + true, + ) + + health, err := model.Converge(context.Background()) + require.NoError(t, err) + assert.Equal(t, &enterprisev4.ConnectionPoolerStatus{Enabled: true}, cluster.Status.ConnectionPoolerStatus) + assert.Equal(t, pgcConstants.Ready, health.State) + }) + + t.Run("sets status nil when pooler disabled", func(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: "pg1", Namespace: "default"}, + Status: enterprisev4.PostgresClusterStatus{ + ConnectionPoolerStatus: &enterprisev4.ConnectionPoolerStatus{Enabled: true}, + }, + } + clusterClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-class", + Namespace: "default", + }, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + } + model := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).Build(), + scheme, + noopEventEmitter{}, + nil, + cluster, + clusterClass, + &MergedConfig{}, + nil, + false, + false, + ) + + require.NoError(t, model.Actuate(context.Background())) + health, err := model.Converge(context.Background()) + require.NoError(t, err) + assert.Nil(t, cluster.Status.ConnectionPoolerStatus) + assert.Equal(t, pgcConstants.Ready, health.State) + }) +} + +func TestPoolerConvergeEmitsReadyEventOnTransition(t *testing.T) { + t.Parallel() + + scheme := runtime.NewScheme() + require.NoError(t, enterprisev4.AddToScheme(scheme)) + require.NoError(t, cnpgv1.AddToScheme(scheme)) + require.NoError(t, corev1.AddToScheme(scheme)) + + cluster := &enterprisev4.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{Name: "pg1", Namespace: "default"}, + } + clusterClass := &enterprisev4.PostgresClusterClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pg1-class", + Namespace: "default", + }, + Spec: enterprisev4.PostgresClusterClassSpec{ + Config: &enterprisev4.PostgresClusterClassConfig{ + ConnectionPoolerEnabled: ptr.To(true), + }, + }, + } + events := &captureEventEmitter{} + rwPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: poolerResourceName(cluster.Name, readWriteEndpoint), + Namespace: cluster.Namespace, + }, + Status: cnpgv1.PoolerStatus{Instances: 1}, + } + roPooler := &cnpgv1.Pooler{ + ObjectMeta: metav1.ObjectMeta{ + Name: poolerResourceName(cluster.Name, readOnlyEndpoint), + Namespace: cluster.Namespace, + }, + Status: cnpgv1.PoolerStatus{Instances: 1}, + } + model := newPoolerModel( + fake.NewClientBuilder().WithScheme(scheme).WithObjects(rwPooler, roPooler).Build(), + scheme, + events, + nil, + cluster, + clusterClass, + &MergedConfig{}, + &cnpgv1.Cluster{Status: cnpgv1.ClusterStatus{Phase: cnpgv1.PhaseHealthy}}, + true, + true, + ) + + _, err := model.Converge(context.Background()) + require.NoError(t, err) + require.NotEmpty(t, events.normals) + assert.Contains(t, events.normals[0], EventPoolerReady) + + // No re-emission when condition already True. + cluster.Status.Conditions = []metav1.Condition{{ + Type: string(poolerReady), + Status: metav1.ConditionTrue, + }} + events.normals = nil + _, err = model.Converge(context.Background()) + require.NoError(t, err) + assert.Empty(t, events.normals) +} + +func TestManagedRolesConvergeDoesNotEmitFailureForPending(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ManagedRoles: []enterprisev4.ManagedRole{{Name: "app_user", Exists: true}}, + }, + } + events := &captureEventEmitter{} + model := newManagedRolesModel( + fake.NewClientBuilder().Build(), + nil, + events, + nil, + clusterRuntimeViewAdapter{model: &clusterModel{ + cnpgCluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + Phase: cnpgv1.PhaseHealthy, + ManagedRolesStatus: cnpgv1.ManagedRoles{}, + }, + }, + }}, + cluster, + "pg1-secret", + ) + + _, err := model.Converge(context.Background()) + require.NoError(t, err) + assert.Empty(t, events.warnings) +} + +func TestManagedRolesConvergeEmitsReadyEventOnTransition(t *testing.T) { + t.Parallel() + + cluster := &enterprisev4.PostgresCluster{ + Spec: enterprisev4.PostgresClusterSpec{ + ManagedRoles: []enterprisev4.ManagedRole{ + {Name: "app_user", Exists: true}, + }, + }, + } + events := &captureEventEmitter{} + model := newManagedRolesModel( + fake.NewClientBuilder().Build(), + nil, + events, + nil, + clusterRuntimeViewAdapter{model: &clusterModel{ + cnpgCluster: &cnpgv1.Cluster{ + Status: cnpgv1.ClusterStatus{ + Phase: cnpgv1.PhaseHealthy, + ManagedRolesStatus: cnpgv1.ManagedRoles{ + ByStatus: map[cnpgv1.RoleStatus][]string{ + cnpgv1.RoleStatusReconciled: {"app_user"}, + }, + }, + }, + }, + }}, + cluster, + "pg1-secret", + ) + + _, err := model.Converge(context.Background()) + require.NoError(t, err) + require.NotEmpty(t, events.normals) + assert.Contains(t, events.normals[0], EventManagedRolesReady) + + // No re-emission when condition already True. + cluster.Status.Conditions = []metav1.Condition{{ + Type: string(managedRolesReady), + Status: metav1.ConditionTrue, + }} + events.normals = nil + _, err = model.Converge(context.Background()) + require.NoError(t, err) + assert.Empty(t, events.normals) +} diff --git a/pkg/postgresql/cluster/core/events.go b/pkg/postgresql/cluster/core/events.go index afcfd768e..551ce9147 100644 --- a/pkg/postgresql/cluster/core/events.go +++ b/pkg/postgresql/cluster/core/events.go @@ -25,6 +25,7 @@ const ( EventClusterCreateFailed = "ClusterCreateFailed" EventClusterUpdateFailed = "ClusterUpdateFailed" EventManagedRolesFailed = "ManagedRolesFailed" + EventManagedRolesReady = "ManagedRolesReady" EventPoolerReconcileFailed = "PoolerReconcileFailed" EventConfigMapReconcileFailed = "ConfigMapReconcileFailed" EventClusterDegraded = "ClusterDegraded" @@ -60,3 +61,13 @@ func (rc *ReconcileContext) emitPoolerReadyTransition(obj client.Object, conditi rc.emitNormal(obj, EventPoolerReady, "Connection poolers are ready") } } + +// emitPoolerCreationTransition emits PoolerCreationStarted only when the +// pooler condition is not already in the creating state. +func (rc *ReconcileContext) emitPoolerCreationTransition(obj client.Object, conditions []metav1.Condition) { + cond := meta.FindStatusCondition(conditions, string(poolerReady)) + if cond != nil && cond.Status == metav1.ConditionFalse && cond.Reason == string(reasonPoolerCreating) { + return + } + rc.emitNormal(obj, EventPoolerCreationStarted, "Connection poolers created, waiting for readiness") +} diff --git a/pkg/postgresql/cluster/core/types.go b/pkg/postgresql/cluster/core/types.go index 7684e6df0..b0f0ed0d7 100644 --- a/pkg/postgresql/cluster/core/types.go +++ b/pkg/postgresql/cluster/core/types.go @@ -45,6 +45,7 @@ type MergedConfig struct { type reconcileClusterPhases string type conditionTypes string type conditionReasons string +type statusMessage = string type objectKind string const ( @@ -53,9 +54,17 @@ const ( readOnlyEndpoint string = "ro" readWriteEndpoint string = "rw" - defaultDatabaseName string = "postgres" - superUsername string = "postgres" - defaultPort string = "5432" + defaultDatabaseName string = "postgres" + superUsername string = "postgres" + defaultPort string = "5432" + configKeyClusterRWEndpoint string = "CLUSTER_RW_ENDPOINT" + configKeyClusterROEndpoint string = "CLUSTER_RO_ENDPOINT" + configKeyClusterREndpoint string = "CLUSTER_R_ENDPOINT" + configKeyDefaultClusterPort string = "DEFAULT_CLUSTER_PORT" + configKeySuperUserName string = "SUPER_USER_NAME" + configKeySuperUserSecretRef string = "SUPER_USER_SECRET_REF" + configKeyPoolerRWEndpoint string = "CLUSTER_POOLER_RW_ENDPOINT" + configKeyPoolerROEndpoint string = "CLUSTER_POOLER_RO_ENDPOINT" secretKeyPassword string = "password" defaultSecretSuffix string = "-secret" @@ -77,21 +86,33 @@ const ( failedClusterPhase reconcileClusterPhases = "Failed" // condition types - clusterReady conditionTypes = "ClusterReady" - poolerReady conditionTypes = "PoolerReady" - - // condition reasons — clusterReady - reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" - reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" - reasonClusterBuildFailed conditionReasons = "ClusterBuildFailed" - reasonClusterBuildSucceeded conditionReasons = "ClusterBuildSucceeded" - reasonClusterGetFailed conditionReasons = "ClusterGetFailed" - reasonClusterPatchFailed conditionReasons = "ClusterPatchFailed" - reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" - reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" + clusterReady conditionTypes = "ClusterReady" + poolerReady conditionTypes = "PoolerReady" + managedRolesReady conditionTypes = "ManagedRolesReady" + secretsReady conditionTypes = "SecretsReady" + configMapsReady conditionTypes = "ConfigMapsReady" + + // condition reasons — cluster/provisioner + reasonClusterClassNotFound conditionReasons = "ClusterClassNotFound" + reasonInvalidConfiguration conditionReasons = "InvalidConfiguration" + + // condition reasons — managedRolesReady + reasonManagedRolesReady conditionReasons = "ManagedRolesReconciled" + reasonManagedRolesPending conditionReasons = "ManagedRolesPending" + reasonManagedRolesFailed conditionReasons = "ManagedRolesReconciliationFailed" + + // condition reasons — configMapsReady + reasonConfigMapReady conditionReasons = "ConfigMapReconciled" + reasonConfigMapFailed conditionReasons = "ConfigMapReconciliationFailed" + + // condition reasons — secretsReady + reasonUserSecretPending conditionReasons = "UserSecretPending" reasonUserSecretFailed conditionReasons = "UserSecretReconciliationFailed" + reasonSuperUserSecretReady conditionReasons = "SuperUserSecretReady" reasonSuperUserSecretFailed conditionReasons = "SuperUserSecretFailed" - reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" + + // condition reasons — lifecycle/finalizer + reasonClusterDeleteFailed conditionReasons = "ClusterDeleteFailed" // condition reasons — poolerReady reasonPoolerReconciliationFailed conditionReasons = "PoolerReconciliationFailed" @@ -114,4 +135,38 @@ const ( reasonCNPGProvisioningFailed conditionReasons = "CNPGProvisioningFailed" reasonCNPGPluginError conditionReasons = "CNPGPluginError" reasonCNPGImageError conditionReasons = "CNPGImageError" + + // status messages — provisioner health check + msgProvisionerHealthy statusMessage = "Provisioner cluster is healthy" + msgCNPGPendingCreation statusMessage = "CNPG cluster is pending creation" + msgFmtCNPGProvisioning statusMessage = "CNPG cluster provisioning: %s" + msgCNPGSwitchover statusMessage = "Cluster changing primary node" + msgCNPGFailingOver statusMessage = "Pod missing, need to change primary" + msgFmtCNPGRestarting statusMessage = "CNPG cluster restarting: %s" + msgFmtCNPGUpgrading statusMessage = "CNPG cluster upgrading: %s" + msgCNPGApplyingConfiguration statusMessage = "Configuration change is being applied" + msgCNPGPromoting statusMessage = "Replica is being promoted to primary" + msgCNPGWaitingForUser statusMessage = "Action from the user is required" + msgCNPGUnrecoverable statusMessage = "Cluster failed, needs manual intervention" + msgCNPGCannotCreateObjects statusMessage = "Cluster resources cannot be created" + msgFmtCNPGPluginError statusMessage = "CNPG plugin error: %s" + msgFmtCNPGImageError statusMessage = "CNPG image error: %s" + msgFmtCNPGClusterPhase statusMessage = "CNPG cluster phase: %s" + + // status messages — aggregate and component readiness checks + msgPoolerDisabled statusMessage = "Connection pooler disabled" + msgPoolerConfigMissing statusMessage = "Connection pooler enabled but configuration is missing" + msgPoolersProvisioning statusMessage = "Connection poolers are being provisioned" + msgWaitRWPoolerObject statusMessage = "Waiting for RW pooler object" + msgWaitROPoolerObject statusMessage = "Waiting for RO pooler object" + msgPoolersNotReady statusMessage = "Connection poolers are not ready yet" + msgPoolersReady statusMessage = "Connection poolers are ready" + msgConfigMapRefNotPublished statusMessage = "ConfigMap reference not published yet" + msgConfigMapNotFoundYet statusMessage = "ConfigMap not found yet" + msgFmtConfigMapMissingRequiredKey statusMessage = "ConfigMap missing required key %q" + msgAccessConfigMapReady statusMessage = "Access ConfigMap is ready" + msgSecretRefNotPublished statusMessage = "Superuser secret reference not published yet" + msgSecretNotFoundYet statusMessage = "Superuser secret not found yet" + msgFmtSecretMissingKey statusMessage = "Superuser secret missing key %q" + msgSuperuserSecretReady statusMessage = "Superuser secret is ready" ) diff --git a/pkg/postgresql/cluster/core/types/constants/components.go b/pkg/postgresql/cluster/core/types/constants/components.go new file mode 100644 index 000000000..f6dcdfb7b --- /dev/null +++ b/pkg/postgresql/cluster/core/types/constants/components.go @@ -0,0 +1,9 @@ +package pgcConstants + +const ( + ComponentManagedRoles = "managedRoles" + ComponentProvisioner = "provisioner" + ComponentPooler = "pooler" + ComponentConfigMap = "configMap" + ComponentSecret = "secret" +) diff --git a/pkg/postgresql/cluster/core/types/constants/state.go b/pkg/postgresql/cluster/core/types/constants/state.go new file mode 100644 index 000000000..7f4da47e9 --- /dev/null +++ b/pkg/postgresql/cluster/core/types/constants/state.go @@ -0,0 +1,24 @@ +package pgcConstants + +type State uint64 + +const ( + Empty State = 0 + Ready State = 1 << iota + Pending + Provisioning + Configuring + Failed +) + +func (s State) Contains(state State) bool { + return s&state == state +} + +func (s State) Add(state State) State { + return s | state +} + +func (s State) Remove(state State) State { + return s &^ state +} From bfeb9b1f26daf7265f2c84ebf69dc030e1c677f1 Mon Sep 17 00:00:00 2001 From: Igor Grzankowski Date: Mon, 20 Apr 2026 18:55:22 +0200 Subject: [PATCH 39/43] CSPL-4386: Extract inline YAMLs to fixtures (#1801) * Embed values * Embed values * Move fixtures * Fix copyrights --- pkg/splunk/client/enterprise_test.go | 24 +- pkg/splunk/client/test_helpers_test.go | 39 +++ .../testdata/fixtures/get_cluster_info.json | 98 ++++++ .../testdata/fixtures/get_cm_info_empty.json | 16 + .../testdata/fixtures/get_cm_peers.json | 113 +++++++ .../get_indexer_cluster_peer_info.json | 72 ++++ .../get_indexer_cluster_peer_info_empty.json | 16 + .../testdata/fixtures/get_mc_asset_table.json | 122 +++++++ .../get_mc_nav_default_distributed.json | 70 ++++ .../testdata/fixtures/get_server_info.json | 98 ++++++ .../testdata/fixtures/mc_apply_changes.json | 122 +++++++ pkg/splunk/common/urls_testingcode.go | 307 ------------------ pkg/splunk/enterprise/clustermaster_test.go | 32 +- pkg/splunk/enterprise/configuration_test.go | 16 +- pkg/splunk/enterprise/indexercluster_test.go | 26 +- pkg/splunk/enterprise/licensemaster_test.go | 4 +- pkg/splunk/enterprise/test_constants_test.go | 52 +++ .../add_storage_volumes_admin_managed_pv.json | 127 ++++++++ .../add_storage_volumes_custom_storage.json | 96 ++++++ .../fixtures/add_storage_volumes_default.json | 94 ++++++ .../add_storage_volumes_ephemeral_both.json | 64 ++++ .../add_storage_volumes_ephemeral_etc.json | 81 +++++ .../add_storage_volumes_ephemeral_var.json | 81 +++++ .../testdata/fixtures/get_probe.json | 12 + ...et_volume_source_mount_from_configmap.json | 23 ++ .../indexer_cluster_pod_manager_info.json | 100 ++++++ .../indexer_cluster_pod_manager_peer.json | 113 +++++++ .../invalid_peer_in_finish_recycle_info.json | 100 ++++++ .../invalid_peer_in_finish_recycle_peer.json | 113 +++++++ ...nvalid_peer_status_in_scale_down_info.json | 100 ++++++ ...nvalid_peer_status_in_scale_down_peer.json | 113 +++++++ .../testdata/fixtures/quorum_lost_info.json | 27 ++ .../update_status_invalid_response1.json | 113 +++++++ pkg/splunk/enterprise/util.go | 21 -- test/testenv/appframework_utils.go | 2 +- test/testenv/verificationutils.go | 2 +- 36 files changed, 2228 insertions(+), 381 deletions(-) create mode 100644 pkg/splunk/client/test_helpers_test.go create mode 100644 pkg/splunk/client/testdata/fixtures/get_cluster_info.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_cm_info_empty.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_cm_peers.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_indexer_cluster_peer_info.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_indexer_cluster_peer_info_empty.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_mc_asset_table.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_mc_nav_default_distributed.json create mode 100644 pkg/splunk/client/testdata/fixtures/get_server_info.json create mode 100644 pkg/splunk/client/testdata/fixtures/mc_apply_changes.json delete mode 100644 pkg/splunk/common/urls_testingcode.go create mode 100644 pkg/splunk/enterprise/test_constants_test.go create mode 100644 pkg/splunk/enterprise/testdata/fixtures/add_storage_volumes_admin_managed_pv.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/add_storage_volumes_custom_storage.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/add_storage_volumes_default.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/add_storage_volumes_ephemeral_both.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/add_storage_volumes_ephemeral_etc.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/add_storage_volumes_ephemeral_var.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/get_probe.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/get_volume_source_mount_from_configmap.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/indexer_cluster_pod_manager_info.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/indexer_cluster_pod_manager_peer.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/invalid_peer_in_finish_recycle_info.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/invalid_peer_in_finish_recycle_peer.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/invalid_peer_status_in_scale_down_info.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/invalid_peer_status_in_scale_down_peer.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/quorum_lost_info.json create mode 100644 pkg/splunk/enterprise/testdata/fixtures/update_status_invalid_response1.json diff --git a/pkg/splunk/client/enterprise_test.go b/pkg/splunk/client/enterprise_test.go index 2c902d537..b605663cb 100644 --- a/pkg/splunk/client/enterprise_test.go +++ b/pkg/splunk/client/enterprise_test.go @@ -311,7 +311,7 @@ func TestGetclusterManagerInfo(t *testing.T) { } return nil } - body = splcommon.TestGetCMInfoEmpty + body = loadFixture(t, "get_cm_info_empty.json") splunkClientTester(t, "TestGetclusterManagerInfo", 200, body, wantRequest, test) // test error code @@ -331,7 +331,7 @@ func TestGetIndexerClusterPeerInfo(t *testing.T) { } return nil } - body := splcommon.TestGetIndexerClusterPeerInfo + body := loadFixture(t, "get_indexer_cluster_peer_info.json") splunkClientTester(t, "TestGetIndexerClusterPeerInfo", 200, body, wantRequest, test) // test body with no entries @@ -342,7 +342,7 @@ func TestGetIndexerClusterPeerInfo(t *testing.T) { } return nil } - body = splcommon.TestGetIndexerClusterPeerInfoEmpty + body = loadFixture(t, "get_indexer_cluster_peer_info_empty.json") splunkClientTester(t, "TestGetIndexerClusterPeerInfo", 200, body, wantRequest, test) // test error code @@ -383,7 +383,7 @@ func TestGetClusterManagerPeers(t *testing.T) { } return nil } - body := splcommon.TestGetCMPeers + body := loadFixture(t, "get_cm_peers.json") splunkClientTester(t, "TestGetClusterManagerPeers", 200, body, wantRequest, test) // test error response @@ -433,14 +433,14 @@ func TestAutomateMCApplyChanges(t *testing.T) { var wantRequests []*http.Request wantRequests = []*http.Request(append(wantRequests, request1, request2, request3, request4, request5, request6, request7, request8, request9, request10)) body := []string{ - `{"links":{},"origin":"https://localhost:8089/services/server/info","updated":"2020-09-24T06:38:53+00:00","generator":{"build":"a1a6394cc5ae","version":"8.0.5"},"entry":[{"name":"server-info","id":"https://localhost:8089/services/server/info/server-info","updated":"1970-01-01T00:00:00+00:00","links":{"alternate":"/services/server/info/server-info","list":"/services/server/info/server-info"},"author":"system","acl":{"app":"","can_list":true,"can_write":true,"modifiable":false,"owner":"system","perms":{"read":["*"],"write":[]},"removable":false,"sharing":"system"},"fields":{"required":[],"optional":[],"wildcard":[]},"content":{"activeLicenseGroup":"Trial","activeLicenseSubgroup":"Production","build":"a1a6394cc5ae","cluster_label":["idxc_label"],"cpu_arch":"x86_64","eai:acl":null,"fips_mode":false,"guid":"0F93F33C-4BDA-4A74-AD9F-3FCE26C6AFF0","health_info":"green","health_version":1,"host":"splunk-default-monitoring-console-86bc9b7c8c-d96x2","host_fqdn":"splunk-default-monitoring-console-86bc9b7c8c-d96x2","host_resolved":"splunk-default-monitoring-console-86bc9b7c8c-d96x2","isForwarding":true,"isFree":false,"isTrial":true,"kvStoreStatus":"ready","licenseKeys":["5C52DA5145AD67B8188604C49962D12F2C3B2CF1B82A6878E46F68CA2812807B"],"licenseSignature":"139bf73ec92c84121c79a9b8307a6724","licenseState":"OK","license_labels":["Splunk Enterprise Splunk Analytics for Hadoop Download Trial"],"master_guid":"0F93F33C-4BDA-4A74-AD9F-3FCE26C6AFF0","master_uri":"self","max_users":4294967295,"mode":"normal","numberOfCores":1,"numberOfVirtualCores":2,"os_build":"#1 SMP Thu Sep 3 19:04:44 UTC 2020","os_name":"Linux","os_name_extended":"Linux","os_version":"4.14.193-149.317.amzn2.x86_64","physicalMemoryMB":7764,"product_type":"enterprise","rtsearch_enabled":true,"serverName":"splunk-default-monitoring-console-86bc9b7c8c-d96x2","server_roles":["license_master","cluster_search_head","search_head"],"startup_time":1600928786,"staticAssetId":"CFE3D41EE2CCD1465E8C8453F83E4ECFFF540780B4490E84458DD4A3694CE4D1","version":"8.0.5"}}],"paging":{"total":1,"perPage":30,"offset":0},"messages":[]}`, - splcommon.TestMCApplyChanges, + loadFixture(t, "get_server_info.json"), + loadFixture(t, "mc_apply_changes.json"), "", "", "", - `{"links":{"create":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/_new","_reload":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/_reload","_acl":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/_acl"},"origin":"https://localhost:8089/servicesNS/nobody/splunk_monitoring_console/data/ui/nav","updated":"2020-09-23T23:50:25+00:00","generator":{"build":"a1a6394cc5ae","version":"8.0.5"},"entry":[{"name":"default.distributed","id":"https://localhost:8089/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/default.distributed","updated":"1970-01-01T00:00:00+00:00","links":{"alternate":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/default.distributed","list":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/default.distributed","_reload":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/default.distributed/_reload","edit":"/servicesNS/nobody/splunk_monitoring_console/data/ui/nav/default.distributed"},"author":"nobody","acl":{"app":"splunk_monitoring_console","can_change_perms":true,"can_list":true,"can_share_app":true,"can_share_global":true,"can_share_user":false,"can_write":true,"modifiable":true,"owner":"nobody","perms":{"read":["admin"],"write":["admin"]},"removable":false,"sharing":"app"},"fields":{"required":["eai:data"],"optional":[],"wildcard":[]},"content":{"disabled":false,"eai:acl":null,"eai:appName":"splunk_monitoring_console","eai:data":"

    $1 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

  • OK1X%ZYIYYV9YAXzEgYC~mK_XEEp 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