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

Multi-tenancy, part 2: Authorization using Kubernetes RBAC #753

Closed
1 of 3 tasks
soamvasani opened this issue Jun 20, 2018 · 3 comments
Closed
1 of 3 tasks

Multi-tenancy, part 2: Authorization using Kubernetes RBAC #753

soamvasani opened this issue Jun 20, 2018 · 3 comments
Assignees
Milestone

Comments

@soamvasani
Copy link
Member

soamvasani commented Jun 20, 2018

We have multiple-namespace support for Fission since 0.8.0; however, our API does not have support for authorization.

Most of our server-side microservices talk directly to the K8s API. There's no longer a need for most of the Fission API. We can remove the resource CRUD parts of our API; then the CLI can access the K8s API directly, so that the usual K8s RBAC rules restrict CLI users as well.

Changes needed:

  1. Modify CLI to talk to Kubernetes API directly. Give users good error messages when authz fails.
  2. Deprecate CRUD API for Fission CRDs. No code change; just a decision to remove APIs in a future release.
  3. Remove CRUD API for Fission CRDs. On access these APIs should return a friendly error message asking users to upgrade their CLI.

Non-goal for this issue: adding authorization to our other APIs. We'll track that in a separate issue.

@soamvasani soamvasani added this to the 1.0-rc1 milestone Nov 7, 2018
@soamvasani
Copy link
Member Author

We'll also have to add server-side CRD validation.

@sanketsudake
Copy link
Member

@neha-Gupta1 please review this as per latest changes and close as appropriate.

@neha-Gupta1
Copy link
Contributor

neha-Gupta1 commented Nov 17, 2022

Since all CRUD API for Fission CRDs are called from CLI, we have stopped calling those APIs (i.e. controller APIs) from CLI and have made direct calls to API server.
Controller is disabled by default. So any API call to controller API will give a 404.
We have added a flag is helm charts controller.enabled (which is by default set to false) through which users can still use old controller APIs. Detailed information about the flag will be added to release notes with the deprecation note.
Also, server side validations have been added through admission controller server.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants