Skip to content

Commit bcf4e26

Browse files
Jayendra Parsaijgwest
authored andcommitted
Error reporting in DeploymentTarget/DeploymentTargetClaim.
Error reporting in DeploymentTarget/DeploymentTargetClaim.
1 parent ba0de13 commit bcf4e26

File tree

10 files changed

+275
-23
lines changed

10 files changed

+275
-23
lines changed

appstudio-controller/controllers/appstudio.redhat.com/deploymenttarget_controller.go

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
codereadytoolchainv1alpha1 "github.com/codeready-toolchain/api/api/v1alpha1"
2525
"github.com/codeready-toolchain/toolchain-common/pkg/condition"
26+
"github.com/go-logr/logr"
2627
applicationv1alpha1 "github.com/redhat-appstudio/application-api/api/v1alpha1"
2728
sharedutil "github.com/redhat-appstudio/managed-gitops/backend-shared/util"
2829
logutil "github.com/redhat-appstudio/managed-gitops/backend-shared/util/log"
@@ -45,7 +46,10 @@ type DeploymentTargetReconciler struct {
4546
}
4647

4748
const (
48-
FinalizerDT = "dt.appstudio.redhat.com/finalizer"
49+
FinalizerDT = "dt.appstudio.redhat.com/finalizer"
50+
DeploymentTargetConditionTypeErrorOccurred = "ValidDeploymentTargetClaim"
51+
DeploymentTargetReasonErrorOccurred = "ErrorOccurred"
52+
DeploymentTargetReasonBound = "Bound"
4953
)
5054

