Skip to content

Commit ff343a6

Browse files
committed
fix: SGDistributedLogs does not set retention policy for timesacledb 2.x
1 parent 27552b8 commit ff343a6

3 files changed

Lines changed: 21 additions & 7 deletions

File tree

stackgres-k8s/src/operator/src/main/java/io/stackgres/operator/common/StackGresDistributedLogsUtil.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
package io.stackgres.operator.common;
77

88
import java.util.List;
9+
import java.util.Objects;
910
import java.util.Optional;
1011

1112
import io.stackgres.common.ExtensionTuple;
1213
import io.stackgres.common.StackGresComponent;
1314
import io.stackgres.common.StackGresUtil;
1415
import io.stackgres.common.StackGresVersion;
16+
import io.stackgres.common.crd.sgcluster.StackGresClusterExtension;
1517
import io.stackgres.common.crd.sgcluster.StackGresPostgresFlavor;
1618
import io.stackgres.common.crd.sgdistributedlogs.StackGresDistributedLogs;
1719
import io.stackgres.common.crd.sgdistributedlogs.StackGresDistributedLogsStatus;
@@ -21,8 +23,9 @@
2123
public interface StackGresDistributedLogsUtil {
2224

2325
String POSTGRESQL_VERSION = "17";
24-
String TIMESCALEDB_EXTENSION_NAME = "timescaledb";
25-
String TIMESCALEDB_EXTENSION_VERSION = "2.17.0";
26+
String PREVIOUS_TIMESCALEDB_EXTENSION_NAME = "timescaledb";
27+
String TIMESCALEDB_EXTENSION_NAME = "timescaledb_tsl";
28+
String TIMESCALEDB_EXTENSION_VERSION = "2.23.1";
2629

2730
static String getPostgresVersion(StackGresDistributedLogs distributedLogs) {
2831
return Optional.of(distributedLogs)
@@ -54,4 +57,11 @@ static List<ExtensionTuple> getDefaultDistributedLogsExtensions(
5457
.toList();
5558
}
5659

60+
static boolean isNotDeprecatedDistributedLogsExtension(
61+
StackGresClusterExtension extension) {
62+
return !Objects.equals(
63+
extension.getName(),
64+
PREVIOUS_TIMESCALEDB_EXTENSION_NAME);
65+
}
66+
5767
}

stackgres-k8s/src/operator/src/main/java/io/stackgres/operator/conciliation/factory/distributedlogs/DistributedLogsCluster.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import io.stackgres.common.crd.sgdistributedlogs.StackGresDistributedLogsSpec;
5757
import io.stackgres.common.crd.sgdistributedlogs.StackGresDistributedLogsStatus;
5858
import io.stackgres.common.labels.LabelFactoryForDistributedLogs;
59+
import io.stackgres.operator.common.StackGresDistributedLogsUtil;
5960
import io.stackgres.operator.conciliation.OperatorVersionBinder;
6061
import io.stackgres.operator.conciliation.ResourceGenerator;
6162
import io.stackgres.operator.conciliation.distributedlogs.StackGresDistributedLogsContext;
@@ -144,10 +145,13 @@ public static StackGresCluster getCluster(
144145
.orElse(getPostgresVersion(distributedLogs)))
145146
.withExtensions(
146147
Seq.of(previousCluster
147-
.map(StackGresCluster::getSpec)
148-
.map(StackGresClusterSpec::getPostgres)
149-
.map(StackGresClusterPostgres::getExtensions)
150-
.orElse(List.of()))
148+
.map(StackGresCluster::getSpec)
149+
.map(StackGresClusterSpec::getPostgres)
150+
.map(StackGresClusterPostgres::getExtensions)
151+
.stream()
152+
.flatMap(List::stream)
153+
.filter(StackGresDistributedLogsUtil::isNotDeprecatedDistributedLogsExtension)
154+
.toList())
151155
.flatMap(extensions -> Seq.seq(extensions)
152156
.append(getDefaultDistributedLogsExtensions(distributedLogs)
153157
.stream()

stackgres-k8s/src/operator/src/main/resources/distributed-logs/reconcile-retention.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ BEGIN
1515
'SELECT drop_retention_policy(' || quote_literal(table_name) || ')');
1616
PERFORM dblink(
1717
'host=/var/run/postgresql port=5432 user=' || CURRENT_USER || ' sslmode=disable dbname=' || quote_literal(database_entry[0]),
18-
'SELECT add_retention_policy(' || quote_literal(table_name) || ', CAST(' || quote_literal(database_entry[1]) || ' AS INTERVAL');
18+
'SELECT add_retention_policy(' || quote_literal(table_name) || ', CAST(' || quote_literal(database_entry[1]) || ' AS INTERVAL))');
1919
ELSIF EXISTS (SELECT * FROM pg_extension WHERE extname = 'timescaledb' AND SPLIT_PART(extversion,'.',1) = '1') THEN
2020
-- next reconciliation will take place on %3$s
2121
PERFORM dblink(

0 commit comments

Comments
 (0)