Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

edit wizard, skip aws as default for other plugins #362

Conversation

JonathanLoscalzo
Copy link
Contributor

@JonathanLoscalzo JonathanLoscalzo commented Apr 26, 2023

What's changed in the PR?

  • move aws config init to aws plugin configuration (setup method in wizard)
  • create/update secrets locally without aws
  • new method set_required_secure_text_values()
  • upsert_secret() method, & refactor operations to use it
  • refactor:
    configuration_wizard_google_workspace_add,
    configuration_wizard_azure_ad_organization_add,
    configuration_wizard_okta_organization_add
    run()

Rationale

Remove the aws dependency from other plugins.
After that, Support secrets locally.

How'd to test?

  • manual verification:
    • add two accounts to okta without configure aws
    • add two accounts to azure_ad without configure aws
    • add two google_workspaces without configure aws
    • add an aws account after all above changes

@JonathanLoscalzo JonathanLoscalzo self-assigned this Apr 26, 2023
@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from e7794c1 to 0d16189 Compare April 26, 2023 04:34
@codecov
Copy link

codecov bot commented Apr 26, 2023

Codecov Report

Patch coverage: 100.00% and project coverage change: -0.04 ⚠️

Comparison is base (b45c61f) 85.25% compared to head (aff1767) 85.22%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #362      +/-   ##
==========================================
- Coverage   85.25%   85.22%   -0.04%     
==========================================
  Files          98       98              
  Lines       10624    10588      -36     
