Comments (5)
When there was a branch in the reconcile logic between the Flink job and the Beam job, I was concerned about the complexity of supporting one CRD. If a beam job is supported via FlinkRunner without a job server, it seem there is no need to separate the BeamJob CRD at this time. In the future, it may be necessary to separate FlinkJob CRDs from FlinkCluster if they become feature rich, but I don't think it is urgent as mentioned in the previous comments.
from flink-on-k8s-operator.
I think it's good to separate FlinkCluster's spec.job into separate CRDs. If you create separate CRDs such as FlinkJob and BeamJob, and add controllers for each, it seems to be a much more extensible structure.
In particular, Beam support - #64, #174 - will increase complexity if the current FlinkCluster CRD & controller supports it. I hope this issue is addressed to keep the operator simple and extensible.
from flink-on-k8s-operator.
Previously, I thought about job CRD even for job clusters, but that means users have to deal with 2 CRDs, but I want to keep things simple, that's why I embedded jobSpec in the FlinkCluster CRD.
from flink-on-k8s-operator.
I agree to keep it simple. In the current implementation, handling flink job with the FlinkCluster spec seems simple. However, as time goes by, I'm a little concerned that the current structure will be more complex as the community wants more functionality like Beam support. The seamless job update I suggested would have been less expensive to add functionality if there was a separate FlinkJob. I don't think it's urgent to seperate FlinkJob from the FlinkCluster now.
However, I don't think two CRDs will be burdensome for users. Just like the k8s apps/deployment spec includes a pod template. If the FlinkJob spec includes the FlinkCluster spec, the user who wants the job cluster will only need to handle the FlinkJob CR when creating the job cluster. In this case, you will not have to link FlinkJob to FlinkCluster by creating FlinkJob and FlinkCluster respectively. For example:
apiVersion: flinkoperator.k8s.io/v1beta1
kind: FlinkJob
metadata:
name: flink-job
spec:
jarFile: ./examples/streaming/WordCount.jar
className: org.apache.flink.streaming.examples.wordcount.WordCount
flinkClusterTemplate:
image:
name: flink:1.8.1
jobManager:
taskManager:
replicas: 2
flinkProperties:
from flink-on-k8s-operator.
With job CRD, how do you model Beam job?
from flink-on-k8s-operator.
Related Issues (20)
- cert-job POD failing while installing HELM charts HOT 4
- Flink Session Cluster Installation is faling HOT 9
- Flink Session Cluster REST handler exception HOT 1
- Flink Operator installation is failing HOT 1
- flinkProperties for job submitter
- no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
- Restarting a Job Without a Savepoint HOT 3
- Default log4j.properties file not compatible with log4j2
- "spotify/flink-on-k8s-operator" as alternative active fork
- Flink Service selector too lenient - selects other pods as well
- Is native High Availability (HA) on Kubernetes (K8s) supported by the operator?
- Controller incompatible with Kubernetes 1.22 HOT 1
- installing the operator via make deploy giving error HOT 3
- jobManager.accessScope is required or not?
- nodeSelector does not get picked up HOT 1
- no matches for kind "MutatingWebhookConfiguration" in version "admissionregistration.k8s.io/v1beta1",
- OperatorHub and Operator Lifecycle Manager OLM planned?
- fix: build failed,regenerate deepcopy code
- Flink-operator helm chart has invalid versions
- [Bug]encounter npe when cancel job with taking savepoint
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flink-on-k8s-operator.