Skip to content

Commit a5d3081

Browse files
committed
add some additional CRStatus printer columns and Role#name validation rule so it is immutable
1 parent a131ea9 commit a5d3081

4 files changed

Lines changed: 59 additions & 2 deletions

File tree

src/main/java/it/aboutbits/postgresql/core/BaseReconciler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
import org.jspecify.annotations.NullMarked;
99
import org.jspecify.annotations.Nullable;
1010

11-
import java.time.Duration;
1211
import java.time.OffsetDateTime;
1312
import java.time.ZoneOffset;
1413
import java.util.Objects;
1514
import java.util.Optional;
15+
import java.util.concurrent.TimeUnit;
1616

1717
@NullMarked
1818
@Slf4j
@@ -97,6 +97,6 @@ public <E extends Exception> UpdateControl<CR> handleError(
9797
.setMessage(exception.getMessage());
9898

9999
return UpdateControl.patchStatus(resource)
100-
.rescheduleAfter(Duration.ofSeconds(30));
100+
.rescheduleAfter(60, TimeUnit.SECONDS);
101101
}
102102
}

src/main/java/it/aboutbits/postgresql/crd/connection/ClusterConnection.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package it.aboutbits.postgresql.crd.connection;
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
4+
import io.fabric8.crd.generator.annotation.AdditionalPrinterColumn;
45
import io.fabric8.kubernetes.api.model.Namespaced;
56
import io.fabric8.kubernetes.client.CustomResource;
67
import io.fabric8.kubernetes.model.annotation.Group;
@@ -16,6 +17,31 @@
1617
@NullMarked
1718
@Version("v1")
1819
@Group("postgresql.aboutbits.it")
20+
@AdditionalPrinterColumn(
21+
name = "Name",
22+
jsonPath = ".status.name",
23+
type = AdditionalPrinterColumn.Type.STRING
24+
)
25+
@AdditionalPrinterColumn(
26+
name = "Phase",
27+
jsonPath = ".status.phase",
28+
type = AdditionalPrinterColumn.Type.STRING
29+
)
30+
@AdditionalPrinterColumn(
31+
name = "Message",
32+
jsonPath = ".status.message",
33+
type = AdditionalPrinterColumn.Type.STRING
34+
)
35+
@AdditionalPrinterColumn(
36+
name = "Since",
37+
jsonPath = ".status.lastPhaseTransitionTime",
38+
type = AdditionalPrinterColumn.Type.DATE
39+
)
40+
@AdditionalPrinterColumn(
41+
name = "Age",
42+
jsonPath = ".metadata.creationTimestamp",
43+
type = AdditionalPrinterColumn.Type.DATE
44+
)
1945
public class ClusterConnection
2046
extends CustomResource<ClusterConnectionSpec, CRStatus>
2147
implements Namespaced, Named {

src/main/java/it/aboutbits/postgresql/crd/role/Role.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package it.aboutbits.postgresql.crd.role;
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
4+
import io.fabric8.crd.generator.annotation.AdditionalPrinterColumn;
45
import io.fabric8.kubernetes.api.model.Namespaced;
56
import io.fabric8.kubernetes.client.CustomResource;
67
import io.fabric8.kubernetes.model.annotation.Group;
@@ -12,6 +13,31 @@
1213
@NullMarked
1314
@Version("v1")
1415
@Group("postgresql.aboutbits.it")
16+
@AdditionalPrinterColumn(
17+
name = "Name",
18+
jsonPath = ".status.name",
19+
type = AdditionalPrinterColumn.Type.STRING
20+
)
21+
@AdditionalPrinterColumn(
22+
name = "Phase",
23+
jsonPath = ".status.phase",
24+
type = AdditionalPrinterColumn.Type.STRING
25+
)
26+
@AdditionalPrinterColumn(
27+
name = "Message",
28+
jsonPath = ".status.message",
29+
type = AdditionalPrinterColumn.Type.STRING
30+
)
31+
@AdditionalPrinterColumn(
32+
name = "Since",
33+
jsonPath = ".status.lastPhaseTransitionTime",
34+
type = AdditionalPrinterColumn.Type.DATE
35+
)
36+
@AdditionalPrinterColumn(
37+
name = "Age",
38+
jsonPath = ".metadata.creationTimestamp",
39+
type = AdditionalPrinterColumn.Type.DATE
40+
)
1541
public class Role
1642
extends CustomResource<RoleSpec, CRStatus>
1743
implements Namespaced, Named {

src/main/java/it/aboutbits/postgresql/crd/role/RoleSpec.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package it.aboutbits.postgresql.crd.role;
22

33
import io.fabric8.generator.annotation.Required;
4+
import io.fabric8.generator.annotation.ValidationRule;
45
import it.aboutbits.postgresql.core.ClusterReference;
56
import it.aboutbits.postgresql.core.SecretRef;
67
import lombok.EqualsAndHashCode;
@@ -18,6 +19,10 @@
1819
@Setter
1920
public class RoleSpec {
2021
@Required
22+
@ValidationRule(
23+
value = "self == oldSelf",
24+
message = "The Role name must not be changed once it is created"
25+
)
2126
private String name = "";
2227

2328
@Nullable

0 commit comments

Comments
 (0)