Hi all,
I'm trying to create a heat template automating the
creation of group-based policy resources when deploying
stacks. The template takes an L3 policy as an input
argument and then creates an L2 policy, a policy target
group and a policy target. I use GBP together with Cisco
APIC on OpenStack Mitaka.
(Slightly simplified) Heat template:
parameters:
l3p_main:
type: string
description: L3 policy name to use for main network
interface
resources:
l2p_main:
type: OS::GroupBasedPolicy::L2Policy
properties:
name: { list_join: [ '_', [ { get_param:
'OS::stack_name' }, 'l2p' ] ] }
l3_policy_id: { get_param: l3p_main }
shared: false
ptg_main:
type: OS::GroupBasedPolicy::PolicyTargetGroup
properties:
name: { list_join: [ '_', [ { get_param:
'OS::stack_name' }, 'ptg' ] ] }
l2_policy_id: { get_resource: l2p_main }
shared: false
pt_main:
type: OS::GroupBasedPolicy::PolicyTarget
properties:
name: { list_join: [ '_', [ { get_param:
'OS::stack_name' }, 'pt' ] ] }
policy_target_group_id: { get_resource: ptg_main
}
server:
type: OS::Nova::Server
properties:
networks:
- port: { get_attr: [ pt_main, port_id ] }
The stack create fails with the following error message
(taken from openstack stack show ... CLI command):
| stack_status | CREATE_FAILED
|
| stack_status_reason | Resource CREATE failed:
BadRequest: resources.server: Port
49638f39-3e13-4813-b69f-efa2b3001c11 requires a FixedIP in
order to be used. (HTTP 400) (Request-ID:
req-4b6c465b-bb54-4eef-ae0b-d17e4a626c66) |
Inspecting the neutron port referred to by the policy
target which was created gives the following:
$ neutron port-show
49638f39-3e13-4813-b69f-efa2b3001c11
+-----------------------+--------------------------------------+
| Field | Value
|
+-----------------------+--------------------------------------+
| admin_state_up | True
|
| allowed_address_pairs |
|
| binding:vnic_type | normal
|
| created_at | 2017-07-11T21:11:54
|
| description |
|
| device_id |
|
| device_owner |
|
| extra_dhcp_opts |
|
| fixed_ips |
| <-- empty
| id |
49638f39-3e13-4813-b69f-efa2b3001c11 |
| mac_address | fa:16:3e:93:b2:25
|
| name | pt_foo_bar_test_pt
|
| network_id |
72455662-1210-4aac-af70-8b19a974e0ea |
| security_groups |
a3dd6bdc-bf85-4340-b305-166defc8e41c |
| status | DOWN
|
| tenant_id |
c0351d9a317f4b16b79ba7fa1fec4e0b |
| updated_at | 2017-07-11T21:11:54
|
+-----------------------+--------------------------------------+
If I instead create a policy target manually with the GBP
CLI client like this:
gbp pt-create --policy-target-group hello_ptg
hello_test_pt
The generated port looks like this:
$ openstack port show
74ea24e4-8925-4173-ba13-6b0fd319c18e
+-----------------------+------------------------------------------------------------------------------+
| Field | Value
|
+-----------------------+------------------------------------------------------------------------------+
| admin_state_up | UP
|
| allowed_address_pairs |
|
| binding_vnic_type | normal
|
| created_at | 2017-06-27T12:57:01
|
| description | None
|
| device_id |
|
| device_owner |
|
| extra_dhcp_opts |
|
| fixed_ips | ip_address='10.156.248.60',
subnet_id='31a163d5-4004-484e-9899-f60b2d9c0b47' | <--
filled in
| id |
74ea24e4-8925-4173-ba13-6b0fd319c18e
|
| mac_address | fa:16:3e:c5:58:6e
|
| name | pt_hello_test_pt
|
| network_id |
73e0fb36-8490-49c0-99e5-5033900c999b
|
| project_id |
c0351d9a317f4b16b79ba7fa1fec4e0b
|
| security_groups |
a3dd6bdc-bf85-4340-b305-166defc8e41c
|
| status | DOWN
|
| updated_at | 2017-06-27T12:57:01
|
+-----------------------+------------------------------------------------------------------------------+
How can I get a Neutron port populated with a fixed IP
auto-generated when creating policy targets from Heat?
Regards,
Lukas
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack