Git Product home page Git Product logo

java's Introduction

Kubernetes Java Client

build Client Capabilities Client Support Level Maven Central Sonatype Nexus (Snapshots)

Java client for the kubernetes API.

To start using Kubernetes Java Client

See the wiki page and documentation here.

Release

Starting from 20.0.0 (Kubernetes 1.28), client-java-api was introduced non-backward-compatible changes. Optional parameters are now consolidated into a single object, and Java8 support has been removed. For Java8 users or those preferring the old SDK interface, a legacy SDK module version is available with a "-legacy" suffix, like 20.0.0-legacy.

Development

Support

If you need support, start with checking whether you're hitting known issues. If that doesn't work, please open an issue to describe the cases. Additionally, before you file an issue, please search existing issues to see if your issue is already covered.

You can also reach out to us via #kubernetes-client slack channel.

java's People

Contributors

archcosmo avatar awesominat avatar brendanburns avatar brendandburns avatar cizezsy avatar codefromthecrypt avatar dddddai avatar dependabot[bot] avatar dsyer avatar himanshug avatar jglick avatar jhbae200 avatar k8s-ci-robot avatar karthikkondapally avatar kozjan avatar lewisheadden avatar lwander avatar mbohlool avatar neverrar avatar rjeberhard avatar sarveshkaushal avatar scovl avatar simingweng avatar sullis avatar tony-clarke-amdocs avatar ukclivecox avatar wind57 avatar wkclz avatar yoshioterada avatar yue9944882 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

java's Issues

Adding API calls with missing optional parameters

TODO: Better title.

There are many optional parameters in API calls, setting them to null would make a very ugly call like:

V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);

Also adding an optional parameter to an API call (in a newer version of kubernetes) is not backward compatible as it will add another parameter to API call in java and all code need to be updated for that.

I suggest we generate every possible variation of API call with regard to optional parameters, e.g.:

// Optional _continue parameter
public V1PodList listPodForAllNamespaces(String fieldSelector, Boolean includeUninitialized, String labelSelector, Integer limit, String pretty, String resourceVersion, Integer timeoutSeconds, Boolean watch) throws ApiException {
  return this.listPodForAllNamespaces(null, fieldSelector, includeUninitialized, labelSelector, limit, pretty, resourceVersion, timeoutSeconds, watch)
}

...

// original call
public V1PodList listPodForAllNamespaces(String _continue, String fieldSelector, Boolean includeUninitialized, String labelSelector, Integer limit, String pretty, String resourceVersion, Integer timeoutSeconds, Boolean watch) throws ApiException {
...
}

cc @brendandburns @lwander any thoughts?

getting started

Hello everybody.
I am trying to use the java client to develop a new solution on kubernetes.
But when I try to use the Example.java, after set my pom.xml on maven dependency, I get some errors.

null for gcp Exception in thread "main" io.kubernetes.client.ApiException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at io.kubernetes.client.ApiClient.execute(ApiClient.java:801) at io.kubernetes.client.apis.CoreV1Api.listPodForAllNamespacesWithHttpInfo(CoreV1Api.java:16967) at io.kubernetes.client.apis.CoreV1Api.listPodForAllNamespaces(CoreV1Api.java:16948) at br.ufpe.cin.gfads.microservice_client.Example.main(Example.java:18) Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) at sun.security.ssl.Handshaker.process_record(Handshaker.java:961) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) at com.squareup.okhttp.internal.io.RealConnection.connectTls(RealConnection.java:192) at com.squareup.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:149) at com.squareup.okhttp.internal.io.RealConnection.connect(RealConnection.java:112) at com.squareup.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184) at com.squareup.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126) at com.squareup.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95) at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281) at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224) at com.squareup.okhttp.Call.getResponse(Call.java:286) at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:243) at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:205) at com.squareup.okhttp.Call.execute(Call.java:80) at io.kubernetes.client.ApiClient.execute(ApiClient.java:797) ... 3 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496) ... 23 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392) ... 29 more

