
going forward Added readmes to submodules Refactored model into multiple files Standardized on 'node' for physical server Pinned requirements.txt to versions Began orchestration action outline in conjunction with DAG
457 lines
14 KiB
YAML
457 lines
14 KiB
YAML
# 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
|
|
# 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: 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
|
|
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:
|
|
- 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'
|
|
# 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
|
|
- 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
|
|
- '!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:
|
|
roles: 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
|
|
---
|
|
apiVersion: 'v1.0'
|
|
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:
|
|
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'
|