No Endpoints for port 9300

When I deploy a new instance of ECK, I only see services with port 9200

service/r4e-elasticsearch-datastore-cluster-es-http       ClusterIP      10.224.83.227    <none>           9200/TCP                                       3h37m
service/r4e-elasticsearch-datastore-cluster-kb-http       ClusterIP      10.224.85.11     <none>           5601/TCP                                       3h37m
pod/r4e-elasticsearch-datastore-cluster-es-default-0          1/1     Running            0          3h37m
pod/r4e-elasticsearch-datastore-cluster-kb-65b79d76c9-pwpgg   1/1     Running            0          3h37m

I need a java app to connect to port 9300 for TCP, is this available on ECK?

We don't currently expose the transport layer through a Kubernetes service but you can easily change that yourself:

apiVersion: v1
kind: Service
metadata:
  name: my-custom-transport
spec:
  selector:
    common.k8s.elastic.co/type: elasticsearch
    elasticsearch.k8s.elastic.co/cluster-name: $YOUR_CLUSTER_NAME
  type: LoadBalancer 
  ports:
  - protocol: TCP
    port: 9300
    targetPort: 9300

Adjust the service type as needed: if you are not running in a managed Kubernetes offering of one of the public cloud providers then LoadBalancer probably does not make sense. If your client is connecting from within the same Kubernetes cluster than type ClusterIP will be sufficient etc.

Also note that we are probably going to add this service in a future release of ECK, but in the meantime you can create it yourself.

Thnx @pebrc for your reply, I managed to do as you instructed but spring boot apps can't seem to connect on port 9300. If I do a curl on port 9200

{
  "name" : "r4e-elasticsearch-comments-cluster-es-default-0",
  "cluster_name" : "r4e-elasticsearch-comments-cluster",
  "version" : {
    "number" : "6.8.6",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_snapshot" : false,
    "lucene_version" : "7.7.2",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

but on port 9300

 curl r4e-elasticsearch-comments-cluster-es-external:9300
curl: (52) Empty reply from server

Which is different response when I query our server on the TCP port

curl elasticsearch-legacy.prod.eng-us.:9300
This is not an HTTP port

Is there some setting I have to enable for this to work properly?