#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: 'drydock/v1' kind: Region metadata: name: sitename date: 17-FEB-2017 description: Sample site design author: sh8121@att.com spec: tag_definitions: - tag: test definition_type: lshw_xpath definition: "//node[@id=\"display\"]/'clock units=\"Hz\"' > 1000000000" authorized_keys: - | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDENeyO5hLPbLLQRZ0oafTYWs1ieo5Q+XgyZQs51Ju jDGc8lKlWsg1/6yei2JewKMgcwG2Buu1eqU92Xn1SvMZLyt9GZURuBkyjcfVc/8GiU5QP1Of8B7CV0c kfUpHWYJ17olTzT61Hgz10ioicBF6cjgQrLNcyn05xoaJHD2Vpf8Unxzi0YzA2e77yRqBo9jJVRaX2q wUJuZrzb62x3zw8Knz6GGSZBn8xRKLaw1SKFpd1hwvL62GfqX5ZBAT1AYTZP1j8GcAoK8AFVn193SEU vjSdUFa+RNWuJhkjBRfylJczIjTIFb5ls0jpbA3bMA9DE7lFKVQl6vVwFmiIVBI1 samplekey --- apiVersion: 'drydock/v1' 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: disabled mtu: 1500 linkspeed: 100full trunking: mode: disabled default_network: oob allowed_networks: - 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: 'drydock/v1' 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: disabled mtu: 1500 linkspeed: auto # Is this link supporting multiple layer 2 networks? # none is a port-based VLAN identified by default_network # tagged is using 802.1q VLAN tagging. Untagged packets will default to default_netwokr trunking: mode: disabled # use name, will translate to VLAN ID default_network: pxe allowed_networks: - pxe --- apiVersion: 'drydock/v1' 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 mtu: 9000 linkspeed: auto # Is this link supporting multiple layer 2 networks? trunking: mode: 802.1q default_network: mgmt allowed_networks: - public - mgmt --- apiVersion: 'drydock/v1' kind: Rack metadata: name: rack1 region: sitename date: 24-AUG-2017 author: sh8121@att.com description: A equipment rack spec: # List of TOR switches in this rack tor_switches: switch01name: mgmt_ip: 1.1.1.1 sdn_api_uri: polo+https://api.sdn.example.com/switchmgmt?switch=switch01name switch02name: mgmt_ip: 1.1.1.2 sdn_api_uri: polo+https://api.sdn.example.com/switchmgmt?switch=switch02name # GIS data for this rack location: clli: HSTNTXMOCG0 grid: EG12 # Networks wholly contained to this rack # Nodes in a rack can only connect to local_networks of that rack local_networks: - pxe-rack1 --- apiVersion: 'drydock/v1' 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: 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: 'drydock/v1' 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' # If this network utilizes a dhcp relay, where does it forward DHCPDISCOVER requests to? dhcp_relay: # Required if Drydock is configuring a switch with the relay self_ip: 172.16.0.4 # Can refer to a unicast IP upstream_target: 172.16.5.5 # 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: 'drydock/v1' 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' # 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: 'drydock/v1' 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' 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: 'drydock/v1' 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' # 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: 10 dns: domain: sitename.example.com servers: 8.8.8.8 --- apiVersion: 'drydock/v1' kind: HostProfile metadata: name: defaults 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 physical_devices: name: partitions: name: part_uuid: size: bootable: filesystem: mountpoint: format: mount_options: fs_uuid: fs_label: volume_group: logical_volumes: name: volume_group: size: lv_uuid: filesystem: mountpoint: format: mount_options: fs_uuid: fs_label: # Platform (Operating System) settings platform: image: ubuntu_16.04 kernel: generic kernel_params: quiet: true console: ttyS2 # Additional metadata to apply to a node metadata: # Freeform tags to be applied to the host tags: - deployment=initial owner_data: foo: bar --- apiVersion: 'drydock/v1' 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. primary_network: mgmt 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 device_link: pxe # Slaves will specify aliases from hwdefinition.yaml slaves: - prim_nic01 # Which networks will be configured on this interface networks: - 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: - mgmt - private metadata: # Explicit tag assignment tags: - 'test' --- apiVersion: 'drydock/v1' 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 # 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 - '!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 - network: oob address: 172.16.100.20 metadata: rack: rack1 --- apiVersion: 'drydock/v1' 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 - network: oob address: 172.16.100.21 metadata: rack: rack2 --- apiVersion: 'drydock/v1' kind: HardwareProfile metadata: name: HPGen9v3 region: sitename date: 17-FEB-2017 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: - address: '0000:00:03.0' alias: prim_nic01 # type could identify expected hardware - used for hardware manifest validation dev_type: '82540EM Gigabit Ethernet Controller' bus_type: 'pci' - address: '0000:00:04.0' alias: prim_nic02 dev_type: '82540EM Gigabit Ethernet Controller' bus_type: 'pci' - address: '2:0.0.0' alias: primary_boot dev_type: 'VBOX HARDDISK' bus_type: 'scsi' ...