5155
//+kubebuilder:rbac:groups=appstudio.redhat.com,resources=deploymenttargetclaims,verbs=get;list;watch;update;patch
@@ -97,6 +101,12 @@ func (r *DeploymentTargetReconciler) Reconcile(ctx context.Context, req ctrl.Req
97101

98102
// Retrieve and sanity check the DeploymentTargetClass of the DT
99103
dtClass, err := findMatchingDTClassForDT(ctx, dt, r.Client)
104+
// Update Status.Conditions field of DeploymentTarget.
105+
if err := updateStatusConditionOfDeploymentTarget(ctx, r.Client, "failed to retrieve DeploymentTargetClass of DeploymentTarget",
106+
&dt, DeploymentTargetConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetReasonErrorOccurred, log); err != nil {
107+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target status condition. %v", err)
108+
}
109+
100110
if err != nil {
101111
if apierr.IsNotFound(err) {
102112
return ctrl.Result{}, nil
@@ -107,6 +117,13 @@ func (r *DeploymentTargetReconciler) Reconcile(ctx context.Context, req ctrl.Req
107117
dtClass.Spec.ReclaimPolicy != applicationv1alpha1.ReclaimPolicy_Retain {
108118

109119
log.Error(nil, "unexpected reclaim policy value on DTClass", "reclaimPolicy", dtClass.Spec.ReclaimPolicy)
120+
121+
// Update Status.Conditions field of DeploymentTarget.
122+
if err := updateStatusConditionOfDeploymentTarget(ctx, r.Client, "unexpected reclaim policy value on DeploymentTargetClass",
123+
&dt, DeploymentTargetConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetReasonErrorOccurred, log); err != nil {
124+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target status condition. %v", err)
125+
}
126+
110127
return ctrl.Result{}, nil
111128
}
112129

@@ -140,6 +157,12 @@ func (r *DeploymentTargetReconciler) Reconcile(ctx context.Context, req ctrl.Req
140157

141158
if dt.DeletionTimestamp == nil {
142159
// The DeploymentTarget is not currently being deleted, so no more work to do.
160+
// Update Status.Conditions field of DeploymentTarget.
161+
if err := updateStatusConditionOfDeploymentTarget(ctx, r.Client, "",
162+
&dt, DeploymentTargetConditionTypeErrorOccurred, metav1.ConditionTrue, DeploymentTargetReasonBound, log); err != nil {
163+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target status condition. %v", err)
164+
}
165+
143166
return ctrl.Result{}, nil
144167
}
145168

@@ -166,6 +189,13 @@ func (r *DeploymentTargetReconciler) Reconcile(ctx context.Context, req ctrl.Req
166189

167190
if dtClass.Spec.ReclaimPolicy != applicationv1alpha1.ReclaimPolicy_Delete {
168191
log.Error(nil, "Unexpected reclaimPolicy: neither Retain nor Delete.")
192+
193+
// Update Status.Conditions field of DeploymentTarget.
194+
if err := updateStatusConditionOfDeploymentTarget(ctx, r.Client, "unexpected reclaimPolicy: neither Retain nor Delete.",
195+
&dt, DeploymentTargetConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetReasonErrorOccurred, log); err != nil {
196+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target status condition. %v", err)
197+
}
198+
169199
return ctrl.Result{}, nil
170200
}
171201

@@ -181,6 +211,13 @@ func (r *DeploymentTargetReconciler) Reconcile(ctx context.Context, req ctrl.Req
181211
var readyCond codereadytoolchainv1alpha1.Condition
182212
var found bool
183213
if readyCond, found = condition.FindConditionByType(sr.Status.Conditions, codereadytoolchainv1alpha1.ConditionReady); !found {
214+
215+
// Update Status.Conditions field of DeploymentTarget.
216+
if err := updateStatusConditionOfDeploymentTarget(ctx, r.Client, fmt.Sprint("failed to find ConditionReady for SpaceRequest: ", sr.Name),
217+
&dt, DeploymentTargetConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetReasonErrorOccurred, log); err != nil {
218+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target status condition. %v", err)
219+
}
220+
184221
return ctrl.Result{}, fmt.Errorf("failed to find ConditionReady for SpaceRequest %s from %s", sr.Name, sr.Namespace)
185222
}
186223

@@ -189,6 +226,13 @@ func (r *DeploymentTargetReconciler) Reconcile(ctx context.Context, req ctrl.Req
189226

190227
log.Info("Deleting SpaceRequest", "spaceRequest", sr)
191228
if err := r.Client.Delete(ctx, sr); err != nil {
229+
230+
// Update Status.Conditions field of DeploymentTarget.
231+
if err := updateStatusConditionOfDeploymentTarget(ctx, r.Client, fmt.Sprint("failed to delete SpaceRequest: ", sr.Name),
232+
&dt, DeploymentTargetConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetReasonErrorOccurred, log); err != nil {
233+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target status condition. %v", err)
234+
}
235+
192236
return ctrl.Result{}, err
193237
}
194238
logutil.LogAPIResourceChangeEvent(sr.Namespace, sr.Name, sr, logutil.ResourceDeleted, log)
@@ -333,3 +377,28 @@ func (r *DeploymentTargetReconciler) findDeploymentTargetsForSpaceRequests(sr cl
333377
return []reconcile.Request{{NamespacedName: client.ObjectKeyFromObject(dt)}}
334378

335379
}
380+
381+
// updateStatusConditionOfDeploymentTarget calls SetCondition() with DeploymentTarget conditions
382+
func updateStatusConditionOfDeploymentTarget(ctx context.Context, client client.Client,
383+
message string, deploymentTarget *applicationv1alpha1.DeploymentTarget, conditionType string,
384+
status metav1.ConditionStatus, reason string, log logr.Logger) error {
385+
386+
newCondition := metav1.Condition{
387+
Type: conditionType,
388+
Message: message,
389+
Status: status,
390+
Reason: reason,
391+
}
392+
393+
changed, newConditions := insertOrUpdateConditionsInSlice(newCondition, deploymentTarget.Status.Conditions)
394+
395+
if changed {
396+
deploymentTarget.Status.Conditions = newConditions
397+
398+
if err := client.Status().Update(ctx, deploymentTarget); err != nil {
399+
log.Error(err, "unable to update deploymentTarget status condition.")
400+
return err
401+
}
402+
}
403+
return nil
404+
}

appstudio-controller/controllers/appstudio.redhat.com/deploymenttargetclaim_controller.go

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ const (
4646

4747
// DeploymentTargetLabel is the label indicating the DeploymentTarget that's associated with the SpaceRequest
4848
DeploymentTargetLabel = "appstudio.openshift.io/dt"
49+
50+
DeploymentTargetClaimConditionTypeErrorOccurred = "ValidDeploymentTargetClaim"
51+
52+
DeploymentTargetClaimReasonErrorOccurred = "ErrorOccurred"
53+
54+
DeploymentTargetClaimReasonBound = "Bound"
4955
)
5056

5157
// DeploymentTargetClaimReconciler reconciles a DeploymentTargetClaim object
@@ -98,6 +104,14 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
98104
// Add the deletion finalizer if it is absent.
99105
if addFinalizer(&dtc, applicationv1alpha1.FinalizerBinder) {
100106
if err := r.Client.Update(ctx, &dtc); err != nil {
107+
108+
// Update Status.Conditions field of DeploymentTargetClaim.
109+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client,
110+
fmt.Sprintf("failed to add finalizer %s to DeploymentTargetClaim", applicationv1alpha1.FinalizerBinder),
111+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
112+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
113+
}
114+
101115
return ctrl.Result{}, fmt.Errorf("failed to add finalizer %s to DeploymentTargetClaim %s in namespace %s: %v", applicationv1alpha1.FinalizerBinder, dtc.Name, dtc.Namespace, err)
102116
}
103117
log.Info("Added finalizer to DeploymentTargetClaim", "finalizer", applicationv1alpha1.FinalizerBinder)
@@ -112,6 +126,13 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
112126
if dtc.Status.Phase == applicationv1alpha1.DeploymentTargetClaimPhase_Pending && isMarkedForDynamicProvisioning(dtc) {
113127
if err := handleProvisioningOfSpaceRequestForDTC(ctx, dtc, r.Client, log); err != nil {
114128
log.Error(err, "unable to handle provisioning of space request for dynamic DTC")
129+
130+
// Update Status.Conditions field of DeploymentTargetClaim.
131+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "unable to handle provisioning of space request for dynamic DTC",
132+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
133+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
134+
}
135+
115136
return ctrl.Result{}, err
116137
}
117138
}
@@ -121,6 +142,13 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
121142
if isDTCBindingCompleted(dtc) {
122143
if err := handleBoundedDeploymentTargetClaim(ctx, r.Client, dtc, log); err != nil {
123144
log.Error(err, "failed to process bounded DeploymentTargetClaim")
145+
146+
// Update Status.Conditions field of DeploymentTargetClaim.
147+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "failed to process bounded DeploymentTargetClaim",
148+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
149+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
150+
}
151+
124152
return ctrl.Result{}, err
125153
}
126154
return ctrl.Result{}, nil
@@ -132,6 +160,13 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
132160
dt, err := findMatchingDTForDTC(ctx, r.Client, dtc)
133161
if err != nil {
134162
log.Error(err, "failed to find a DeploymentTarget that matches the DeploymentTargetClaim")
163+
164+
// Update Status.Conditions field of DeploymentTargetClaim.
165+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "failed to find a DeploymentTarget that matches the DeploymentTargetClaim",
166+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
167+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
168+
}
169+
135170
return ctrl.Result{}, err
136171
}
137172

@@ -141,6 +176,13 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
141176

142177
if err := bindDeploymentTargetClaimToTarget(ctx, r.Client, &dtc, dt, true, log); err != nil {
143178
log.Error(err, "failed to bind DeploymentTargetClaim to the DeploymentTarget", "DeploymentTargetName", dt.Name, "Namespace", dt.Name)
179+
180+
// Update Status.Conditions field of DeploymentTargetClaim.
181+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "failed to bind DeploymentTargetClaim to the DeploymentTarget",
182+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
183+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
184+
}
185+
144186
return ctrl.Result{}, err
145187
}
146188

@@ -151,6 +193,13 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
151193

152194
if err := handleDynamicDTCProvisioning(ctx, r.Client, &dtc, log); err != nil {
153195
log.Error(err, "failed to handle DeploymentTargetClaim for dynamic provisioning")
196+
197+
// Update Status.Conditions field of DeploymentTargetClaim.
198+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "failed to handle DeploymentTargetClaim for dynamic provisioning",
199+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
200+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
201+
}
202+
154203
return ctrl.Result{}, err
155204
}
156205
log.Info("Waiting for the DeploymentTarget to be dynamically created by the provisioner")
@@ -188,11 +237,24 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
188237
// Both DT and DTC refer each other. So bind them together.
189238
if err := bindDeploymentTargetClaimToTarget(ctx, r.Client, &dtc, &dt, false, log); err != nil {
190239
log.Error(err, "failed to bind DeploymentTargetClaim to the DeploymentTarget", "DeploymentTargetName", dt.Name, "Namespace", dt.Name)
240+
241+
// Update Status.Conditions field of DeploymentTargetClaim.
242+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "failed to bind DeploymentTargetClaim to the DeploymentTarget",
243+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
244+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
245+
}
246+
191247
return ctrl.Result{}, err
192248
}
193249
} else {
194250
log.Error(nil, "DeploymentTargetClaim wants to claim a DeploymentTarget that is already claimed", "DeploymentTarget", dt.Name)
195251

252+
// Update Status.Conditions field of DeploymentTargetClaim.
253+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "DeploymentTargetClaim wants to claim a DeploymentTarget that is already claimed",
254+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
255+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
256+
}
257+
196258
// Update the DTC status to Pending since the DT is not available
197259
if err := updateDTCStatusPhase(ctx, r.Client, &dtc, applicationv1alpha1.DeploymentTargetClaimPhase_Pending, log); err != nil {
198260
return ctrl.Result{}, err
@@ -204,18 +266,38 @@ func (r *DeploymentTargetClaimReconciler) Reconcile(ctx context.Context, req ctr
204266
// At this stage, DT isn't claimed by anyone. The current DTC can try to claim it.
205267
if err := doesDTMatchDTC(dt, dtc); err != nil {
206268
log.Error(err, "DeploymentTarget does not match the specified DeploymentTargetClaim")
269+
270+
// Update Status.Conditions field of DeploymentTargetClaim.
271+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "DeploymentTarget does not match the specified DeploymentTargetClaim",
272+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
273+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
274+
}
275+
207276
return ctrl.Result{}, err
208277
}
209278

210279
err := bindDeploymentTargetClaimToTarget(ctx, r.Client, &dtc, &dt, false, log)
211280
if err != nil {
212281
log.Error(err, "failed to bind DeploymentTargetClaim to the DeploymentTarget", "DeploymentTargetName", dt.Name, "Namespace", dt.Name)
282+
283+
// Update Status.Conditions field of DeploymentTargetClaim.
284+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "failed to bind DeploymentTargetClaim to the DeploymentTarget",
285+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionFalse, DeploymentTargetClaimReasonErrorOccurred, log); err != nil {
286+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
287+
}
288+
213289
return ctrl.Result{}, err
214290
}
215291
}
216292

217293
log.Info("DeploymentTargetClaim bound to DeploymentTarget", "DeploymentTargetName", dt.Name, "Namespace", dt.Namespace)
218294

295+
// Update Status.Conditions field of DeploymentTargetClaim.
296+
if err := updateStatusConditionOfDeploymentTargetClaim(ctx, r.Client, "",
297+
&dtc, DeploymentTargetClaimConditionTypeErrorOccurred, metav1.ConditionTrue, DeploymentTargetClaimReasonBound, log); err != nil {
298+
return ctrl.Result{}, fmt.Errorf("unable to update deployment target claim status condition. %v", err)
299+
}
300+
219301
return ctrl.Result{}, nil
220302
}
221303

