Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker_registry_image resource not created after successful push #645

Open
Tonkari opened this issue Aug 26, 2024 · 2 comments
Open

docker_registry_image resource not created after successful push #645

Tonkari opened this issue Aug 26, 2024 · 2 comments

Comments

@Tonkari
Copy link

Tonkari commented Aug 26, 2024

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Terraform (and docker Provider) Version

Terraform v1.9.5
on linux_amd64
+ provider registry.terraform.io/kreuzwerker/docker v3.0.2

I also tried on other versions (starting terraform 1.5.7 and provider 2.25.0)

Affected Resource(s)

  • docker_registry_image

Terraform Configuration Files

provider "docker" {
  registry_auth {
    address  = "https://${var.registry_dns}/test_project_1724672309"
    username = xxx
    password = xxx
  }
}

resource "docker_image" "public_image" {
  name         = "nginx:latest"
}

resource "docker_tag" "retag_image" {
  source_image = docker_image.public_image.name
  target_image = "${var.registry_dns}/test_project_1724672309/nginx:latest"
}

resource "docker_registry_image" "push_image" {
  name          = docker_tag.retag_image.target_image
}

Debug Output

docker_registry_image.push_image: Creating...
2024-08-26T14:30:41.976+0200 [INFO]  Starting apply for docker_registry_image.push_image
2024-08-26T14:30:41.976+0200 [DEBUG] docker_registry_image.push_image: applying the planned Create change
2024-08-26T14:30:41.977+0200 [INFO]  provider.terraform-provider-docker_v3.0.2: 2024/08/26 14:30:41 [DEBUG] Creating docker image redacted.for.privacy/test_project_1724672309/nginx:latest: timestamp="2024-08-26T14:30:41.977+0200"
2024-08-26T14:30:42.630+0200 [INFO]  provider.terraform-provider-docker_v3.0.2: 2024/08/26 14:30:42 [DEBUG] Pushed image: redacted.for.privacy/test_project_1724672309/nginx:latest: timestamp="2024-08-26T14:30:42.629+0200"
2024-08-26T14:30:42.704+0200 [ERROR] provider.terraform-provider-docker_v3.0.2: Response contains error diagnostic: @module=sdk.proto diagnostic_detail="" diagnostic_severity=ERROR tf_provider_addr=provider tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/diag/diagnostics.go:55 diagnostic_summary="Unable to create image, image not found: unable to get digest: Error reading registry response body: %!s(<nil>)" tf_proto_version=5.3 tf_req_id=009570d2-e7b6-5eeb-7f6b-989597b074ce tf_resource_type=docker_registry_image timestamp="2024-08-26T14:30:42.704+0200"

Expected Behaviour

Resource should be created when push succeeds

Actual Behaviour

Resource is not created and Error above is thrown.
In my registry I can see, that the image is present and I can pull it, so it seems no error has occurred.

Steps to Reproduce

  1. terraform apply

Important Factoids

Target is a harbor based registry - push via docker cli works without errors.

I suspect the response is interpreted incorrectly since the error reads <nil>
Other resources work fine with the same registry. I can pull a docker_image from it without issue.

@github-staff github-staff deleted a comment from Lxx-c Oct 23, 2024
@voycey
Copy link

voycey commented Oct 24, 2024

Yes same issue here on ECR:

Debug logs:

2024-10-24T16:22:23.356+1100 [WARN]  Provider "registry.terraform.io/kreuzwerker/docker" produced an invalid plan for module.lambda.docker_registry_image.invoices_registry_image, but we are tolerating it because it is using the legacy plugin SDK.
    The following problems may be the cause of any confusing errors from downstream operations:
      - .insecure_skip_verify: planned value cty.False for a non-computed attribute
      - .keep_remotely: planned value cty.False for a non-computed attribute
module.lambda.docker_registry_image.invoices_registry_image: Creating...
2024-10-24T16:22:23.356+1100 [INFO]  Starting apply for module.lambda.docker_registry_image.invoices_registry_image
2024-10-24T16:22:23.356+1100 [WARN]  Provider "registry.terraform.io/kreuzwerker/docker" produced an invalid plan for module.lambda.docker_registry_image.readings_registry_image, but we are tolerating it because it is using the legacy plugin SDK.
    The following problems may be the cause of any confusing errors from downstream operations:
      - .insecure_skip_verify: planned value cty.False for a non-computed attribute
      - .keep_remotely: planned value cty.False for a non-computed attribute
