diff options
author | Dan Prince <dprince@redhat.com> | 2015-05-06 15:57:12 -0400 |
---|---|---|
committer | Dan Prince <dprince@redhat.com> | 2015-05-26 08:50:44 -0400 |
commit | b87fe75b87e0a2cb3e35e1ffb8270cbe190c1f6c (patch) | |
tree | debbee49083b85e4a45b80826486c3ec63ecd93e | |
parent | 7418a32a73277d258ceeb06b329973d61aceed7c (diff) |
Add isolated network ports to compute roles
This patch updates the compute roles so that
they can optionally make use of isolated network
ports on the tenant, storage, and internal_api networks.
-Multiple networks are created based upon settings in the heat
resource registry. These nets will either use the noop network (the
control plane pass-thru default) or create a custom Neutron port on
each of the configured networks.
-The ipaddress/subnet of each network is passed passed into the
NetworkConfig resource which drives os-net-config. This allows the
deployer to define a custom network template for static IPs, etc
on each of the networks.
-The ipaddress is exposed as an output parameter. By exposing
the individual addresses as outputs we allow Heat to construct
collections of ports for various services.
Change-Id: Ib07b4b7256ede7fb47ecc4eb5abe64b9144b9aa1
-rw-r--r-- | compute.yaml | 28 | ||||
-rw-r--r-- | overcloud-resource-registry-puppet.yaml | 5 | ||||
-rw-r--r-- | overcloud-resource-registry.yaml | 5 | ||||
-rw-r--r-- | puppet/compute-puppet.yaml | 28 |
4 files changed, 66 insertions, 0 deletions
diff --git a/compute.yaml b/compute.yaml index 81d275cc..ee6d96eb 100644 --- a/compute.yaml +++ b/compute.yaml @@ -264,8 +264,27 @@ resources: NodeUserData: type: OS::TripleO::NodeUserData + InternalApiPort: + type: OS::TripleO::Compute::Ports::InternalApiPort + properties: + ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + + StoragePort: + type: OS::TripleO::Compute::Ports::StoragePort + properties: + ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + + TenantPort: + type: OS::TripleO::Compute::Ports::TenantPort + properties: + ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + NetworkConfig: type: OS::TripleO::Compute::Net::SoftwareConfig + properties: + InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]} + StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} + TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} NetworkDeployment: type: OS::TripleO::SoftwareDeployment @@ -419,6 +438,15 @@ outputs: ip_address: description: IP address of the server in the ctlplane network value: {get_attr: [NovaCompute, networks, ctlplane, 0]} + internal_api_ip_address: + description: IP address of the server in the internal_api network + value: {get_attr: [InternalApiPort, ip_address]} + storage_ip_address: + description: IP address of the server in the storage network + value: {get_attr: [StoragePort, ip_address]} + tenant_ip_address: + description: IP address of the server in the tenant network + value: {get_attr: [TenantPort, ip_address]} hostname: description: Hostname of the server value: {get_attr: [NovaCompute, name]} diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index b26c617e..432ddc45 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -40,5 +40,10 @@ resource_registry: OS::TripleO::Controller::Ports::StorageMgmtPort: network/ports/noop.yaml OS::TripleO::Controller::Ports::TenantPort: network/ports/noop.yaml + # Port assignments for the compute role + OS::TripleO::Compute::Ports::InternalApiPort: network/ports/noop.yaml + OS::TripleO::Compute::Ports::StoragePort: network/ports/noop.yaml + OS::TripleO::Compute::Ports::TenantPort: network/ports/noop.yaml + parameter_defaults: EnablePackageInstall: false diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml index 367d6278..28e80220 100644 --- a/overcloud-resource-registry.yaml +++ b/overcloud-resource-registry.yaml @@ -37,3 +37,8 @@ resource_registry: OS::TripleO::Controller::Ports::StoragePort: network/ports/noop.yaml OS::TripleO::Controller::Ports::StorageMgmtPort: network/ports/noop.yaml OS::TripleO::Controller::Ports::TenantPort: network/ports/noop.yaml + + # Port assignments for the compute role + OS::TripleO::Compute::Ports::InternalApiPort: network/ports/noop.yaml + OS::TripleO::Compute::Ports::StoragePort: network/ports/noop.yaml + OS::TripleO::Compute::Ports::TenantPort: network/ports/noop.yaml diff --git a/puppet/compute-puppet.yaml b/puppet/compute-puppet.yaml index b9106e60..cd11b897 100644 --- a/puppet/compute-puppet.yaml +++ b/puppet/compute-puppet.yaml @@ -267,8 +267,27 @@ resources: NodeUserData: type: OS::TripleO::NodeUserData + InternalApiPort: + type: OS::TripleO::Compute::Ports::InternalApiPort + properties: + ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + + StoragePort: + type: OS::TripleO::Compute::Ports::StoragePort + properties: + ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + + TenantPort: + type: OS::TripleO::Compute::Ports::TenantPort + properties: + ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]} + NetworkConfig: type: OS::TripleO::Compute::Net::SoftwareConfig + properties: + InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]} + StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} + TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]} NetworkDeployment: type: OS::TripleO::SoftwareDeployment @@ -431,6 +450,15 @@ outputs: ip_address: description: IP address of the server in the ctlplane network value: {get_attr: [NovaCompute, networks, ctlplane, 0]} + internal_api_ip_address: + description: IP address of the server in the internal_api network + value: {get_attr: [InternalApiPort, ip_address]} + storage_ip_address: + description: IP address of the server in the storage network + value: {get_attr: [StoragePort, ip_address]} + tenant_ip_address: + description: IP address of the server in the tenant network + value: {get_attr: [TenantPort, ip_address]} hostname: description: Hostname of the server value: {get_attr: [NovaCompute, name]} |