aa624ce27c
This commit provides the Go code and scripts for the Bootstrap container for GCP. The Bootstrap container (bootstrap_capg) for Google Cloud is designed to accept three commands: create, delete and help. - create - will create an Ephemeral GKE cluster in Google Cloud - delete - will delete the Ephemeral GKE cluster from the Google Cloud - help - Stdout the help text for using this container. Please, refer to the bootstrap_capg/README.md for further details. Change-Id: Ifad7c7a7fede0230029716c9e093449f5886e859
67 lines
2.3 KiB
Plaintext
67 lines
2.3 KiB
Plaintext
|
|
Google Cloud Ephemeral Configuration File Definition
|
|
-----------------------------------------------------
|
|
The GCP Bootstrap container creates an Ephemeral K8S cluster on the Google Cloud platform.
|
|
The container requires authentication credentials and other information about the cluster to deploy.
|
|
It requires a YAML configuration file with the format provided below.
|
|
|
|
<YAML>
|
|
apiVersion: v1
|
|
kind: GoogleCloudConfig
|
|
metadata:
|
|
name: <Ephemeral K8S cluster name>
|
|
credentials:
|
|
project: <Google Cloud Project ID>
|
|
account: <Google Cloud Account ID>
|
|
credential: <credentials.json filename>
|
|
spec:
|
|
region: <Google Cloud Region, e.g., us-central1>
|
|
Zone: <Google Cloud Zone, e.g., us-central1-c>
|
|
cluster:
|
|
k8sVersion: <Kubernetes version, e.g., 1.16.9-gke.6>
|
|
machineSize: <Google Cloud Compute VM Type, e.g., e2-medium>
|
|
diskSize: <Google Cloud compute disk size>
|
|
replicas: <Node Replica Number for the cluster>
|
|
kubeconfig: <Kubeconfig filename, Default is 'kubeconfig'>
|
|
</YMAL>
|
|
|
|
The JSON format is also a valid configuration file for this bootstrap container.
|
|
|
|
<JSON>
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "GoogleCloudConfig",
|
|
"metadata": {
|
|
"name": "<Ephemeral K8S cluster name>"
|
|
},
|
|
"credentials": {
|
|
"project": "<Google Cloud Project ID>",
|
|
"account": "<Google Cloud Account ID>",
|
|
"credential": "<credentials.json filename>"
|
|
},
|
|
"spec": {
|
|
"region": "<Google Cloud Region, e.g., us-central1>",
|
|
"zone": "<Google Cloud Compute VM Type, e.g., e2-medium>",
|
|
"cluster": {
|
|
"k8sVersion": "<Kubernetes version, e.g., 1.16.9-gke.6>",
|
|
"machineSize": "<Google Cloud Compute VM Type, e.g., e2-medium>",
|
|
"diskSize": <Google Cloud compute disk size>,
|
|
"replicas": <Node Replica Number for the cluster>,
|
|
"kubeconfig": "<Kubeconfig filename, Default is 'kubeconfig'>"
|
|
}
|
|
}
|
|
}
|
|
</JSON>
|
|
|
|
The expected location for the GCP bootstrap configuration file is dictated by the "volume" mount
|
|
specified in the Airship config file (bootstrapInfo.ephemeral.container.volume).
|
|
For example, /home/esidshi/.airship folder as shown in the snippet below:
|
|
|
|
<Snippet>
|
|
apiVersion: airshipit.org/v1alpha1
|
|
bootstrapInfo:
|
|
ephemeral:
|
|
container:
|
|
volume: /home/esidshi/.airship:/kube
|
|
</Snippet>
|