You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Fuyao Li (Jira)" <ji...@apache.org> on 2021/06/08 22:53:00 UTC
[jira] [Created] (FLINK-22933) Upgrade the Flink
Fabric8io/kubernetes-client version to >=5.4.0 to be FIPS compliant
Fuyao Li created FLINK-22933:
--------------------------------
Summary: Upgrade the Flink Fabric8io/kubernetes-client version to >=5.4.0 to be FIPS compliant
Key: FLINK-22933
URL: https://issues.apache.org/jira/browse/FLINK-22933
Project: Flink
Issue Type: Improvement
Components: Deployment / Kubernetes
Affects Versions: 1.13.1, 1.13.0
Reporter: Fuyao Li
The current Fabric8io version in Flink is 4.9.2
See link: [https://github.com/apache/flink/blob/master/flink-kubernetes/pom.xml#L35]
This version of Fabric8io library is not FIPS compliant ([https://www.sdxcentral.com/security/definitions/what-does-mean-fips-compliant/).]
Such function is added in Fabric8io.
[https://github.com/fabric8io/kubernetes-client/pull/2788]
[https://github.com/fabric8io/kubernetes-client/issues/2732]
I am trying to write a native kubernetes operator leveraging APIs and interfaces provided by Flink source code. For example, ApplicationDeployer.
I am writing my own implementation based on Yang's example code: https://github.com/wangyang0918/flink-native-k8s-operator
Using version 4.9.2 for my operator will be work perfectly, but it could cause FIPS compliant issues.
Using version 5.4.0 will run into issues since Fabric8io version 4 and version 5 API is not that compatible. I saw errors below.
{code:java}
Exception in thread "main" java.lang.AbstractMethodError: Receiver class io.fabric8.kubernetes.client.handlers.ServiceHandler does not define or inherit an implementation of the resolved method 'abstract java.lang.Object create(okhttp3.OkHttpClient, io.fabric8.kubernetes.client.Config, java.lang.String, java.lang.Object, boolean)' of interface io.fabric8.kubernetes.client.ResourceHandler.Exception in thread "main" java.lang.AbstractMethodError: Receiver class io.fabric8.kubernetes.client.handlers.ServiceHandler does not define or inherit an implementation of the resolved method 'abstract java.lang.Object create(okhttp3.OkHttpClient, io.fabric8.kubernetes.client.Config, java.lang.String, java.lang.Object, boolean)' of interface io.fabric8.kubernetes.client.ResourceHandler. at io.fabric8.kubernetes.client.utils.CreateOrReplaceHelper.lambda$createOrReplaceItem$0(CreateOrReplaceHelper.java:77) at io.fabric8.kubernetes.client.utils.CreateOrReplaceHelper.createOrReplace(CreateOrReplaceHelper.java:56) at io.fabric8.kubernetes.client.utils.CreateOrReplaceHelper.createOrReplaceItem(CreateOrReplaceHelper.java:91) at io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.createOrReplaceOrDeleteExisting(NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java:454) at io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.createOrReplace(NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java:297) at io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.createOrReplace(NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java:66) at org.apache.flink.kubernetes.kubeclient.Fabric8FlinkKubeClient.createJobManagerComponent(Fabric8FlinkKubeClient.java:113) at org.apache.flink.kubernetes.KubernetesClusterDescriptor.deployClusterInternal(KubernetesClusterDescriptor.java:274) at org.apache.flink.kubernetes.KubernetesClusterDescriptor.deployApplicationCluster(KubernetesClusterDescriptor.java:208) at org.apache.flink.client.deployment.application.cli.ApplicationClusterDeployer.run(ApplicationClusterDeployer.java:67) at org.apache.flink.kubernetes.operator.controller.FlinkApplicationController.reconcile(FlinkApplicationController.java:207) at org.apache.flink.kubernetes.operator.controller.FlinkApplicationController.run(FlinkApplicationController.java:172) at org.apache.flink.kubernetes.operator.KubernetesOperatorEntrypoint.main(KubernetesOperatorEntrypoint.java:74)2021-06-08 19:53:57,726 WARN io.fabric8.kubernetes.client.dsl.internal.WatcherWebSocketListener [] - Exec Failure
{code}
Since Fabric8io has fixed this issue, maybe we can bump the version in Flink to 5.4.0 or 5.4.1 that is released recently?
This will also bring additional benefits since users will be able to leverage new APIs provided in >=5.4.0 version if anyone need to build operators upon this.
See changelog: [https://github.com/fabric8io/kubernetes-client/blob/master/CHANGELOG.md]
cc [~fly_in_gis] [~rmetzger]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)