@@ -861,3 +943,28 @@ func createSpaceRequestForDTC(ctx context.Context, k8sClient client.Client, dtc
861943

862944
return &newSpaceRequest, nil
863945
}
946+
947+
// updateStatusConditionOfDeploymentTargetClaim calls SetCondition() with DeploymentTargetClaim conditions
948+
func updateStatusConditionOfDeploymentTargetClaim(ctx context.Context, client client.Client,
949+
message string, deploymentTargetClaim *applicationv1alpha1.DeploymentTargetClaim, conditionType string,
950+
status metav1.ConditionStatus, reason string, log logr.Logger) error {
951+
952+
newCondition := metav1.Condition{
953+
Type: conditionType,
954+
Message: message,
955+
Status: status,
956+
Reason: reason,
957+
}
958+
959+
changed, newConditions := insertOrUpdateConditionsInSlice(newCondition, deploymentTargetClaim.Status.Conditions)
960+
961+
if changed {
962+
deploymentTargetClaim.Status.Conditions = newConditions
963+
964+
if err := client.Status().Update(ctx, deploymentTargetClaim); err != nil {
965+
log.Error(err, "unable to update deploymentTargetClaim status condition.")
966+
return err
967+
}
968+
}
969+
return nil
970+
}

appstudio-controller/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ require (
105105
)
106106

107107
replace (
108+
github.com/redhat-appstudio/application-api => github.com/jparsai/application-api v0.0.0-20231204122745-31449b29f5d1
108109
github.com/redhat-appstudio/managed-gitops/backend => ../backend
109110
github.com/redhat-appstudio/managed-gitops/backend-shared => ../backend-shared
110111
github.com/redhat-appstudio/managed-gitops/utilities/db-migration => ../utilities/db-migration

appstudio-controller/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,8 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD
252252
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
253253
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
254254
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
255+
github.com/jparsai/application-api v0.0.0-20231204122745-31449b29f5d1 h1:nrwjrVYyGNQMYPmRQJqZ4TeJkk4kO1XTeAMuFJwyc18=
256+
github.com/jparsai/application-api v0.0.0-20231204122745-31449b29f5d1/go.mod h1:YvckuKHe82eWloGk0/BpSw4YYG2owrGZAanztbOj3pQ=
255257
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
256258
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
257259
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -343,8 +345,6 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
343345
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
344346
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
345347
github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
346-
github.com/redhat-appstudio/application-api v0.0.0-20231025105224-2790bb451725 h1:9808yVdQmzCLGrbedW6h4brggYqdnMpyMwKhFpx9/pE=
347-
github.com/redhat-appstudio/application-api v0.0.0-20231025105224-2790bb451725/go.mod h1:OvmeiVOItG2OSX/QE+vQwzOYfbOMBhBy43ZFxkWZJyc=
348348
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
349349
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
350350
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=

manifests/base/crd/overlays/local-dev/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33

44
resources:
5-
- https://github.com/redhat-appstudio/application-api/config/crd?ref=8d112632297181de2d5f209ab98015457d0abf31
5+
- https://github.com/jparsai/application-api/config/crd?ref=31449b29f5d1c1a42682bbfa2753ef6184a094c0
66
- https://github.com/codeready-toolchain/host-operator/config/crd?ref=6c9e07da3665f542448ff46fc91d7fa1bfd83853
77
- ../../base

0 commit comments

Comments
 (0)