diff --git a/src/go/rpk/pkg/cli/cmd/redpanda/start.go b/src/go/rpk/pkg/cli/cmd/redpanda/start.go index 9e5c2b59e940..29bd6805541e 100644 --- a/src/go/rpk/pkg/cli/cmd/redpanda/start.go +++ b/src/go/rpk/pkg/cli/cmd/redpanda/start.go @@ -152,6 +152,13 @@ func NewStartCommand(fs afero.Fs, launcher rp.Launcher) *cobra.Command { if err != nil { return fmt.Errorf("unable to load config file: %s", err) } + // We set fields in the raw file without writing rpk specific env + // or flag overrides. This command itself has all redpanda specific + // flags installed, and handles redpanda specific env vars itself. + // The magic `--set` flag is what modifies any redpanda.yaml fields. + // Thus, we can ignore any env / flags that would come from rpk + // configuration itself. + cfg = cfg.FileOrDefaults() if len(configKvs) > 0 { if err = setConfig(cfg, configKvs); err != nil { diff --git a/src/go/rpk/pkg/cli/cmd/redpanda/start_test.go b/src/go/rpk/pkg/cli/cmd/redpanda/start_test.go index aa843be833d4..cfcfde0a3556 100644 --- a/src/go/rpk/pkg/cli/cmd/redpanda/start_test.go +++ b/src/go/rpk/pkg/cli/cmd/redpanda/start_test.go @@ -14,9 +14,7 @@ package redpanda import ( "bytes" - "net" "os" - "strconv" "testing" "github.com/redpanda-data/redpanda/src/go/rpk/pkg/config" @@ -194,10 +192,6 @@ func TestStartCommand(t *testing.T) { path, ) c := config.Default() - // Adding unset default that get added on first load. - b0 := c.Redpanda.KafkaAPI[0] - c.Rpk.KafkaAPI.Brokers = []string{net.JoinHostPort(b0.Address, strconv.Itoa(b0.Port))} - c.Rpk.AdminAPI.Addresses = []string{"127.0.0.1:9644"} conf, err := new(config.Params).Load(fs) require.NoError(st, err) diff --git a/tests/rptest/tests/rpk_config_test.py b/tests/rptest/tests/rpk_config_test.py index 78711b6f8c4a..c18d529697d5 100644 --- a/tests/rptest/tests/rpk_config_test.py +++ b/tests/rptest/tests/rpk_config_test.py @@ -53,15 +53,9 @@ def test_config_init(self): port: 9644 developer_mode: true rpk: - admin_api: - addresses: - - 127.0.0.1:9644 coredump_dir: /var/lib/redpanda/coredump enable_memory_locking: false enable_usage_stats: false - kafka_api: - brokers: - - 0.0.0.0:9092 overprovisioned: false tune_aio_events: false tune_ballast_file: false @@ -182,9 +176,6 @@ def test_config_set_json(self): rpk.config_set(key, value, format='json') expected_config = yaml.full_load(''' -admin_api: - addresses: - - 127.0.0.1:9644 coredump_dir: /var/lib/redpanda/coredump enable_memory_locking: false enable_usage_stats: false @@ -210,12 +201,6 @@ def test_config_set_json(self): with open(os.path.join(d, 'redpanda.yaml')) as f: actual_config = yaml.full_load(f.read()) - assert actual_config['rpk']['kafka_api'] is not None - - # Delete 'kafka_api' so they can be compared since the - # brokers change depending on the container it's running - del actual_config['rpk']['kafka_api'] - if actual_config['rpk'] != expected_config: self.logger.error("Configs differ") self.logger.error(