Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions api/v1/openlibertydump_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ const (
// Defines the observed state of OpenLibertyDump
type OpenLibertyDumpStatus struct {
// +listType=atomic
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Status Conditions",xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
Conditions []OperationStatusCondition `json:"conditions,omitempty"`
Versions DumpStatusVersions `json:"versions,omitempty"`
// Location of the generated dump file
Expand Down
1 change: 1 addition & 0 deletions api/v1/openlibertytrace_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ type OpenLibertyTraceSpec struct {
// Defines the observed state of OpenLibertyTrace operation
type OpenLibertyTraceStatus struct {
// +listType=atomic
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Status Conditions",xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
Conditions []OperationStatusCondition `json:"conditions,omitempty"`
OperatedResource OperatedResource `json:"operatedResource,omitempty"`
Versions TraceStatusVersions `json:"versions,omitempty"`
Expand Down
2 changes: 2 additions & 0 deletions api/v1/operations.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ const (
OperationStatusConditionTypeEnabled OperationStatusConditionType = "Enabled"
// OperationStatusConditionTypeStarted indicates whether operation has been started
OperationStatusConditionTypeStarted OperationStatusConditionType = "Started"
// OperationStatusConditionTypeFailed indicates whether operation has failed
OperationStatusConditionTypeFailed OperationStatusConditionType = "Failed"
// OperationStatusConditionTypeCompleted indicates whether operation has been completed
OperationStatusConditionTypeCompleted OperationStatusConditionType = "Completed"
)
Expand Down
17 changes: 12 additions & 5 deletions bundle/manifests/open-liberty.clusterserviceversion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ metadata:
},
"spec": {
"include": [
"thread",
"heap"
"thread"
],
"podName": "Specify_Pod_Name_Here"
}
Expand Down Expand Up @@ -70,8 +69,7 @@ metadata:
},
"spec": {
"include": [
"thread",
"heap"
"thread"
],
"podName": "Specify_Pod_Name_Here"
}
Expand All @@ -94,7 +92,7 @@ metadata:
categories: Application Runtime
certified: "true"
containerImage: icr.io/appcafe/open-liberty-operator:daily
createdAt: "2024-02-02T17:24:41Z"
createdAt: "2024-03-13T14:46:03Z"
description: Deploy and manage containerized Liberty applications
olm.skipRange: '>=0.8.0 <1.3.1'
operators.openshift.io/infrastructure-features: '["disconnected"]'
Expand Down Expand Up @@ -996,6 +994,10 @@ spec:
kind: OpenLibertyDump
name: openlibertydumps.apps.openliberty.io
statusDescriptors:
- displayName: Status Conditions
path: conditions
x-descriptors:
- urn:alm:descriptor:io.kubernetes.conditions
- description: Location of the generated dump file
displayName: Dump File Path
path: dumpFile
Expand All @@ -1011,6 +1013,11 @@ spec:
displayName: OpenLibertyTrace
kind: OpenLibertyTrace
name: openlibertytraces.apps.openliberty.io
statusDescriptors:
- displayName: Status Conditions
path: conditions
x-descriptors:
- urn:alm:descriptor:io.kubernetes.conditions
version: v1
- description: Day-2 operation for gathering server traces
displayName: OpenLibertyTrace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -830,6 +830,10 @@ spec:
kind: OpenLibertyDump
name: openlibertydumps.apps.openliberty.io
statusDescriptors:
- displayName: Status Conditions
path: conditions
x-descriptors:
- urn:alm:descriptor:io.kubernetes.conditions
- description: Location of the generated dump file
displayName: Dump File Path
path: dumpFile
Expand All @@ -845,6 +849,11 @@ spec:
displayName: OpenLibertyTrace
kind: OpenLibertyTrace
name: openlibertytraces.apps.openliberty.io
statusDescriptors:
- displayName: Status Conditions
path: conditions
x-descriptors:
- urn:alm:descriptor:io.kubernetes.conditions
version: v1
- description: Day-2 operation for gathering server traces
displayName: OpenLibertyTrace
Expand Down
36 changes: 28 additions & 8 deletions controllers/openlibertydump_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,18 @@ func (r *ReconcileOpenLibertyDump) Reconcile(ctx context.Context, request ctrl.R
reqLogger.Error(err, message)
r.Recorder.Event(instance, "Warning", "ProcessingError", message)
c := openlibertyv1.OperationStatusCondition{
Type: openlibertyv1.OperationStatusConditionTypeStarted,
Status: corev1.ConditionFalse,
Type: openlibertyv1.OperationStatusConditionTypeStarted,
Status: corev1.ConditionFalse,
}
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
// Additionally, set the condition to Failed to update the UI
f := openlibertyv1.OperationStatusCondition{
Type: openlibertyv1.OperationStatusConditionTypeFailed,
Status: corev1.ConditionTrue,
Reason: "Error",
Message: "Failed to find a pod or pod is not in running state",
}
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
instance.Status.Versions.Reconciled = utils.OperandVersion
r.Client.Status().Update(context.TODO(), instance)
return reconcile.Result{}, nil
Expand All @@ -104,8 +110,12 @@ func (r *ReconcileOpenLibertyDump) Reconcile(ctx context.Context, request ctrl.R
Type: openlibertyv1.OperationStatusConditionTypeStarted,
Status: corev1.ConditionTrue,
}

instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
f := openlibertyv1.OperationStatusCondition{
Type: openlibertyv1.OperationStatusConditionTypeFailed,
Status: corev1.ConditionFalse,
}
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
r.Client.Status().Update(context.TODO(), instance)

_, err = utils.ExecuteCommandInContainer(r.RestConfig, pod.Name, pod.Namespace, "app", []string{"/bin/sh", "-c", dumpCmd})
Expand All @@ -114,12 +124,18 @@ func (r *ReconcileOpenLibertyDump) Reconcile(ctx context.Context, request ctrl.R
reqLogger.Error(err, "Execute dump cmd failed ", "cmd", dumpCmd)
r.Recorder.Event(instance, "Warning", "ProcessingError", err.Error())
c = openlibertyv1.OperationStatusCondition{
Type: openlibertyv1.OperationStatusConditionTypeCompleted,
Status: corev1.ConditionFalse,
Type: openlibertyv1.OperationStatusConditionTypeCompleted,
Status: corev1.ConditionFalse,
}
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
// Additionally, set the condition to Failed to update the UI
f = openlibertyv1.OperationStatusCondition{
Type: openlibertyv1.OperationStatusConditionTypeFailed,
Status: corev1.ConditionTrue,
Reason: "Error",
Message: err.Error(),
}
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
r.Client.Status().Update(context.TODO(), instance)
return reconcile.Result{}, nil

Expand All @@ -129,8 +145,12 @@ func (r *ReconcileOpenLibertyDump) Reconcile(ctx context.Context, request ctrl.R
Type: openlibertyv1.OperationStatusConditionTypeCompleted,
Status: corev1.ConditionTrue,
}

instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, c)
f = openlibertyv1.OperationStatusCondition{
Type: openlibertyv1.OperationStatusConditionTypeFailed,
Status: corev1.ConditionFalse,
}
instance.Status.Conditions = openlibertyv1.SetOperationCondtion(instance.Status.Conditions, f)
instance.Status.DumpFile = dumpFileName
instance.Status.Versions.Reconciled = utils.OperandVersion
r.Client.Status().Update(context.TODO(), instance)
Expand Down