name |
Name of the statefulset |
string |
n/a |
application |
yes |
namespace |
Namespace in which create the statefulset |
string |
default |
default |
no |
custom_labels |
Add custom label to pods |
object |
{ app = var.name } |
{ mylabel = "apps" } |
no |
image |
Docker image name |
string |
n/a |
ubuntu:18.04 |
yes |
image_pull_policy |
One of Always, Never, IfNotPresent |
string |
IfNotPresent |
Always |
no |
args |
Arguments to the entrypoint |
list(string) |
n/a |
["--dev", "--nodaemon"] |
no |
command |
Change entrypoint array |
list(string) |
n/a |
["/bin/bash", "-c", "pwd"] |
no |
replicas |
Count of pods |
number |
1 |
5 |
no |
update_strategy_update |
Type of statefulset. Can be 'OnDelete' or 'RollingUpdate' |
string |
RollingUpdate |
OnDelete |
no |
update_strategy_partition |
Indicates the ordinal at which the StatefulSet should be partitioned. You can perform a phased roll out (e.g. a linear, geometric, or exponential roll out) using a partitioned rolling update in a similar manner to how you rolled out a canary. To perform a phased roll out, set the partition to the ordinal at which you want the controller to pause the update. By setting the partition to 0, you allow the StatefulSet controller to continue the update process |
string |
0 |
0 |
no |
service_account_name |
Is the name of the ServiceAccount to use to run this pod |
string |
null |
application-sa |
no |
service_accoun_token |
Indicates whether a service account token should be automatically mounted |
bool |
null |
true |
no |
restart_policy |
Restart policy for all containers within the pod. One of Always, OnFailure, Never |
string |
Always |
OnFailure |
no |
image_pull_secrets |
Specify image pull secrets |
map(string) |
|
|
|
node_selector |
Specify node selector for pod |
map(string) |
null |
{ "some-key" = "true" } |
no |
env |
Name and value pairs to set in the container's environment |
map(string) |
n/a |
{ PORT = "80" ADDRESS = "0.0.0.0" } |
no |
env_field |
Get field from k8s and add as environment variables to pods |
map(string) |
n/a |
{ NodeName = "spec.nodeName" } |
no |
env_secret |
Get secret keys from k8s and add as environment variables to pods |
map(string) |
n/a |
{ # Search key in secret as environment name admin_pass = kubernetes.secret.my.id # Pass secret-name & secret key manually DbPass = { name = "kubernetes-secret-name" key = "secret-key" } }
|
no |
resources |
Compute Resources required by this container. CPU/RAM requests/limits |
object({ request_cpu = string - (Optional) request_memory = string - (Optional) limit_cpu = string - (Optional) limit_memory = string - (Optional) }) |
n/a |
{ request_cpu = "100m" request_memory = "800Mi" limit_cpu = "120m" limit_memory = "900Mi" } |
no |
hosts |
Add /etc/hosts records to pods |
list(object({ hostname = string ip = string })) |
n/a |
[ { hostname = "mysite.com" ip = "10.10.1.20" } ] |
no |
volume_mount |
Mount path from pods to volume |
list(object({ mount_path = string volume_name = string sub_path = string - (Optional) read_only = bool - (Optional) })) |
n/a |
[ { mount_path = "/mnt" volume_name = "node" sub_path = "app" read_only = false } ] |
no |
volume_claim |
Attach Persistant Volume Claim |
list(object({ name = string namespace = string access_modes = list(string) requests_storage = string storage_class_name = string persistent_volume_name = string })) |
n/a |
[ { name = "app-pvc" namespace = "application" access_modes = ["ReadWriteOnce"] requests_storage = "10Gi" storage_class_name = "default" persistent_volume_name = "default" } ] |
no |
volume_nfs |
Represents an NFS mounts on the host |
list(object({ path_on_nfs = string nfs_endpoint = string volume_name = string })) |
n/a |
[ { path_on_nfs = "/" nfs_endpoint = "10.10.0.100" volume_name = "share" } ] |
no |
volume_host_path |
Represents a directory from node on the host |
list(object({ path_on_node = string type = string - (Optional) volume_name = string })) |
n/a |
[ { path_on_node = "/home/ubuntu" type = "Directory" volume_name = "node" } ] |
no |
volume_config_map |
The data stored in a ConfigMap object can be referenced in a volume of type configMap and then consumed by containerized applications running in a Pod |
list(object({ mode = string name = string volume_name = string })) |
n/a |
[ { mode = "0777" name = "config-map" volume_name = "config-volume" } ] |
no |
volume_aws_disk |
Represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod |
list(object({ volume_id = string fs_type = string - (Optional) partition = string - (Optional) read_only = string - (Optional) volume_name = string })) |
n/a |
[ { volume_id = "vol-123124123" volume_name = "disk" } ] |
no |
volume_gce_disk |
Represents an GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod |
list(object({ volume_name = string fs_type = string - (Optional) partition = string - (Optional) read_only = string - (Optional) volume_name = string })) |
n/a |
[ { volume_name = "google-disk-my" volume_name = "disk" } ] |
no |
volume_empty_dir |
EmptyDir represents a temporary directory that shares a pod's lifetime |
list(object({ volume_name = string })) |
n/a |
[ { volume_name = "empty-dir" } ] |
no |
volume_claim |
Represents an Persistent volume Claim resource that is attached to a kubelet's host machine and then exposed to the pod |
list(object({ volume_name = string claim_name = string - (Optional) read_only = string - (Optional) })) |
n/a |
[ { volume_name = "data-disk" claim_name = "claim-name-disk" } ] |
no |
readiness_probe |
Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. |
object({ success_threshold = number failure_threshold = number initial_delay_seconds = number period_seconds = number timeout_seconds = number
http_get = { http_header = list(object( // (Optional) { name = string value = string } ) path = string port = number scheme = string } exec = { // (Optional) command =list(string) } tcp_socket = { // (Optional) port = number } }) |
n/a |
{ success_threshold = 1 failure_threshold = 3 initial_delay_seconds = 10 period_seconds = 30 timeout_seconds = 10
http_get = { http_header = [ { name = "some-header" value = "some-value" } ] path = "/" port = 80 scheme = "HTTP" } exec = { command = ["/bin/bash", "command"] } tcp_socket = { port = 5433 } }) |
no |
liveness_probe |
Periodic probe of container liveness. Container will be restarted if the probe fails |
same as on readiness_probe |
n/a |
same as on readiness_probe |
no |
lifecycle_events |
Actions that the management system should take in response to container lifecycle events |
object({ pre_stop = { // (Optional) same as on readiness_probe }
post_start = { // (Optional) same as on readiness_probe } }) |
n/a |
{ pre_stop = { // (Optional) same as on readiness_probe }
post_start = { // (Optional) same as on readiness_probe } } |
no |