I checked on my terminal, and if I ask it about my nodes, I get what is expect.:

vinicius@vinicius-VPCEG17FB:~/Documentos$ kubectl get nodes NAME STATUS ROLES AGE VERSION swarm1 Ready master 10d v1.8.0 swarm5 Ready <none> 10d v1.8.0

what is wrong?

Getting exception from deleteNamespacedStatefulSet() call

Hi,

I was getting exception when I issued deleteNamespacedStatefulSet() call. The call did delete statefulset, but it throw the exception back to caller.

Exception:
java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2004 path $.status

Here is my code,
V1DeleteOptions deleteOptions = new V1DeleteOptions()
Boolean orphanDependents = true

apiInstance.deleteNamespacedStatefulSet(name, namespace, deleteOptions, null, 60, orphanDependents, null)

Thanks.

Problems w/ automatic client inside a cluster...

Reported by a user:

Hey everyone! I am having an issue running the new java-client inside a cluster. I am using

ApiClient client = Config.defaultClient();
Configuration.setDefaultApiClient(client);

to acquire a client, which works locally, but I get this when the code is executed inside a cluster:

java.lang.RuntimeException: No OAuth2 authentication configured!

Question on thread safety

Which objects in the API are thread-safe? I assume the ApiClient is thread safe, since it is stored statically in the Configuration. Are the various API objects, such as CoreV1Api also thread-safe?

Determine where the right home for client extensions are...

When I wrote Exec I placed it in the util directory, because I wanted everything in kubernetes to be generated code.

When @mbohlool added Watch he placed it in kubernetes

We should only place clients in one place. This issue is to figure out where that is.

@mbohlool , @lwander I think separating generated from non-generated code is the right idea as it will make management easier in the long term. What do you think?

Thanks!

Implement base interface for most Kubernetes objects

Most of the Kubernetes objects have a set of fields in common:

  • kind
  • apiVersion
  • metadata
  • spec

The objects that support this really need to reflect that by implementing an interface and possibly extending a base class.

statefulset rolling update issue

Hi,
'm following the document: " https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets " for updating my statefulset to use new image version (rolling update).

  1. On issuing the command:
    kubectl patch statefulset my_statefulset_name -p '{"spec":{"updateStrategy":{"type":"RollingUpdate"}}}'
    Output: my_statefulset_name patched.

  2. On issuing the command:
    kubectl patch statefulset my_statefulset_name --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"my_image"}]'
    Output: my_statefulset_name patched

But, nothing happens, I don't see any pods recreating with the new image mentioned. What's happening here? Where to find the logs on what's going wrong here? kubectl describe pod was not helpful.

Note: If I manually delete the pods, the new pods comes up with new image specified as part of patch command. Is this the expected behavior?

Yaml file refers to apiVersion: apps/v1beta1

Propose release 0.2.0

@mbohlool @brendandburns

This will give us a chance to test the release process again now that I've run it once. We'll likely promote this to 1.0.0-beta.1 if everything goes smoothly. I'll link to release notes & an updated version matrix here.

Not sufficient exception information

Hi,

I am using createNamespacedStatefulSet(...) api to create a new statefulset. The statefulset is created, but I am getting the following error which did not have sufficient information to tell me where is the error for me to fix. Also, what is the api for kubernetes apply?

org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'class V1beta1StatefulSet {
apiVersion: apps/v1beta1
kind: StatefulSet
metadata: class V1ObjectMeta {
...
}' with class 'io.kubernetes.client.models.V1beta1StatefulSet' to class 'io.kubernetes.client.models.AppsV1beta1Deployment'

Thanks.

Improve "automagic" client creation.

Order should be:

  • Check for $KUBECONFIG env var
  • Check for in cluster configuration (service account)
  • Check for $HOME/.kube/config
  • Check for kube proxy (localhost:8001)
  • Default to localhost:8080

