@@ -8,8 +8,11 @@ import (
8
8
"github.com/securesign/operator/controllers/common"
9
9
"github.com/securesign/operator/controllers/common/action"
10
10
utils "github.com/securesign/operator/controllers/common/utils/kubernetes"
11
+ "github.com/securesign/operator/controllers/constants"
11
12
trillian "github.com/securesign/operator/controllers/trillian/actions"
12
13
v1 "k8s.io/api/core/v1"
14
+ "k8s.io/apimachinery/pkg/api/meta"
15
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
13
16
)
14
17
15
18
func NewCreateTrillianTreeAction () action.Action [rhtasv1alpha1.CTlog ] {
@@ -25,20 +28,31 @@ func (i createTrillianTreeAction) Name() string {
25
28
}
26
29
27
30
func (i createTrillianTreeAction ) CanHandle (instance * rhtasv1alpha1.CTlog ) bool {
28
- return instance .Status .Phase == rhtasv1alpha1 .PhaseCreating && (instance .Spec .TreeID == nil || * instance .Spec .TreeID == int64 (0 ))
31
+ c := meta .FindStatusCondition (instance .Status .Conditions , constants .Ready )
32
+ return c .Reason == constants .Creating && (instance .Spec .TreeID == nil || * instance .Spec .TreeID == int64 (0 ))
29
33
}
30
34
31
35
func (i createTrillianTreeAction ) Handle (ctx context.Context , instance * rhtasv1alpha1.CTlog ) * action.Result {
32
36
var err error
33
37
34
38
trillUrl , err := utils .GetInternalUrl (ctx , i .Client , instance .Namespace , trillian .LogserverDeploymentName )
35
39
if err != nil {
36
- instance .Status .Phase = rhtasv1alpha1 .PhaseError
40
+ meta .SetStatusCondition (& instance .Status .Conditions , metav1.Condition {
41
+ Type : constants .Ready ,
42
+ Status : metav1 .ConditionFalse ,
43
+ Reason : constants .Failure ,
44
+ Message : err .Error (),
45
+ })
37
46
return i .FailedWithStatusUpdate (ctx , fmt .Errorf ("could not find trillian instance: %w" , err ), instance )
38
47
}
39
48
tree , err := common .CreateTrillianTree (ctx , "ctlog-tree" , trillUrl + ":8091" )
40
49
if err != nil {
41
- instance .Status .Phase = rhtasv1alpha1 .PhaseError
50
+ meta .SetStatusCondition (& instance .Status .Conditions , metav1.Condition {
51
+ Type : constants .Ready ,
52
+ Status : metav1 .ConditionFalse ,
53
+ Reason : constants .Failure ,
54
+ Message : err .Error (),
55
+ })
42
56
return i .FailedWithStatusUpdate (ctx , fmt .Errorf ("could not create trillian tree: %w" , err ), instance )
43
57
}
44
58
i .Recorder .Event (instance , v1 .EventTypeNormal , "TreeID" , "New Trillian tree created" )
0 commit comments