Initial commit of PVC Bootstrap system

Adds the PVC Bootstrap system, which allows the automated deployment of
one or more PVC clusters.
This commit is contained in:
2021-12-29 22:31:01 -05:00
commit 379262a74f
37 changed files with 4513 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

13
docs/swagger.html Normal file
View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<title>PVC Bootstrap API Documentation</title>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style> body { margin: 0; padding: 0; } </style>
</head>
<body>
<redoc spec-url='./swagger.json' hide-loading></redoc>
<script src="https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js"> </script>
</body>
</html>

191
docs/swagger.json Normal file
View File

@ -0,0 +1,191 @@
{
"definitions": {
"Message": {
"properties": {
"message": {
"description": "A text message describing the result",
"example": "The foo was successfully maxed",
"type": "string"
}
},
"type": "object"
}
},
"host": "localhost:9999",
"info": {
"title": "PVC Bootstrap API",
"version": "1.0"
},
"paths": {
"/": {
"get": {
"description": "",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Message"
}
}
},
"summary": "Return basic details of the API",
"tags": [
"root"
]
}
},
"/checkin": {
"get": {
"description": "",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Message"
}
}
},
"summary": "Return checkin details of the API",
"tags": [
"checkin"
]
}
},
"/checkin/dnsmasq": {
"post": {
"consumes": [
"application/json"
],
"description": "",
"parameters": [
{
"description": "An event checkin from an external bootstrap tool component.",
"in": "body",
"name": "dnsmasq_checkin_event",
"schema": {
"properties": {
"action": {
"description": "The action of the event.",
"example": "add",
"type": "string"
},
"client_id": {
"description": "(add, old) The client ID from a DHCP request.",
"example": "01:ff:ff:ff:ab:cd:ef",
"type": "string"
},
"hostname": {
"description": "(add, old) The client hostname from a DHCP request.",
"example": "pvc-installer-live",
"type": "string"
},
"ipaddr": {
"description": "(add, old) The IP address from a DHCP request.",
"example": "10.199.199.10",
"type": "string"
},
"macaddr": {
"description": "(add, old) The MAC address from a DHCP request.",
"example": "ff:ff:ff:ab:cd:ef",
"type": "string"
},
"user_class": {
"description": "(add, old) The DHCP user-class option from a DHCP request.",
"example": "None",
"type": "string"
},
"vendor_class": {
"description": "(add, old) The DHCP vendor-class option from a DHCP request.",
"example": "CPQRIB3 (HP Proliant DL360 G6 iLO)",
"type": "string"
}
},
"required": [
"action"
],
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Message"
}
}
},
"summary": "Register a checkin from the DNSMasq subsystem",
"tags": [
"checkin"
]
}
},
"/checkin/host": {
"post": {
"consumes": [
"application/json"
],
"description": "",
"parameters": [
{
"description": "An event checkin from an external bootstrap tool component.",
"in": "body",
"name": "host_checkin_event",
"schema": {
"properties": {
"action": {
"description": "The action of the event.",
"example": "begin",
"type": "string"
},
"bmc_ipaddr": {
"description": "The IP addres of the system BMC interface.",
"example": "10.199.199.10",
"type": "string"
},
"bmc_macaddr": {
"description": "The MAC address of the system BMC interface.",
"example": "ff:ff:ff:01:23:45",
"type": "string"
},
"host_ipaddr": {
"description": "The IP address of the system provisioning interface.",
"example": "10.199.199.11",
"type": "string"
},
"host_macaddr": {
"description": "The MAC address of the system provisioning interface.",
"example": "ff:ff:ff:ab:cd:ef",
"type": "string"
},
"hostname": {
"description": "The system hostname.",
"example": "hv1.mydomain.tld",
"type": "string"
}
},
"required": [
"action"
],
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/Message"
}
}
},
"summary": "Register a checkin from the Host subsystem",
"tags": [
"checkin"
]
}
}
},
"swagger": "2.0"
}