Skip to content

Etcd Fails to Start After Upgrading to 2983.2.0 #547

@Silvenga

Description

@Silvenga

Description

Etcd is failing to start after upgrading to 2983.2.0.

Impact

Etcd is a core component of many Flatcar deployments. When the Etcd cluster is degraded, Flatcar isn't happy.

Environment and steps to reproduce

Using the template:

etcd:
  name: ${name}
  listen_client_urls: http://${blah_ip}:2379,http://127.0.0.1:2379
  listen_peer_urls: http://${blah_ip}:2380
  # Unused after cluster construction.
  advertise_client_urls: http://${blah_ip}:2379
  initial_advertise_peer_urls: http://${blah_ip}:2380
  initial_cluster: ${etcd_initial_cluster}
  initial_cluster_state: new
  initial_cluster_token: blah

Upgrade from 2905.2.4 (our base image that nodes are based on) to 2983.2.0.

Note that etcd-member is failing due to:

{
    "level": "fatal",
    "ts": 1636652386.2531393,
    "caller": "flags/flag.go:85",
    "msg": "conflicting environment variable is shadowed by corresponding command-line flag (either unset environment variable or disable flag))",
    "environment-variable": "ETCD_NAME",
    "stacktrace": "go.etcd.io/etcd/pkg/v3/flags.verifyEnv\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/pkg/flags/flag.go:85\ngo.etcd.io/etcd/pkg/v3/flags.SetFlagsFromEnv\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/pkg/flags/flag.go:45\ngo.etcd.io/etcd/server/v3/etcdmain.(*config).configFromCmdLine\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/server/etcdmain/config.go:373\ngo.etcd.io/etcd/server/v3/etcdmain.(*config).parse\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/server/etcdmain/config.go:343\ngo.etcd.io/etcd/server/v3/etcdmain.startEtcdOrProxyV2\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/server/etcdmain/etcd.go:58\ngo.etcd.io/etcd/server/v3/etcdmain.Main\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/server/etcdmain/main.go:40\nmain.main\n\t/tmp/etcd-release-3.5.0/etcd/release/etcd/server/main.go:32\nruntime.main\n\t/home/remote/sbatsche/.gvm/gos/go1.16.3/src/runtime/proc.go:225"
}

It appears the dropin 20-clct-etcd-member.conf sets the --name option, while etcd-member.service sets ETCD_NAME.

Expected behavior

Etcd continues to operate.

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions