StatefulSetSpec spec = new StatefulSetSpecBuilder().withNewSelector().addToMatchLabels(idMap) .addToMatchLabels(SPRING_MARKER_KEY, SPRING_MARKER_VALUE).endSelector() .withVolumeClaimTemplates(persistentVolumeClaimBuilder.build()).withServiceName(appId) .withPodManagementPolicy("Parallel").withReplicas(replicas).withNewTemplate().withNewMetadata()
@Override public void visit(StatefulSetSpecBuilder item) { Map<String, String> selectorMatchLabels = extractSelector(getConfig(), Kind.STATEFUL_SET, enrichers); LabelSelector selector = item.buildSelector(); if (selector == null) { item.withNewSelector().addToMatchLabels(selectorMatchLabels).endSelector(); } else { MapUtil.mergeIfAbsent(selector.getMatchLabels(), selectorMatchLabels); } } }
@Override protected StatefulSet createClone(StatefulSet obj, String newName, String newDeploymentHash) { return new StatefulSetBuilder(obj) .editMetadata() .withResourceVersion(null) .withName(newName) .endMetadata() .editSpec() .withReplicas(0) .editSelector().addToMatchLabels(DEPLOYMENT_KEY, newDeploymentHash).endSelector() .editTemplate().editMetadata().addToLabels(DEPLOYMENT_KEY, newDeploymentHash).endMetadata().endTemplate() .endSpec() .build(); }
@Override protected void removeDeploymentKey(DoneableStatefulSet obj) { obj.editSpec() .editSelector().removeFromMatchLabels(DEPLOYMENT_KEY).endSelector() .editTemplate().editMetadata().removeFromLabels(DEPLOYMENT_KEY).endMetadata().endTemplate() .endSpec(); }
@Override protected void updateDeploymentKey(DoneableStatefulSet obj, String hash) { obj.editSpec() .editSelector().addToMatchLabels(DEPLOYMENT_KEY, hash).endSelector() .editTemplate().editMetadata().addToLabels(DEPLOYMENT_KEY, hash).endMetadata().endTemplate() .endSpec(); }