/** * Validates labels/annotations of Kubernetes resources * * @param map Label/Annotation of resource * @return */ public static boolean isValidLabelOrAnnotation(Map<String, String> map) { for(Map.Entry<String, String> entry : map.entrySet()) { if(!(isValidName(entry.getKey()) && isValidName(entry.getValue()))) { return false; } } return true; } }
@Test public void testNames() { assertTrue(KubernetesResourceUtil.isValidName(KubernetesResourceUtil.getName(configMap1))); assertFalse(KubernetesResourceUtil.isValidName("test.invalid.name")); assertTrue(KubernetesResourceUtil.isValidLabelOrAnnotation(KubernetesResourceUtil.getOrCreateAnnotations(configMap1))); assertFalse(KubernetesResourceUtil.isValidLabelOrAnnotation(Collections.singletonMap("NoUppercaseOrSpecialCharsLike=Equals", "bar"))); assertTrue(KubernetesResourceUtil.isValidName(KubernetesResourceUtil.sanitizeName("test.invalid.name"))); assertTrue(KubernetesResourceUtil.isValidName(KubernetesResourceUtil.sanitizeName("90notcool-n@me"))); } }