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

create a self-serve component for data-scientists #1872

Merged
merged 53 commits into from Nov 1, 2018

Conversation

kkasravi
Copy link
Contributor

@kkasravi kkasravi commented Oct 26, 2018

fixes #1842

See the README.md in this PR under kubeflow/profiles/prototypes


This change is Reviewable

@kkasravi
Copy link
Contributor Author

/assign @jlewi

@kkasravi
Copy link
Contributor Author

/assign @lluunn

@kkasravi kkasravi changed the title Profiles create a self-serve component for data-scientists Oct 26, 2018
@jlewi
Copy link
Contributor

jlewi commented Oct 30, 2018

Thanks. Could we also add an option to the Profile to use a user account/IAM rather than ServiceAccount?

I'd like to be able to create a profile for user bob@acme.com and just have the RBacBinding defined in terms of that user so that if I'm running kubectl on my laptop, I can already access K8s resources using bob@acme.com.

I think I'd still like the profile to define / create an appropriate service account. This would be used as a robot account by resources (TFJobs, Argo Workflows, etc...) that user bob might create.

e.g. User Bob might create an Argo workflow that used ServiceAccount "bobs-robot" so that the running ArgoWorkflow

I think it would be reasonable to filing issues for some of this and doing it in follow on work.

@kkasravi
Copy link
Contributor Author

Thanks. Could we also add an option to the Profile to use a user account/IAM rather than ServiceAccount?

I'd like to be able to create a profile for user bob@acme.com and just have the RBacBinding defined in terms of that user so that if I'm running kubectl on my laptop, I can already access K8s resources using bob@acme.com.

I think I'd still like the profile to define / create an appropriate service account. This would be used as a robot account by resources (TFJobs, Argo Workflows, etc...) that user bob might create.

e.g. User Bob might create an Argo workflow that used ServiceAccount "bobs-robot" so that the running ArgoWorkflow

I think it would be reasonable to filing issues for some of this and doing it in follow on work.

Will incorporate. Thanks.

@kkasravi
Copy link
Contributor Author

@jlewi Ready for review.

  • Updated the README.md
  • removed Target
  • Changed Profile's owner to be a subject type which can either be
owner: {
  kind: ServiceAccount
  name: joe
  namespace: kubeflow
}

or

owner: {
  kind: User
  name: joe
  apiGroup: rbac.authorization.k8s.io
}

and I verified that this works when I submitted a Profile that looks like

apiVersion: kubeflow.org/v1alpha1
kind: Profile
metadata:
  name: tfoob
  namespace: kubeflow
spec:
  template:
    metadata:
      namespace: tfoob
    spec:
      owner:
        apiGroup: rbac.authorization.k8s.io
        kind: User
        name: kam.d.kasravi@intel.com

and one that looks like

apiVersion: kubeflow.org/v1alpha1
kind: Profile
metadata:
  name: cats
  namespace: kubeflow
spec:
  template:
    metadata:
      namespace: cats
    spec:
      owner:
        kind: ServiceAccount
        name: dean
        namespace: kubeflow

The schema for subject is almost the same as the swagger definition for 10.1:

                          owner: {
                            type: "object",
                            required: [
                              "kind",
                              "name",
                            ],
                            properties: {
                              apiGroup: {
                                type: "string",
                              },
                              kind: {
                                enum: [
                                  "ServiceAccount",
                                  "User",
                                ],
                              },
                              namespace: {
                                type: "string",
                              },
                              name: {
                                type: "string",
                              },
                            },
                          }

@kkasravi
Copy link
Contributor Author

/retest

@jlewi
Copy link
Contributor

jlewi commented Nov 1, 2018

Woo Hoo.

/lgtm
/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jlewi

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:

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

@k8s-ci-robot k8s-ci-robot merged commit 7da7847 into kubeflow:master Nov 1, 2018
rogaha pushed a commit to rogaha/kubeflow that referenced this pull request Nov 20, 2018
* initial checkin of projects

* pass params in to get namespace

* fix format

* replaced decoratorcontroller with compositecontroller, upgraded to metacontroller latest

* added cli scripts/kfws

* /retest

* /retest

* /retest

* {Projects, Workspaces} => {Ensembles, Compositions}

* projects=>ensembles

* terminology {profiles,targets}

* fixes for metacontroller, profiles

* fix

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* tag stable

* /retest

* removed Target CRD, added subject as IAM (email) | ServiceAccount

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest
saffaalvi pushed a commit to StatCan/kubeflow that referenced this pull request Feb 11, 2021
* initial checkin of projects

* pass params in to get namespace

* fix format

* replaced decoratorcontroller with compositecontroller, upgraded to metacontroller latest

* added cli scripts/kfws

* /retest

* /retest

* /retest

* {Projects, Workspaces} => {Ensembles, Compositions}

* projects=>ensembles

* terminology {profiles,targets}

* fixes for metacontroller, profiles

* fix

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest

* tag stable

* /retest

* removed Target CRD, added subject as IAM (email) | ServiceAccount

* /retest

* /retest

* /retest

* /retest

* /retest

* /retest
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.

create a self-serve component for data-scientists
5 participants