@@ -13,11 +13,13 @@ import (
13
13
14
14
"github.com/google/uuid"
15
15
"k8s.io/cli-runtime/pkg/genericclioptions"
16
+ "k8s.io/klog"
16
17
cmdutil "k8s.io/kubectl/pkg/cmd/util"
17
18
"sigs.k8s.io/cli-utils/pkg/common"
18
19
"sigs.k8s.io/cli-utils/pkg/inventory/configmap"
19
20
"sigs.k8s.io/kustomize/kyaml/kio"
20
21
"sigs.k8s.io/kustomize/kyaml/kio/filters"
22
+ "sigs.k8s.io/kustomize/kyaml/openapi"
21
23
)
22
24
23
25
const (
@@ -60,6 +62,7 @@ func (i *InitOptions) Complete(args []string) error {
60
62
return err
61
63
}
62
64
i .Dir = dir
65
+ klog .V (4 ).Infof ("init directory: %s" , i .Dir )
63
66
64
67
ns , err := FindNamespace (i .factory .ToRawKubeConfigLoader (), i .Dir )
65
68
if err != nil {
@@ -99,6 +102,7 @@ func FindNamespace(loader namespaceLoader, dir string) (string, error) {
99
102
return "" , err
100
103
}
101
104
if enforceNamespace {
105
+ klog .V (6 ).Infof ("enforcing namespace: %s" , namespace )
102
106
return namespace , nil
103
107
}
104
108
@@ -107,8 +111,10 @@ func FindNamespace(loader namespaceLoader, dir string) (string, error) {
107
111
return "" , err
108
112
}
109
113
if allInSameNs {
114
+ klog .V (6 ).Infof ("all in same namespace: %s" , ns )
110
115
return ns , nil
111
116
}
117
+ klog .V (6 ).Infof ("returning namespace: %s" , namespace )
112
118
return namespace , nil
113
119
}
114
120
@@ -148,16 +154,24 @@ func allInSameNamespace(packageDir string) (string, bool, error) {
148
154
if err != nil {
149
155
return "" , false , err
150
156
}
157
+ // Skip found cluster-scoped resources. If not found, just assume namespaced.
158
+ namespaced , found := openapi .IsNamespaceScoped (rm .TypeMeta )
159
+ if found && ! namespaced {
160
+ continue
161
+ }
151
162
if rm .Namespace == "" {
163
+ klog .V (6 ).Infof ("one resource missing namespace (%s): return empty namespace" , rm .Name )
152
164
return "" , false , nil
153
165
}
154
166
if ns == "" {
155
167
ns = rm .Namespace
156
168
} else if rm .Namespace != ns {
169
+ klog .V (6 ).Infof ("two namespaces not same: %s versus %s" , rm .Namespace , ns )
157
170
return "" , false , nil
158
171
}
159
172
}
160
173
if ns != "" {
174
+ klog .V (6 ).Infof ("returning empty namespace" )
161
175
return ns , true , nil
162
176
}
163
177
return "" , false , nil
@@ -208,6 +222,7 @@ func (i *InitOptions) fillInValues() string {
208
222
nowStr := now .Format ("2006-01-02 15:04:05 MST" )
209
223
randomSuffix := common .RandomStr (now .UTC ().UnixNano ())
210
224
manifestStr := i .Template
225
+ klog .V (4 ).Infof ("namespace/inventory-id: %s/%s" , i .Namespace , i .InventoryID )
211
226
manifestStr = strings .ReplaceAll (manifestStr , "<DATETIME>" , nowStr )
212
227
manifestStr = strings .ReplaceAll (manifestStr , "<NAMESPACE>" , i .Namespace )
213
228
manifestStr = strings .ReplaceAll (manifestStr , "<RANDOMSUFFIX>" , randomSuffix )
@@ -220,6 +235,7 @@ func (i *InitOptions) Run() error {
220
235
if fileExists (manifestFilePath ) {
221
236
return fmt .Errorf ("inventory object template file already exists: %s" , manifestFilePath )
222
237
}
238
+ klog .V (4 ).Infof ("creating manifest filename: %s" , manifestFilePath )
223
239
f , err := os .Create (manifestFilePath )
224
240
if err != nil {
225
241
return fmt .Errorf ("unable to create inventory object template file: %s" , err )
0 commit comments