listNamespacedControllerRevision and readNamespacedControllerRevision questions

Hi,
I have two questions.

  1. Call `readNamespacedControllerRevision`, but get "Not Found".  If I make the api call listNamespacedControllerRevision, I can get result back.
    

apiInstance.readNamespacedControllerRevision(name, namespace, null, null, null)

  1. Call listNamespacedControllerRevision and fail to get item(0).data from result. The result only contains item(0).metadata.

apiInstance.listNamespacedControllerRevision(namespace, pretty, null, null, null, "app=abc", 10, null, 30, null)

Thanks

How To Create New Pod

I have a pod.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: my-name
spec:
...

Using kubectl I can create this pod with:

kubectl apply -f pod.yaml

How can I do this with this java API?

My first attempt was to use createNamespacedPod:

V1Pod pod = api.createNamespacedPod("default", podBody, "false");

My pod body I want to create:

		V1ObjectMeta meta = new V1ObjectMeta();
		meta.name("my-name");

		V1EnvVar addr = new V1EnvVar();
		addr.name("var1");
		addr.value("value1");

		V1EnvVar port = new V1EnvVar();
		addr.name("var2");
		addr.value("value2");

		V1ResourceRequirements res = new V1ResourceRequirements();
		Map<String, String> limits = new HashMap<>();
		limits.put("cpu", "300m");
		limits.put("memory", "500Mi");
		res.limits(limits);

		V1Container container = new V1Container();
		container.name("my-name");
		container.image("my-image");
		container.env(Arrays.asList(addr, port));
		container.resources(res);

		V1PodSpec spec = new V1PodSpec();
		spec.containers(Arrays.asList(container));

		V1Pod podBody = new V1Pod();
		podBody.apiVersion("v1");
		podBody.kind("Pod");
		podBody.metadata(meta);
		podBody.spec(spec);

I am getting:

Exception in thread "main" io.kubernetes.client.ApiException: Unprocessable Entity
	at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:882)
	at io.kubernetes.client.ApiClient.execute(ApiClient.java:798)
	at io.kubernetes.client.apis.CoreV1Api.createNamespacedPodWithHttpInfo(CoreV1Api.java:8223)
	at io.kubernetes.client.apis.CoreV1Api.createNamespacedPod(CoreV1Api.java:8207)

EDIT: Sorry, I did not include the code that is actually causing the problem, added in the env vars and resource limits part. It works correctly when that code is not included:
Pod created when I delete:

		V1EnvVar addr = new V1EnvVar();
		addr.name("var1");
		addr.value("value1");

		V1EnvVar port = new V1EnvVar();
		addr.name("var2");
		addr.value("value2");

		V1ResourceRequirements res = new V1ResourceRequirements();
		Map<String, String> limits = new HashMap<>();
		limits.put("cpu", "300m");
		limits.put("memory", "500Mi");
		res.limits(limits);

Kubernetes Resource Serialization

Hi team,

Assuming I have the JSON representation of some Kubernetes resource retrieved from the Kubernetes API server - would I be able to deserialize this into the corresponding resource in this client library? For example, would something like this work?

V1Pod v1pod = new ObjectMapper().convertValue(jsonPayload, V1Pod.class)

Poking through the generated code I don't see why not, but just wanted to make sure that this is the intended behavior.

Thanks

Cannot watch build resources in Openshift 3.6

Related to this issue in the fabric8-maven-plugin.

The watch is always done with a resource version number that is fetched from the build list (not from the actual build) on the first attempt. Everything is looked up from the new API endpoint apis/build.openshift.io.

The error is like:

Caused by: io.fabric8.kubernetes.client.KubernetesClientException: Timeout: Too large resource version: 19393279, current: 19393278
	at io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager$2.onFailure(WatchConnectionManager.java:191)
	at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.java:543)
	at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:185)
	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

