diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst
index e199b0a55a..a0212ec540 100644
--- a/doc/source/user/index.rst
+++ b/doc/source/user/index.rst
@@ -1188,7 +1188,7 @@ _`container_infra_prefix`
Images that must be mirrored:
* docker.io/coredns/coredns
- * docker.io/openstackmagnum/etcd
+ * quay.io/coreos/etcd
* docker.io/openstackmagnum/flannel
* docker.io/openstackmagnum/kubernetes-apiserver
* docker.io/openstackmagnum/kubernetes-controller-manager
@@ -1270,9 +1270,11 @@ _`cloud_provider_tag`
_`etcd_tag`
This label allows users to select `a specific etcd version,
based on its container tag
- `_.
+ `_.
If unset, the current Magnum version's a default etcd version.
- For queens, v3.2.7
+ Stein default: v3.2.7
+ Train default: 3.2.26
+ Ussuri default: v3.4.6
_`coredns_tag`
This label allows users to select `a specific coredns version,
diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh
index 6c934139a4..c6c28fcf97 100644
--- a/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh
+++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-etcd.sh
@@ -66,7 +66,7 @@ ExecStart=/bin/podman run \\
--volume /etc/etcd:/etc/etcd:ro,z \\
--volume /var/lib/etcd:/var/lib/etcd:rshared,z \\
--net=host \\
- ${CONTAINER_INFRA_PREFIX:-"k8s.gcr.io/"}etcd:${ETCD_TAG} \\
+ ${CONTAINER_INFRA_PREFIX:-"quay.io/coreos/"}etcd:${ETCD_TAG} \\
/usr/local/bin/etcd \\
--config-file /etc/etcd/etcd.conf.yaml
ExecStop=/bin/podman stop etcd
diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml
index 712ef9d473..270a4f8cc9 100644
--- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml
+++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml
@@ -469,7 +469,7 @@ parameters:
etcd_tag:
type: string
description: tag of the etcd system container
- default: 3.2.26
+ default: v3.4.6
coredns_tag:
type: string
diff --git a/releasenotes/notes/upgrade-etcd-and-use-quay-io-coreos-etcd-1cb8e38e974f5975.yaml b/releasenotes/notes/upgrade-etcd-and-use-quay-io-coreos-etcd-1cb8e38e974f5975.yaml
new file mode 100644
index 0000000000..744b6bed92
--- /dev/null
+++ b/releasenotes/notes/upgrade-etcd-and-use-quay-io-coreos-etcd-1cb8e38e974f5975.yaml
@@ -0,0 +1,9 @@
+---
+upgrade:
+ - |
+ Upgrade etcd to v3.4.6 and use quay.io/coreos/etcd since the tags on follow
+ the same format as https://github.com/etcd-io/etcd/releases compared to
+ k8s.gcr.io which modifies the canonical version tag. Users will need to pay
+ attention to the format of etcd_tag, e.g. v3.4.5 is valid whereas 3.4.5 is
+ not. Existing cluster templates and clusters which which use the latter will
+ fail to complete.