Allow colon in RBAC resource names

Signed-off-by: Jake Smith <jakemgsmith@gmail.com>
pull/9118/head
Jake Smith 5 years ago
parent cc1d2d62e9
commit 12e491c926

@ -203,6 +203,12 @@ func validateMetadataName(obj *K8sYamlStruct) error {
if len(obj.Metadata.Name) == 0 || len(obj.Metadata.Name) > 253 {
return fmt.Errorf("object name must be between 0 and 253 characters: %q", obj.Metadata.Name)
}
switch obj.Kind {
case "ClusterRole", "Role", "ClusterRoleBinding", "RoleBinding":
obj.Metadata.Name = strings.ReplaceAll(obj.Metadata.Name, ":", "")
}
// This will return an error if the characters do not abide by the standard OR if the
// name is left empty.
if err := chartutil.ValidateMetadataName(obj.Metadata.Name); err != nil {

@ -134,6 +134,7 @@ func TestValidateMetadataName(t *testing.T) {
"one_two": false,
"a..b": false,
"%^&#$%*@^*@&#^": false,
"example:com": false,
}
// The length checker should catch this first. So this is not true fuzzing.
@ -156,6 +157,17 @@ func TestValidateMetadataName(t *testing.T) {
}
}
}
md := &K8sYamlStruct{
Kind: "Role",
Metadata: k8sYamlMetadata{
Name: "system::kube-scheduler",
},
}
if err := validateMetadataName(md); err != nil {
t.Error(err)
}
}
func TestDeprecatedAPIFails(t *testing.T) {

Loading…
Cancel
Save