Eugeny Shtoltc

IT Cloud


Скачать книгу

will perform the following actions:

      + github_repository.terraform_repo

      id: <computed>

      allow_merge_commit: "true"

      allow_rebase_merge: "true"

      allow_squash_merge: "true"

      archived: "false"

      auto_init: "true"

      default_branch: <computed>

      description: "my terraform repo"

      etag: <computed>

      full_name: <computed>

      git_clone_url: <computed>

      html _url: <computed>

      http_clone_url: <computed>

      name: "terraform-repo"

      ssh_clone_url: <computed>

      svn_url: <computed>

      Plan: 1 to add, 0 to change, 0 to destroy.

      Do you want to perform these actions?

      Terraform will perform the actions described above.

      Only 'yes' will be accepted to approve.

      Enter a value: yes

      github_repository.terraform_repo: Creating …

      allow_merge_commit: "" => "true"

      allow_rebase_merge: "" => "true"

      allow_squash_merge: "" => "true"

      archived: "" => "false"

      auto_init: "" => "true"

      default_branch: "" => "<computed>"

      description: "" => "my terraform repo"

      etag: "" => "<computed>"

      full_name: "" => "<computed>"

      git_clone_url: "" => "<computed>"

      html_url: "" => "<computed>"

      http_clone_url: "" => "<computed>"

      name: "" => "terraform-repo"

      ssh_clone_url: "" => "<computed>"

      svn_url: "" => "<computed>"

      github_repository.terraform_repo: Creation complete after 4s (ID: terraform-repo)

      Apply complete! Resources: 1 added, 0 changed, 0 destroyed

      Now you can see an empty terraform-repo repository in the WEB interface. Reapplying will not create a repository because Terraform only applies the changes that weren't:

      (agile-aleph-203917) $ ./terraform apply

      provider.github.organization

      The GITHub organization name to manage.

      Enter a value: essch2

      github_repository.terraform_repo: Refreshing state … (ID: terraform-repo)

      Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

      But if I change the name, then Terraform will try to apply the changes to the name by deleting and creating a new one with the current name. It is important to note that any data that we would push into this repository after the name change would be deleted. To check how updates will be performed, you can first ask for a list of actions to be performed with the command ./Terraform plane . And so, let's get started:

      (agile-aleph-203917) $ cat main.tf

      provider "github" {

      token = "$ {var.github_token}"

      }

      resource "github_repository" "terraform_repo" {

      name = "terraform-repo2"

      description = "my terraform repo"

      auto_init = true

      }

      (agile-aleph-203917) $ ./terraform plan

      provider.github.organization

      The GITHub organization name to manage.

      Enter a value: essch

      Refreshing Terraform state in-memory prior to plan …

      The refreshed state will be used to calculate this plan, but will not be

      persisted to local or remote state storage.

      github_repository.terraform_repo: Refreshing state … (ID: terraform-repo)

      –– –

      An execution plan has been generated and is shown below.

      Resource actions are indicated with the following symbols:

      + create

      Terraform will perform the following actions:

      + github_repository.terraform_repo

      id: <computed>

      allow_merge_commit: "true"

      allow_rebase_merge: "true"

      allow_squash_merge: "true"

      archived: "false"

      auto_init: "true"

      default_branch: <computed>

      description: "my terraform repo"

      etag: <computed>

      full_name: <computed>

      git_clone_url: <computed>

      html_url: <computed>

      http_clone_url: <computed>

      name: "terraform-repo2"

      ssh_clone_url: <computed>

      svn_url: <computed>

      "terraform apply" is subsequently run.

      esschtolts @ cloudshell: ~ / terraform (agile-aleph-203917) $ ./terraform apply

      provider.github.organization

      The GITHub organization name to manage.

      Enter a value: essch2

      github_repository.terraform_repo: Refreshing state … (ID: terraform-repo)

      An execution plan has been generated and is shown below.

      Resource actions are indicated with the following symbols:

      – / + destroy and then create replacement

      Terraform will perform the following actions:

      – / + github_repository.terraform_repo (new resource required)

      id: "terraform-repo" => <computed> (forces new resource)

      allow_merge_commit: "true" => "true"

      allow_rebase_merge: "true" => "true"

      allow_squash_merge: "true" => "true"

      archived: "false" => "false"

      auto_init: "true" => "true"

      default_branch: "master" => <computed>

      description: "my terraform repo" => "my terraform repo"

      etag: "W / \" a92e0b300d8c8d2c869e5f271da6c2ab \ "" => <computed>

      full_name: "essch2 / terraform-repo" => <computed>

      git_clone_url: "git: //github.com/essch2/terraform-repo.git" => <computed>

      html_url: "https://github.com/essch2/terraform-repo" => <computed>

      http_clone_url: "https://github.com/essch2/terraform-repo.git" => <computed>

      name: "terraform-repo" => "terraform-repo2" (forces new resource)

      ssh_clone_url: "[email protected]: essch2 / terraform-repo.git" => <computed>

      svn_url: "https://github.com/essch2/terraform-repo"