==========================================
- Hits         9058     9024      -34     
+ Misses       1566     1564       -2     
Flag Coverage Δ
functional_tests 66.96% <87.50%> (-0.52%) ⬇️
functional_tests_config_discovery 47.21% <37.50%> (-0.27%) ⬇️
unit_tests 75.39% <100.00%> (+0.36%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
iambic/plugins/v0_1_0/azure_ad/models.py 88.88% <ø> (+6.92%) ⬆️
...c/plugins/v0_1_0/google_workspace/iambic_plugin.py 97.22% <100.00%> (+0.03%) ⬆️
iambic/plugins/v0_1_0/okta/iambic_plugin.py 97.56% <100.00%> (ø)
iambic/plugins/v0_1_0/okta/user/models.py 89.25% <100.00%> (+0.18%) ⬆️
iambic/plugins/v0_1_0/okta/user/utils.py 78.52% <100.00%> (-0.39%) ⬇️

... and 3 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch 2 times, most recently from 3a98c78 to d79608f Compare April 26, 2023 18:46
@JonathanLoscalzo JonathanLoscalzo marked this pull request as ready for review April 26, 2023 19:39
@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from d79608f to ec9e0cf Compare April 26, 2023 19:46
@ghost
Copy link

ghost commented Apr 26, 2023

exception during plan is blocked

 File "/app/iambic/plugins/v0_1_0/github/github.py", line 507, in handle_iambic_git_plan
   template_changes = run_git_plan(proposed_changes_path, repo_dir)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 341, in run_git_plan
   config_path = asyncio.run(resolve_config_template_path(repo_dir))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/config/utils.py", line 17, in resolve_config_template_path
   raise RuntimeError(
RuntimeError: Unable to discover IAMbic Configuration in /tmp/lambdaf3sxf1zh/.iambic/repos/. Create a configuration with the `NOQ::Core::Config` template type. You can run `iambic setup` to generate a configuration.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from ec9e0cf to 27c1db6 Compare April 26, 2023 20:06
@ghost
Copy link

ghost commented Apr 26, 2023

exception during plan is blocked

 File "/app/iambic/plugins/v0_1_0/github/github.py", line 507, in handle_iambic_git_plan
   template_changes = run_git_plan(proposed_changes_path, repo_dir)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 341, in run_git_plan
   config_path = asyncio.run(resolve_config_template_path(repo_dir))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/config/utils.py", line 17, in resolve_config_template_path
   raise RuntimeError(
RuntimeError: Unable to discover IAMbic Configuration in /tmp/lambdavcohbygk/.iambic/repos/. Create a configuration with the `NOQ::Core::Config` template type. You can run `iambic setup` to generate a configuration.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 27c1db6 to 4e0873c Compare April 26, 2023 20:40
@ghost
Copy link

ghost commented Apr 26, 2023

exception during plan is blocked

 File "/app/iambic/plugins/v0_1_0/github/github.py", line 507, in handle_iambic_git_plan
   template_changes = run_git_plan(proposed_changes_path, repo_dir)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 341, in run_git_plan
   config_path = asyncio.run(resolve_config_template_path(repo_dir))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/config/utils.py", line 17, in resolve_config_template_path
   raise RuntimeError(
RuntimeError: Unable to discover IAMbic Configuration in /tmp/lambdaft03umej/.iambic/repos/. Create a configuration with the `NOQ::Core::Config` template type. You can run `iambic setup` to generate a configuration.

iambic/config/wizard.py Show resolved Hide resolved
iambic/config/wizard.py Outdated Show resolved Hide resolved
iambic/config/wizard.py Outdated Show resolved Hide resolved
iambic/config/wizard.py Outdated Show resolved Hide resolved
iambic/config/wizard.py Outdated Show resolved Hide resolved
@mdaue2
Copy link
Contributor

mdaue2 commented Apr 26, 2023

When trying to install Google Workspace, I got the following stack trace:

2023/04/26 13:59:03 [info     ] Importing Google Workspace identities
2023/04/26 13:59:03 [info     ] Beginning to retrieve Google groups.
  project=iambic-jonathan
2023/04/26 13:59:03 [info     ] Caching Google groups.
  domain=iambic.org
  project_id=iambic-jonathan
2023/04/26 13:59:04 [info     ] Finished caching Google groups.
  domain=iambic.org
  group_count=4
  project_id=iambic-jonathan
2023/04/26 13:59:04 [info     ] Finished retrieving Google group details
  project=iambic-jonathan
2023/04/26 13:59:05 [info     ] Updating and creating Google group templates.
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_global_tenant_data_prod@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_tenant_data_prod.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_tenant_data_prod.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_tenant_data_prod.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=staging-noq-dev-shared-staging-1-ecstaskrole@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/staging_noq_dev_shared_staging_1_ecstaskrole.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/staging_noq_dev_shared_staging_1_ecstaskrole.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/staging_noq_dev_shared_staging_1_ecstaskrole.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=finance@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/finance.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/finance.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/finance.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=ses_feedback@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ses_feedback.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ses_feedback.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ses_feedback.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_standalone_account_no_org@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_standalone_account_no_org.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_standalone_account_no_org.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_standalone_account_no_org.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=postmaster@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/postmaster.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/postmaster.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/postmaster.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=hr@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/hr.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/hr.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/hr.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=kris@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/kris.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/kris.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/kris.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org_audit_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org_audit_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org_audit_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org_audit_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_ses_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_ses_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_ses_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_ses_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org2_readonly_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_readonly_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_readonly_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_readonly_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_demo_org_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org2_audit_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_audit_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_audit_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_audit_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_development-2_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_development_2_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_development_2_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_development_2_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=docs@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/docs.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/docs.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/docs.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_demo_org_account_3@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account_3.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account_3.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account_3.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=sentry@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/sentry.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/sentry.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/sentry.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org2_controltowertest_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_controltowertest_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_controltowertest_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_controltowertest_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org_log_archive_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org_log_archive_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org_log_archive_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org_log_archive_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=legal@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/legal.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/legal.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/legal.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=noq_admins@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/noq_admins.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/noq_admins.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/noq_admins.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=iambic@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_cyberdyne_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_cyberdyne_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_cyberdyne_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_cyberdyne_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=support@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/support.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/support.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/support.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=noq-dev-shared-prod-1-ecstaskrole@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/noq_dev_shared_prod_1_ecstaskrole.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/noq_dev_shared_prod_1_ecstaskrole.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/noq_dev_shared_prod_1_ecstaskrole.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org3_complex@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org3_complex.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org3_complex.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org3_complex.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=ap@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ap.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ap.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ap.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=ir@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ir.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ir.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/ir.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_org2_log_archive_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_log_archive_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_log_archive_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_org2_log_archive_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=dockerhub@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/dockerhub.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/dockerhub.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/dockerhub.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=teleport_app@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/teleport_app.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/teleport_app.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/teleport_app.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_iambic_test_org_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_iambic_test_org_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_iambic_test_org_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_iambic_test_org_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=all@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/all.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/all.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/all.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_demo_org_account_2@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account_2.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account_2.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_demo_org_account_2.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=iambic_test_spoke_account_1@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_1.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_1.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_1.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=iambic_test_spoke_account_3@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_3.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_3.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_3.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=a-group-with-commas-and-special-characters7@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/a_group_with_commas_and_special_characters7.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/a_group_with_commas_and_special_characters7.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/a_group_with_commas_and_special_characters7.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=twitter_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/twitter_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/twitter_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/twitter_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=engineering-local-dev@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/engineering_local_dev.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/engineering_local_dev.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/engineering_local_dev.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=engineering@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/engineering.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/engineering.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/engineering.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=trademark@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/trademark.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/trademark.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/trademark.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=accounting@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/accounting.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/accounting.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/accounting.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=dockerhub2@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/dockerhub2.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/dockerhub2.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/dockerhub2.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=hello@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/hello.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/hello.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/hello.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=iambic_test_spoke_account_2@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_2.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_2.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/iambic_test_spoke_account_2.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=openai_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/openai_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/openai_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/openai_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_development_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_development_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_development_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_development_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_spaces_in_account_name@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_spaces_in_account_name.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_spaces_in_account_name.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_spaces_in_account_name.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_zelkova_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_zelkova_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_zelkova_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_zelkova_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=notifications@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/notifications.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/notifications.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/notifications.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_unusual_demo_account@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_unusual_demo_account.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_unusual_demo_account.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_unusual_demo_account.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=product@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/product.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/product.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/product.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=vanta@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/vanta.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/vanta.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/vanta.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_global_tenant_data_staging@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_tenant_data_staging.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_tenant_data_staging.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_tenant_data_staging.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws-iambic-standalone-org@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_iambic_standalone_org.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_iambic_standalone_org.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_iambic_standalone_org.yaml')
2023/04/26 13:59:05 [warning  ] Removing template that references deleted resource
  resource_id=aws_global_prod_tenant_data@noq.dev
  resource_type=google:group
2023/04/26 13:59:05 [info     ] Deleting template file
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_prod_tenant_data.yaml')
2023/04/26 13:59:05 [error    ] Unable to remove file from local Git repo. Deleting manually
  error=InvalidGitRepositoryError('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_prod_tenant_data.yaml')
  file_path=PosixPath('/home/matt/dev/iambic-templates/resources/google_workspace/groups/noq.dev/aws_global_prod_tenant_data.yaml')
2023/04/26 13:59:05 [info     ] Finish updating and creating Google group templates.
Traceback (most recent call last):
  File "/home/matt/.virtualenvs/iambic/bin/iambic", line 6, in <module>
    sys.exit(cli())
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/matt/dev/iambic/iambic/main.py", line 465, in setup
    ConfigurationWizard(repo_dir).run()
  File "/home/matt/dev/iambic/iambic/config/wizard.py", line 1830, in run
    self.configuration_wizard_google_workspace()
  File "/home/matt/dev/iambic/iambic/config/wizard.py", line 1482, in configuration_wizard_google_workspace
    self.configuration_wizard_google_workspace_add()
  File "/home/matt/dev/iambic/iambic/config/wizard.py", line 1359, in configuration_wizard_google_workspace_add
    self.upsert_secret()
  File "/home/matt/dev/iambic/iambic/config/wizard.py", line 1203, in upsert_secret
    self.create_secret()
  File "/home/matt/dev/iambic/iambic/config/wizard.py", line 1267, in create_secret
    f.write(yaml.dump({"secrets": self.config.secrets}))  # type: ignore
  File "/home/matt/dev/iambic/iambic/core/utils.py", line 179, in dump
    YAML.dump(self, data, stream, **kw)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/main.py", line 574, in dump
    return self.dump_all([data], stream, transform=transform)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/main.py", line 583, in dump_all
    self._context_manager.dump(data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/main.py", line 915, in dump
    self._yaml.representer.represent(data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 80, in represent
    node = self.represent_data(data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 103, in represent_data
    node = self.yaml_representers[data_types[0]](self, data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 321, in represent_dict
    return self.represent_mapping('tag:yaml.org,2002:map', data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 869, in represent_mapping
    node_value = self.represent_data(item_value)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 103, in represent_data
    node = self.yaml_representers[data_types[0]](self, data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 321, in represent_dict
    return self.represent_mapping('tag:yaml.org,2002:map', data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 869, in represent_mapping
    node_value = self.represent_data(item_value)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 103, in represent_data
    node = self.yaml_representers[data_types[0]](self, data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 321, in represent_dict
    return self.represent_mapping('tag:yaml.org,2002:map', data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 869, in represent_mapping
    node_value = self.represent_data(item_value)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 103, in represent_data
    node = self.yaml_representers[data_types[0]](self, data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 311, in represent_list
    return self.represent_sequence('tag:yaml.org,2002:seq', data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 777, in represent_sequence
    node_item = self.represent_data(item)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 103, in represent_data
    node = self.yaml_representers[data_types[0]](self, data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 321, in represent_dict
    return self.represent_mapping('tag:yaml.org,2002:map', data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 869, in represent_mapping
    node_value = self.represent_data(item_value)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 113, in represent_data
    node = self.yaml_representers[None](self, data)
  File "/home/matt/.virtualenvs/iambic/lib/python3.9/site-packages/ruamel/yaml/representer.py", line 354, in represent_undefined
    raise RepresenterError(_F('cannot represent an object: {data!s}', data=data))
ruamel.yaml.representer.RepresenterError: cannot represent an object: **********

Copy link
Contributor

@mdaue2 mdaue2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this with Google Workspace and got a pretty good stack trace that warrants further investigation before we can merge.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 4e0873c to 9baaf52 Compare April 26, 2023 21:42
@ghost
Copy link

ghost commented Apr 26, 2023

exception during plan is blocked

 File "/app/iambic/plugins/v0_1_0/github/github.py", line 507, in handle_iambic_git_plan
   template_changes = run_git_plan(proposed_changes_path, repo_dir)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 341, in run_git_plan
   config_path = asyncio.run(resolve_config_template_path(repo_dir))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/config/utils.py", line 17, in resolve_config_template_path
   raise RuntimeError(
RuntimeError: Unable to discover IAMbic Configuration in /tmp/lambdaqr15bc22/.iambic/repos/. Create a configuration with the `NOQ::Core::Config` template type. You can run `iambic setup` to generate a configuration.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 9baaf52 to 8aae1cd Compare April 27, 2023 03:43
@ghost
Copy link

ghost commented Apr 27, 2023

exception during plan is blocked

 File "/app/iambic/plugins/v0_1_0/github/github.py", line 507, in handle_iambic_git_plan
   template_changes = run_git_plan(proposed_changes_path, repo_dir)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 341, in run_git_plan
   config_path = asyncio.run(resolve_config_template_path(repo_dir))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/config/utils.py", line 17, in resolve_config_template_path
   raise RuntimeError(
RuntimeError: Unable to discover IAMbic Configuration in /tmp/lambda9d85fapl/.iambic/repos/. Create a configuration with the `NOQ::Core::Config` template type. You can run `iambic setup` to generate a configuration.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 8aae1cd to 83968fa Compare April 27, 2023 16:45
@ghost
Copy link

ghost commented Apr 27, 2023

exception during plan is blocked

 File "/app/iambic/plugins/v0_1_0/github/github.py", line 507, in handle_iambic_git_plan
   template_changes = run_git_plan(proposed_changes_path, repo_dir)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/app/iambic/main.py", line 341, in run_git_plan
   config_path = asyncio.run(resolve_config_template_path(repo_dir))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 190, in run
   return runner.run(main)
          ^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/runners.py", line 118, in run
   return self._loop.run_until_complete(task)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/Python-3.11.1/Lib/asyncio/base_events.py", line 653, in run_until_complete
   return future.result()
          ^^^^^^^^^^^^^^^
 File "/app/iambic/config/utils.py", line 17, in resolve_config_template_path
   raise RuntimeError(
RuntimeError: Unable to discover IAMbic Configuration in /tmp/lambdaahth_tf6/.iambic/repos/. Create a configuration with the `NOQ::Core::Config` template type. You can run `iambic setup` to generate a configuration.

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 83968fa to 5f29f57 Compare April 27, 2023 16:59
@mdaue2
Copy link
Contributor

mdaue2 commented Apr 27, 2023

It seems now there is a regression, I can no longer select "Done" after performing the updates.
image

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch 4 times, most recently from d60dddf to 9b175d5 Compare April 27, 2023 20:36
@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch 5 times, most recently from 0f02b73 to 5f38d78 Compare April 28, 2023 13:09
@Will-NOQ
Copy link
Collaborator

I had AWS configured but was not given the option to store my secrets in the secrets manager.

Steps to reproduce:

  • Setup the AWS provider
  • Add another provider

@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 5f38d78 to 2815335 Compare April 28, 2023 18:24
- move aws config init to aws plugin configuration
- create/update secrets locally without aws
- new method set_required_secure_text_values()
- upsert_secret method allow refactor operations
- exclude iambic_managed when it is undefined for okta, azure and google ws
- refactor:
    configuration_wizard_google_workspace_add,
    configuration_wizard_azure_ad_organization_add,
    configuration_wizard_okta_organization_add
    run()
- fix: not update okta user status when it is deleted (or it is going to be deleted)
- add coverage report to pyproject
@JonathanLoscalzo JonathanLoscalzo force-pushed the task/en-2046-allow-users-set-secrets-without-aws branch from 2815335 to aff1767 Compare May 2, 2023 13:06
@smoy
Copy link
Contributor

smoy commented May 3, 2023

Did #373 included this PR change? If so, maybe we can close it.

@JonathanLoscalzo
Copy link
Contributor Author

Close because it was merge with #373

@Will-NOQ Will-NOQ deleted the task/en-2046-allow-users-set-secrets-without-aws branch May 4, 2023 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The Wizard should not require AWS for setting up Google Workspace, Azure AD, or Okta
4 participants