Add KubernetesClientProperties setters. Fix apiVersion and namespace in KubernetesAutoConfiguration.

This commit is contained in:
Ioannis Canellos
2016-04-27 18:47:16 +03:00
parent 38bd24e20f
commit 282d4a413f
2 changed files with 102 additions and 31 deletions

View File

@@ -32,44 +32,37 @@ import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties(KubernetesClientProperties.class)
public class KubernetesAutoConfiguration {
@Autowired
private KubernetesClientProperties properties;
@Bean
@ConditionalOnMissingBean(Config.class)
public Config kubernetesClientConfig() {
public Config kubernetesClientConfig(KubernetesClientProperties kubernetesClientProperties) {
Config base = new Config();
Config properites = new ConfigBuilder(base)
Config properties = new ConfigBuilder(base)
//Only set values that have been explicitly specified
.withMasterUrl(or(properties.getMasterUrl(), base.getMasterUrl()))
.withMasterUrl(or(properties.getApiVersion(), base.getApiVersion()))
.withMasterUrl(or(properties.getApiVersion(), base.getMasterUrl()))
.withUsername(or(properties.getUsername(), base.getUsername()))
.withPassword(or(properties.getPassword(), base.getPassword()))
.withMasterUrl(or(kubernetesClientProperties.getMasterUrl(), base.getMasterUrl()))
.withApiVersion(or(kubernetesClientProperties.getApiVersion(), base.getApiVersion()))
.withNamespace(or(kubernetesClientProperties.getNamespace(), base.getNamespace()))
.withUsername(or(kubernetesClientProperties.getUsername(), base.getUsername()))
.withPassword(or(kubernetesClientProperties.getPassword(), base.getPassword()))
.withCaCertFile(or(properties.getCaCertFile(), base.getCaCertFile()))
.withCaCertData(or(properties.getCaCertData(), base.getCaCertData()))
.withCaCertFile(or(kubernetesClientProperties.getCaCertFile(), base.getCaCertFile()))
.withCaCertData(or(kubernetesClientProperties.getCaCertData(), base.getCaCertData()))
.withClientKeyFile(or(properties.getClientKeyFile(), base.getClientKeyFile()))
.withClientKeyData(or(properties.getClientKeyData(), base.getClientKeyData()))
.withClientKeyFile(or(kubernetesClientProperties.getClientKeyFile(), base.getClientKeyFile()))
.withClientKeyData(or(kubernetesClientProperties.getClientKeyData(), base.getClientKeyData()))
.withClientCertFile(or(properties.getClientCertFile(), base.getClientCertFile()))
.withClientCertData(or(properties.getClientCertData(), base.getClientCertData()))
.withClientCertFile(or(kubernetesClientProperties.getClientCertFile(), base.getClientCertFile()))
.withClientCertData(or(kubernetesClientProperties.getClientCertData(), base.getClientCertData()))
//No magic is done for the properties below so we leave them as is.
.withClientKeyAlgo(or(properties.getClientKeyAlgo(), base.getClientKeyAlgo()))
.withClientKeyPassphrase(or(properties.getClientKeyPassphrase(), base.getClientKeyPassphrase()))
.withConnectionTimeout(or(properties.getConnectionTimeout(), base.getConnectionTimeout()))
.withRequestTimeout(or(properties.getRequestTimeout(), base.getRequestTimeout()))
.withRollingTimeout(or(properties.getRollingTimeout(), base.getRollingTimeout()))
.withTrustCerts(or(properties.isTrustCerts(), base.isTrustCerts()))
.withClientKeyAlgo(or(kubernetesClientProperties.getClientKeyAlgo(), base.getClientKeyAlgo()))
.withClientKeyPassphrase(or(kubernetesClientProperties.getClientKeyPassphrase(), base.getClientKeyPassphrase()))
.withConnectionTimeout(or(kubernetesClientProperties.getConnectionTimeout(), base.getConnectionTimeout()))
.withRequestTimeout(or(kubernetesClientProperties.getRequestTimeout(), base.getRequestTimeout()))
.withRollingTimeout(or(kubernetesClientProperties.getRollingTimeout(), base.getRollingTimeout()))
.withTrustCerts(or(kubernetesClientProperties.isTrustCerts(), base.isTrustCerts()))
.build();
if (!base.equals(properites)) {
System.out.println("Objects different");
}
return properites;
return properties;
}
@Bean
@@ -90,8 +83,6 @@ public class KubernetesAutoConfiguration {
return new KubernetesHealthIndicator(client, podUtils);
}
private static <D> D or(D dis, D dat) {
if (dis != null) {
return dis;

View File

@@ -42,83 +42,163 @@ public class KubernetesClientProperties {
private Long rollingTimeout;
private Integer loggingInterval;
public String getClientCertData() {
return clientCertData;
}
public void setClientCertData(String clientCertData) {
this.clientCertData = clientCertData;
}
public Boolean isTrustCerts() {
return trustCerts;
}
public void setTrustCerts(Boolean trustCerts) {
this.trustCerts = trustCerts;
}
public String getMasterUrl() {
return masterUrl;
}
public void setMasterUrl(String masterUrl) {
this.masterUrl = masterUrl;
}
public String getApiVersion() {
return apiVersion;
}
public void setApiVersion(String apiVersion) {
this.apiVersion = apiVersion;
}
public String getNamespace() {
return namespace;
}
public void setNamespace(String namespace) {
this.namespace = namespace;
}
public String getCaCertFile() {
return caCertFile;
}
public void setCaCertFile(String caCertFile) {
this.caCertFile = caCertFile;
}
public String getCaCertData() {
return caCertData;
}
public void setCaCertData(String caCertData) {
this.caCertData = caCertData;
}
public String getClientCertFile() {
return clientCertFile;
}
public String getClientCertData() {
return clientCertData;
public void setClientCertFile(String clientCertFile) {
this.clientCertFile = clientCertFile;
}
public String getClientKeyFile() {
return clientKeyFile;
}
public void setClientKeyFile(String clientKeyFile) {
this.clientKeyFile = clientKeyFile;
}
public String getClientKeyData() {
return clientKeyData;
}
public void setClientKeyData(String clientKeyData) {
this.clientKeyData = clientKeyData;
}
public String getClientKeyAlgo() {
return clientKeyAlgo;
}
public void setClientKeyAlgo(String clientKeyAlgo) {
this.clientKeyAlgo = clientKeyAlgo;
}
public String getClientKeyPassphrase() {
return clientKeyPassphrase;
}
public void setClientKeyPassphrase(String clientKeyPassphrase) {
this.clientKeyPassphrase = clientKeyPassphrase;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getWatchReconnectInterval() {
return watchReconnectInterval;
}
public void setWatchReconnectInterval(Integer watchReconnectInterval) {
this.watchReconnectInterval = watchReconnectInterval;
}
public Integer getWatchReconnectLimit() {
return watchReconnectLimit;
}
public void setWatchReconnectLimit(Integer watchReconnectLimit) {
this.watchReconnectLimit = watchReconnectLimit;
}
public Integer getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(Integer connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public Integer getRequestTimeout() {
return requestTimeout;
}
public void setRequestTimeout(Integer requestTimeout) {
this.requestTimeout = requestTimeout;
}
public Long getRollingTimeout() {
return rollingTimeout;
}
public void setRollingTimeout(Long rollingTimeout) {
this.rollingTimeout = rollingTimeout;
}
public Integer getLoggingInterval() {
return loggingInterval;
}
public void setLoggingInterval(Integer loggingInterval) {
this.loggingInterval = loggingInterval;
}
}