2017-01-05 6 views
0

Я пытаюсь использовать fabric8-cdi описано здесь: https://fabric8.io/guide/cdi.htmlКак настроить среду для fabric8-КДИ

Я использую minikube при разработке, я начинаю гс и услуга по имени mev-rserve вот работает служба:

$kubectl get services 
NAME   CLUSTER-IP EXTERNAL-IP PORT(S)   AGE 
kubernetes 10.0.0.1  <none>  443/TCP   2d 
mev-rserve 10.0.0.19 <pending>  6311:31744/TCP 49m 

В моем веб-приложение у меня есть этот производитель фасоли:

@Produces 
static RConnection r (@ServiceName ("mev-rserve") String endpoint) { /* ... */ } 

, который работает отлично, если я объявляю MEV_RSERVE_SERVICE_HOST и MEV_RSERVE_SERVICE_PORT env переменные, как описано в документе, который я связал, но я хочу, чтобы библиотека искала его из kube api, чего не происходит. Вот моя конфигурация:

$ kubectl config view 
apiVersion: v1 
clusters: 
- cluster: 
    certificate-authority: /Users/levkuznetsov/.minikube/ca.crt 
    server: https://192.168.99.101:8443 
    name: minikube 
contexts: 
- context: 
    cluster: minikube 
    user: minikube 
    name: minikube 
current-context: minikube 
kind: Config 
preferences: {} 
users: 
- name: minikube 
    user: 
    client-certificate: /Users/levkuznetsov/.minikube/apiserver.crt 
    client-key: /Users/levkuznetsov/.minikube/apiserver.key 

Из того, что я установки окружающей среды следующим образом:

KUBERNETES_MASTER="https://192.168.99.101:8443" 
KUBERNETES_API_VERSION="v1" 
KUBERNETES_CERTS_CA_FILE="/Users/levkuznetsov/.minikube/ca.crt" 
KUBERNETES_CERTS_CLIENT_FILE="/Users/levkuznetsov/.minikube/apiserver.crt" 
KUBERNETES_CERTS_CLIENT_KEY_FILE="/Users/levkuznetsov/.minikube/apiserver.key" 

Какие результаты в этом исключения:

Caused by: java.lang.IllegalArgumentException: No kubernetes service could be found for name: mev-rserve in namespace: null 
at io.fabric8.kubernetes.api.KubernetesHelper.getServiceURL(KubernetesHelper.java:1347) 
at io.fabric8.cdi.Services.toServiceUrl(Services.java:38) 
at io.fabric8.cdi.producers.ServiceUrlProducer.produce(ServiceUrlProducer.java:47) 
at io.fabric8.cdi.producers.ServiceUrlProducer.produce(ServiceUrlProducer.java:26) 
at io.fabric8.cdi.bean.ProducerBean.create(ProducerBean.java:43) 
... 

Заранее спасибо

ответ

0

В если кто-то еще борется с этим, я проследил это за отсутствием определения пространства имен. Я не объявляю bean KubernetesClient, поэтому я не устанавливаю пространство имен по умолчанию, которое оказывается равным null. Я не хочу объявлять его в приложении, так как в процессе производства переменные среды будут иметь приоритет в любом случае, это только для разработки. Я счел его более чистым, чтобы настроить среду соответственно.

Смежные вопросы