From my tests, it seems that the resource version number in the list object is independent from the resource version number of the actual build object (in the new API).

So the first revision number should not be taken from the list, but from the actual build. I don't know why it is taken from the list.

Using a empty revision number should be a viable option on the first attempt to create the watch. While on a subsequent reconnection, the client should use the last revision number received from the server.

io.kubernetes.client.util package question

Hi,

I try to find out if kubernetes-client java api plans to include the io.kubernetes.client.util package in the released jar file. We would like to use some of java code.

Thanks.

Question about operation apis

Hi,

I try to update/replace the statefulset image version. Can you suggestion where I can find the supported api?

I also posted my question to slack "sig-apis-machinary". Please advise where is the best place to have my questions answered.

Thanks.

change pod from a node to another in runtime

Hi everybody.
I saw in k8 tutorial that we can select the node where we want to deploy a pod. It is using the nodeSelector.
So, I am trying to change this property while my k8 application is running.
My main class has this code to set a new node selector:

`public class Test {

public static void main(String[] args) throws FileNotFoundException, ApiException {
	final String podName = "etcd-swarm1";

	//final String oldNode = "swarm1";
	final String newNode = "swarm5";
	
	PodAbstraction podAbstraction = new PodAbstraction(podName, newNode);
	RuntimeDealer runtimeDealer = new RuntimeDealer();
	V1Pod pod = runtimeDealer.searchPod(podName);
	
	podAbstraction.updateNodeSelector(pod);	
			
}

}`

And, my podAbstraction class, has the method updateNodeSelector(), which is:

public void updateNodeSelector(V1Pod pod) {	
	//System.out.println("the pod is on node : "+"\n"+pod.getSpec().toString());
	pod.getSpec().setNodeSelector(this.nodeSelector);
	pod.getSpec().setNodeName("swarm5");
	System.out.println("and now it is on node: "+pod.getSpec().getNodeName());
}

Aparently it is now enough to make a pod leave on node to another (in my case, I am trying to move the pod
etcd-swarm1 from the node swarm1 to the node swarm5).

Finally, I got this message on my terminal after running this java-client program( I have abstracted some comands here):

vinicius@vinicius-VPCEG17FB:~/Documentos$ kubectl  get pods -o wide 
NAME                                    READY     STATUS    RESTARTS   AGE       IP            NODE
etcd-swarm1                             1/1       Running   0          20d       10.66.66.23   swarm1

As you can see, it has not been moved.
Does someone has any idea of how I can complete the task of moving a pod from a node to another one?
Thanks

createNamespacedControllerRevision question

Hi,

When I create a DaemonSet with RollingUpdate in UpdateStrategy, does it automatically enable ControllerRevision? When do I need to make api call for createNamespacedControllerRevision?

Thanks.

Support Third Party Resources

We've added TPR support in gen repo. This should be as simple as generating client again, though in the process, I've found a bug in java client generator and fixed it in gen repo.

Websocket POST vs GET

Created this issue to continue the discussion in #19

TODO(mehdy): add a summary of discussion here.

I've digged a little more and found the issue that resulted in adding POST: kubernetes/kubernetes#10366

I've also looked at kubernetes code, and GET and POST serving paths look the same (as far as I can tell).

The argument in kubernetes/kubernetes#10366 could be applied to SPDY or http/2 but not websocket. I think we should be fine with websocket GET only as the serving path is the same and there is no plan to remove GET from exec/attach/portforward serving stack in kubernetes.

Another solution for java client is to support SPDY/HTTP2 instead of websocket (we supported websocket for python client because there were no good SPDY client for python). This way we are not bounded by websocket limitation of GET.

cc: @brendandburns

Config loading doesn't handle servers w/o http(s)

When loading a config that looks like:

apiVersion: v1
clusters:
- cluster:
    server: "192.168.1.135:8001"
  name: "nuc"

Connection requests fail, because there is no protocol for the URL.

However kubectl works properly. We should add a prefix if it is missing.

Release process

This issue is to track the release process of the client (on maven?).

  • Figure out the owner email to be used in POM file (following up on #44)
  • Get the "io.kubernetes" namespace in maven central. I've run this past kubernetes-dev and kubernetes-sig-api-machinery without complaint. We just need the domain owner within google to file a JIRA ticket against sonatype.
  • Generate a GPG key for the client. We'll need someone in the kubernetes org to do this - Figure out where to store private key (odds are the private key will be stored by Google.)
  • Publish an initial release to maven central (and optionally make it public).

(Edited, adding and edited action items from lwander's comment bellow)

Leak from OkHttpClient

on performing repeated watches on custom objects I eventually see in logs

2017-10-14 15:26:12.773 WARN 5 --- [ ConnectionPool] com.squareup.okhttp.OkHttpClient : A connection to https://10.0.0.1/ was leaked. Did you forget to close a response body?

I don't see any way to close the response body from the Watch wrappers or gain access to it to close manually.

I'm doing:

CustomObjectsApi api = new CustomObjectsApi();
		Watch<Object> watch = Watch.createWatch(
                client,
                api.listNamespacedCustomObjectCall("xxx.yyy", "v1alpha1", "default", "mykind", null, null, rs, true, null, null),
                new TypeToken<Watch.Response<Object>>(){}.getType());

LogsExample displayed error in k8s v1.6.7

Hi,
I am trying to run it on v1.6.7 and get:
Exception in thread "main" java.net.SocketTimeoutException: timeout
at okio.Okio$3.newTimeoutException(Okio.java:207)
at okio.AsyncTimeout.exit(AsyncTimeout.java:261)
at okio.AsyncTimeout$2.read(AsyncTimeout.java:215)
at okio.RealBufferedSource.indexOf(RealBufferedSource.java:306)
at okio.RealBufferedSource.indexOf(RealBufferedSource.java:300)
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196)
at com.squareup.okhttp.internal.http.Http1xStream.readResponse(Http1xStream.java:186)
at com.squareup.okhttp.internal.http.Http1xStream.readResponseHeaders(Http1xStream.java:127)
at com.squareup.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:737)
at com.squareup.okhttp.internal.http.HttpEngine.access$200(HttpEngine.java:87)
at com.squareup.okhttp.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:722)
at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:576)
at com.squareup.okhttp.Call.getResponse(Call.java:287)
at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:243)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:205)
at com.squareup.okhttp.Call.execute(Call.java:80)
at io.kubernetes.client.PodLogs.streamNamespacedPodLog(PodLogs.java:80)
at io.kubernetes.client.PodLogs.streamNamespacedPodLog(PodLogs.java:72)
at io.kubernetes.client.PodLogs.streamNamespacedPodLog(PodLogs.java:66)
at io.kubernetes.client.examples.LogsExample.main(LogsExample.java:49)
Caused by: java.net.SocketException: Socket closed
at java.net.SocketInputStream.read(SocketInputStream.java:204)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
at sun.security.ssl.InputRecord.read(InputRecord.java:503)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:940)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
at okio.Okio$2.read(Okio.java:139)
at okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
... 17 more
And similar error when I am running it from maven.
This error is displayed immediately if the pod doesn't have any log or have multi containers, otherwise it is displayed after the log.
Thanks,
Assaf

listNamespacedStatefulSet question

Hi,
When we call apiInstance.listNamespacedStatefulSet, the result only contains the apiVersion and kind under list level not each item level. Is this an expected behavior? Thanks.

class V1beta1StatefulSetList {
apiVersion: apps/v1beta1
items: [class V1beta1StatefulSet {
apiVersion: null
kind: null
....
}]
kind: StatefulSetList
metadata: class V1ListMeta {
resourceVersion: 1078833
selfLink: /apis/apps/v1beta1/namespaces/default/statefulsets
}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.