From 25e72f94cc26a8d125b0cec6b5cb3450c9e097cc Mon Sep 17 00:00:00 2001 From: Scott Hussey Date: Thu, 18 May 2017 15:47:59 -0500 Subject: [PATCH] Update the YAML design parts example to match model updates --- examples/bootstrap_hwdefinition.yaml | 58 ---- examples/bootstrap_seed.yaml | 420 --------------------------- examples/designparts_v1.0.yaml | 331 +++++++++++++++++++++ examples/readme.md | 7 + 4 files changed, 338 insertions(+), 478 deletions(-) delete mode 100644 examples/bootstrap_hwdefinition.yaml delete mode 100644 examples/bootstrap_seed.yaml create mode 100644 examples/designparts_v1.0.yaml create mode 100644 examples/readme.md diff --git a/examples/bootstrap_hwdefinition.yaml b/examples/bootstrap_hwdefinition.yaml deleted file mode 100644 index d7daa741..00000000 --- a/examples/bootstrap_hwdefinition.yaml +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2017 AT&T Intellectual Property. All other rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################# -# -# bootstrap_hwdefinition.yaml - Definitions of server hardware layout -# -############################################################################# -# version the schema in this file so consumers can rationally parse it ---- -apiVersion: 'v1.0' -kind: HardwareProfile -metadata: - name: HPGen8v3 - region: sitename - date: 17-FEB-2017 - description: Sample hardware definition - author: Scott Hussey -spec: - # Vendor of the server chassis - vendor: HP - # Generation of the chassis model - generation: '8' - # Version of the chassis model within its generation - not version of the hardware definition - hw_version: '3' - # The certified version of the chassis BIOS - bios_version: '2.2.3' - # Mode of the default boot of hardware - bios, uefi - boot_mode: bios - # Protocol of boot of the hardware - pxe, usb, hdd - bootstrap_protocol: pxe - # Which interface to use for network booting within the OOB manager, not OS device - pxe_interface: 0 - # Map hardware addresses to aliases/roles to allow a mix of hardware configs - # in a site to result in a consistent configuration - device_aliases: - pci: - - address: pci@0000:00:03.0 - alias: prim_nic01 - # type could identify expected hardware - used for hardware manifest validation - type: '82540EM Gigabit Ethernet Controller' - - address: pci@0000:00:04.0 - alias: prim_nic02 - type: '82540EM Gigabit Ethernet Controller' - scsi: - - address: scsi@2:0.0.0 - alias: primary_boot - type: 'VBOX HARDDISK' \ No newline at end of file diff --git a/examples/bootstrap_seed.yaml b/examples/bootstrap_seed.yaml deleted file mode 100644 index 360075f9..00000000 --- a/examples/bootstrap_seed.yaml +++ /dev/null @@ -1,420 +0,0 @@ -# Copyright 2017 AT&T Intellectual Property. All other rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#################### -# -# bootstrap_seed.yaml - Site server design definition for physical layer -# -#################### -# version the schema in this file so consumers can rationally parse it ---- -apiVersion: 'v1.0' -kind: Region -metadata: - name: sitename - date: 17-FEB-2017 - description: Sample site design - author: sh8121@att.com -spec: - # Not sure if we have site wide data that doesn't fall into another 'Kind' ---- -apiVersion: 'v1.0' -kind: NetworkLink -metadata: - name: oob - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 1 attributes. Primary key is 'name'. These settings will generally be things the switch and server have to agree on -spec: - bonding: - mode: none - mtu: 1500 - linkspeed: 100full - trunking: - mode: none - default_network: oob ---- -# pxe is a bit of 'magic' indicating the link config used when PXE booting -# a node. All other links indicate network configs applied when the node -# is deployed. -apiVersion: 'v1.0' -kind: NetworkLink -metadata: - name: pxe - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 1 attributes. Primary key is 'name'. These settings will generally be things the switch and server have to agree on -spec: - bonding: - mode: none - mtu: 1500 - linkspeed: auto - # Is this link supporting multiple layer 2 networks? - # none is a port-based VLAN identified by default_network - # tagged is is using 802.1q VLAN tagging. Untagged packets will default to default_netwokr - trunking: - mode: none - # use name, will translate to VLAN ID - default_network: pxe ---- -apiVersion: 'v1.0' -kind: NetworkLink -metadata: - name: gp - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 1 attributes. These CIs will generally be things the switch and server have to agree on - # pxe is a bit of 'magic' indicating the link config used when PXE booting - # a node. All other links indicate network configs applied when the node - # is deployed. -spec: - # If this link is a bond of physical links, how is it configured - # 802.3ad - # active-backup - # balance-rr - # Can add support for others down the road - bonding: - mode: 802.3ad - # For LACP (802.3ad) xmit hashing policy: layer2, layer2+3, layer3+4, encap3+4 - hash: layer3+4 - # 802.3ad specific options - peer_rate: slow - mon_rate: default - up_delay: default - down_delay: default - mtu: 9000 - linkspeed: auto - # Is this link supporting multiple layer 2 networks? - trunking: - mode: tagged - default_network: mgmt ---- -apiVersion: 'v1.0' -kind: Network -metadata: - name: oob - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - allocation: static - cidr: 172.16.100.0/24 - ranges: - - type: static - start: 172.16.100.15 - end: 172.16.100.254 - dns: - domain: ilo.sitename.att.com - servers: 172.16.100.10 ---- -apiVersion: 'v1.0' -kind: Network -metadata: - name: pxe - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - # Layer 2 VLAN segment id, could support other segmentations. Optional - vlan_id: '99' - # How are addresses assigned? - allocation: dhcp - # MTU for this VLAN interface, if not specified it will be inherited from the link - mtu: 1500 - # Network address - cidr: 172.16.0.0/24 - # Desribe IP address ranges - ranges: - - type: dhcp - start: 172.16.0.5 - end: 172.16.0.254 - # DNS settings for this network - dns: - # Domain addresses on this network will be registered under - domain: admin.sitename.att.com - # DNS servers that a server using this network as its default gateway should use - servers: 172.16.0.10 ---- -apiVersion: 'v1.0' -kind: Network -metadata: - name: mgmt - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - vlan_id: '100' - # How are addresses assigned? - allocation: static - # Allow MTU to be inherited from link the network rides on - mtu: 1500 - # Network address - cidr: 172.16.1.0/24 - # Desribe IP address ranges - ranges: - - type: static - start: 172.16.1.15 - end: 172.16.1.254 - # Static routes to be added for this network - routes: - - subnet: 0.0.0.0/0 - # A blank gateway would leave to a static route specifying - # only the interface as a source - gateway: 172.16.1.1 - metric: 10 - # DNS settings for this network - dns: - # Domain addresses on this network will be registered under - domain: mgmt.sitename.example.com - # DNS servers that a server using this network as its default gateway should use - servers: 172.16.1.9,172.16.1.10 ---- -apiVersion: 'v1.0' -kind: Network -metadata: - name: private - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - vlan_id: '101' - allocation: static - mtu: 9000 - cidr: 172.16.2.0/24 - # Desribe IP address ranges - ranges: - # Type can be reserved (not used for baremetal), static (all explicit - # assignments should fall here), dhcp (will be used by a DHCP server on this network) - - type: static - start: 172.16.2.15 - end: 172.16.2.254 - dns: - domain: priv.sitename.example.com - servers: 172.16.2.9,172.16.2.10 ---- -apiVersion: 'v1.0' -kind: Network -metadata: - name: public - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - vlan_id: '102' - # How are addresses assigned? - allocation: static - # MTU size for the VLAN interface - mtu: 1500 - cidr: 172.16.3.0/24 - # Desribe IP address ranges - ranges: - - type: static - start: 172.16.3.15 - end: 172.16.3.254 - routes: - - subnet: 0.0.0.0/0 - gateway: 172.16.3.1 - metric: 9 - dns: - domain: sitename.example.com - servers: 8.8.8.8 ---- -apiVersion: 'v1.0' -kind: HostProfile -metadata: - name: default - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces - # No magic to this host_profile, it just provides a way to specify - # sitewide settings. If it is absent from a node's inheritance chain - # then these values will NOT be applied -spec: - # OOB (iLO, iDRAC, etc...) settings. Should prefer open standards such - # as IPMI over vender-specific when possible. - oob: - type: ipmi - # OOB networking should be preconfigured, but we can include a network - # definition for validation or enhancement (DNS registration) - network: oob - account: admin - credential: admin - # Specify storage layout of base OS. Ceph out of scope - storage: - # How storage should be carved up: lvm (logical volumes), flat - # (single partition) - layout: lvm - # Info specific to the boot and root disk/partitions - bootdisk: - # Device will specify an alias defined in hwdefinition.yaml - device: primary_boot - # For LVM, the size of the partition added to VG as a PV - # For flat, the size of the partition formatted as ext4 - root_size: 50g - # The /boot partition. If not specified, /boot will in root - boot_size: 2g - # Info for additional partitions. Need to balance between - # flexibility and complexity - partitions: - - name: logs - device: primary_boot - # Partition uuid if needed - part_uuid: 84db9664-f45e-11e6-823d-080027ef795a - size: 10g - # Optional, can carve up unformatted block devices - mountpoint: /var/log - fstype: ext4 - mount_options: defaults - # Filesystem UUID or label can be specified. UUID recommended - fs_uuid: cdb74f1c-9e50-4e51-be1d-068b0e9ff69e - fs_label: logs - # Platform (Operating System) settings - platform: - image: ubuntu_16.04_hwe - kernel_params: default - # Additional metadata to apply to a node - metadata: - # Base URL of the introspection service - may go in curtin data - introspection_url: http://172.16.1.10:9090 ---- -apiVersion: 'v1.0' -kind: HostProfile -metadata: - name: k8-node - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - # host_profile inheritance allows for deduplication of common CIs - # Inheritance is additive for CIs that are lists of multiple items - # To remove an inherited list member, prefix the primary key value - # with '!'. - host_profile: defaults - # Hardware profile will map hardware specific details to the abstract - # names uses in the host profile as well as specify hardware specific - # configs. A viable model should be to build a host profile without a - # hardware_profile and then for each node inherit the host profile and - # specify a hardware_profile to map that node's hardware to the abstract - # settings of the host_profile - hardware_profile: HPGen9v3 - # Network interfaces. - interfaces: - # Keyed on device_name - # pxe is a special marker indicating which device should be used for pxe boot - - device_name: pxe - # The network link attached to this - network_link: pxe - # Slaves will specify aliases from hwdefinition.yaml - slaves: - - prim_nic01 - # Which networks will be configured on this interface - networks: - - name: pxe - - device_name: bond0 - network_link: gp - # If multiple slaves are specified, but no bonding config - # is applied to the link, design validation will fail - slaves: - - prim_nic01 - - prim_nic02 - # If multiple networks are specified, but no trunking - # config is applied to the link, design validation will fail - networks: - - name: mgmt - - name: private - metadata: - # Explicit tag assignment - tags: - - 'test' - # MaaS supports key/value pairs. Not sure of the use yet - owner_data: - foo: bar ---- -apiVersion: 'v1.0' -kind: HostProfile -metadata: - name: k8-node-public - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - host_profile: k8-node - interfaces: - - device_name: bond0 - networks: - # This is additive, so adds a network to those defined in the host_profile - # inheritance chain - - name: public ---- -apiVersion: 'v1.0' -kind: BaremetalNode -metadata: - name: controller01 - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - host_profile: k8-node-public - # the hostname for a server, could be used in multiple DNS domains to - # represent different interfaces - interfaces: - - device_name: bond0 - networks: - # '!' prefix for the value of the primary key indicates a record should be removed - - name: '!private' - # Addresses assigned to network interfaces - addressing: - # Which network the address applies to. If a network appears in addressing - # that isn't assigned to an interface, design validation will fail - - network: pxe - # The address assigned. Either a explicit IPv4 or IPv6 address - # or dhcp or slaac - address: dhcp - - network: mgmt - address: 172.16.1.20 - - network: public - address: 172.16.3.20 - metadata: - tags: - - os_ctl - rack: rack01 ---- -apiVersion: 'v1.0' -kind: BaremetalNode -metadata: - name: compute01 - region: sitename - date: 17-FEB-2017 - author: sh8121@att.com - description: Describe layer 2/3 attributes. Primarily CIs used for configuring server interfaces -spec: - host_profile: k8-node - addressing: - - network: pxe - address: dhcp - - network: mgmt - address: 172.16.1.21 - - network: private - address: 172.16.2.21 diff --git a/examples/designparts_v1.0.yaml b/examples/designparts_v1.0.yaml new file mode 100644 index 00000000..530efbc0 --- /dev/null +++ b/examples/designparts_v1.0.yaml @@ -0,0 +1,331 @@ +# Copyright 2017 AT&T Intellectual Property. All other rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +# Site/Region wide definitions. Each design part will be a constituent +# of the design for exactly one Region +apiVersion: 'v1.0' +kind: Region +metadata: + name: sitename + date: 17-FEB-2017 + description: Sample site design + author: sh8121@att.com +spec: + # List of query-based definitions for applying tags to deployed nodes + tag_definitions: + - tag: 'high_memory' + # Tag to apply to nodes that qualify for the query + definition_type: 'lshw_xpath' + # Only support on type for now - 'lshw_xpath' used by MaaS + definition: //node[@id="memory"]/'size units="bytes"' > 137438953472 + # an xpath query that is run against the output of 'lshw -xml' from the node + # Image and package repositories needed by Drydock drivers. Needs to be defined + repositories: + - name: 'ubuntu-main' +--- +apiVersion: 'v1.0' +kind: NetworkLink +metadata: + name: oob + region: sitename + date: 17-FEB-2017 + author: sh8121@att.com + description: Describe layer 1 attributes. Primary key is 'name'. These settings will generally be things the switch and server have to agree on +spec: + bonding: + # Mode can be 'disabled', '802.3ad', 'balanced-rr', 'active-backup'. Defaults to disabled + mode: '802.3ad' + # The below apply to 802.3ad (LACP + # Link selection hash. Supports 'layer3+4', 'layer2', 'layer2+3'. Defaults to 'layer3+4' + hash: 'layer3+4' + # LACP peering rate. Supports 'slow', 'fast'. Defaults to 'fast' + peer_rate: 'fast' + # LACP link monitor rate in milliseconds. Defaults to 100ms + mon_rate: 100 + # LACP delay for marking link up in milliseconds. Must be greater than mon_rate. Defaults to 200ms + up_delay: 200 + # LACP dleay for marking link down in milliseconds. Must be greater than mon_rate. Defaults to 200ms + down_delay: 200 + # Physical link default MTU size. No default + mtu: 1500 + # Physical link speed. Supports 'auto', '100full'. Gigabit+ speeds require auto. No default + linkspeed: 'auto' + # Settings for using a link for multiple L2 networks + trunking: + # Trunking mode. Supports 'disabled', '802.1q'. Defaults to disabled + mode: disabled + # If disabled, what network is this port on. If '802.1q' what is the default network for the port. No default. + default_network: oob +--- +apiVersion: 'v1.0' +kind: Network +metadata: + name: oob + region: sitename + date: 17-FEB-2017 + author: sh8121@att.com + description: Describe layer 2 and 3 attributes. Primary key is 'name'. +spec: + # CIDR representation of network number and netmask + cidr: '172.16.1.0/24' + # How addresses are allocated on the network. Supports 'static', 'dhcp'. Defaults to 'static' + allocation: 'static' + # VLAN of this network. Defaults to None + vlan: 100 + # MTU of this network. Defaults to the MTU specified for the NetworkLink used for this network + dns: + # Domain name used to register addresses assigned from this network. Defaults to 'local' + domain: 'aic.att.com' + # Comma-separated list of DNS server IP addresses. These will be configured on the node if + # this network is identified as the node's primary network + servers: '8.8.8.8, 4.4.4.4' + # Defined IP address ranges. All node IP address assignments must fall into a defined range + # of the correct type + ranges: + # Type of range. Supports 'static' or 'dhcp'. No default + - type: 'dhcp' + # Start of the address range, inclusive. No default + start: '172.16.1.100' + # End of the address range, inclusive. No default + end: '172.16.1.254' + # Routes defined for this network, including the default route (i.e. default gateway) + routes: + # The network being routed to in CIDR notation. Default gateway is 0.0.0.0/0. + - subnet: '0.0.0.0/0' + # Next hop for traffic using this route + gateway: '172.16.1.3' + # Selection metric for the host selecting this route. No default + metric: 10 +--- +apiVersion: 'v1.0' +kind: HardwareProfile +metadata: + name: DellR720v2 + region: sitename + date: 17-FEB-2017 + author: sh8121@att.com + description: Describe server hardware attributes. Not a specific server, but profile adopted by a server defintion. +spec: + # Chassis vendor + vendor: 'Dell' + # Chassis model generation + generation: '1' + # Chassis model version + hw_version: '2' + # Certified BIOS version for this chassis + bios_version: '2.2.3' + # Boot mode. Supports 'bios' or 'uefi' + boot_mode: 'bios' + # How the node should be initially bootstrapped. Supports 'pxe' + bootstrap_protocol: 'pxe' + # What network interface to use for PXE booting + # for chassis that support selection + pxe_interface: '0' + # Mapping of hardware alias/role to physical address + device_aliases: + # the device alias that will be referenced in HostProfile or BaremetalNode design parts + - alias: 'pnic01' + # The hardware bus the device resides on. Supports 'pci' and 'scsi'. No default + bus_type: 'pci' + # The type of device as reported by lshw. Can be used to validate hardware manifest. No default + dev_type: 'Intel 10Gbps NIC' + # Physical address on the bus + address: '0000:00:03.0' +--- +apiVersion: 'v1.0' +kind: HostProfile +metadata: + name: lcp_node + region: sitename + date: 17-FEB-2017 + author: sh8121@att.com + description: Describe server configuration attributes. Not a specific server, but profile adopted by a server definition +spec: + # The HostProfile this profile adopts initial state from. No default. + # See helm_drydock/objects/readme.md for information on how HostProfile and BaremetalNode inheritance works + host_profile: 'defaults' + # The HardwareProfile describing the node hardware. No default. + hardware_profile: 'DellR720v1' + # OOB access to node + oob: + # Type of OOB access. Supports 'ipmi' + type: 'ipmi' + # Which network - as defined in a Network design part - to access the OOB interface on + network: 'oob' + # Account name for authenticating on the OOB interface + account: 'admin' + # Credential for authentication on the OOB interface. The OOB driver will interpret this. + credential: 'admin' + # How local node storage is configured + storage: + # How storage is laid out. Supports 'lvm' and 'flat'. Defaults to 'lvm' + layout: 'lvm' + # Configuration for the boot disk + bootdisk: + # Hardware disk (or hardware RAID device) used for booting. Can refer to a + # HardwareProfile device alias or a explicit device name + device: 'bootdisk' + # Size of the root volume. Can be specified by percentage or explicit size in + # megabytes or gigabytes. Defaults to 100% of boot device. + root_size: '100g' + # If a separate boot volume is needed, specify size. Defaults to 0 where /boot goes on root. + boot_size: '0' + # Non-boot volumes that should be carved out of local storage + partitions: + # Name of the volume. Doesn't translate to any operating system config + name: 'logs' + # Hardware device the volume should go on + device: 'bootdisk' + # Partition UUID. Defaults to None. A value of 'generate' means Drydock will generate a UUID + part_uuid: + # Size of the volume in megabytes or gigabytes + size: '10g' + # Filesystem mountpoint if volume should be a filesystem + mountpoint: '/var/logs' + # The below are ignored if mountpoint is None + # Format of filesystem. Defaults to ext4 + fstype: 'ext4' + # Mount options of the file system as used in /etc/fstab. Defaults to 'defaults' + mount_options: 'defaults' + # Filesystem UUID. Defaults to None. A value of 'generate' means Drydock will generate a UUID + fs_uuid: + # A filesystem label. Defaults to None + fs_label: + # Physical and logical network interfaces + interfaces: + # What the interface should be named in the operating system. May not match a hardware device name + device_name: bond0 + # The NetworkLink connected to this interface. Must be the name of a NetworkLink design part + device_link: 'gp' + # Whether this interface is considered the primary interface on the server. Supports true and false. Defaults to false + primary: true + # Hardware devices that support this interface. For configurating a physical device, this would be a list of one + # For bonds, this would be a list of all the physical devices in the bond. These can refer to HardwareProfile device aliases + # or explicit device names + slaves: + - 'pnic01' + - 'pnic02' + # Network that will be accessed on this interface. These should each be to the name of a Network design part + # Multiple networks listed here assume that this interface is attached to a NetworkLink supporting trunking + networks: + - 'mgmt' + - 'admin' + # Metadata about the node + metadata: + # Explicit tags to propagate to Kubernetes. Simple strings of any value + tags: + - 'lcp_node' + # Key/value mapping that will propagate to the node for next-step bootstrapping + owner_data: + nic_access: 'sriov' + # The rack a node sits in. Simple string + rack: r1 +--- +apiVersion: 'v1.0' +kind: BaremetalNode +metadata: + name: lcp_controller01 + region: sitename + date: 17-FEB-2017 + author: sh8121@att.com + description: Specify a physical server. +spec: + # The HostProfile this server adopts initial state from. No default. + # See helm_drydock/objects/readme.md for information on how HostProfile and BaremetalNode inheritance works + host_profile: 'defaults' + # The HardwareProfile describing the node hardware. No default. + hardware_profile: 'DellR720v1' + # OOB access to node + oob: + # Type of OOB access. Supports 'ipmi' + type: 'ipmi' + # Which network - as defined in a Network design part - to access the OOB interface on + network: 'oob' + # Account name for authenticating on the OOB interface + account: 'admin' + # Credential for authentication on the OOB interface. The OOB driver will interpret this. + credential: 'admin' + # How local node storage is configured + storage: + # How storage is laid out. Supports 'lvm' and 'flat'. Defaults to 'lvm' + layout: 'lvm' + # Configuration for the boot disk + bootdisk: + # Hardware disk (or hardware RAID device) used for booting. Can refer to a + # HardwareProfile device alias or a explicit device name + device: 'bootdisk' + # Size of the root volume. Can be specified by percentage or explicit size in + # megabytes or gigabytes. Defaults to 100% of boot device. + root_size: '100g' + # If a separate boot volume is needed, specify size. Defaults to 0 where /boot goes on root. + boot_size: '0' + # Non-boot volumes that should be carved out of local storage + partitions: + # Name of the volume. Doesn't translate to any operating system config + name: 'logs' + # Hardware device the volume should go on + device: 'bootdisk' + # Partition UUID. Defaults to None. A value of 'generate' means Drydock will generate a UUID + part_uuid: + # Size of the volume in megabytes or gigabytes + size: '10g' + # Filesystem mountpoint if volume should be a filesystem + mountpoint: '/var/logs' + # The below are ignored if mountpoint is None + # Format of filesystem. Defaults to ext4 + fstype: 'ext4' + # Mount options of the file system as used in /etc/fstab. Defaults to 'defaults' + mount_options: 'defaults' + # Filesystem UUID. Defaults to None. A value of 'generate' means Drydock will generate a UUID + fs_uuid: + # A filesystem label. Defaults to None + fs_label: + # Physical and logical network interfaces + interfaces: + # What the interface should be named in the operating system. May not match a hardware device name + - device_name: bond0 + # The NetworkLink connected to this interface. Must be the name of a NetworkLink design part + device_link: 'gp' + # Whether this interface is considered the primary interface on the server. Supports true and false. Defaults to false + primary: true + # Hardware devices that support this interface. For configurating a physical device, this would be a list of one + # For bonds, this would be a list of all the physical devices in the bond. These can refer to HardwareProfile device aliases + # or explicit device names + slaves: + - 'pnic01' + - 'pnic02' + # Network that will be accessed on this interface. These should each be to the name of a Network design part + # Multiple networks listed here assume that this interface is attached to a NetworkLink supporting trunking + networks: + - 'mgmt' + - 'admin' + # Metadata about the node + metadata: + # Explicit tags to propagate to Kubernetes. Simple strings of any value + tags: + - 'lcp_node' + # Key/value mapping that will propagate to the node for next-step bootstrapping + owner_data: + nic_access: 'sriov' + # The rack a node sits in. Simple string + rack: r1 + # How each attached network is accessed by this node + addressing: + # The name of a defined Network design part also listed in the 'networks' section of a interface definition + - network: 'pxe' + # Address should be an explicit IP address assignment or 'dhcp' + address: 'dhcp' + - network: 'mgmt' + address: '172.16.1.83' +--- \ No newline at end of file diff --git a/examples/readme.md b/examples/readme.md new file mode 100644 index 00000000..567e9981 --- /dev/null +++ b/examples/readme.md @@ -0,0 +1,7 @@ +# File Definition Examples + +## designparts_v1.0.yaml + +This is a reference file for the YAML schema supported by the Drydock YAML +ingester. Each design part currently supported is listed with all supported +attributes and comments on attribute use and restrictions. \ No newline at end of file