File tree Expand file tree Collapse file tree 8 files changed +34
-13
lines changed Expand file tree Collapse file tree 8 files changed +34
-13
lines changed Original file line number Diff line number Diff line change 58
58
| ------| -------------| ------| ---------| :--------:|
59
59
| cluster\_ name | Cluster name | ` string ` | n/a | yes |
60
60
| domain | DNS zone record to assign to NLB | ` string ` | n/a | yes |
61
- | extra\_ api\_ args | A list of additional arguments for kubeapi | ` map ` | ` {} ` | no |
61
+ | extra\_ api\_ args | A map of additional arguments for kubeapi. Key - argument without --, and it value. See examples. | ` map ` | ` {} ` | no |
62
+ | extra\_ args | A list of additional arguments for k3s server | ` list ` | ` [] ` | no |
62
63
| k3s\_ version | Version of k3s engine: https://github.com/rancher/k3s/releases | ` string ` | n/a | yes |
63
64
| key\_ name | The key name to use for the instances | ` string ` | n/a | yes |
64
65
| kubeconfig\_ filename | Name of file to save kubeconfig local. | ` string ` | ` "./kubeconfig" ` | no |
Original file line number Diff line number Diff line change @@ -24,8 +24,8 @@ data "template_file" "init-master" {
24
24
s3_bucket = var.s3_bucket
25
25
node_labels = local.master_node_labels
26
26
node_taints = local.master_node_taints
27
- extra_api_args = local.extra_api_args
28
- kubeconfig_name = local.kubeconfig_filename
27
+ extra_args = " ${ local . custom_args } ${ local . extra_api_args } "
28
+ kubeconfig_name = local.s3_kubeconfig_filename
29
29
}
30
30
}
31
31
Original file line number Diff line number Diff line change @@ -10,3 +10,15 @@ s3_bucket = "cluster-dev-k3s"
10
10
cluster_name = " k3s-test"
11
11
key_name = " arti-key"
12
12
worker_node_groups = []
13
+
14
+ extra_api_args = {
15
+ oidc-issuer-url = " https://example.com/my"
16
+ oidc-username-claim = " email"
17
+ oidc-groups-claim = " groups"
18
+ oidc-client-id = " login"
19
+ allow-privileged = " true"
20
+ }
21
+
22
+ extra_args = [
23
+ " --disable traefik"
24
+ ]
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ software_install() {
24
24
fi
25
25
%{ endif }
26
26
START_ARGS=" server --cluster-domain ${cluster_domain} --secrets-encryption --node-name $( curl http://169.254.169.254/latest/meta-data/local-hostname) "
27
- START_ARGS=" $$ {START_ARGS} ${extra_api_args } "
27
+ START_ARGS=" $$ {START_ARGS} ${extra_args } "
28
28
%{ endif }
29
29
30
30
%{ if instance_role == " worker" }
Original file line number Diff line number Diff line change 1
1
resource "null_resource" "wait_cluster_ready" {
2
2
provisioner "local-exec" {
3
3
# command = "until (curl --connect-timeout 2 https://${local.cluster_domain}:6443/ping --insecure) >/dev/null 2>&1; do sleep 1; echo waiting for k3s; done"
4
- command = " until (aws s3 cp s3://${ var . s3_bucket } /${ var . cluster_name } /${ local . kubeconfig_filename } ./kubeconfig_tmp && for i in $(seq 10); do kubectl version --kubeconfig ./kubeconfig_tmp --request-timeout=5s || exit 1; sleep 1; done) >/dev/null 2>&1; do sleep 1; echo waiting for kubeconfig; done"
4
+ command = " until (aws s3 cp s3://${ var . s3_bucket } /${ var . cluster_name } /${ local . s3_kubeconfig_filename } ./kubeconfig_tmp && for i in $(seq 10); do kubectl version --kubeconfig ./kubeconfig_tmp --request-timeout=5s || exit 1; sleep 1; done) >/dev/null 2>&1; do sleep 1; echo waiting for kubeconfig; done"
5
5
}
6
6
depends_on = [
7
7
aws_autoscaling_group . master ,
@@ -11,7 +11,7 @@ resource "null_resource" "wait_cluster_ready" {
11
11
12
12
# Not really secure as it will keep entire file as a plain text in tfstate
13
13
data "aws_s3_bucket_object" "get_kubeconfig" {
14
- key = " ${ var . cluster_name } /${ local . kubeconfig_filename } "
14
+ key = " ${ var . cluster_name } /${ local . s3_kubeconfig_filename } "
15
15
bucket = var. s3_bucket
16
16
depends_on = [
17
17
null_resource. wait_cluster_ready
Original file line number Diff line number Diff line change 1
- resource "random_pet" "kubeconfig_sufix" {}
1
+
2
2
locals {
3
- name = var. cluster_name
4
- cluster_dns_zone = " ${ var . cluster_name } .${ var . domain } "
5
- cluster_domain = " cp.${ local . cluster_dns_zone } "
6
- kubeconfig_filename = " kubeconfig${ random_pet . kubeconfig_sufix . id } "
3
+ name = var. cluster_name
4
+ cluster_dns_zone = " ${ var . cluster_name } .${ var . domain } "
5
+ cluster_domain = " cp.${ local . cluster_dns_zone } "
6
+ s3_kubeconfig_filename = " kubeconfig"
7
7
common_tags = {
8
8
" kubernetes.io/cluster/${var.cluster_name}" = " owned"
9
9
KubernetesCluster = var.cluster_name
@@ -63,6 +63,7 @@ locals {
63
63
[for key , value in var . extra_api_args :
64
64
" --kube-apiserver-arg \" ${ key } =${ value } \" "
65
65
])
66
+ custom_args = join (" " , var. extra_args )
66
67
}
67
68
68
69
resource null_resource "validate_domain_length" {
Original file line number Diff line number Diff line change @@ -7,5 +7,5 @@ output "kubeconfig" {
7
7
}
8
8
9
9
output "kubeconfig_s3_url" {
10
- value = " s3://${ var . s3_bucket } /${ var . cluster_name } /${ local . kubeconfig_filename } "
10
+ value = " s3://${ var . s3_bucket } /${ var . cluster_name } /${ local . s3_kubeconfig_filename } "
11
11
}
Original file line number Diff line number Diff line change @@ -81,11 +81,18 @@ variable worker_node_groups {
81
81
}
82
82
83
83
variable extra_api_args {
84
- description = " A list of additional arguments for kubeapi"
84
+ description = " A map of additional arguments for kubeapi. Key - argument without --, and it value. See examples. "
85
85
type = map
86
86
default = {}
87
87
}
88
88
89
+ variable extra_args {
90
+ description = " A list of additional arguments for k3s server"
91
+ type = list
92
+ default = []
93
+ }
94
+
95
+
89
96
variable master_iam_instance_profile {
90
97
description = " IAM instance profile to be attached to master instances"
91
98
type = string
You can’t perform that action at this time.
0 commit comments