You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/06/29 15:35:48 UTC
[06/50] [abbrv] brooklyn-server git commit: Fix generation of
Kubernetes port sensors and mappings
Fix generation of Kubernetes port sensors and mappings
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/f0c3290a
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/f0c3290a
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/f0c3290a
Branch: refs/heads/master
Commit: f0c3290aa3a5be46ae5bdc2e226aca813bff1359
Parents: 220c737
Author: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Authored: Thu Feb 9 17:07:12 2017 +0000
Committer: Andrew Donald Kennedy <an...@cloudsoftcorp.com>
Committed: Fri May 19 14:01:20 2017 +0100
----------------------------------------------------------------------
.../entity/KubernetesResourceImpl.java | 10 ++++-----
.../kubernetes/location/KubernetesLocation.java | 23 +++++++++-----------
.../KubernetesLocationYamlLiveTest.java | 6 ++---
3 files changed, 18 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/f0c3290a/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/entity/KubernetesResourceImpl.java
----------------------------------------------------------------------
diff --git a/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/entity/KubernetesResourceImpl.java b/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/entity/KubernetesResourceImpl.java
index 1a4cacf..57f9013 100644
--- a/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/entity/KubernetesResourceImpl.java
+++ b/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/entity/KubernetesResourceImpl.java
@@ -7,11 +7,11 @@ public class KubernetesResourceImpl extends EmptySoftwareProcessImpl implements
@Override
public void init() {
- super.init();
+ super.init();
- config().set(BrooklynConfigKeys.SKIP_ON_BOX_BASE_DIR_RESOLUTION, true);
- config().set(PROVISIONING_PROPERTIES.subKey("useJcloudsSshInit"), false);
- config().set(PROVISIONING_PROPERTIES.subKey("waitForSshable"), false);
- config().set(EmptySoftwareProcessImpl.USE_SSH_MONITORING, false);
+ config().set(BrooklynConfigKeys.SKIP_ON_BOX_BASE_DIR_RESOLUTION, true);
+ config().set(PROVISIONING_PROPERTIES.subKey("useJcloudsSshInit"), false);
+ config().set(PROVISIONING_PROPERTIES.subKey("waitForSshable"), false);
+ config().set(EmptySoftwareProcessImpl.USE_SSH_MONITORING, false);
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/f0c3290a/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocation.java
----------------------------------------------------------------------
diff --git a/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocation.java b/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocation.java
index 18cbcd3..4543b4d 100644
--- a/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocation.java
+++ b/kubernetes-location/src/main/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocation.java
@@ -16,6 +16,7 @@ import org.apache.brooklyn.api.location.MachineProvisioningLocation;
import org.apache.brooklyn.api.location.NoMachinesAvailableException;
import org.apache.brooklyn.api.location.PortRange;
import org.apache.brooklyn.api.sensor.AttributeSensor;
+import org.apache.brooklyn.api.sensor.EnricherSpec;
import org.apache.brooklyn.core.entity.BrooklynConfigKeys;
import org.apache.brooklyn.core.entity.EntityInternal;
import org.apache.brooklyn.core.location.AbstractLocation;
@@ -24,6 +25,7 @@ import org.apache.brooklyn.core.location.PortRanges;
import org.apache.brooklyn.core.location.access.PortForwardManager;
import org.apache.brooklyn.core.location.access.PortForwardManagerLocationResolver;
import org.apache.brooklyn.core.location.cloud.CloudLocationConfig;
+import org.apache.brooklyn.core.network.OnPublicNetworkEnricher;
import org.apache.brooklyn.core.sensor.Sensors;
import org.apache.brooklyn.location.ssh.SshMachineLocation;
import org.apache.brooklyn.util.collections.MutableList;
@@ -343,17 +345,8 @@ public class KubernetesLocation extends AbstractLocation implements MachineProvi
if (resourceType.equals("Service")) {
Service service = getService(namespace, resourceName);
- registerPortMappings(machine, service);
-
- List<ServicePort> ports = service.getSpec().getPorts();
- for (ServicePort port : ports) {
- String protocol = port.getProtocol();
- if ("TCP".equalsIgnoreCase(protocol)) {
- Integer targetPort = port.getTargetPort().getIntVal();
- AttributeSensor<Integer> sensor = Sensors.newIntegerSensor("kubernetes.port." + port.getName());
- entity.sensors().set(sensor, targetPort);
- }
- }
+ registerPortMappings(machine, entity, service);
+
}
return machine;
@@ -440,7 +433,7 @@ public class KubernetesLocation extends AbstractLocation implements MachineProvi
LocationSpec<SshMachineLocation> locationSpec = prepareLocationSpec(entity, setup, namespace, deploymentName, service, pod);
SshMachineLocation machine = getManagementContext().getLocationManager().createLocation(locationSpec);
- registerPortMappings(machine, service);
+ registerPortMappings(machine, entity, service);
if (!isDockerContainer(entity)) {
waitForSshable(machine, Duration.FIVE_MINUTES);
}
@@ -477,7 +470,7 @@ public class KubernetesLocation extends AbstractLocation implements MachineProvi
}
}
- protected void registerPortMappings(SshMachineLocation machine, Service service) {
+ protected void registerPortMappings(SshMachineLocation machine, Entity entity, Service service) {
PortForwardManager portForwardManager = (PortForwardManager) getManagementContext().getLocationRegistry()
.getLocationManaged(PortForwardManagerLocationResolver.PFM_GLOBAL_SPEC);
List<ServicePort> ports = service.getSpec().getPorts();
@@ -496,8 +489,12 @@ public class KubernetesLocation extends AbstractLocation implements MachineProvi
LOG.debug("Ignoring port mapping {} to {} because port.getNodePort() is null", targetPort, machine);
} else {
portForwardManager.associate(publicHostText, HostAndPort.fromParts(publicHostText, port.getNodePort()), machine, targetPort);
+ AttributeSensor<Integer> sensor = Sensors.newIntegerSensor("kubernetes." + Strings.maybeNonBlank(port.getName()).or(targetPort.toString()) + ".port");
+ entity.sensors().set(sensor, targetPort);
}
}
+
+ entity.enrichers().add(EnricherSpec.create(OnPublicNetworkEnricher.class).configure(OnPublicNetworkEnricher.MAP_MATCHING, "kubernetes.[a-zA-Z0-9][a-zA-Z0-9-_]*.port"));
}
protected String findDeploymentName(Entity entity, ConfigBag setup) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/f0c3290a/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
----------------------------------------------------------------------
diff --git a/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java b/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
index f2fcac4..11c78ef 100644
--- a/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
+++ b/kubernetes-location/src/test/java/io/cloudsoft/amp/containerservice/kubernetes/location/KubernetesLocationYamlLiveTest.java
@@ -372,9 +372,9 @@ public class KubernetesLocationYamlLiveTest extends AbstractYamlTest {
Entities.dumpInfo(app);
- Integer httpPort = assertAttributeEventuallyNonNull(nginxService, Sensors.newIntegerSensor("kubernetes.port.http"));
- assertEquals(httpPort, Integer.valueOf(8080));
- String httpPublicPort = assertAttributeEventuallyNonNull(nginxService, Sensors.newStringSensor("kubernetes.port.http.mapped.public"));
+ Integer httpPort = assertAttributeEventuallyNonNull(nginxService, Sensors.newIntegerSensor("kubernetes.http.port"));
+ assertEquals(httpPort, Integer.valueOf(80));
+ String httpPublicPort = assertAttributeEventuallyNonNull(nginxService, Sensors.newStringSensor("kubernetes.http.endpoint.mapped.public"));
assertReachableEventually(HostAndPort.fromString(httpPublicPort));
}