|
5 | 5 | "context" |
6 | 6 | "encoding/base64" |
7 | 7 | "encoding/json" |
8 | | - "io/ioutil" |
9 | 8 | "time" |
10 | 9 |
|
11 | 10 | "github.com/pkg/errors" |
@@ -175,35 +174,27 @@ func createSecret(ctx context.Context, client *kubernetes.Clientset, imagePullSe |
175 | 174 | var out bytes.Buffer |
176 | 175 | data := make(map[string][]byte) |
177 | 176 | if imagePullSecret.SecretType == "kubernetes.io/dockerconfigjson" { |
178 | | - //If secret type is dockerconfigjson, check if required field in data exists |
| 177 | + //Check if required field in data exists |
179 | 178 | v, found := imagePullSecret.Data[".dockerconfigjson"] |
180 | 179 | if !found { |
181 | 180 | return errors.Errorf("Secret type kubernetes.io/dockerconfigjson requires argument \".dockerconfigjson\"") |
182 | 181 | } |
183 | 182 | if len(imagePullSecret.Data) > 1 { |
184 | 183 | return errors.Errorf("Secret type kubernetes.io/dockerconfigjson accepts only one argument \".dockerconfigjson\"") |
185 | 184 | } |
186 | | - //Then, if data is a path to a config file, it is opened |
187 | | - configFile, err := ioutil.ReadFile(v) |
| 185 | + //K8s client accepts only Json formated files as data, provided data must be decoded and indented |
| 186 | + parsedConfig, err := base64.StdEncoding.DecodeString(v) |
188 | 187 | if err != nil { |
189 | | - //If data is not a valid path, we assume data is a base64 encoded config.json file |
190 | | - //Client only accepts Json formated files as data, so we decode and indent it (indentation is required) |
191 | | - parsedConfig, err := base64.StdEncoding.DecodeString(v) |
192 | | - if err != nil { |
193 | | - return errors.Wrap(err, "Secret's config file not found or unable to decode data.") |
194 | | - } |
195 | | - err = json.Indent(&out, parsedConfig, "", "\t") |
196 | | - if err != nil { |
197 | | - return errors.Wrap(err, "Unable to parse encoded data.") |
198 | | - } |
199 | | - data[".dockerconfigjson"] = out.Bytes() |
200 | | - } else { |
201 | | - data[".dockerconfigjson"] = configFile |
| 188 | + return errors.Wrap(err, "Unable to decode data.") |
202 | 189 | } |
203 | | - } else { |
204 | | - for k, v := range imagePullSecret.Data { |
205 | | - data[k] = []byte(v) |
| 190 | + err = json.Indent(&out, parsedConfig, "", "\t") |
| 191 | + if err != nil { |
| 192 | + return errors.Wrap(err, "Unable to parse encoded data.") |
206 | 193 | } |
| 194 | + data[".dockerconfigjson"] = out.Bytes() |
| 195 | + |
| 196 | + } else { |
| 197 | + return errors.Errorf("ImagePullSecret must be of type: kubernetes.io/dockerconfigjson") |
207 | 198 | } |
208 | 199 | secret := corev1.Secret{ |
209 | 200 | TypeMeta: metav1.TypeMeta{ |
|
0 commit comments