From e0058dc39f99775d03aacb60a7bbb2db78da82d6 Mon Sep 17 00:00:00 2001 From: Wantong Jiang Date: Mon, 6 Jan 2025 23:12:03 +0000 Subject: [PATCH] improve clusterStageUpdateRun UI and examples --- apis/placement/v1alpha1/stagedupdate_types.go | 5 ++++ apis/placement/v1beta1/stageupdate_types.go | 5 ++++ ...etes-fleet.io_clusterapprovalrequests.yaml | 18 ++++++++++++-- ...etes-fleet.io_clusterstagedupdateruns.yaml | 24 +++++++++++++++++-- examples/stagedupdaterun/approvalRequest.yaml | 4 ++-- 5 files changed, 50 insertions(+), 6 deletions(-) diff --git a/apis/placement/v1alpha1/stagedupdate_types.go b/apis/placement/v1alpha1/stagedupdate_types.go index 867ba3840..b872d1682 100644 --- a/apis/placement/v1alpha1/stagedupdate_types.go +++ b/apis/placement/v1alpha1/stagedupdate_types.go @@ -17,6 +17,9 @@ import ( // +kubebuilder:subresource:status // +kubebuilder:resource:scope=Cluster,categories={fleet,fleet-placement},shortName=crsur // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Initialized")].status`,name="Initialized",type=string +// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Succeeded")].status`,name="Succeeded",type=string +// +kubebuilder:printcolumn:JSONPath=`.metadata.creationTimestamp`,name="Age",type=date // ClusterStagedUpdateRun represents a stage by stage update process that applies ClusterResourcePlacement // selected resources to specified clusters. @@ -397,6 +400,8 @@ type ClusterStagedUpdateRunList struct { // +kubebuilder:subresource:status // +kubebuilder:resource:scope=Cluster,categories={fleet,fleet-placement},shortName=careq // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Approved")].status`,name="Approved",type=string +// +kubebuilder:printcolumn:JSONPath=`.metadata.creationTimestamp`,name="Age",type=date // ClusterApprovalRequest defines a request for user approval for cluster staged update run. // The request object MUST have the following labels: diff --git a/apis/placement/v1beta1/stageupdate_types.go b/apis/placement/v1beta1/stageupdate_types.go index 6b2362804..ac56d9325 100644 --- a/apis/placement/v1beta1/stageupdate_types.go +++ b/apis/placement/v1beta1/stageupdate_types.go @@ -16,6 +16,9 @@ import ( // +kubebuilder:resource:scope=Cluster,categories={fleet,fleet-placement},shortName=crsur // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +kubebuilder:storageversion +// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Initialized")].status`,name="Initialized",type=string +// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Succeeded")].status`,name="Succeeded",type=string +// +kubebuilder:printcolumn:JSONPath=`.metadata.creationTimestamp`,name="Age",type=date // ClusterStagedUpdateRun represents a stage by stage update process that applies ClusterResourcePlacement // selected resources to specified clusters. @@ -398,6 +401,8 @@ type ClusterStagedUpdateRunList struct { // +kubebuilder:resource:scope=Cluster,categories={fleet,fleet-placement},shortName=careq // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +kubebuilder:storageversion +// +kubebuilder:printcolumn:JSONPath=`.status.conditions[?(@.type=="Approved")].status`,name="Approved",type=string +// +kubebuilder:printcolumn:JSONPath=`.metadata.creationTimestamp`,name="Age",type=date // ClusterApprovalRequest defines a request for user approval for cluster staged update run. // The request object MUST have the following labels: diff --git a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml index b98c8f2e5..3f1a257fe 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml @@ -19,7 +19,14 @@ spec: singular: clusterapprovalrequest scope: Cluster versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Approved")].status + name: Approved + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 schema: openAPIV3Schema: description: |- @@ -150,7 +157,14 @@ spec: storage: false subresources: status: {} - - name: v1beta1 + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Approved")].status + name: Approved + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 schema: openAPIV3Schema: description: |- diff --git a/config/crd/bases/placement.kubernetes-fleet.io_clusterstagedupdateruns.yaml b/config/crd/bases/placement.kubernetes-fleet.io_clusterstagedupdateruns.yaml index bc6b6bb44..b6e13025e 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_clusterstagedupdateruns.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_clusterstagedupdateruns.yaml @@ -19,7 +19,17 @@ spec: singular: clusterstagedupdaterun scope: Cluster versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Initialized")].status + name: Initialized + type: string + - jsonPath: .status.conditions[?(@.type=="Succeeded")].status + name: Succeeded + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 schema: openAPIV3Schema: description: |- @@ -1213,7 +1223,17 @@ spec: storage: false subresources: status: {} - - name: v1beta1 + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=="Initialized")].status + name: Initialized + type: string + - jsonPath: .status.conditions[?(@.type=="Succeeded")].status + name: Succeeded + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 schema: openAPIV3Schema: description: |- diff --git a/examples/stagedupdaterun/approvalRequest.yaml b/examples/stagedupdaterun/approvalRequest.yaml index 5bc22e184..5e7bfc5ec 100644 --- a/examples/stagedupdaterun/approvalRequest.yaml +++ b/examples/stagedupdaterun/approvalRequest.yaml @@ -11,5 +11,5 @@ spec: targetStage: canary status: conditions: - - type: Approved - status: "True" + - type: Approved + status: "True"