We are seeing error in BMC console on some clouds:
Error, some other host (<% MAC_ADDR %>) already uses
address <% IP ADDR %>.
Set port_security_enabled: false on BMC other ports.
Closes-Bug: #1997561
Change-Id: I178bd5c642ac8c54c94cd854452f9bcebf697fba
- parametrize BMC credentials.
- adding ability to set variables from the ENV to avoid sensitive
data leak to a terminal or process listing.
'required=True' has been removed from the '--instance' parameter
to allow setting it from the ENV.
Change-Id: Ida5df11fc3c50dcdabd2741b9a8abfa5fb87ed45
Currently every auth attribute (including every service endpoint
version) ends up in the generated BMC clouds.yaml, but most of these
values are not required and are discovered via the catalog.
This change builds a bare-minimal clouds.yaml.
Change-Id: Ic408cefa03f0c1ae7ba00fa891aa4bf3f81b3d1e
build-nodes-json now has an --interface argument which allows setting
any of the supported ironic node interfaces. For example, the
following will result in "boot_interface": "pxe" being set for every
node entry:
--interface boot=pxe
Change-Id: I209456464e5e605f777b02869e3aae4c9c192fe5
During a process of building BMC image, CentOS 7 gets certificate
error.
It needs to be updated, before the process continues.
Change-Id: Id90883fbcc9410040fa7c7889b555ccc8da6db1c
The current master should be compatible with the Zed
release of the other projects. oslo.log dropped support
for py36 see related-bug
Related-Bug: 1974244
Change-Id: I5362ca355e23830bc48f61b4a580de4a5edac423
This change allows the BMC to install and run on centos9-stream.
centos-8 is skipped to reduce the required support matrix, centos-7
support can be removed once known OVB tooling is upgraded.
Then, pre-built image support can be restored, and also feature work
can be resumed in a modern python3 environment (such as implementing a
redfish endpoint).
Change-Id: I81565726f18d11c906ed23295d8acf5e18a9c2fe
This refreshes the ipxe build makefile to build an image
that works in both legacy BIOS and UEFI environments.
This makes the following changes:
- Moves the ipxe submodule commit to current master
- Creates an EFI partition efi.img containing ipxe.efi
as the default binary
- Builds ipxe-boot.img as an MBR/GPT hybrid ISO which boots
and runs iPXE in both legacy BIOS and UEFI environments
- Stop creating ipxe-boot.qcow2 since the conversion from
ipxe-boot.img has an incorrect EFI partition, and there is
no real benefit over the raw image anyway
- Refresh the documentation for how to upload the images to
an OpenStack cloud, remove the redundancy from ipxe/README
Change-Id: I720ed5aaa0d55ded73e01aaba9db66602adc26cd
This makes the following changes to simplify the install of pyghmi and
its dependencies:
- Bootstrap installing tripleo-repo by curling delorean.repo instead
of a wget tree search to find the tripleo-repo rpm
- Install pyghmi from rpm, it has been packaged for years and
installing by pip was intended to be temporary
- Do not install unused jq, git, pip
Change-Id: I43206770283cf9a8a6cc7ac2e71f7800238e1690
This change removes the pre-built image support and explicitly
installs for centos-7 base images. There are likely no pre-built image
deployments in the wild, they all appear to use a base centos-7 image
(this includes the bmc-template image used in RDO CI).
This change is the first in a series to upgrade the BMC host to CentOS
versions 8 and 9-stream.
Change-Id: I136b16528b722a6d38235ffcd571f3591d29e679
The CloudConfig write_files entry fro chrony.conf is
a nested list, instead of an entry. The file does not
get written.
Change-Id: I5ff6b81c6aaf454fad93e7c2fe2ff5ac68b91261
OVB correctly detects when the image is UEFI boot enabled and sets
boot_mode:uefi. However non-UEFI images will use the ironic configured
default, and this will soon change from 'bios' to 'uefi'.
This change explicitly sets to boot mode to either 'bios' or 'uefi'
based on discovered image properties so that ironic defaults can
change without causing CI failures.
Change-Id: If97d33aee65a05f6fb860eb4f3c1655bc4605908
The example's environments/base-extra-node.yaml
and environments/base-extra-node-all.yaml uses a
CentOS image to create undercloud like extra nodes.
There is no need for a virtual bmc for the servers
in this role. Set the BMC to OS::Heat::None so that
no BMC instance is created for this role.
Change-Id: I502de0a2e0352078e8f187cc0592f49ec0a9d65d
When there are less bmc_ports, compared to bm_ports filter
away bm_ports without a match bmc_port and set up the
baremetal to bmc pairs in bmc_bm_port_pairs.
All bm_ports are returned, and used with the new separate
function to build network_details. The new bmc_bm_port_pairs
is used with the _build_nodes method to create the a "nodes"
section containing only the bm nodes with a bmc port peer.
This is useful when using multiple roles, where one role
is hosting extra nodes that is not intended as virtual
baremetal nodes.
Change-Id: Ifc36d15b72c7421d7e0ec810d1ead17f4232b3ab
The mac field in TripleO nodes JSON has been deprecated
since Rocky. Let's switch to use the 'ports' field by
default.
Add the argument '--use-mac' to allow the user to choose
to use the legacy "mac" field.
Change-Id: I3728bb8589a82fea71f54505c6f7c17e79d8378e
Add support to explicitly request config-drive
for BMC and Undercloud type instances.
NOTE: config-drive is always disabled for the
virtual barmetal intances. This is already hard
coded in virtual-baremetal-servers.yaml and
virtual-baremetal-servers-volume.yaml.
Related-Bug: #1929384
Closes-Bug: #1929419
Change-Id: I1f6454363b5d8a5c325afe194ed1484ff618f729
It's needed when environments/create-private-network.yaml
is used with ovb jobs where '--id' is used, in this
case each ovb env should have seperate private network
with different id.
Related-Change: https://review.rdoproject.org/r/#/c/32142/
Change-Id: Icf5c87ae1ab083a143a0f3f8a991426bb5433c37
When using routed networks it is required to set the
physical_network property for baremetal ports. The
'--physical-network' option makes the build-nodes-json
command add this.
Whith this change the '--id' arg can be used with the
build-nodes-json command to strip the id added with the
deploy commands '--id' option from the resource name
when setting the physical_network property.
Usage:
ovb-build-nodes-json --env my-env.yaml \
--nodes_json instackenv.json \
--physical_network \
--id <ID-to-strip>
Change-Id: Ic5fea591464a9f8bb91bcaef9a99d0b9e994e19e
The dhcpv6-relay acts as both DHCPv6 relay and router
with radvd. Introspection and provisionin baremetal
nodes in the OVB environment fail's with connection
timeout unless net.ipv6.conf.all.forwarding is enabled.
Change-Id: Ida15d7e5c573ea09f8e6929d70901408330dc8e8
https://review.opendev.org/#/c/733598/ added support
of allocation_pools, but set type of public_net_allocation_pools
to comma_delimited_list which causes below issue because for
comma_delimited_list, list items are converted to string:-
Property error: : resources.public_subnet.properties.allocation_pools[0]:
"{'end': '10.0.0.199', 'start': '10.0.0.128'}" is not a map
We need to use type: json to get it work, this patch fixes it.
Related-Bug: #1874418
Change-Id: Iaebb297e5018ce8db6dd1f67a308e7707117fe03
The openstackcli is super slow at scale (e.g. many nodes) so this change
inlines a python script ot leverage openstacksdk to query the network
and port information to writeout the bmc service files and os-net-config
configuration files.
Change-Id: I1e3d8934071cde12a6be7f1212eb6a85aa2eeafd
TripleO CI uses 10.0.0.1 statically for the undercloud's
public interface. When using extra node in some job's
there is sometime a conflict, because the extra node get's
the 10.0.0.1 address allocated.
Adding support to define the allocation pools on the
public_net allows TripleO CI to define a pool with the
10.0.0.1 address eliminated.
A good practice would be to set up OVB to use
[{start: 10.0.0.128, end: 10.0.0.253}], and then configure
the undercloud/overcloud deployed on the OVB infrastructure
to use addresses in the range 10.0.0.1-10.0.0.127.
The parameter public_net_allocation_pools controls the
allocation pool setting, by default all addresses of the
subnet is in the pool.
Related-Bug: #1874418
Change-Id: Ieca4864e069148abb49eb709bf7f48a14ef04e77
Add prefix support for radvd and dhcrelay instances.
Also adds missing parameters for these instances in
the sample env generator environment.
Change-Id: I86bd6b014b62c3a382458f68443cfb02ed2e7031
Add the public IP of the undercloud to the stack output
so that it's easily available to configure the public
interface on the undercloud with the correct IP statically.
Change-Id: I90ad37cc683f1640464eb7b2ccfb3ba5d107f259
Related-Bug: #1874418
Add a new templates to configure radvd and dhcpv6 relay.
For IPv6 routed network the radvd daemon and the dhcpv6
relay is hosted on the same instance.
Since we do not want the networks in the OVB infra to
provide any DHCP or auto configuration we cannot use
neutron routers for provisioning network routing. The
instance running dhcpv6 relay and radvd will also be
the router for the provisioning networks.
Bump template version in undercloud-networks-routed.yaml
to version 2015-10-15. Need this version to avoid error:
'Items to join must be strings not
{u'str_split': [u'/', u'fd12:3456:789a:3::/64', 1]}'
Change-Id: Ib95f7d7cfd3d2318ac4f4f44f22955b0c18c465e
Currently the advertized MTU is hardcoded to 1450.
1450 is to high in case of geneve tunnels on a net
with mtu of 1500 in the underlay.
Automatically get the mtu from the network via the
port on the provisioning network.
Change-Id: I0725b6357bda6219ca49127184f6121167f4f319
The current implementation will only try an iPXE
boot from eth0. This patch sets it to try all
interfaces up to 10 attempts, then reboots and
starts again.
Change-Id: I9259a275f5f1f248905755ec5955ace5b67fc2bd