treasuremap/site/airsloop/baremetal/bootactions/promjoin.yaml
Kaspars Skels 06ffeec6b1 Sloop type and Airsloop site
Sloop type/site is a minimalistic approach to Airship with reduced
requirements towards hardware and external dependencies while keeping
all the functional features.

Major differences compared to reference site airship-seaworthy
 - Two bare-metal server setup with 1 control, and 1 compute.
   Most components are scaled to a single replica and doesn't carry
   any HA as there is only a single control plane host.
 - No requirements for DNS/certificates.
   HTTP and internal cluster DNS is used.
 - Ceph set to use the single (root) disk. This generally
   provides minimalistic no-touch ceph deployment.
   No replication of ceph data (single copy).
 - Simplified networking (no bonding).
   Two network interfaces are used by default (flat PXE, and DATA network
   with VLANs for OAM, Calico, Storage, and OpenStack Overlay)
 - Generic hostnames used (airsloop-control-1, airsloop-compute-1) that
   simplifies generation of k8s certificates
 - Usage of standard Ubuntu 16.04 GA kernel (as oppose to HWE)

Change-Id: I4944fcae7d29ed8799d810c93efb0120b6b3a105
2019-04-12 16:11:37 -05:00

33 lines
1.2 KiB
YAML

---
# This file defines a boot action which is responsible for fetching the node's
# promjoin script from the promenade API. This is the script responsible for
# installing kubernetes on the node and joining the kubernetes cluster.
# #GLOBAL-CANDIDATE#
schema: 'drydock/BootAction/v1'
metadata:
schema: 'metadata/Document/v1'
name: promjoin
storagePolicy: 'cleartext'
layeringDefinition:
abstract: false
layer: site
labels:
application: 'drydock'
data:
signaling: false
# TODO(alanmeadows) move what is global about this document
assets:
- path: /opt/promjoin.sh
type: file
permissions: '555'
# The ip= parameter must match the MaaS network name of the network used
# to contact kubernetes. With a standard, reference Airship deployment where
# L2 networks are shared between all racks, the network name (i.e. calico)
# should be correct.
location: promenade+http://promenade-api.ucp.svc.cluster.local/api/v1.0/join-scripts?design_ref={{ action.design_ref | urlencode }}&hostname={{ node.hostname }}&ip={{ node.network.calico.ip }}{% for k, v in node.labels.items() %}&labels.dynamic={{ k }}={{ v }}{% endfor %}
location_pipeline:
- template
data_pipeline:
- utf8_decode
...