This module allows you to generate secret data (PKI, tokens, hashes) for the deployment of Talos Kubernetes Cluster. It is a child module of ilpozzd/vsphere-cluster/talos. Can be used with ilpozzd/vsphere-vm/talos. The generated secrets correspond to the configuration of Talos OS v1.0.x
module "secrets" {
source = "ilpozzd/secrets/talos"
version = "1.0.0"
validity_period_hours = 10000
}
Name | Version |
---|---|
terraform | >= 1.1.9, < 2.0.0 |
Name | Version |
---|---|
hashicorp/random | 3.1.3 |
hashicorp/tls | 3.3.0 |
No modules.
Name | Type |
---|---|
random_string.machine_token_6bytes | resource |
random_string.machine_token_16bytes | resource |
tls_private_key.machine_ca | resource |
tls_self_signed_cert.machine_ca | resource |
tls_private_key.machine_admin | resource |
tls_cert_request.machine_admin | resource |
tls_locally_signed_cert.machine_admin | resource |
random_id.cluster_id | resource |
random_id.cluster_secret | resource |
random_string.cluster_token_6bytes | resource |
random_string.cluster_token_16bytes | resource |
tls_private_key.kubernetes_ca | resource |
tls_self_signed_cert.kubernetes_ca | resource |
tls_private_key.kubernetes_admin | resource |
tls_cert_request.kubernetes_admin | resource |
tls_locally_signed_cert.kubernetes_admin | resource |
random_id.aescbc_encryption_secret | resource |
tls_private_key.aggregator_ca | resource |
tls_private_key.kubernetes_sa | resource |
tls_private_key.etcd_ca | resource |
tls_self_signed_cert.etcd_ca | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
validity_period_hours | The number of hours after initial issuing that the ALL certificates will become invalid. | number |
8760 |
No |
Name | Description | Type | Sensetive |
---|---|---|---|
machine_secrets | Secrets to conclude a trusting relationship between virtual machines. | object |
true |
talos_admin_pki | Certificate and key to manage Talos virtual machines with talosctl. | object |
true |
cluster_secrets | Secrets shared between all Kubernetes nodes. | object |
true |
kubernetes_admin_pki | Cerificate and key to manage Kubernetes cluster as admininstartor | object |
true |
control_plane_cluster_secrets | Secrets shared between control plane Kubernetes nodes | object |
true |
{
token = string
ca = {
crt = base64encode(string)
key = base64encode(string)
}
}
token
- The token is used by a machine to join the PKI of the cluster.ca
- The root certificate authority of the PKI. It is composed of a base64 encodedcrt
andkey
in PEM format.
For more details see Talos Configuration Reference (MachineConfig).
{
crt = base64encode(string)
key = base64encode(string)
}
The certificate authority of the PKI used in talosconfig
to control virtual machines using talosctl
. It is composed of a base64 encoded crt
and key
in PEM format. Signed by machine_secrets.ca.crt
.
{
id = string
secret = string
token = string
ca = {
crt = base64encode(string)
key = base64encode(string)
}
}
id
- Globally unique identifier for this cluster (base64 encoded random 32 bytes).secret
- Shared secret of cluster (base64 encoded random 32 bytes).token
- The bootstrap token used to join the cluster.ca
- The base64 encoded root certificate authority used by Kubernetes.
For more details see Talos Configuration Reference (ClusterConfig).
{
crt = base64encode(string)
key = base64encode(string)
}
The certificate authority of the PKI to control Kubernetes cluster. It is composed of a base64 encoded crt
with system:masters
role and key
in PEM format. Signed by cluster_secrets.ca.crt
.
{
aescbcEncryptionSecret = string
aggregatorCA = {
crt = base64encode(string)
key = base64encode(string)
}
serviceAccount = {
key = base64encode(string)
}
etcd = {
ca = {
crt = base64encode(string)
key = base64encode(string)
}
}
}
aescbcEncryptionSecret
- The key used for the encryption of secret data at rest (base64 encoded random 32 bytes).aggregatorCA
- The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation. It is composed of a base64 encodedcrt
andkey
in PEM format.serviceAccount
- The base64 encoded privatekey
for service account token generation.etcd
- Theca
is the root certificate authority of the etcd PKI. It is composed of a base64 encodedcrt
andkey
.
For more details see Talos Configuration Reference (ClusterConfig).
Module is maintained by Ilya Pozdnov.
Apache 2 Licensed. See LICENSE for full details.