module.lambda.docker_registry_image.readings_registry_image: Creating...
2024-10-24T16:22:23.356+1100 [INFO]  Starting apply for module.lambda.docker_registry_image.readings_registry_image
2024-10-24T16:22:23.356+1100 [DEBUG] module.lambda.docker_registry_image.invoices_registry_image: applying the planned Create change
2024-10-24T16:22:23.357+1100 [DEBUG] module.lambda.docker_registry_image.readings_registry_image: applying the planned Create change
2024-10-24T16:22:23.358+1100 [INFO]  provider.terraform-provider-docker_v3.0.2: 2024/10/24 16:22:23 [DEBUG] Creating docker image 300428143068.dkr.ecr.ap-southeast-2.amazonaws.com/esg-nzc-lambda-docker-repo/invoices:latest: timestamp="2024-10-24T16:22:23.358+1100"
2024-10-24T16:22:23.358+1100 [INFO]  provider.terraform-provider-docker_v3.0.2: 2024/10/24 16:22:23 [DEBUG] Creating docker image 300428143068.dkr.ecr.ap-southeast-2.amazonaws.com/esg-nzc-lambda-docker-repo/readings:latest: timestamp="2024-10-24T16:22:23.358+1100"
2024-10-24T16:22:24.059+1100 [INFO]  provider.terraform-provider-docker_v3.0.2: 2024/10/24 16:22:24 [DEBUG] Pushed image: 300428143068.dkr.ecr.ap-southeast-2.amazonaws.com/esg-nzc-lambda-docker-repo/readings:latest: timestamp="2024-10-24T16:22:24.059+1100"
2024-10-24T16:22:24.220+1100 [ERROR] provider.terraform-provider-docker_v3.0.2: Response contains error diagnostic: @module=sdk.proto diagnostic_detail="" diagnostic_summary="Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found" tf_req_id=a9c1da4a-bd67-cc23-414f-902cc48b7fba tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/diag/diagnostics.go:55 diagnostic_severity=ERROR tf_proto_version=5.3 tf_provider_addr=provider tf_resource_type=docker_registry_image timestamp="2024-10-24T16:22:24.219+1100"
2024-10-24T16:22:24.230+1100 [DEBUG] State storage *statemgr.Filesystem declined to persist a state snapshot
2024-10-24T16:22:24.230+1100 [ERROR] vertex "module.lambda.docker_registry_image.readings_registry_image" error: Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found
2024-10-24T16:22:24.313+1100 [INFO]  provider.terraform-provider-docker_v3.0.2: 2024/10/24 16:22:24 [DEBUG] Pushed image: 300428143068.dkr.ecr.ap-southeast-2.amazonaws.com/esg-nzc-lambda-docker-repo/invoices:latest: timestamp="2024-10-24T16:22:24.313+1100"
2024-10-24T16:22:24.461+1100 [ERROR] provider.terraform-provider-docker_v3.0.2: Response contains error diagnostic: @caller=github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov5/internal/diag/diagnostics.go:55 diagnostic_summary="Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found" tf_proto_version=5.3 tf_provider_addr=provider tf_resource_type=docker_registry_image @module=sdk.proto diagnostic_detail="" diagnostic_severity=ERROR tf_req_id=d19b8435-d636-7c6e-3b67-9f7bb0242162 tf_rpc=ApplyResourceChange timestamp="2024-10-24T16:22:24.461+1100"
2024-10-24T16:22:24.468+1100 [DEBUG] State storage *statemgr.Filesystem declined to persist a state snapshot
2024-10-24T16:22:24.469+1100 [ERROR] vertex "module.lambda.docker_registry_image.invoices_registry_image" error: Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found
╷
│ Error: Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found
│ 
│   with module.lambda.docker_registry_image.readings_registry_image,
│   on modules/lambda/lambda.tf line 65, in resource "docker_registry_image" "readings_registry_image":
│   65: resource "docker_registry_image" "readings_registry_image" {
│ 
╵
╷
│ Error: Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found
│ 
│   with module.lambda.docker_registry_image.invoices_registry_image,
│   on modules/lambda/lambda.tf line 70, in resource "docker_registry_image" "invoices_registry_image":
│   70: resource "docker_registry_image" "invoices_registry_image" {
│ 
╵
2024-10-24T16:22:24.476+1100 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = error reading from server: EOF"

image

Images were pushed successfully

@augustoximenes
Copy link

Same issue on ECR.

The images were pushed to the repository, but received the message at the end:

"Error: Unable to create image, image not found: unable to get digest: Got bad response from registry: 404 Not Found".

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

No branches or pull requests

7 participants
@voycey @Tonkari @augustoximenes and others