The punch operator is actually a set of several Kubernetes Operators in charge of managing the punch CRDs (Custom Resources Definitions). Several types of CRDs are supported by the Punch:
Once the operator is up and running on your Kubernetes (see below) here is how to use it:
To start a punchline (flink,spark,bapp,sapp,bpun,spun) simply type:
kubectl apply -f <punchline_crd.yaml>
To stop it:
kubectl delete -f <punchline_crd.yaml>
To list the deployed punchlines:
kubectl get sparkpunchlines
kubectl get flinklines
kubectl get platforms
kubectl get batchapplication
kubectl get streamapplication
kubectl get batchpunchline
kubectl get streampunchline
Starting a plan is similar. I.e you use the same commands.
kubectl apply -f <plan_crd.yaml>
kubectl apply -f <diagram_crd.yaml>
To stop it:
kubectl delete -f <plan_crd.yaml>
kubectl delete -f <diagram_crd.yaml>
# schedulers
kubectl get plans
kubectl get diagrams
Configuration | Description | Default value |
---|---|---|
kubernetes.image | The Punch Operator docker image | ghcr.io/punchplatform/operator:v1.0.2 |
kubernetes.imagePullPolicy | The Kubernetes image pull policy | IfNotPresent |
kubernetes.imageSecret | Secret name to pull docker image | admin-secret |
Configuration | Description | Default value |
---|---|---|
additionalAnnotations | Add custom annotations for pod Operator | empty |
additionalLabels | Add custom labels for pod Operator | empty |
Configuration | Description | Default value |
---|---|---|
operator.punch.flinkline.enable | If Flinkline CRD is enabled | true |
operator.punch.flinkline.workers | Number of threads to manage Flinkline CRDs. This is not the number of workers within a topology. | 2 |
Configuration | Description | Default value |
---|---|---|
operator.punch.sparkpunchline.enable | If SparkPunchline CRD is enabled | true |
operator.punch.sparkpunchline.workers | Number of threads to manage SparkPunchline CRDs. This is not the number of workers within a topology. | 2 |
Configuration | Description | Default value |
---|---|---|
operator.punch.batchApplication.enable | If Application CRD is enabled | true |
operator.punch.batchApplication.workers | Number of threads to manage Application CRDs. This is not the number of workers within the application. | 2 |
Configuration | Description | Default value |
---|---|---|
operator.punch.streamApplication.enable | If Application CRD is enabled | true |
operator.punch.streamApplication.workers | Number of threads to manage Application CRDs. This is not the number of workers within the application. | 2 |
Configuration | Description | Default value |
---|---|---|
operator.punch.plan.enable | If Plan CRD is enabled | true |
operator.punch.plan.workers | Number of threads to manage Plan CRDs. This is not the number of workers within the planned application. | 2 |
Configuration | Description | Default value |
---|---|---|
operator.punch.diagram.enable | If Diagram CRD is enabled | true |
operator.punch.diagram.workers | Number of threads to manage Diagram CRDs. This is not the number of workers within the planned application. | 2 |
The CRDs will be installed first, and then the punch Operator will be installed by Helm.
helm install my-punchoperator-release $PUNCHPLATFORM_HELM_CHARTS/operator -n punchoperator-system
First, run :
helm uninstall my-punchoperator-release -n punchoperator-system
Helm will not remove CRD while uninstalling. This must be done manually. Check Helm limitations on CRD.