Skip to content

Commit

Permalink
The new version of k8s client has some problems with createReplace(li…
Browse files Browse the repository at this point in the history
…st) for sufficiently complex lists.
  • Loading branch information
jkremser committed Jun 24, 2019
1 parent be34926 commit 8a3ce34
Showing 1 changed file with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import io.radanalytics.operator.Constants;
import io.radanalytics.operator.common.AbstractOperator;
import io.radanalytics.operator.common.Operator;
import io.radanalytics.types.Master;
import io.radanalytics.types.SparkCluster;
import io.radanalytics.types.Worker;
import org.slf4j.Logger;
Expand Down Expand Up @@ -62,6 +63,14 @@ protected void onDelete(SparkCluster cluster) {
@Override
protected void onModify(SparkCluster newCluster) {
String name = newCluster.getName();

// if an empty master/worker was passed
if (null == newCluster.getMaster()) {
newCluster.setMaster(new Master());
}
if (null == newCluster.getWorker()) {
newCluster.setWorker(new Worker());
}
int newWorkers = Optional.ofNullable(newCluster.getWorker()).orElse(new Worker()).getInstances();

SparkCluster existingCluster = getClusters().getCluster(name);
Expand All @@ -77,7 +86,13 @@ protected void onModify(SparkCluster newCluster) {
} else {
log.info("{}recreating{} cluster {}{}{}", re(), xx(), ye(), existingCluster.getName(), xx());
KubernetesResourceList list = getDeployer().getResourceList(newCluster);
client.resourceList(list).inNamespace(namespace).createOrReplace();
try {
client.resourceList(list).inNamespace(namespace).createOrReplace();
} catch (Exception e) {
log.warn("{}deleting and creating{} cluster {}{}{}", re(), xx(), ye(), existingCluster.getName(), xx());
client.resourceList(list).inNamespace(namespace).delete();
client.resourceList(list).inNamespace(namespace).createOrReplace();
}
getClusters().put(newCluster);
}
}
Expand Down

0 comments on commit 8a3ce34

Please sign in to comment.