diff --git a/pkg/provision/workspace/pull_secret.go b/pkg/provision/workspace/pull_secret.go index d5f446cc3..fd0f16731 100644 --- a/pkg/provision/workspace/pull_secret.go +++ b/pkg/provision/workspace/pull_secret.go @@ -18,6 +18,7 @@ package workspace import ( "context" "fmt" + "time" "github.com/devfile/devworkspace-operator/pkg/provision/sync" "k8s.io/apimachinery/pkg/types" @@ -30,6 +31,10 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ) +const ( + pullSecretCreationTimeout time.Duration = 5_000_000_000 // 5 seconds +) + type PullSecretsProvisioningStatus struct { ProvisioningStatus v1alpha1.PodAdditions @@ -70,6 +75,15 @@ func PullSecrets(clusterAPI sync.ClusterAPI, serviceAccountName, namespace strin } } + if len(serviceAccount.ImagePullSecrets) == 0 && serviceAccount.CreationTimestamp.Add(pullSecretCreationTimeout).After(time.Now()) { + return PullSecretsProvisioningStatus{ + ProvisioningStatus: ProvisioningStatus{ + Requeue: true, + Message: "Waiting for image pull secrets", + }, + } + } + dockerCfgs := serviceAccount.ImagePullSecrets for _, s := range secrets.Items { if s.Type == corev1.SecretTypeDockercfg || s.Type == corev1.SecretTypeDockerConfigJson {