Separate demo and dev deployments of Airship

Separates and cleans up some documentation around the
airship-in-a-bottle usage for demo vs. development
environment purposes. Dev environments will deploy only the
Airship specific components, while the Demo will show a
more complete installation of OpenStack on top of Airship.

Change-Id: Icca614c4cc4aed426006720b924c105b15d9e510
This commit is contained in:
Bryan Strassner 2018-05-23 17:43:40 -05:00
parent 308017664e
commit f5e3ef1e7e
207 changed files with 8140 additions and 102 deletions

View File

@ -8,7 +8,8 @@ enabling an automated, resilient Kubernetes-based infrastructure for hosting
Helm-deployed containerized workloads.
To get started, run the following in a fresh Ubuntu 16.04 VM
(4vCPU/20GB RAM/64GB disk). This will deploy Airship and OSH:
(minimum 4vCPU/20GB RAM/32GB disk). This will deploy Airship and Openstack Helm
(OSH):
```
sudo -i
mkdir -p /root/deploy && cd "$_"

View File

@ -0,0 +1,85 @@
---
schema: promenade/Genesis/v1
metadata:
schema: metadata/Document/v1
name: genesis
labels:
genesis: enabled
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
# Software versions for bootstrapping phase
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ucp.armada.api
dest:
path: .images.armada
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ucp.armada.tiller
dest:
path: .images.helm.tiller
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.apiserver.apiserver
dest:
path: .images.kubernetes.apiserver
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.controller-manager.controller_manager
dest:
path: .images.kubernetes.controller-manager
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.etcd.etcd
dest:
path: .images.kubernetes.etcd
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.scheduler.scheduler
dest:
path: .images.kubernetes.scheduler
# Site-specific configuration
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .genesis.hostname
dest:
path: .hostname
- src:
schema: pegleg/CommonAddresses/v1
name: common-addresses
path: .genesis.ip
dest:
path: .ip
data:
armada:
target_manifest: cluster-bootstrap
labels:
dynamic:
- calico-etcd=enabled
- coredns=enabled
- kube-ingress=enabled
- kubernetes-apiserver=enabled
- kubernetes-controller-manager=enabled
- kubernetes-etcd=enabled
- kubernetes-scheduler=enabled
- openstack-compute-node=enabled
- openstack-control-plane=enabled
- openvswitch=enabled
- promenade-genesis=enabled
- ucp-control-plane=enabled
files:
- path: /var/lib/anchor/calico-etcd-bootstrap
content: "# placeholder for triggering calico etcd bootstrapping\n# this file will be deleted"
mode: 0644
...

View File

@ -0,0 +1,127 @@
---
schema: promenade/HostSystem/v1
metadata:
schema: metadata/Document/v1
name: host-system
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .files.kubelet
dest:
path: .files[0].tar_url
# Initial CoreDNS image (used during node Genesis and node join)
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.coredns.coredns
dest:
path: .images.coredns
# Initial CoreDNS image (used during node Genesis and node join)
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.haproxy.haproxy
dest:
path: .images.haproxy
# Operational tools
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.ucp.armada.helm
dest:
path: .images.helm.helm
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.kubernetes.kubectl
dest:
path: .images.kubernetes.kubectl
# System packages
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .packages.named.docker
dest:
path: .packages.required.docker
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .packages.named.socat
dest:
path: .packages.required.socat
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .packages.unnamed
dest:
path: .packages.additional
data:
files:
- path: /opt/kubernetes/bin/kubelet
tar_path: kubernetes/node/bin/kubelet
mode: 0555
- path: /etc/logrotate.d/json-logrotate
mode: 0444
content: |-
/var/lib/docker/containers/*/*-json.log
{
compress
copytruncate
create 0644 root root
daily
dateext
dateformat -%Y%m%d-%s
maxsize 10M
missingok
notifempty
su root root
rotate 1
}
packages:
# NOTE(mb874d): This method for specified repositories and keys will be
# change to align with Drydock's approach. Until then, we will specify
# it here.
repositories:
- deb http://apt.dockerproject.org/repo ubuntu-xenial main
keys:
- |-
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFWln24BEADrBl5p99uKh8+rpvqJ48u4eTtjeXAWbslJotmC/CakbNSqOb9o
ddfzRvGVeJVERt/Q/mlvEqgnyTQy+e6oEYN2Y2kqXceUhXagThnqCoxcEJ3+KM4R
mYdoe/BJ/J/6rHOjq7Omk24z2qB3RU1uAv57iY5VGw5p45uZB4C4pNNsBJXoCvPn
TGAs/7IrekFZDDgVraPx/hdiwopQ8NltSfZCyu/jPpWFK28TR8yfVlzYFwibj5WK
dHM7ZTqlA1tHIG+agyPf3Rae0jPMsHR6q+arXVwMccyOi+ULU0z8mHUJ3iEMIrpT
X+80KaN/ZjibfsBOCjcfiJSB/acn4nxQQgNZigna32velafhQivsNREFeJpzENiG
HOoyC6qVeOgKrRiKxzymj0FIMLru/iFF5pSWcBQB7PYlt8J0G80lAcPr6VCiN+4c
NKv03SdvA69dCOj79PuO9IIvQsJXsSq96HB+TeEmmL+xSdpGtGdCJHHM1fDeCqkZ
hT+RtBGQL2SEdWjxbF43oQopocT8cHvyX6Zaltn0svoGs+wX3Z/H6/8P5anog43U
65c0A+64Jj00rNDr8j31izhtQMRo892kGeQAaaxg4Pz6HnS7hRC+cOMHUU4HA7iM
zHrouAdYeTZeZEQOA7SxtCME9ZnGwe2grxPXh/U/80WJGkzLFNcTKdv+rwARAQAB
tDdEb2NrZXIgUmVsZWFzZSBUb29sIChyZWxlYXNlZG9ja2VyKSA8ZG9ja2VyQGRv
Y2tlci5jb20+iQI4BBMBAgAiBQJVpZ9uAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIe
AQIXgAAKCRD3YiFXLFJgnbRfEAC9Uai7Rv20QIDlDogRzd+Vebg4ahyoUdj0CH+n
Ak40RIoq6G26u1e+sdgjpCa8jF6vrx+smpgd1HeJdmpahUX0XN3X9f9qU9oj9A4I
1WDalRWJh+tP5WNv2ySy6AwcP9QnjuBMRTnTK27pk1sEMg9oJHK5p+ts8hlSC4Sl
uyMKH5NMVy9c+A9yqq9NF6M6d6/ehKfBFFLG9BX+XLBATvf1ZemGVHQusCQebTGv
0C0V9yqtdPdRWVIEhHxyNHATaVYOafTj/EF0lDxLl6zDT6trRV5n9F1VCEh4Aal8
L5MxVPcIZVO7NHT2EkQgn8CvWjV3oKl2GopZF8V4XdJRl90U/WDv/6cmfI08GkzD
YBHhS8ULWRFwGKobsSTyIvnbk4NtKdnTGyTJCQ8+6i52s+C54PiNgfj2ieNn6oOR
7d+bNCcG1CdOYY+ZXVOcsjl73UYvtJrO0Rl/NpYERkZ5d/tzw4jZ6FCXgggA/Zxc
jk6Y1ZvIm8Mt8wLRFH9Nww+FVsCtaCXJLP8DlJLASMD9rl5QS9Ku3u7ZNrr5HWXP
HXITX660jglyshch6CWeiUATqjIAzkEQom/kEnOrvJAtkypRJ59vYQOedZ1sFVEL
MXg2UCkD/FwojfnVtjzYaTCeGwFQeqzHmM241iuOmBYPeyTY5veF49aBJA1gEJOQ
TvBR8Q==
=Fm3p
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,259 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: pegleg/AccountCatalogue/v1
data:
$schema: 'http://json-schema.org/schema#'
type: object
properties:
ucp:
type: object
properties:
postgres:
type: object
properties:
admin:
type: object
properties:
username:
type: string
oslo_db:
type: object
properties:
admin:
type: object
properties:
username:
type: string
oslo_messaging:
type: object
properties:
admin:
type: object
properties:
username:
type: string
keystone:
type: object
properties:
admin:
type: object
properties:
region_name:
type: string
username:
type: string
project_name:
type: string
user_domain_name:
type: string
project_domain_name:
type: string
oslo_messaging:
type: object
properties:
username:
type: string
oslo_db:
type: object
properties:
username:
type: string
database:
type: string
promenade:
type: object
properties:
keystone:
type: object
properties:
region_name:
type: string
role:
type: string
project_name:
type: string
project_domain_name:
type: string
user_domain_name:
type: string
username:
type: string
drydock:
type: object
properties:
keystone:
type: object
properties:
region_name:
type: string
role:
type: string
project_name:
type: string
project_domain_name:
type: string
user_domain_name:
type: string
username:
type: string
postgres:
type: object
properties:
username:
type: string
database:
type: string
shipyard:
type: object
properties:
keystone:
type: object
properties:
region_name:
type: string
role:
type: string
project_name:
type: string
project_domain_name:
type: string
user_domain_name:
type: string
username:
type: string
postgres:
type: object
properties:
username:
type: string
database:
type: string
airflow:
type: object
properties:
postgres:
type: object
properties:
username:
type: string
database:
type: string
oslo_messaging:
type: object
properties:
username:
type: string
maas:
type: object
properties:
admin:
type: object
properties:
username:
type: string
email:
type: string
postgres:
type: object
properties:
username:
type: string
database:
type: string
barbican:
type: object
properties:
keystone:
type: object
properties:
region_name:
type: string
role:
type: string
project_name:
type: string
project_domain_name:
type: string
user_domain_name:
type: string
username:
type: string
oslo_db:
type: object
properties:
username:
type: string
database:
type: string
oslo_messaging:
type: object
properties:
username:
type: string
armada:
type: object
properties:
keystone:
type: object
properties:
project_domain_name:
type: string
project_name:
type: string
region_name:
type: string
role:
type: string
user_domain_name:
type: string
username:
type: string
deckhand:
type: object
properties:
keystone:
type: object
properties:
region_name:
type: string
role:
type: string
project_name:
type: string
project_domain_name:
type: string
user_domain_name:
type: string
username:
type: string
postgres:
type: object
properties:
username:
type: string
database:
type: string
ceph:
type: object
properties:
swift:
type: object
properties:
keystone:
type: object
properties:
role:
type: string
region_name:
type: string
username:
type: string
project_name:
type: string
user_domain_name:
type: string
project_domain_name:
type: string
...

View File

@ -0,0 +1,107 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: pegleg/CommonAddresses/v1
data:
$schema: 'http://json-schema.org/schema#'
type: object
properties:
calico:
type: object
properties:
ip_autodetection_method:
type: string
etcd:
type: object
properties:
service_ip:
type: string
dns:
type: object
properties:
cluster_domain:
type: string
service_ip:
type: string
upstream_servers:
type: array
items:
type: string
upstream_servers_joined:
type: string
genesis:
type: object
properties:
hostname:
type: string
ip:
type: string
bootstrap:
type: object
properties:
ip:
type: string
kubernetes:
type: object
properties:
api_service_ip:
type: string
etcd_service_ip:
type: string
pod_cidr:
type: string
service_cidr:
type: string
apiserver_port:
type: number
haproxy_port:
type: number
etcd:
type: object
properties:
container_port:
type: number
haproxy_port:
type: number
masters:
type: array
items:
type: object
properties:
hostname:
type: string
node_ports:
type: object
properties:
drydock_api:
type: number
maas_api:
type: number
maas_proxy:
type: number
shipyard_api:
type: number
airflow_web:
type: number
ntp:
type: object
properties:
servers_joined:
type: string
openvswitch:
type: object
properties:
external_iface:
type: string
storage:
type: object
properties:
ceph:
type: object
properties:
public_cidr:
type: string
cluster_cidr:
type: string
...

View File

@ -0,0 +1,84 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: pegleg/EndpointCatalogue/v1
data:
$schema: 'http://json-schema.org/schema#'
type: 'object'
# Namespace the list of endpoints
additionalProperties:
type: 'object'
additionalProperties:
type: 'object'
properties:
name:
type: string
auth:
type: object
hosts:
type: object
properties:
default:
type: string
public:
type: string
internal:
type: string
additionalProperties:
type: string
host_fqdn_override:
oneOf:
- type: object
properties:
default:
oneOf:
- type: string
- type: "null"
public:
type: string
internal:
type: string
additionalProperties:
type: string
- type: "null"
path:
oneOf:
- type: object
properties:
default:
type: string
public:
type: string
internal:
type: string
additionalProperties:
type: string
- type: string
scheme:
oneOf:
- type: object
properties:
default:
type: string
public:
type: string
internal:
type: string
additionalProperties:
type: string
- type: string
port:
type: object
additionalProperties:
type: object
properties:
default:
type: number
public:
type: number
internal:
type: number
additionalProperties:
type: number
...

View File

@ -0,0 +1,747 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: pegleg/SoftwareVersions/v1
data:
$schema: 'http://json-schema.org/schema#'
type: object
properties:
charts:
type: object
properties:
kubernetes:
type: object
properties:
calico:
type: object
properties:
etcd:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
etcd-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
calico:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
apiserver:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
apiserver-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
ucp-helm-toolkit:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
controller-manager:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
controller-manager-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
coredns:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
coredns-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
haroxy:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
haroxy-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
etcd:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
etcd-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
ingress:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
ingress-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
proxy:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
proxy-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
scheduler:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
scheduler-htk:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
ucp:
type: object
properties:
armada:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
barbican:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
ceph:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
deckhand:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
drydock:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
ingress:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
postgresql:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
promenade:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
keystone:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
maas:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
mariadb:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
memcached:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
rabbitmq:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
rabbitmq-etcd:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
shipyard:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
tiller:
type: object
properties:
type:
type: string
location:
type: string
subpath:
type: string
reference:
type: string
files:
type: object
properties:
kubelet:
type: string
images:
type: object
properties:
ucp:
type: object
properties:
armada:
type: object
properties:
api:
type: string
dep_check:
type: string
ks_endpoints:
type: string
ks_service:
type: string
ks_user:
type: string
helm:
type: string
tiller:
type: string
promenade:
type: object
properties:
dep_check:
type: string
promenade:
type: string
ks_user:
type: string
ks_service:
type: string
ks_endpoints:
type: string
deckhand:
type: object
properties:
deckhand:
type: string
dep_check:
type: string
db_init:
type: string
db_sync:
type: string
ks_endpoints:
type: string
ks_service:
type: string
ks_user:
type: string
barbican:
type: object
properties:
bootstrap:
type: string
dep_check:
type: string
scripted_test:
type: string
db_init:
type: string
barbican_db_sync:
type: string
db_drop:
type: string
ks_endpoints:
type: string
ks_service:
type: string
ks_user:
type: string
barbican_api:
type: string
drydock:
type: object
properties:
drydock:
type: string
dep_check:
type: string
ks_endpoints:
type: string
ks_service:
type: string
ks_user:
type: string
drydock_db_init:
type: string
drydock_db_sync:
type: string
shipyard:
type: object
properties:
airflow:
type: string
shipyard:
type: string
dep_check:
type: string
shipyard_db_init:
type: string
shipyard_db_sync:
type: string
airflow_db_init:
type: string
airflow_db_sync:
type: string
ks_user:
type: string
ks_service:
type: string
ks_endpoints:
type: string
maas:
type: object
properties:
db_init:
type: string
db_sync:
type: string
maas_rack:
type: string
maas_region:
type: string
bootstrap:
type: string
export_api_key:
type: string
maas_cache:
type: string
dep_check:
type: string
keystone:
type: object
properties:
keystone_bootstrap:
type: string
test:
type: string
db_init:
type: string
keystone_db_sync:
type: string
db_drop:
type: string
keystone_fernet_setup:
type: string
keystone_fernet_rotate:
type: string
keystone_credential_setup:
type: string
keystone_credential_rotate:
type: string
keystone_api:
type: string
dep_check:
type: string
tiller:
type: object
properties:
tiller:
type: string
mariadb:
type: object
properties:
mariadb:
type: string
dep_check:
type: string
postgresql:
type: object
properties:
postgresql:
type: string
dep_check:
type: string
memcached:
type: object
properties:
memcached:
type: string
dep_check:
type: string
rabbitmq:
type: object
properties:
rabbitmq:
type: string
dep_check:
type: string
ceph:
type: object
properties:
ceph:
type: object
properties:
ks_endpoints:
type: string
ks_service:
type: string
ks_user:
type: string
ceph_bootstrap:
type: string
dep_check:
type: string
ceph_daemon:
type: string
ceph_config_helper:
type: string
ceph_rbd_provisioner:
type: string
ceph_cephfs_provisioner:
type: string
kubernetes:
type: object
properties:
apiserver:
type: object
properties:
anchor:
type: string
apiserver:
type: string
dep_check:
type: string
controller-manager:
type: object
properties:
anchor:
type: string
controller_manager:
type: string
dep_check:
type: string
coredns:
type: object
properties:
coredns:
type: string
haproxy:
type: object
properties:
haproxy:
type: string
anchor:
type: string
etcd:
type: object
properties:
etcd:
type: string
etcdctl:
type: string
kubectl:
type: string
pause:
type: string
scheduler:
type: object
properties:
anchor:
type: string
scheduler:
type: string
proxy:
type: object
properties:
proxy:
type: string
calico:
type: object
properties:
etcd:
type: object
properties:
etcd:
type: string
etcdctl:
type: string
calico:
type: object
properties:
cni:
type: string
ctl:
type: string
node:
type: string
policy_controller:
type: string
packages:
type: object
properties:
repositories:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
distributions:
type: array
items:
type: string
components:
type: array
items:
type: string
gpgkey:
type: string
named:
type: object
properties:
docker:
type: string
socat:
type: string
unnamed:
type: array
items:
type: string
...

View File

@ -0,0 +1,12 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: armada/Chart/v1
labels:
application: armada
data:
$schema: 'http://json-schema.org/schema#'
type: 'object'
additionalProperties: true
...

View File

@ -0,0 +1,12 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: armada/ChartGroup/v1
labels:
application: armada
data:
$schema: 'http://json-schema.org/schema#'
type: 'object'
additionalProperties: true
...

View File

@ -0,0 +1,12 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: armada/Manifest/v1
labels:
application: armada
data:
$schema: 'http://json-schema.org/schema#'
type: 'object'
additionalProperties: true
...

View File

@ -0,0 +1,164 @@
---
schema: 'deckhand/DataSchema/v1'
metadata:
schema: metadata/Control/v1
name: drydock/BaremetalNode/v1
labels:
application: drydock
data:
$schema: 'http://json-schema.org/schema#'
id: 'http://att.com/att-comdev/drydock/baremetalNode.yaml'
type: 'object'
properties:
addressing:
type: 'array'
items:
type: 'object'
properties:
address:
type: 'string'
network:
type: 'string'
oob:
type: 'object'
properties:
type:
type: 'string'
network:
type: 'string'
account:
type: 'string'
credetial:
type: 'string'
additionalProperties: true
storage:
type: 'object'
properties:
physical_devices:
type: 'object'
additionalProperties:
type: 'object'
properties:
labels:
type: 'object'
additionalProperties:
type: 'string'
volume_group:
type: 'string'
partitions:
type: 'array'
items:
type: 'object'
properties:
name:
type: 'string'
size:
type: 'string'
part_uuid:
type: 'string'
volume_group:
type: 'string'
labels:
type: 'object'
additionalProperties:
type: 'string'
bootable:
type: 'boolean'
volume_group:
type: 'string'
filesystem:
type: 'object'
properties:
mountpoint:
type: 'string'
fstype:
type: 'string'
mount_options:
type: 'string'
fs_uuid:
type: 'string'
fs_label:
type: 'string'
additionalProperties: false
additionalProperties: false
volume_groups:
type: 'object'
additionalProperties:
type: 'object'
properties:
vg_uuid:
type: 'string'
logical_volumes:
type: 'array'
items:
type: 'object'
properties:
name:
type: 'string'
lv_uuid:
type: 'string'
size:
type: 'string'
filesystem:
type: 'object'
properties:
mountpoint:
type: 'string'
fstype:
type: 'string'
mount_options:
type: 'string'
fs_uuid:
type: 'string'
fs_label:
type: 'string'
platform:
type: 'object'
properties:
image:
type: 'string'
kernel:
type: 'string'
kernel_params:
type: 'object'
additionalProperties: true
additionalProperties: false
metadata:
type: 'object'
properties:
tags:
type: 'array'
items:
type: 'string'
owner_data:
type: 'object'
additionalProperties:
type: 'string'
rack:
type: 'string'
boot_mac:
type: 'string'
additionalProperties: false
host_profile:
type: 'string'
hardware_profile:
type: 'string'
primary_network:
type: 'string'
interfaces:
type: 'object'
additionalProperties:
type: 'object'
properties:
device_link:
type: 'string'
slaves:
type: 'array'
items:
type: 'string'
networks:
type: 'array'
items:
type: 'string'
additionalProperties: false
...

Some files were not shown because too many files have changed in this diff Show More