surahman commented on issue #3724:
URL: 
https://github.com/apache/incubator-heron/issues/3724#issuecomment-974547209


   I think I have completed as much testing as I can to ensure this works. Here 
are the `StatefulSet`s for the Acking topology which consists of two `executor` 
Pods and one `manager` Pod. I can create a PR whenever but please keep in mind 
that this builds upon the [PVC 
PR](https://github.com/apache/incubator-heron/pull/3725).
   
   <details><summary>Manager</summary>
   
   ```yaml
   apiVersion: apps/v1
   kind: StatefulSet
   metadata:
     creationTimestamp: "2021-11-19T23:43:09Z"
     generation: 1
     name: acking-manager
     namespace: default
     resourceVersion: "794"
     uid: 81606d2d-f78e-41c5-9956-8225baa5cf27
   spec:
     podManagementPolicy: Parallel
     replicas: 1
     revisionHistoryLimit: 10
     selector:
       matchLabels:
         app: heron
         topology: acking
     serviceName: acking
     template:
       metadata:
         annotations:
           prometheus.io/port: "8080"
           prometheus.io/scrape: "true"
         creationTimestamp: null
         labels:
           app: heron
           topology: acking
       spec:
         containers:
         - command:
           - sh
           - -c
           - './heron-core/bin/heron-downloader-config kubernetes && 
./heron-core/bin/heron-downloader
             
distributedlog://zookeeper:2181/heronbkdl/acking-saad-tag-0-7762179603298019532.tar.gz
             . && SHARD_ID=${POD_NAME##*-} && echo shardId=${SHARD_ID} && 
./heron-core/bin/heron-executor
             --topology-name=acking 
--topology-id=acking39da483e-aed1-4701-af75-f80edeb12808
             --topology-defn-file=acking.defn 
--state-manager-connection=zookeeper:2181
             --state-manager-root=/heron 
--state-manager-config-file=./heron-conf/statemgr.yaml
             --tmanager-binary=./heron-core/bin/heron-tmanager 
--stmgr-binary=./heron-core/bin/heron-stmgr
             --metrics-manager-classpath=./heron-core/lib/metricsmgr/* 
--instance-jvm-opts="LVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvcg(61)(61)"
             --classpath=heron-api-examples.jar 
--heron-internals-config-file=./heron-conf/heron_internals.yaml
             --override-config-file=./heron-conf/override.yaml 
--component-ram-map=exclaim1:1073741824,word:1073741824
             --component-jvm-opts="" --pkg-type=jar 
--topology-binary-file=heron-api-examples.jar
             --heron-java-home=$JAVA_HOME 
--heron-shell-binary=./heron-core/bin/heron-shell
             --cluster=kubernetes --role=saad --environment=default 
--instance-classpath=./heron-core/lib/instance/*
             --metrics-sinks-config-file=./heron-conf/metrics_sinks.yaml 
--scheduler-classpath=./heron-core/lib/scheduler/*:./heron-core/lib/packing/*:./heron-core/lib/statemgr/*
             --python-instance-binary=./heron-core/bin/heron-python-instance 
--cpp-instance-binary=./heron-core/bin/heron-cpp-instance
             
--metricscache-manager-classpath=./heron-core/lib/metricscachemgr/* 
--metricscache-manager-mode=disabled
             --is-stateful=false 
--checkpoint-manager-classpath=./heron-core/lib/ckptmgr/*:./heron-core/lib/statefulstorage/*:
             --stateful-config-file=./heron-conf/stateful.yaml 
--checkpoint-manager-ram=1073741824
             --health-manager-mode=disabled 
--health-manager-classpath=./heron-core/lib/healthmgr/*
             --shard=$SHARD_ID --server-port=6001 
--tmanager-controller-port=6002 --tmanager-stats-port=6003
             --shell-port=6004 --metrics-manager-port=6005 
--scheduler-port=6006 --metricscache-manager-server-port=6007
             --metricscache-manager-stats-port=6008 
--checkpoint-manager-port=6009'
           env:
           - name: HOST
             valueFrom:
               fieldRef:
                 apiVersion: v1
                 fieldPath: status.podIP
           - name: POD_NAME
             valueFrom:
               fieldRef:
                 apiVersion: v1
                 fieldPath: metadata.name
           - name: var_one
             value: variable one
           - name: var_three
             value: variable three
           - name: var_two
             value: variable two
           image: apache/heron:testbuild
           imagePullPolicy: IfNotPresent
           name: manager
           ports:
           - containerPort: 5555
             name: tcp-port-kept
             protocol: TCP
           - containerPort: 5556
             name: udp-port-kept
             protocol: UDP
           - containerPort: 6001
             name: server
             protocol: TCP
           - containerPort: 6002
             name: tmanager-ctl
             protocol: TCP
           - containerPort: 6003
             name: tmanager-stats
             protocol: TCP
           - containerPort: 6004
             name: shell-port
             protocol: TCP
           - containerPort: 6005
             name: metrics-mgr
             protocol: TCP
           - containerPort: 6006
             name: scheduler
             protocol: TCP
           - containerPort: 6007
             name: metrics-cache-m
             protocol: TCP
           - containerPort: 6008
             name: metrics-cache-s
             protocol: TCP
           - containerPort: 6009
             name: ckptmgr
             protocol: TCP
           resources:
             limits:
               cpu: "3"
               memory: 4Gi
           securityContext:
             allowPrivilegeEscalation: false
           terminationMessagePath: /dev/termination-log
           terminationMessagePolicy: File
           volumeMounts:
           - mountPath: /shared_volume
             name: shared-volume
         - image: alpine
           imagePullPolicy: Always
           name: sidecar-container
           resources: {}
           terminationMessagePath: /dev/termination-log
           terminationMessagePolicy: File
           volumeMounts:
           - mountPath: /shared_volume
             name: shared-volume
         dnsPolicy: ClusterFirst
         restartPolicy: Always
         schedulerName: default-scheduler
         securityContext: {}
         terminationGracePeriodSeconds: 0
         tolerations:
         - effect: NoExecute
           key: node.kubernetes.io/not-ready
           operator: Exists
           tolerationSeconds: 10
         - effect: NoExecute
           key: node.kubernetes.io/unreachable
           operator: Exists
           tolerationSeconds: 10
         volumes:
         - emptyDir: {}
           name: shared-volume
     updateStrategy:
       rollingUpdate:
         partition: 0
       type: RollingUpdate
   status:
     collisionCount: 0
     currentReplicas: 1
     currentRevision: acking-manager-75dcc4c647
     observedGeneration: 1
     replicas: 1
     updateRevision: acking-manager-75dcc4c647
     updatedReplicas: 1
   
   ```
   
   </details>
   <details><summary>Executors</summary>
   
   ```yaml
   apiVersion: apps/v1
   kind: StatefulSet
   metadata:
     creationTimestamp: "2021-11-19T23:43:09Z"
     generation: 1
     name: acking-executors
     namespace: default
     resourceVersion: "789"
     uid: ee6bc457-6917-48a5-b31d-33b9b3e8cce0
   spec:
     podManagementPolicy: Parallel
     replicas: 2
     revisionHistoryLimit: 10
     selector:
       matchLabels:
         app: heron
         topology: acking
     serviceName: acking
     template:
       metadata:
         annotations:
           prometheus.io/port: "8080"
           prometheus.io/scrape: "true"
         creationTimestamp: null
         labels:
           app: heron
           topology: acking
       spec:
         containers:
         - command:
           - sh
           - -c
           - './heron-core/bin/heron-downloader-config kubernetes && 
./heron-core/bin/heron-downloader
             
distributedlog://zookeeper:2181/heronbkdl/acking-saad-tag-0-7762179603298019532.tar.gz
             . && SHARD_ID=$((${POD_NAME##*-} + 1)) && echo shardId=${SHARD_ID} 
&& ./heron-core/bin/heron-executor
             --topology-name=acking 
--topology-id=acking39da483e-aed1-4701-af75-f80edeb12808
             --topology-defn-file=acking.defn 
--state-manager-connection=zookeeper:2181
             --state-manager-root=/heron 
--state-manager-config-file=./heron-conf/statemgr.yaml
             --tmanager-binary=./heron-core/bin/heron-tmanager 
--stmgr-binary=./heron-core/bin/heron-stmgr
             --metrics-manager-classpath=./heron-core/lib/metricsmgr/* 
--instance-jvm-opts="LVhYOitIZWFwRHVtcE9uT3V0T2ZNZW1vcnlFcnJvcg(61)(61)"
             --classpath=heron-api-examples.jar 
--heron-internals-config-file=./heron-conf/heron_internals.yaml
             --override-config-file=./heron-conf/override.yaml 
--component-ram-map=exclaim1:1073741824,word:1073741824
             --component-jvm-opts="" --pkg-type=jar 
--topology-binary-file=heron-api-examples.jar
             --heron-java-home=$JAVA_HOME 
--heron-shell-binary=./heron-core/bin/heron-shell
             --cluster=kubernetes --role=saad --environment=default 
--instance-classpath=./heron-core/lib/instance/*
             --metrics-sinks-config-file=./heron-conf/metrics_sinks.yaml 
--scheduler-classpath=./heron-core/lib/scheduler/*:./heron-core/lib/packing/*:./heron-core/lib/statemgr/*
             --python-instance-binary=./heron-core/bin/heron-python-instance 
--cpp-instance-binary=./heron-core/bin/heron-cpp-instance
             
--metricscache-manager-classpath=./heron-core/lib/metricscachemgr/* 
--metricscache-manager-mode=disabled
             --is-stateful=false 
--checkpoint-manager-classpath=./heron-core/lib/ckptmgr/*:./heron-core/lib/statefulstorage/*:
             --stateful-config-file=./heron-conf/stateful.yaml 
--checkpoint-manager-ram=1073741824
             --health-manager-mode=disabled 
--health-manager-classpath=./heron-core/lib/healthmgr/*
             --shard=$SHARD_ID --server-port=6001 
--tmanager-controller-port=6002 --tmanager-stats-port=6003
             --shell-port=6004 --metrics-manager-port=6005 
--scheduler-port=6006 --metricscache-manager-server-port=6007
             --metricscache-manager-stats-port=6008 
--checkpoint-manager-port=6009'
           env:
           - name: HOST
             valueFrom:
               fieldRef:
                 apiVersion: v1
                 fieldPath: status.podIP
           - name: POD_NAME
             valueFrom:
               fieldRef:
                 apiVersion: v1
                 fieldPath: metadata.name
           - name: var_one
             value: variable one
           - name: var_three
             value: variable three
           - name: var_two
             value: variable two
           image: apache/heron:testbuild
           imagePullPolicy: IfNotPresent
           name: executor
           ports:
           - containerPort: 5555
             name: tcp-port-kept
             protocol: TCP
           - containerPort: 5556
             name: udp-port-kept
             protocol: UDP
           - containerPort: 6001
             name: server
             protocol: TCP
           - containerPort: 6002
             name: tmanager-ctl
             protocol: TCP
           - containerPort: 6003
             name: tmanager-stats
             protocol: TCP
           - containerPort: 6004
             name: shell-port
             protocol: TCP
           - containerPort: 6005
             name: metrics-mgr
             protocol: TCP
           - containerPort: 6006
             name: scheduler
             protocol: TCP
           - containerPort: 6007
             name: metrics-cache-m
             protocol: TCP
           - containerPort: 6008
             name: metrics-cache-s
             protocol: TCP
           - containerPort: 6009
             name: ckptmgr
             protocol: TCP
           resources:
             limits:
               cpu: "3"
               memory: 4Gi
             requests:
               cpu: "3"
               memory: 4Gi
           securityContext:
             allowPrivilegeEscalation: false
           terminationMessagePath: /dev/termination-log
           terminationMessagePolicy: File
           volumeMounts:
           - mountPath: /shared_volume
             name: shared-volume
         - image: alpine
           imagePullPolicy: Always
           name: sidecar-container
           resources: {}
           terminationMessagePath: /dev/termination-log
           terminationMessagePolicy: File
           volumeMounts:
           - mountPath: /shared_volume
             name: shared-volume
         dnsPolicy: ClusterFirst
         restartPolicy: Always
         schedulerName: default-scheduler
         securityContext: {}
         terminationGracePeriodSeconds: 0
         tolerations:
         - effect: NoExecute
           key: node.kubernetes.io/not-ready
           operator: Exists
           tolerationSeconds: 10
         - effect: NoExecute
           key: node.kubernetes.io/unreachable
           operator: Exists
           tolerationSeconds: 10
         volumes:
         - emptyDir: {}
           name: shared-volume
     updateStrategy:
       rollingUpdate:
         partition: 0
       type: RollingUpdate
   status:
     collisionCount: 0
     currentReplicas: 2
     currentRevision: acking-executors-588597559c
     observedGeneration: 1
     replicas: 2
     updateRevision: acking-executors-588597559c
     updatedReplicas: 2
   ```
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to