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

ROX-13709: Introduce the external secrets operator on the Data Plane #1078

Merged
merged 6 commits into from
Nov 2, 2023

Conversation

kovayur
Copy link
Contributor

@kovayur kovayur commented Jun 6, 2023

Description

This change introduces the external secrets operator (https://external-secrets.io) on the Data Plane clusters.
This allows to load secrets from AWS on the cluster instead of populating them to the deployment script in Github Actions.

The change includes:

  1. Deployment script
  2. CI / CD pipeline
  3. Load fleetshard sync secrets using the ExternalSecret CR.

After we make all the secrets load from the operator we can:

  1. Revoke the secret read permission from the Github AWS role
  2. Simplify the terraforming chart and its deployment by reducing the number of values.

Checklist (Definition of Done)

  • Unit and integration tests added
  • Added test description under Test manual
  • Documentation added if necessary (i.e. changes to dev setup, test execution, ...)
  • CI and all relevant tests are passing
  • Add the ticket number to the PR title if available, i.e. ROX-12345: ...
  • Discussed security and business related topics privately. Will move any security and business related topics that arise to private communication channel.
  • Add secret to app-interface Vault or Secrets Manager if necessary
  • RDS changes were e2e tested manually
  • Check AWS limits are reasonable for changes provisioning new resources

Test manual

Tested manually on the stage cluster.

@kovayur kovayur temporarily deployed to development June 6, 2023 16:50 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 6, 2023 16:50 — with GitHub Actions Inactive
@openshift-ci openshift-ci bot added the approved label Jun 6, 2023
@kovayur kovayur temporarily deployed to development June 7, 2023 08:07 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:07 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:15 — with GitHub Actions Inactive
@ivan-degtiarenko ivan-degtiarenko temporarily deployed to development June 7, 2023 08:16 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:23 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:23 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:24 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:40 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:40 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:40 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:40 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:41 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development June 7, 2023 08:41 — with GitHub Actions Inactive
Copy link
Contributor

@stehessel stehessel left a comment

Choose a reason for hiding this comment

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

Very nice! Thanks for picking up ROX-13709 in its unrefined state 🚀 . We can do a follow up for other service secrets (like probe and cloudwatch exporter).

What do you think about enabling etcd encryption? That way the secrets are encrypted at rest in the cluster as well as in AWS - see https://docs.openshift.com/container-platform/4.13/security/encrypting-etcd.html on how to do that.

@kovayur kovayur temporarily deployed to development October 31, 2023 10:13 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 10:13 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 10:13 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 10:14 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 10:14 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 10:14 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 15:49 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 15:49 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 15:49 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 15:51 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 15:51 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 15:51 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 16:46 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 16:46 — with GitHub Actions Inactive
@kovayur kovayur temporarily deployed to development October 31, 2023 16:46 — with GitHub Actions Inactive
repository: quay.io/app-sre/external-secrets
tag: v0.9.5
securityContext:
runAsUser: 1001130000
Copy link
Collaborator

Choose a reason for hiding this comment

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

Sorry for my ignorance here, where do these user IDs come from? I know the default of 1000 but what's the source for these?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

They came from openshift, the default is 1000, but this is outside the allowed range of values. I took the first values from the range

Copy link
Contributor

openshift-ci bot commented Nov 2, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ebensh, kovayur, porridge, SimonBaeumer, stehessel

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [SimonBaeumer,ebensh,kovayur,porridge]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kovayur
Copy link
Contributor Author

kovayur commented Nov 2, 2023

What do you think about enabling etcd encryption? That way the secrets are encrypted at rest in the cluster as well as in AWS - see https://docs.openshift.com/container-platform/4.13/security/encrypting-etcd.html on how to do that.

@stehessel raised a follow-up ticket for this: ROX-20619

@kovayur kovayur merged commit a71d1d6 into main Nov 2, 2023
8 checks passed
@kovayur kovayur deleted the yury/ROX-13709-external-secrets branch November 2, 2023 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants