- <div className="main-container"><div className="main-container-children"><h3>Kubernetes provisioner</h3><p>The Kubernetes provisioner step container creates and manages Kubernetes clusters in cloud platforms.</p><blockquote><p><strong>Note</strong>: This task provisions resources in your cloud platform account. Deploying infrastructure creates real resources and could incur a charge from your cloud provider.</p></blockquote><p>Current supported platforms:</p><ul><li><p>Google Cloud Platform (GCP)</p></li><li><p>Amazon Web Services (AWS)</p></li></ul><h4>Specifications</h4><table><thead><tr><th>Setting</th><th>Child setting</th><th>Data type</th><th>Description</th><th>Default</th><th>Required</th></tr></thead><tbody><tr><td><code>provider</code></td><td> </td><td>string</td><td>The cloud provider to use. Use <code>aws</code> or <code>gcp</code>.</td><td>None</td><td>True</td></tr><tr><td><code>project</code></td><td> </td><td>string The GCP project ID.</td><td>None</td><td>True for GCP</td><td> </td></tr><tr><td><code>clusterName</code></td><td> </td><td>string</td><td className="increased-min-width">A name for your cluster. This must be a fully qualified domain name (FQDN). You can use a root domain in route53 or GCP domain name service (DNS), or you can set the domain to <code>k8s.local</code> if you don't want to use one of your roots.</td><td>None</td><td>True</td></tr><tr><td><code>credentials</code></td><td> </td><td>mapping</td><td>A map of credentials used for platform authentication.</td><td>None</td><td>True</td></tr><tr><td> </td><td><code>gcpServiceAccountFile</code></td><td>string</td><td>The GCP service account JSON. Pass the file contents to Nebula as a secret. See the example below.</td><td>None</td><td>True for GCP</td></tr><tr><td> </td><td><code>awsAccessKeyID</code></td><td>string</td><td>The AWS access key ID.</td><td>None</td><td>True for AWS</td></tr><tr><td> </td><td><code>awsSecretAccessKey</code></td><td>string</td><td>The AWS secret access key.</td><td>None</td><td>True for AWS</td></tr><tr><td> </td><td><code>sshPublicKey</code></td><td>string</td><td>An SSH public key to install on the virtual machine instances that run the cluster.</td><td>None</td><td>True for AWS</td></tr><tr><td><code>stateStoreName</code></td><td> </td><td>string</td><td className="increased-min-width">A storage bucket name to store cluster state. This configuration uses the storage system of your cloud provider. AWS uses s3, GCP uses GS. If the bucket exists, the task tries to just use it. If the bucket does not exist, the task attempts to create the bucket. Multiple clusters can use the same state storage as long as the <code>clusterName</code> values are different.</td><td>None</td><td>True</td></tr><tr><td><code>masterCount</code></td><td> </td><td>integer</td><td>A count of how many master nodes to provision.</td><td>1</td><td>False</td></tr><tr><td><code>nodeCount</code></td><td> </td><td>integer</td><td>A count of how many agent nodes to provision.</td><td>3</td><td>False</td></tr><tr><td><code>zones</code></td><td> </td><td>An sequence of strings</td><td>An sequence of zones in the cloud platform to run node instances in.</td><td>None</td><td>True (at least one)</td></tr><tr><td><code>region</code></td><td> </td><td>string</td><td>A platform region to use when provisioning a cluster.</td><td>None</td><td>True</td></tr></tbody></table><blockquote><p><strong>Note</strong>: The value you set for a secret must be a string. If you have multiple key-value pairs to pass into the secret, or your secret is the contents of a file, you must encode the values using base64 encoding, and use the encoded string as the secret value.</p></blockquote><h4>Outputs</h4><p>After a cluster is provisioned, Nebula stores the <code>kubeconfig</code> file as an output. Other steps in your workflow, like Kubectl or Helm can use the output to interact with the cluster.</p><table><thead><tr><th>Key</th><th>Data type</th></tr></thead><tbody><tr><td><code>kubeconfig-file</code></td><td>string</td></tr></tbody></table><h4>Examples</h4><p>Here is an example of the step in a Nebula workflow:</p>
0 commit comments