Skip to content

Tf ec2 ssh elastic ip setup#15

Closed
ongeziwe17 wants to merge 94 commits into
mainfrom
tf-ec2-ssh-elastic-ip-setup
Closed

Tf ec2 ssh elastic ip setup#15
ongeziwe17 wants to merge 94 commits into
mainfrom
tf-ec2-ssh-elastic-ip-setup

Conversation

@ongeziwe17

Copy link
Copy Markdown
Owner

No description provided.

CI OIDC Test and README for the REPO
Bootstrap Terraform backend (S3 + DynamoDB lock)
feat(dev-setup): add Terraform setup for development environment with remote backend
Added AWS credentials configuration step for Terraform validation.
Add permissions for id-token and contents in workflow
feat(ci-setup) Terraform validation and plan preview workflow"
Added environment directory setup for Terraform based on branch name.
Configure Terraform environment directory based on branch
Add TF_LOG environment variable for debugging in Terraform Plan step.
Updated branch formatting and added Terraform apply step.
Removed specific Terraform version setup in workflow.
feat(tf-networks-ec2-dev): update development environment configuration and add new modules
@ongeziwe17 ongeziwe17 closed this Dec 2, 2025
@github-actions

github-actions Bot commented Dec 2, 2025

Copy link
Copy Markdown

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

aws_eip.dev_app will be updated in-place

~ resource "aws_eip" "dev_app" {
id = "eipalloc-035b37623f8b4e34b"
~ instance = "i-062a7e74902482aa7" -> (known after apply)
tags = {
"Name" = "ff-dev-eip"
}
# (17 unchanged attributes hidden)
}

module.compute.aws_instance.app_server must be replaced

-/+ resource "aws_instance" "app_server" {
~ ami = "ami-0e6bc8e2e1bbfafb0" -> "ami-0579b26bfd446908d" # forces replacement
~ arn = "arn:aws:ec2:af-south-1:988963493215:instance/i-062a7e74902482aa7" -> (known after apply)
~ availability_zone = "af-south-1a" -> (known after apply)
~ cpu_core_count = 1 -> (known after apply)
~ cpu_threads_per_core = 2 -> (known after apply)
~ disable_api_stop = false -> (known after apply)
~ disable_api_termination = false -> (known after apply)
~ ebs_optimized = false -> (known after apply)
+ enable_primary_ipv6 = (known after apply)
- hibernation = false -> null
+ host_id = (known after apply)
+ host_resource_group_arn = (known after apply)
~ id = "i-062a7e74902482aa7" -> (known after apply)
~ instance_initiated_shutdown_behavior = "stop" -> (known after apply)
+ instance_lifecycle = (known after apply)
~ instance_state = "stopped" -> (known after apply)
~ ipv6_address_count = 0 -> (known after apply)
~ ipv6_addresses = [] -> (known after apply)
~ monitoring = false -> (known after apply)
+ outpost_arn = (known after apply)
+ password_data = (known after apply)
+ placement_group = (known after apply)
~ placement_partition_number = 0 -> (known after apply)
~ primary_network_interface_id = "eni-022a5dc64d4c885ca" -> (known after apply)
~ private_dns = "ip-10-10-1-59.af-south-1.compute.internal" -> (known after apply)
~ private_ip = "10.10.1.59" -> (known after apply)
~ public_dns = "ec2-15-240-23-115.af-south-1.compute.amazonaws.com" -> (known after apply)
~ public_ip = "15.240.23.115" -> (known after apply)
~ secondary_private_ips = [] -> (known after apply)
~ security_groups = [] -> (known after apply)
+ spot_instance_request_id = (known after apply)
tags = {
"Environment" = "development"
"ManagedBy" = "Terraform"
"Name" = "ff-dev-server"
}
~ tenancy = "default" -> (known after apply)
+ user_data_base64 = (known after apply)
# (11 unchanged attributes hidden)

  ~ capacity_reservation_specification (known after apply)
  - capacity_reservation_specification {
      - capacity_reservation_preference = "open" -> null
    }

  ~ cpu_options (known after apply)
  - cpu_options {
      - core_count       = 1 -> null
      - threads_per_core = 2 -> null
        # (1 unchanged attribute hidden)
    }

  - credit_specification {
      - cpu_credits = "unlimited" -> null
    }

  ~ ebs_block_device (known after apply)

  ~ enclave_options (known after apply)
  - enclave_options {
      - enabled = false -> null
    }

  ~ ephemeral_block_device (known after apply)

  ~ instance_market_options (known after apply)

  ~ maintenance_options (known after apply)
  - maintenance_options {
      - auto_recovery = "default" -> null
    }

  ~ metadata_options (known after apply)
  - metadata_options {
      - http_endpoint               = "enabled" -> null
      - http_protocol_ipv6          = "disabled" -> null
      - http_put_response_hop_limit = 2 -> null
      - http_tokens                 = "required" -> null
      - instance_metadata_tags      = "disabled" -> null
    }

  ~ network_interface (known after apply)

  ~ private_dns_name_options (known after apply)
  - private_dns_name_options {
      - enable_resource_name_dns_a_record    = false -> null
      - enable_resource_name_dns_aaaa_record = false -> null
      - hostname_type                        = "ip-name" -> null
    }

  ~ root_block_device (known after apply)
  - root_block_device {
      - delete_on_termination = true -> null
      - device_name           = "/dev/xvda" -> null
      - encrypted             = false -> null
      - iops                  = 3000 -> null
      - tags                  = {} -> null
      - tags_all              = {} -> null
      - throughput            = 125 -> null
      - volume_id             = "vol-0eaac7e3d7b8c2bdd" -> null
      - volume_size           = 30 -> null
      - volume_type           = "gp3" -> null
        # (1 unchanged attribute hidden)
    }
}

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

