diff --git a/README.md b/README.md
index f77daa62adf6b03969fad3c59a996b3b08e8d252..35184a2d7e1a6531d8b840c101e43b68091c64a8 100644
--- a/README.md
+++ b/README.md
@@ -181,18 +181,5 @@ module "webapp" {
 Originally, the module did not deploy images except on the very first use (using
 `gcr.io/cloudrun/hello:latest`).
 
-Currently, deploy the image from `image_name` if specified, otherwise keep the
+Currently, the module deploys the image from `image_name` if specified, otherwise keep the
 current image, if that doesn't exist fall-back to the "hello" image.
-
-The name of the currently deployed image needs to be sourced outside of
-this module and supplied as `existing_image_name` to prevent a cyclic dependency
-problem. This can be extracted from an existing deployment and included in the
-root module with:
-
-```tf
-existing_image_name = (
-  data.google_cloud_run_service.webapp.template != null ?
-  data.google_cloud_run_service.webapp.template[0].spec[0].containers[0].image :
-  ""
-)
-```
diff --git a/locals.tf b/locals.tf
index ce0b188ba911aa7a69fb843aec59e06d4b73be2b..07c2f120a4d1717eed2897d20cef31429482bca7 100644
--- a/locals.tf
+++ b/locals.tf
@@ -51,4 +51,11 @@ locals {
     [trimsuffix(trimprefix(google_cloud_run_service.webapp.status[0].url, "https://"), "/")],
     var.allow_unauthenticated_invocations ? local.dns_names : [],
   )
+
+  # If a cloud run revision is present, get the full URL of the deployed image.
+  existing_image_name = (
+    data.google_cloud_run_service.webapp.template != null ?
+    data.google_cloud_run_service.webapp.template[0].spec[0].containers[0].image :
+    ""
+  )
 }
diff --git a/main.tf b/main.tf
index 01842b90fca505f00acb12ffe55e06fe6d7abe42..99ff371ac769354996248d40e1017d389aca831c 100644
--- a/main.tf
+++ b/main.tf
@@ -113,7 +113,7 @@ resource "google_cloud_run_service" "webapp" {
       containers {
         image = coalesce(
           var.image_name,
-          var.existing_image_name,
+          local.existing_image_name,
           "gcr.io/cloudrun/hello:latest",
         )
 
diff --git a/variables.tf b/variables.tf
index 1336827c248689b56a481fad7510334d54155e36..27b9a281ee243f5a56c28a6239c76fabc701d109 100644
--- a/variables.tf
+++ b/variables.tf
@@ -308,16 +308,7 @@ variable "image_name" {
   type        = string
   default     = ""
   description = <<-EOL
-    The docker image that will be deployed. If unset, the value of existing_image_name
-    is preferred.
-EOL
-}
-
-variable "existing_image_name" {
-  type        = string
-  default     = ""
-  description = <<-EOL
-    The image currently deployed, which needs to be passed into this module to
-    avoid a cyclic dependency. If unset, the hello container will be deployed.
+    Optional. The docker image that will be deployed. If unset, the value of
+    existing_image_name is preferred.
 EOL
 }