func addKeyFromLiteralToSecret(secret *api.Secret, keyName string, data []byte) error { if !validation.IsSecretKey(keyName) { return fmt.Errorf("%v is not a valid key name for a secret", keyName) } if _, entryExists := secret.Data[keyName]; entryExists { return fmt.Errorf("cannot add key %s, another key by that name already exists: %v.", keyName, secret.Data) } secret.Data[keyName] = data return nil }
// addKeyFromLiteralToConfigMap adds the given key and data to the given config map, // returning an error if the key is not valid or if the key already exists. func addKeyFromLiteralToConfigMap(configMap *api.ConfigMap, keyName, data string) error { // Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys // to be consistent; validation.IsSecretKey is used here intentionally. if !validation.IsSecretKey(keyName) { return fmt.Errorf("%v is not a valid key name for a configMap", keyName) } if _, entryExists := configMap.Data[keyName]; entryExists { return fmt.Errorf("cannot add key %s, another key by that name already exists: %v.", keyName, configMap.Data) } configMap.Data[keyName] = data return nil }
// ValidateConfigMap tests whether required fields in the ConfigMap are set. func ValidateConfigMap(cfg *extensions.ConfigMap) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, apivalidation.ValidateObjectMeta(&cfg.ObjectMeta, true, ValidateConfigMapName, field.NewPath("metadata"))...) for key := range cfg.Data { if !apivalidation.IsSecretKey(key) { allErrs = append(allErrs, field.Invalid(field.NewPath("data").Key(key), key, fmt.Sprintf("must have at most %d characters and match regex %s", validation.DNS1123SubdomainMaxLength, apivalidation.SecretKeyFmt))) } } return allErrs }
func addKeyToSecret(keyName, filePath string, secretData map[string][]byte) error { if !kvalidation.IsSecretKey(keyName) { return fmt.Errorf("%v is not a valid key name for a secret", keyName) } if _, entryExists := secretData[keyName]; entryExists { return fmt.Errorf("cannot add key %s from path %s, another key by that name already exists: %v.", keyName, filePath, secretData) } data, err := ioutil.ReadFile(filePath) if err != nil { return err } secretData[keyName] = data return nil }