interpreter pod cascade delete on zeppelin-server delete

This commit is contained in:
Lee moon soo 2018-11-22 14:12:40 +09:00
parent 86e8764357
commit 7fe9823b1f
4 changed files with 43 additions and 1 deletions

View file

@ -7,6 +7,15 @@ metadata:
app: {{POD_NAME}}
interpreterGroupId: {{INTP_ID}}
interpreterSettingName: {{INTP_SETTING}}
{% if OWNER_UID is defined and OWNER_UID %}
ownerReferences:
- apiVersion: v1
controller: false
blockOwnerDeletion: false
kind: Pod
name: {{OWNER_NAME}}
uid: {{OWNER_UID}}
{% endif %}
spec:
automountServiceAccountToken: false
restartPolicy: Never
@ -24,6 +33,15 @@ apiVersion: v1
metadata:
namespace: {{NAMESPACE}}
name: {{POD_NAME}} # keep Service name the same to Pod name.
{% if OWNER_UID is defined and OWNER_UID %}
ownerReferences:
- apiVersion: v1
controller: false
blockOwnerDeletion: false
kind: Pod
name: {{OWNER_NAME}}
uid: {{OWNER_UID}}
{% endif %}
spec:
ports:
- name: intp

View file

@ -16,6 +16,16 @@ spec:
value: /zeppelin
- name: ZEPPELIN_SERVER_RPC_PORTRANGE
value: 12320:12320
- name: POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
---
kind: Service
apiVersion: v1

View file

@ -44,7 +44,7 @@
<dependency>
<groupId>com.hubspot.jinjava</groupId>
<artifactId>jinjava</artifactId>
<version>2.0.11-java7</version>
<version>2.4.12</version>
</dependency>
</dependencies>

View file

@ -248,10 +248,24 @@ public class K8sRemoteInterpreterProcess extends RemoteInterpreterProcess {
var.put("CALLBACK_PORT", zeppelinServiceRpcPort); // interpreter.sh -p
var.put("INTP_SETTING", interpreterSettingName); // interpreter.sh -g
var.put("INTP_REPO", "/tmp/local-repo"); // interpreter.sh -l
var.put("OWNER_UID", ownerUID());
var.put("OWNER_NAME", ownerName());
var.putAll(Maps.fromProperties(properties)); // interpreter properties override template variables
return var;
}
/**
* Get UID of owner (zeppelin-server pod) for garbage collection
* https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/
*/
private String ownerUID() {
return System.getenv("POD_UID");
}
private String ownerName() {
return System.getenv("POD_NAME");
}
private String getRandomString(int length) {
char[] chars = "abcdefghijklmnopqrstuvwxyz".toCharArray();