Changes to Outputs:
~ dev_backend_instance_public_ip = "15.240.23.115" -> (known after apply)

@github-actions

github-actions Bot commented Dec 2, 2025

Copy link
Copy Markdown

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

aws_eip.dev_app will be updated in-place

~ resource "aws_eip" "dev_app" {
id = "eipalloc-0c0cff49f034e7fa6"
~ instance = "i-02808cb1d0f8ea8d2" -> (known after apply)
tags = {
"Name" = "ff-dev-frontend-eip"
}
# (17 unchanged attributes hidden)
}

module.compute.aws_instance.app_server must be replaced

-/+ resource "aws_instance" "app_server" {
~ ami = "ami-0e6bc8e2e1bbfafb0" -> "ami-0579b26bfd446908d" # forces replacement
~ arn = "arn:aws:ec2:af-south-1:988963493215:instance/i-02808cb1d0f8ea8d2" -> (known after apply)
~ availability_zone = "af-south-1a" -> (known after apply)
~ cpu_core_count = 1 -> (known after apply)
~ cpu_threads_per_core = 2 -> (known after apply)
~ disable_api_stop = false -> (known after apply)
~ disable_api_termination = false -> (known after apply)
~ ebs_optimized = false -> (known after apply)
+ enable_primary_ipv6 = (known after apply)
- hibernation = false -> null
+ host_id = (known after apply)
+ host_resource_group_arn = (known after apply)
~ id = "i-02808cb1d0f8ea8d2" -> (known after apply)
~ instance_initiated_shutdown_behavior = "stop" -> (known after apply)
+ instance_lifecycle = (known after apply)
~ instance_state = "stopped" -> (known after apply)
~ ipv6_address_count = 0 -> (known after apply)
~ ipv6_addresses = [] -> (known after apply)
~ monitoring = false -> (known after apply)
+ outpost_arn = (known after apply)
+ password_data = (known after apply)
+ placement_group = (known after apply)
~ placement_partition_number = 0 -> (known after apply)
~ primary_network_interface_id = "eni-06def491667c428e7" -> (known after apply)
~ private_dns = "ip-10-10-1-184.af-south-1.compute.internal" -> (known after apply)
~ private_ip = "10.10.1.184" -> (known after apply)
~ public_dns = "ec2-16-28-122-47.af-south-1.compute.amazonaws.com" -> (known after apply)
~ public_ip = "16.28.122.47" -> (known after apply)
~ secondary_private_ips = [] -> (known after apply)
~ security_groups = [] -> (known after apply)
+ spot_instance_request_id = (known after apply)
tags = {
"Environment" = "development"
"ManagedBy" = "Terraform"
"Name" = "ff-dev-frontend-server"
}
~ tenancy = "default" -> (known after apply)
+ user_data_base64 = (known after apply)
# (11 unchanged attributes hidden)

  ~ capacity_reservation_specification (known after apply)
  - capacity_reservation_specification {
      - capacity_reservation_preference = "open" -> null
    }

  ~ cpu_options (known after apply)
  - cpu_options {
      - core_count       = 1 -> null
      - threads_per_core = 2 -> null
        # (1 unchanged attribute hidden)
    }

  - credit_specification {
      - cpu_credits = "unlimited" -> null
    }

  ~ ebs_block_device (known after apply)

  ~ enclave_options (known after apply)
  - enclave_options {
      - enabled = false -> null
    }

  ~ ephemeral_block_device (known after apply)

  ~ instance_market_options (known after apply)

  ~ maintenance_options (known after apply)
  - maintenance_options {
      - auto_recovery = "default" -> null
    }

  ~ metadata_options (known after apply)
  - metadata_options {
      - http_endpoint               = "enabled" -> null
      - http_protocol_ipv6          = "disabled" -> null
      - http_put_response_hop_limit = 2 -> null
      - http_tokens                 = "required" -> null
      - instance_metadata_tags      = "disabled" -> null
    }

  ~ network_interface (known after apply)

  ~ private_dns_name_options (known after apply)
  - private_dns_name_options {
      - enable_resource_name_dns_a_record    = false -> null
      - enable_resource_name_dns_aaaa_record = false -> null
      - hostname_type                        = "ip-name" -> null
    }

  ~ root_block_device (known after apply)
  - root_block_device {
      - delete_on_termination = true -> null
      - device_name           = "/dev/xvda" -> null
      - encrypted             = false -> null
      - iops                  = 3000 -> null
      - tags                  = {} -> null
      - tags_all              = {} -> null
      - throughput            = 125 -> null
      - volume_id             = "vol-0c57bd3769bc59d46" -> null
      - volume_size           = 30 -> null
      - volume_type           = "gp3" -> null
        # (1 unchanged attribute hidden)
    }
}

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

Changes to Outputs:
~ dev_frontend_instance_public_ip = "16.28.122.47" -> (known after apply)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants