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

Reflecting on the security model for pipelines in a multi-tenant context #77

Closed
wants to merge 10 commits into from

Conversation

enekofb
Copy link
Contributor

@enekofb enekofb commented Sep 21, 2022

@enekofb
Copy link
Contributor Author

enekofb commented Sep 21, 2022

Input from @bigkevmcd,

I wonder if for the cross-namespace problem, we couldn’t do something like this
It’s similar to https://github.com/fluxcd/flux2/pull/2092/files
This is significant tho’ fluxcd/flux2#2092 (comment)

@enekofb enekofb force-pushed the pipelines-clusters-tenants branch from 2f50aca to 06cc32f Compare September 23, 2022 16:31
@enekofb enekofb marked this pull request as ready for review September 23, 2022 16:33
@enekofb enekofb changed the title WIP - Pipelines clusters tenants Reflecting on the security model for pipelines in a multitenancy context Sep 23, 2022
@enekofb enekofb changed the title Reflecting on the security model for pipelines in a multitenancy context Reflecting on the security model for pipelines in a multi-tenant context Sep 23, 2022
@enekofb enekofb requested a review from a team September 26, 2022 14:28
kind: Pipeline
metadata:
name: invalid-search-shared-environment
namespace: billing #invalid pipeline namespace
Copy link
Contributor

Choose a reason for hiding this comment

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

Presumably the search tenant has no permissions to add a pipeline to the billing namespace right?

Copy link
Member

@makkes makkes left a comment

Choose a reason for hiding this comment

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

Didn't get to review all of it but this is how far I got.

Comment on lines +77 to +80
A new custom resource definition `Pipeline` lets users define a pipeline for a specific application and its associated target environments in a central place.
Each pipeline is represented by a single resource consisting of an application reference and a list of all the environments in turn consisting of a list of the environments' targets.
The order of environments is mandated by each environment's position in that list. An application reference within a `Pipeline` resource consists of a kind and a name.
Together with the namespace declared in each target, the application is uniquely identified per-target.
Copy link
Member

Choose a reason for hiding this comment

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

Has anything been changed here except for the line wrapping? It's hard to tell.


## Summary

This rfc proposes the security posture required for pipelines to securely work in a weave gitops enterprise multi-tenant environment.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This rfc proposes the security posture required for pipelines to securely work in a weave gitops enterprise multi-tenant environment.
This RFC proposes the security posture required for pipelines to securely work in a weave gitops enterprise multi-tenant environment.

[pipelines rfc](../0001-pipelines/README.md) indicates the approach to use to define a delivery pipeline to deliver
an application across multiple environments.

Weave Gitops Enterprise will host multiple applications owned by multiple teams being delivered across multiple environments.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Weave Gitops Enterprise will host multiple applications owned by multiple teams being delivered across multiple environments.
Clusters running Weave Gitops Enterprise will host multiple applications owned by multiple teams being delivered across multiple environments.

Comment on lines +16 to +17
That multi-tenancy nature, and how to keep the isolation between tenant to ensure that any of them could use
pipelines safely is the main goal of this RFC.
Copy link
Member

Choose a reason for hiding this comment

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

We should be more specific here as this RFC exclusively solves challenges in the context of pipelines, nothing else.


### Non-Goals

- We picture tenant as a static image but in reality,a tenant would evolve. this evolution is out scope.
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure I understand what this is supposed to bring across. Does this RFC only apply to a specific model of tenant isolation?

For the proposal we are going to use the following scenario.

**Organisations by Tenancy models**
We are going to define two organisation, each one with a different tenancy model.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
We are going to define two organisation, each one with a different tenancy model.
We are going to define two organisations, each one with a different tenancy model.

@enekofb
Copy link
Contributor Author

enekofb commented Oct 3, 2022

Moving to in progress to review it in the context of latest design decisions

**Organisations by Tenancy models**
We are going to define two organisation, each one with a different tenancy model.
- `shared-environments` where tenants are isolated at the level of the namespace. Each tenant owns a namespace within each environment/cluster.
- `dedicated-environments` where tenants are isolated at the level of the environment. Each tenant owns an entire cluster.

Choose a reason for hiding this comment

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

We could use the names referenced here https://kubernetes.io/blog/2021/04/15/three-tenancy-models-for-kubernetes/. It may help particularly in any external documentation to be able to cross reference

@enekofb
Copy link
Contributor Author

enekofb commented Nov 11, 2022

closing PR as need to review the scope of the document ... not deleting PR as the issue still open

@enekofb enekofb closed this Nov 11, 2022
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.

Capture security concerns about pipeline-controller
4 participants