in kubernetes/src/main/java/org/apache/karaf/cellar/kubernetes/KubernetesDiscoveryServiceFactory.java [91:170]
public void updated(String pid, Dictionary properties) throws ConfigurationException {
ServiceRegistration newServiceRegistration = null;
try {
if (properties != null) {
LOGGER.info("CELLAR KUBERNETES: creating the discovery service ...");
Properties serviceProperties = new Properties();
Enumeration propKeys = properties.keys();
while (propKeys.hasMoreElements()) {
Object key = propKeys.nextElement();
Object value = properties.get(key);
serviceProperties.put(key, value);
}
KubernetesDiscoveryService kubernetesDiscoveryService = new KubernetesDiscoveryService();
String kubernetesHost = (String) properties.get(KUBERNETES_HOST);
String kubernetesPort = (String) properties.get(KUBERNETES_PORT);
if (kubernetesHost == null) {
kubernetesHost = getEnvOrDefault("KUBERNETES_RO_SERVICE_HOST", "localhost");
}
if (kubernetesPort == null) {
kubernetesPort = getEnvOrDefault("KUBERNETES_RO_SERVICE_PORT", "8080");
}
String kubernetesPodLabelKey = (String) properties.get(KUBERNETES_POD_LABEL_KEY);
if (kubernetesPodLabelKey == null) {
kubernetesPodLabelKey = DEFAULT_POD_LABEL_KEY;
}
String kubernetesPodLabelValue = (String) properties.get(KUBERNETES_POD_LABEL_VALUE);
if (kubernetesPodLabelValue == null) {
kubernetesPodLabelValue = DEFAULT_POD_LABEL_VALUE;
}
String kubernetesMaster = KUBERNETES_MASTER.getValue(properties);
// Keep compatibility with old configuration scheme
if (kubernetesMaster == null) {
kubernetesMaster = "http://" + kubernetesHost + ":" + kubernetesPort;
}
kubernetesDiscoveryService.setKubernetesMaster(kubernetesMaster);
kubernetesDiscoveryService.setKubernetesApiVersion(KUBERNETES_API_VERSION.getValue(properties));
kubernetesDiscoveryService.setKubernetesTrustCertificates(KUBERNETES_TRUST_CERTIFICATES.getValue(properties));
kubernetesDiscoveryService.setKubernetesDisableHostnameVerification(KUBERNETES_DISABLE_HOSTNAME_VERIFICATION.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsCaFile(KUBERNETES_CERTS_CA_FILE.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsCaData(KUBERNETES_CERTS_CA_DATA.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsClientFile(KUBERNETES_CERTS_CLIENT_FILE.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsClientData(KUBERNETES_CERTS_CLIENT_DATA.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsClientKeyFile(KUBERNETES_CERTS_CLIENT_KEY_FILE.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsClientKeyData(KUBERNETES_CERTS_CLIENT_KEY_DATA.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsClientKeyAlgo(KUBERNETES_CERTS_CLIENT_KEY_ALGO.getValue(properties));
kubernetesDiscoveryService.setKubernetesCertsClientKeyPassphrase(KUBERNETES_CERTS_CLIENT_KEY_PASSPHRASE.getValue(properties));
kubernetesDiscoveryService.setKubernetesAuthBasicUsername(KUBERNETES_AUTH_BASIC_USERNAME.getValue(properties));
kubernetesDiscoveryService.setKubernetesAuthBasicPassword(KUBERNETES_AUTH_BASIC_PASSWORD.getValue(properties));
kubernetesDiscoveryService.setKubernetesOauthToken(KUBERNETES_AUTH_TOKEN.getValue(properties));
kubernetesDiscoveryService.setKubernetesWatchReconnectInterval(KUBERNETES_WATCH_RECONNECTINTERVAL.getValue(properties));
kubernetesDiscoveryService.setKubernetesWatchReconnectLimit(KUBERNETES_WATCH_RECONNECTLIMIT.getValue(properties));
kubernetesDiscoveryService.setKubernetesUserAgent(KUBERNETES_USER_AGENT.getValue(properties));
kubernetesDiscoveryService.setKubernetesTlsVersion(KUBERNETES_TLS_VERSIONS.getValue(properties));
kubernetesDiscoveryService.setKubernetesTruststoreFile(KUBERNETES_TRUSTSTORE_FILE.getValue(properties));
kubernetesDiscoveryService.setKubernetesTruststorePassphrase(KUBERNETES_TRUSTSTORE_PASSPHRASE.getValue(properties));
kubernetesDiscoveryService.setKubernetesKeystoreFile(KUBERNETES_KEYSTORE_FILE.getValue(properties));
kubernetesDiscoveryService.setKubernetesKeystorePassphrase(KUBERNETES_KEYSTORE_PASSPHRASE.getValue(properties));
kubernetesDiscoveryService.setKubernetesPodLabelKey(kubernetesPodLabelKey);
kubernetesDiscoveryService.setKubernetesPodLabelValue(kubernetesPodLabelValue);
kubernetesDiscoveryService.init();
newServiceRegistration = bundleContext.registerService(DiscoveryService.class.getName(), kubernetesDiscoveryService, (Dictionary) serviceProperties);
}
} finally {
ServiceRegistration oldServiceRegistration = (newServiceRegistration == null) ? registrations.remove(pid) : registrations.put(pid, newServiceRegistration);
if (oldServiceRegistration != null) {
oldServiceRegistration.unregister();
}
}
}