diff --git a/internal/kubernetes/operator/config_exporter.go b/internal/kubernetes/operator/config_exporter.go index f4a8a22858..9611723a3c 100644 --- a/internal/kubernetes/operator/config_exporter.go +++ b/internal/kubernetes/operator/config_exporter.go @@ -417,9 +417,12 @@ func (e *ConfigExporter) exportAtlasFederatedAuth(projectName string) ([]runtime // Gets the FederationAuthSetting federatedAuthentificationSetting, err := e.dataProvider.FederationSetting(&admin.GetFederationSettingsApiParams{OrgId: e.orgID}) if err != nil { + if admin.IsErrorCode(err, "RESOURCE_NOT_FOUND") { + return nil, nil + } return nil, fmt.Errorf("failed to retrieve federation settings: %w", err) } - // Does not have an IdenityProvider set then no need to generate + // Does not have an IdentityProvider set then no need to generate if !federatedAuthentificationSetting.HasIdentityProviderStatus() || federatedAuthentificationSetting.GetIdentityProviderStatus() == InactiveStatus { return nil, nil } diff --git a/test/e2e/atlas/kubernetes_config_generate_test.go b/test/e2e/atlas/kubernetes_config_generate_test.go index 58c3678d10..d1452c20e8 100644 --- a/test/e2e/atlas/kubernetes_config_generate_test.go +++ b/test/e2e/atlas/kubernetes_config_generate_test.go @@ -131,6 +131,26 @@ func InitialSetup(t *testing.T) KubernetesConfigGenerateProjectSuite { return s } +func TestExportWorksWithoutFedAuth(t *testing.T) { + s := InitialSetup(t) + cliPath := s.cliPath + generator := s.generator + cmd := exec.Command(cliPath, + "kubernetes", + "config", + "generate", + "--projectId", + generator.projectID) + cmd.Env = os.Environ() + resp, err := cmd.CombinedOutput() + t.Log(string(resp)) + require.NoError(t, err, string(resp)) + var objects []runtime.Object + objects, err = getK8SEntities(resp) + require.NoError(t, err, "should not fail on decode but got:\n"+string(resp)) + require.NotEmpty(t, objects) +} + func TestFederatedAuthTest(t *testing.T) { t.Run("PreRequisite Get the federation setting ID", func(t *testing.T) { s := InitialSetup(t)