Fix resume waiting
This commit is contained in:
1
.github/workflows/e2e.yaml
vendored
1
.github/workflows/e2e.yaml
vendored
@@ -99,5 +99,6 @@ jobs:
|
|||||||
kubectl version --client --short
|
kubectl version --client --short
|
||||||
kustomize version --short
|
kustomize version --short
|
||||||
kubectl -n gitops-system get all
|
kubectl -n gitops-system get all
|
||||||
|
kubectl -n gitops-system get kustomizations -oyaml
|
||||||
kubectl -n gitops-system logs deploy/source-controller
|
kubectl -n gitops-system logs deploy/source-controller
|
||||||
kubectl -n gitops-system logs deploy/kustomize-controller
|
kubectl -n gitops-system logs deploy/kustomize-controller
|
||||||
|
|||||||
@@ -5,9 +5,12 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1alpha1"
|
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1alpha1"
|
||||||
|
sourcev1 "github.com/fluxcd/source-controller/api/v1alpha1"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
var resumeKsCmd = &cobra.Command{
|
var resumeKsCmd = &cobra.Command{
|
||||||
@@ -55,7 +58,7 @@ func resumeKsCmdRun(cmd *cobra.Command, args []string) error {
|
|||||||
|
|
||||||
logWaiting("waiting for kustomization sync")
|
logWaiting("waiting for kustomization sync")
|
||||||
if err := wait.PollImmediate(pollInterval, timeout,
|
if err := wait.PollImmediate(pollInterval, timeout,
|
||||||
isKustomizationReady(ctx, kubeClient, name, namespace)); err != nil {
|
isKustomizationResumed(ctx, kubeClient, name, namespace)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,3 +77,33 @@ func resumeKsCmdRun(cmd *cobra.Command, args []string) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isKustomizationResumed(ctx context.Context, kubeClient client.Client, name, namespace string) wait.ConditionFunc {
|
||||||
|
return func() (bool, error) {
|
||||||
|
var kustomization kustomizev1.Kustomization
|
||||||
|
namespacedName := types.NamespacedName{
|
||||||
|
Namespace: namespace,
|
||||||
|
Name: name,
|
||||||
|
}
|
||||||
|
|
||||||
|
err := kubeClient.Get(ctx, namespacedName, &kustomization)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, condition := range kustomization.Status.Conditions {
|
||||||
|
if condition.Type == sourcev1.ReadyCondition {
|
||||||
|
if condition.Status == corev1.ConditionTrue {
|
||||||
|
return true, nil
|
||||||
|
} else if condition.Status == corev1.ConditionFalse {
|
||||||
|
if condition.Reason == kustomizev1.SuspendedReason {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return false, fmt.Errorf(condition.Message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user