code: func GetEtcdImage(cfg *kubeadmapi.ClusterConfiguration) string {
  	// Etcd uses default image repository by default
  	etcdImageRepository := cfg.ImageRepository
  	// unless an override is specified
  	if cfg.Etcd.Local != nil && cfg.Etcd.Local.ImageRepository != "" {
  		etcdImageRepository = cfg.Etcd.Local.ImageRepository
  	}
  	// Etcd uses an imageTag that corresponds to the etcd version matching the Kubernetes version
  	etcdImageTag := constants.DefaultEtcdVersion
  	etcdVersion, err := constants.EtcdSupportedVersion(cfg.KubernetesVersion)
  	if err == nil {
  		etcdImageTag = etcdVersion.String()
  	}
  	// unless an override is specified
  	if cfg.Etcd.Local != nil && cfg.Etcd.Local.ImageTag != "" {
  		etcdImageTag = cfg.Etcd.Local.ImageTag
  	}
  	return GetGenericImage(etcdImageRepository, constants.Etcd, etcdImageTag)
  }
docs: // GetEtcdImage generates and returns the image for etcd