Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit 6ade219

Browse files
authored
Merge pull request #138 from aaronlevy/log-asset-error
Log on asset creation error - do not exit
2 parents c4e4cab + 74d353d commit 6ade219

File tree

1 file changed

+11
-20
lines changed

1 file changed

+11
-20
lines changed

pkg/bootkube/create.go

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,17 @@ func CreateAssets(manifestDir string, timeout time.Duration) error {
3131
createFn := func() (bool, error) {
3232
err := createAssets(manifestDir)
3333
if err != nil {
34-
glog.Warningf("Error creating assets: %v", err)
35-
// order matters, evaluate "shouldRetry" first
36-
return (shouldRetry(err) || shouldQuit(err)), err
34+
glog.Errorf("Error creating assets: %v", err)
35+
// If error is "system namespace not found" we should retry
36+
if apierrors.IsNotFound(err) {
37+
details := err.(*apierrors.StatusError).Status().Details
38+
if details.Name == api.NamespaceSystem && details.Kind == "namespaces" {
39+
return false, nil // retry
40+
}
41+
}
42+
UserOutput("\nError creating assets: %v\n", err)
43+
UserOutput("\nNOTE: Bootkube failed to create some cluster assets. It is important that manifest errors are resolved and resubmitted to the apiserver.\n")
44+
UserOutput("For example, after resolving issues: kubectl create -f <failed-manifest>\n\n")
3745
}
3846
return true, nil
3947
}
@@ -53,23 +61,6 @@ func CreateAssets(manifestDir string, timeout time.Duration) error {
5361
return nil
5462
}
5563

56-
func shouldRetry(err error) bool {
57-
// Retry if error is system namespace not found
58-
if apierrors.IsNotFound(err) {
59-
details := err.(*apierrors.StatusError).Status().Details
60-
return !(details.Name == api.NamespaceSystem && details.Kind == "namespaces")
61-
}
62-
return false
63-
}
64-
65-
func shouldQuit(err error) bool {
66-
// Fail on anything but "already exists"
67-
if !apierrors.IsAlreadyExists(err) {
68-
return true
69-
}
70-
return false
71-
}
72-
7364
func createAssets(manifestDir string) error {
7465
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
7566
&clientcmd.ClientConfigLoadingRules{},

0 commit comments

Comments
 (0)