You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 19, 2024. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+23-5
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Kubernetes Terraform installer for Linode Instances
2
2
3
-
This Terraform module creates a Kubernetes v1.13 Cluster on Linode Cloud infrastructure using the ContainerLinux operating system. The cluster is designed to take advantage of the Linode regional private network, and is equiped with Linode specific cluster enhancements.
3
+
This Terraform module creates a Kubernetes v1.14.0 Cluster on Linode Cloud infrastructure using the ContainerLinux operating system. The cluster is designed to take advantage of the Linode regional private network, and is equiped with Linode specific cluster enhancements.
4
4
5
5
Cluster size and instance types are configurable through Terraform variables.
6
6
@@ -20,8 +20,8 @@ Before running the project you'll have to create an access token for Terraform t
20
20
Using the token and your access key, create the `LINODE_TOKEN` environment variable:
21
21
22
22
```bash
23
-
read -sp "Linode Token: "LINODE_TOKEN# Enter your Linode Token (it will be hidden)
24
-
exportLINODE_TOKEN
23
+
read -sp "Linode Token: "TF_VAR_linode_token# Enter your Linode Token (it will be hidden)
24
+
exportTF_VAR_linode_token
25
25
```
26
26
27
27
This variable will need to be supplied to every Terraform `apply`, `plan`, and `destroy` command using `-var linode_token=$LINODE_TOKEN` unless a `terraform.tfvars` file is created with this secret token.
@@ -74,8 +74,14 @@ This will do the following:
74
74
* installs a Calico network between Linode Instances
75
75
* runs kubeadm init on the master server and configures kubectl
76
76
* joins the nodes in the cluster using the kubeadm token obtained from the master
*[Container Linux Update Operator](https://github.com/coreos/container-linux-update-operator)
79
85
* copies the kubectl admin config file for local `kubectl` use via the public IP of the API server
80
86
81
87
A full list of the supported variables are available in the [Terraform Module Registry](https://registry.terraform.io/modules/linode/k8s/linode/?tab=inputs).
@@ -161,6 +167,18 @@ As configured in this Terraform module, any service or ingress with a specific a
161
167
162
168
[Learn more at the External-DNS Github project.](https://github.com/kubernetes-incubator/external-dns)
163
169
170
+
### [**Container Linux Update Operator**](https://github.com/coreos/container-linux-update-operator/)
171
+
172
+
The Update Operator deploys an agent to all of the nodes (include the master) which will schedule Container Linux reboots when an update has been prepared. The Update Operator prevents multiple nodes from rebooting at the same time. Cordone and drain commands are sent to the nodes before rebooting. **System update reboots are paused by default** to prevent new clusters from rebooting in the first five minutes of their life-cycle which could have an adverse effect on the Terraform provisioning process.
173
+
174
+
Set the `update_agent_reboot_paused` variable using the `-var` argument, `TF_VAR_update_agent_reboot_paused` environment variable, or by creating a `update_agent.tfvars` file with the following contents:
175
+
176
+
```
177
+
update_agent_reboot_paused = "false"
178
+
```
179
+
180
+
In practice, rebooted nodes will be unavailable for a minute or two once the reboot has started. Take advantage of the Linode Block Storage CSI driver so Persistent Volumes can be rescheduled with workloads to the available nodes.
181
+
164
182
## Development
165
183
166
184
To make changes to this project, verify that you have the prerequisites and then clone the repo. Instead of using the Terraform `module` syntax, and being confined by the variables that are provided, you'll be able to make any changes necessary.
0 commit comments