Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
info:libros:terraform-upandrunning:cap5 [22/05/2020 08:32] – creat mateinfo:libros:terraform-upandrunning:cap5 [23/05/2020 15:06] (actual) – [loops] admin
Línia 1: Línia 1:
 = Chapter 5: Terraform tips and tricks = Chapter 5: Terraform tips and tricks
 == loops == loops
-  * ''count''+=== count
     * usage:<code properties>resource "blablabla" "blablabla_name" {     * usage:<code properties>resource "blablabla" "blablabla_name" {
 count = 3 count = 3
 name  = "bla${count.index}" name  = "bla${count.index}"
 }</code> }</code>
-    * result: 3 elements ([0],[1],[2])+    * result: 3 elements ([0],[1],[2]) -> resources array
     * with ''length()'':<code properties>     * with ''length()'':<code properties>
 variable "bla_names" { variable "bla_names" {
   type    = list(string)   type    = list(string)
   default = ["bla_green","bla_yellow","bla_red"   default = ["bla_green","bla_yellow","bla_red"
 +}
 resource "blablabla" "blablabla_name" { resource "blablabla" "blablabla_name" {
   count = length(var.bla_names)   count = length(var.bla_names)
Línia 16: Línia 17:
 }</code> }</code>
     * output     * output
-      * **[#]** +      * **[#]**: use cardinal to access a concrete element 
-      * **[%%*%%]**+      * **[%%*%%]**: all elements from resource list
     * each element is assigned to their index in state, deletes o modifications implies "move" all elements after that.     * each element is assigned to their index in state, deletes o modifications implies "move" all elements after that.
     * only usable for **resources**, no inline blocks     * only usable for **resources**, no inline blocks
-  ''for_each'' +=== for_each 
-  * ''for'' +    lists (using **toset()** function), sets and maps 
-  * ''for string''+    * for use in **resources** o **inline blocks** 
 +    * use **each.key** and **each.value** 
 +    * usage:<code properties> 
 +variable "bla_names"
 +  type    = list(string) 
 +  default = ["bla_green","bla_yellow","bla_red"]  
 +
 +resource "blablabla" "blablabla_name"
 +for_each = toset(var.bla_names) 
 +name  = each.value 
 +}</code> 
 +<code properties> 
 +variable "bla_names"
 +  type    = map(string) 
 +  default = {"green" = "bla_green","yellow" = "bla_yellow","red" = "bla_red"
 +  #default = map("green","bla_green", "yellow","bla_yellow", "red","bla_red"
 +
 +resource "blablabla" "blablabla_name"
 +for_each = toset(var.bla_names) 
 +name  = each.value 
 +
 +</code> 
 +    * **output**: 
 +      * ''values(<resource_name>)[*].attribute'' 
 +=== for 
 +=== for string
 == conditionals == conditionals
 +<callout type="warning" icon="true" title="Pendiente">Pos 3500 aprox</callout>
 +=== count
 +<code properties>
 +variable "booleana" {
 +  type = bool
 +}
 +resource "resource" "resource_name" {
 +  count = var.booleana ? 1 : 0
 +  ...
 +}
 +variable "cadena" {
 +  type = string
 +  default = "aaa"
 +}
 +resource "resource" "resource_name {
 +  count = format("%.1s",var.cadena) == "a" ? 1 : 0
 +}
 +</code>
 +
 +=== for_each
 +=== if string
 == Zero-Downtime Deployment == Zero-Downtime Deployment
 == terraform gotchas == terraform gotchas
  • info/libros/terraform-upandrunning/cap5.1590161551.txt.gz
  • Darrera modificació: 22/05/2020 08:32
  • per mate