protected static HasMetadata mergeConfigMaps(ConfigMap cm1, ConfigMap cm2, Logger log, boolean switchOnLocalCustomisation) { ConfigMap cm1OrCopy = cm1; if (!switchOnLocalCustomisation) { // lets copy the original to avoid modifying it cm1OrCopy = new ConfigMapBuilder(cm1OrCopy).build(); } log.info("Merging 2 resources for " + KubernetesHelper.getKind(cm1OrCopy) + " " + KubernetesHelper.getName(cm1OrCopy) + " from " + getSourceUrlAnnotation(cm1OrCopy) + " and " + getSourceUrlAnnotation(cm2) + " and removing " + getSourceUrlAnnotation(cm1OrCopy)); cm1OrCopy.setData(mergeMapsAndRemoveEmptyStrings(cm2.getData(), cm1OrCopy.getData())); mergeMetadata(cm1OrCopy, cm2); return cm1OrCopy; }
public void addOpenShiftResources(List<HasMetadata> items) { for (HasMetadata item : items) { if (item instanceof Template) { Template template = (Template) item; if (!KubernetesResourceUtil.isAppCatalogResource(template)) { List<HasMetadata> objects = notNullList(template.getObjects()); String sourceUrl = getSourceUrlAnnotation(template); if (StringUtils.isNotBlank(sourceUrl)) { for (HasMetadata object : objects) { setSourceUrlAnnotationIfNotSet(object, sourceUrl); } } addOpenShiftResources(objects); mergeParametersIntoMap(templateParameters, notNullList(template.getParameters())); continue; } } KindAndName key = new KindAndName(item); HasMetadata old = openshiftDependencyResources.get(key); if (old != null) { log.warn("Duplicate OpenShift resources for %s at %s and %s", key, getSourceUrlAnnotation(old), getSourceUrlAnnotation(item)); } openshiftDependencyResources.put(key, item); } }
log.info("Merging 2 resources for " + KubernetesHelper.getKind(resource1OrCopy) + " " + KubernetesHelper.getName(resource1OrCopy) + " from " + getSourceUrlAnnotation(resource1OrCopy) + " and " + getSourceUrlAnnotation(resource2) + " and removing " + getSourceUrlAnnotation(resource1OrCopy)); return resource1OrCopy;