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

Golang profile controller #2533

Merged
merged 17 commits into from Mar 1, 2019
Merged

Golang profile controller #2533

merged 17 commits into from Mar 1, 2019

Conversation

lluunn
Copy link
Contributor

@lluunn lluunn commented Feb 22, 2019

Fix #2270

Changed the spec a little bit to

apiVersion: kubeflow.org/v1alpha1
kind: Profile
metadata:
  name: john
  namespace: kubeflow
spec:
  namespace: john
  owner:
    kind: User
    apiGroup: rbac.authorization.k8s.io
    name: john@foo.com
  • I haven't added resource quota field. I am not sure if it makes sense for user to specify their own quota? Or should controller determine the quota somehow?
  • removed nested spec.template.spec.

The controller:

  1. creates the namespace
  2. creates the role and rolebinding for the user in that namespace

This change is Reviewable

@lluunn lluunn changed the title WIP profile controller Golang profile controller Feb 23, 2019
@lluunn
Copy link
Contributor Author

lluunn commented Feb 23, 2019

/assign @kkasravi @jlewi
Ready for review.

@lluunn
Copy link
Contributor Author

lluunn commented Feb 26, 2019

/assign @kunmingg

Copy link
Contributor

@kunmingg kunmingg left a comment

Choose a reason for hiding this comment

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

I feel profile scope shouldn't be Namespaced as it owns namespace as child which is not Namespaced.

names:
kind: Profile
plural: profiles
scope: Namespaced
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we make profile name scope global and have namespace name == profile name?
That simplify usage if we have profile <-> namespace 1 - 1 mapping.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done. I make profile a cluster scope resource, and namespace's names = profile's name

Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like its still Namespace scoped.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry only updated ksonnet package.
yaml updated now

},
}
if err := controllerutil.SetControllerReference(instance, ns, r.scheme); err != nil {
return reconcile.Result{}, err
Copy link
Contributor

Choose a reason for hiding this comment

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

What if the namespace is already exist and owned by another profile?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is fixed now that profile is cluster resource

#go test ./pkg/... ./cmd/... -coverprofile cover.out

# Build manager binary
manager: generate fmt vet
Copy link
Contributor

Choose a reason for hiding this comment

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

I tried make manager and got

$ ☞  make manager
go generate ./pkg/... ./cmd/...
stat ../../vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go: no such file or directory
pkg/apis/apis.go:18: running "go": exit status 1
make: *** [generate] Error 1

I also tried make generate and make docker-build with similar errors.

The problem is deepcopy assumes a vendor directory exists which isn't the case for go modules.
This is due to the fact that kubebuilder doesn't generate a Makefile that works with go modules.

You may want to add the following targets to the Makefile

$(GOPATH)/bin/deepcopy-gen:
        GO111MODULE=off $(GO) get k8s.io/code-generator/cmd/deepcopy-gen

deepcopy: $(GOPATH)/bin/deepcopy-gen
        $(GOPATH)/bin/deepcopy-gen -i github.com/kubeflow/kubeflow/components/profile-controller/pkg/apis/... -O zz_generated.deepcopy

Copy link
Contributor Author

Choose a reason for hiding this comment

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

will it work if I just checkin vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go?


# Build manager binary
manager: generate fmt vet
go build -o bin/manager github.com/kubeflow/kubeflow/components/profile-controller/cmd/manager
Copy link
Contributor

Choose a reason for hiding this comment

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

I would change bin/manager to bin/profiler-controller

kustomize build config/default | kubectl apply -f -

# Generate manifests e.g. CRD, RBAC etc.
manifests:
Copy link
Contributor

Choose a reason for hiding this comment

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

this won't work since there is no vendor directory. I'll update with the correct command a bit later

@@ -0,0 +1,49 @@
# Adds namespace to all resources.
Copy link
Contributor

Choose a reason for hiding this comment

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

you may want to add these kustomization files to the new repo for kustomization manifests (kubeflow/manifests)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ack, will do later

// +k8s:deepcopy-gen=package,register
// +k8s:conversion-gen=github.com/kubeflow/kubeflow/components/profile-controller/pkg/apis/kubeflow
// +k8s:defaulter-gen=TypeMeta
// +groupName=kubeflow.kubeflow.org
Copy link
Contributor

Choose a reason for hiding this comment

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

group name should probably be profiles.kubeflow.org

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think it should be just kubeflow.org? updated


// ProfileStatus defines the observed state of Profile
type ProfileStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
Copy link
Contributor

Choose a reason for hiding this comment

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

we usually have something in here like

        Conditions []ProfileCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,6,rep,name=conditions"`

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will update status in a followup PR

@lluunn
Copy link
Contributor Author

lluunn commented Feb 28, 2019

/hold
wait for test to be merged #2404

@lluunn
Copy link
Contributor Author

lluunn commented Mar 1, 2019

/hold cancel

@lluunn
Copy link
Contributor Author

lluunn commented Mar 1, 2019

e2e test passed, ptal
@jlewi @kunmingg

@jlewi
Copy link
Contributor

jlewi commented Mar 1, 2019

/lgtm
/approve
/hold for @kunmingg

@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 22592d5 into kubeflow:master Mar 1, 2019
@kunmingg
Copy link
Contributor

kunmingg commented Mar 1, 2019

/hold seems not working when followed by strings...

@kunmingg
Copy link
Contributor

kunmingg commented Mar 1, 2019

@jlewi @lluunn
Seems we still have problem when the namespace is already exist and owned by another user (admin).
Create an issue to track: #2601

prodonjs pushed a commit to prodonjs/kubeflow that referenced this pull request Mar 4, 2019
* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix
kkasravi pushed a commit to kkasravi/kubeflow that referenced this pull request Mar 8, 2019
* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix
kkasravi pushed a commit to kkasravi/kubeflow that referenced this pull request Mar 8, 2019
* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix
k8s-ci-robot pushed a commit that referenced this pull request Mar 8, 2019
…forms' (#2547)

* revert to prior version

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'kfctl - Fetch registry automatically'

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* change DefaultDevRepo to point to just the repo not repo/kubeflow

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* plugins for all existing KfApp instances {ksonnet, minikube, foo}.

* update golang version

* fixes 'docker-for-desktop'

* delete meta-controller-cluster-role-binding

* update README.md

* remove unused var DEBUG

* remove bootstrap/cmd/plugins/foo.go

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'add the gcp platform to kfctl (golang)'

* fix merge conflict

* cli option --project is an init flag

* fix to write out project to app.yaml

* fix for nil project check

* include fix for #2367

* added updateDM, createSecrets to Apply

* fixes to macros

* merge changes from upstream master

* remove old files, update README.md

* fix for init app-name where app-name is not a path

* fix for gcp apply

* code to create a Gcp Secret, doesn't do correct auth right now

* snapshot

* update on downloadK8sManifests, gcpInitProject, added TODO's

* additional work on gcpInitProject

* gcpInitProject now works but requires GOOGLE_APPLICATION_CREDENTIALS env var

* initial pass on updateDeployment

* update README.md to described static vs dynamic platforms

* updates to Gcp.updateDM, added GOOGLE_APPLICATION_CREDENTIALS to the Makefile tests

* minor changes on init, generate usage

* snapshot

* additional global resources identified

* do not delete scalingpolicies

* change default platform to ksonnet

* default --version to master until 0.5.0

* remove verbose from spark-operator apply

* address comments from Jeremy

* address comments from Jeremy

* fixes #2537, refer to no platform as 'none'

* add general test for kfctl in Makefile that also tests the plugin capability

* remove kftcl config since we now have bootstrap config, fix for DefaultPlatform="none"

* change test of platform none to create directory none, updated README

* remove reference to docker-for-desktop

* update README.md, remove --debug flag (not used)

* fixes 'kfctl (golang) Simplify the child/parent relationships in platforms'

* fix backendconfig name (#2542)

* fix backendconfig name

* fix test

* pin to the latest verified tf-operator commit in order to enable changes in tf-operator HEAD  whcih likely break kubeflow checkout tests

* fix (#2506)

* Added unit tests for GetUpdatedPolicy at gcpUtils.go - bootstrap/app (#2516)

* Added tests for 'GetUpdatedPolicy' - bootstrap/app

* Fix typo - gcpUtils_test.go

* Added a windows equivalent script for the makefile for central-dashboard (#2518)

* update katib component (#2553)

* Refactor for Express + Webpack build stack. (#2572)

* Refactor for Express + Webpack build stack.

- Add webpack to process front-end code in public/
- Add TS and Express for server backend
- Update Dockerfile to run the server as Node.
- Fix issue with external links.

* Updates based on feedback

* address review comments

* move tests under test directory

* Add ESLint to enforce Google JS style in public/ (#2579)

* Add ESLint to enforce Google JS style in public/

* Switch to 4 space tabs

* Updating python package imports related to tf-operator (#2581)

* updated tf-operator imports

* fixed a typo

* fixed a typo

* Profiles e2e test (#2404)

* profiles e2e test

* fix

* review comment

* fix

* fix

* fix

* fix

* add retry

* fix

* Update the jupyter-web-app Image (#2589)

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* Golang profile controller  (#2533)

* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix

* turnoff jupyter images authentication (#2591)

* Updated Jupyter image paths for using in notebook controller (#2552)

* updated jupyter image paths for using in notebook conroller

* removed 1.4.1 image from the list of options

* updated jupyter image tags to point to the latest verified ones

* updated jupyter images to allow any origin (#2606)

* Removing prune for Subresource field in CRD (#2598)

* Adding backOffLimit field to metric collector spec (#2597)

* remove global resources by label rather than listing all and looking for the label

* mv client to coordinator

* Fixed Dashboard v0.0.1 w/ Polymer3 + Webpack (#2576)

* Multiple issues tackled:
- Fixed webpack for windows (components/ is not a valid path in windows)
- Spacing and semicolons matched to old-codebase
- Added cross-platform support to npm run targets
- Added missing dep (babel/polyfill)
- Dashboard build version is now corrected and hover will reveal kubeflow vs Dashboard versions
- Pug fixed to match syntax for empty-value attributes
- Updated webpack for readability

* Added babel-polyfill to runtime deps rather than dev deps

* [Windows-only] Color coded all make output, Tag check added, failures now have messages, also dirty git output now has a warning during build

* Updated new dashboard reference :v20190227-v0.4.0-rc.1-176-g738de035

* Fixed Multiple changes:
- Server port fixed to 8082 which is what is needed for GKE deployment
- Refactored some code

* Final working state for new image

* TS Changes

* Build updated to match latest :v20190301-v0.4.0-rc.1-183-g07eecd2f

* Migrated dev dependency to correct location

* Uncommented linter, fixed PR comments from @prodonjs

* updated jupyter images based on postsubmit results of 97b94c0 (#2611)

* Adding additional printer columns to display status (#2609)

* Adding additional printer columns to display status

* Fixing tests

* Semi-working kfctl go binary (#2587)

* Add flag --skip-init-gcp-project

* fix gcpInitProject

* update error msg

* add deployment creation logic

* fix bugs on generateDMData

* fix bugs

* add default config to ipName and hostName

* fix bugs on app.yaml

* add Fingerprint to update deployment

* make network and gcfs as DM optional

* add todos

* add iam policy handlers

* finish patch iam policy

* adding poll op to dm api calls

* add gke api version

* temp

* change mysqlPd/nfsPd names

* remove

* temp

* add config types

* add basic auth flag

* move config to gcp

* link use basic auth flag to generate

* use basic auth to determine config path

* change to gabrielwen repo for now

* change config on the fly

* change repo path

* create new Genereate method

* add required packages

* implement NewGenerate

* clean up default config and add on-the-fly configs

* move config handling to ksonnet.go

* add ks param set

* add application as component

* fix typo

* add simple TargetConfiguration factory

* add fixed backof

* temp

* fix from merge

* make namespace in gke

* bind user as default-admin in gke

* finish createSecrets

* write oauth secret

* uncomment ks apply

* add ks show

* add ks apply logic to k8sutils

* uncomment deployment

* build rest.Config from remote

* impersonate as admin for rbac

* use remote config as REST client config

* update default.yaml path

* complete apply logic

* add retry

* add ignore

* merge

* remove temp comment

* use backoff in gcp

* remove progress as it is not updating

* use backoff

* use backoff

*  use default zone

* fix zone config

* add doc

* add doc

* update Makefile

* fix flag doc

* fix

* doc

* doc

* add doc

* sort packages and component names

* shell out to gcloud and kubectl for now

* remove some configs

* fix

* remove GkeApiVersion

* add todo

* add notebook-controller back

* change names

* updates

* add field InitRequired

* remove KsInitParams

* migrate

* Add status to notebook (#2558)

* wip

* wip

* update test to check status condition

* fix

* Add prodonjs to OWNERS (#2613)

* Changed sidebar tab from JupyterHub to Notebooks (#2619)

* fix (#2620)

* pf gcb (#2603)

* Setting the base_url flag of Jupyter images (#2627)

* set base_url of jupyter

* change the env base_url to NB_PREFIX to sync with #2620

* fix (#2631)

* resolve merge conflicts from upstream/master, fix error on master when --platform=none or not specified

* store non exist parameter differently (#2625)

* fix (#2632)

* update pipeline system images to 0.1.12 release (#2637)

* updated jupyter image paths to point to the latest ones (#2638)

* add retry around ks init (#2643)

* add retry around ks init

* update comments

* merge errors

* Getting started card completed (#2651)

* Getting Started card content added, and un-hidden. Windows support added in webpack to run dev builds

* Getting Started card fully implemented from mocks

* Spaced out cards a little more

* Got eslint working! And fixed eslint issues in webpack
kkasravi pushed a commit to kkasravi/kubeflow that referenced this pull request Mar 8, 2019
…forms' (kubeflow#2547)

* revert to prior version

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'kfctl - Fetch registry automatically'

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* change DefaultDevRepo to point to just the repo not repo/kubeflow

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* plugins for all existing KfApp instances {ksonnet, minikube, foo}.

* update golang version

* fixes 'docker-for-desktop'

* delete meta-controller-cluster-role-binding

* update README.md

* remove unused var DEBUG

* remove bootstrap/cmd/plugins/foo.go

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'add the gcp platform to kfctl (golang)'

* fix merge conflict

* cli option --project is an init flag

* fix to write out project to app.yaml

* fix for nil project check

* include fix for kubeflow#2367

* added updateDM, createSecrets to Apply

* fixes to macros

* merge changes from upstream master

* remove old files, update README.md

* fix for init app-name where app-name is not a path

* fix for gcp apply

* code to create a Gcp Secret, doesn't do correct auth right now

* snapshot

* update on downloadK8sManifests, gcpInitProject, added TODO's

* additional work on gcpInitProject

* gcpInitProject now works but requires GOOGLE_APPLICATION_CREDENTIALS env var

* initial pass on updateDeployment

* update README.md to described static vs dynamic platforms

* updates to Gcp.updateDM, added GOOGLE_APPLICATION_CREDENTIALS to the Makefile tests

* minor changes on init, generate usage

* snapshot

* additional global resources identified

* do not delete scalingpolicies

* change default platform to ksonnet

* default --version to master until 0.5.0

* remove verbose from spark-operator apply

* address comments from Jeremy

* address comments from Jeremy

* fixes kubeflow#2537, refer to no platform as 'none'

* add general test for kfctl in Makefile that also tests the plugin capability

* remove kftcl config since we now have bootstrap config, fix for DefaultPlatform="none"

* change test of platform none to create directory none, updated README

* remove reference to docker-for-desktop

* update README.md, remove --debug flag (not used)

* fixes 'kfctl (golang) Simplify the child/parent relationships in platforms'

* fix backendconfig name (kubeflow#2542)

* fix backendconfig name

* fix test

* pin to the latest verified tf-operator commit in order to enable changes in tf-operator HEAD  whcih likely break kubeflow checkout tests

* fix (kubeflow#2506)

* Added unit tests for GetUpdatedPolicy at gcpUtils.go - bootstrap/app (kubeflow#2516)

* Added tests for 'GetUpdatedPolicy' - bootstrap/app

* Fix typo - gcpUtils_test.go

* Added a windows equivalent script for the makefile for central-dashboard (kubeflow#2518)

* update katib component (kubeflow#2553)

* Refactor for Express + Webpack build stack. (kubeflow#2572)

* Refactor for Express + Webpack build stack.

- Add webpack to process front-end code in public/
- Add TS and Express for server backend
- Update Dockerfile to run the server as Node.
- Fix issue with external links.

* Updates based on feedback

* address review comments

* move tests under test directory

* Add ESLint to enforce Google JS style in public/ (kubeflow#2579)

* Add ESLint to enforce Google JS style in public/

* Switch to 4 space tabs

* Updating python package imports related to tf-operator (kubeflow#2581)

* updated tf-operator imports

* fixed a typo

* fixed a typo

* Profiles e2e test (kubeflow#2404)

* profiles e2e test

* fix

* review comment

* fix

* fix

* fix

* fix

* add retry

* fix

* Update the jupyter-web-app Image (kubeflow#2589)

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* Golang profile controller  (kubeflow#2533)

* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix

* turnoff jupyter images authentication (kubeflow#2591)

* Updated Jupyter image paths for using in notebook controller (kubeflow#2552)

* updated jupyter image paths for using in notebook conroller

* removed 1.4.1 image from the list of options

* updated jupyter image tags to point to the latest verified ones

* updated jupyter images to allow any origin (kubeflow#2606)

* Removing prune for Subresource field in CRD (kubeflow#2598)

* Adding backOffLimit field to metric collector spec (kubeflow#2597)

* remove global resources by label rather than listing all and looking for the label

* mv client to coordinator

* Fixed Dashboard v0.0.1 w/ Polymer3 + Webpack (kubeflow#2576)

* Multiple issues tackled:
- Fixed webpack for windows (components/ is not a valid path in windows)
- Spacing and semicolons matched to old-codebase
- Added cross-platform support to npm run targets
- Added missing dep (babel/polyfill)
- Dashboard build version is now corrected and hover will reveal kubeflow vs Dashboard versions
- Pug fixed to match syntax for empty-value attributes
- Updated webpack for readability

* Added babel-polyfill to runtime deps rather than dev deps

* [Windows-only] Color coded all make output, Tag check added, failures now have messages, also dirty git output now has a warning during build

* Updated new dashboard reference :v20190227-v0.4.0-rc.1-176-g738de035

* Fixed Multiple changes:
- Server port fixed to 8082 which is what is needed for GKE deployment
- Refactored some code

* Final working state for new image

* TS Changes

* Build updated to match latest :v20190301-v0.4.0-rc.1-183-g07eecd2f

* Migrated dev dependency to correct location

* Uncommented linter, fixed PR comments from @prodonjs

* updated jupyter images based on postsubmit results of kubeflow@97b94c0 (kubeflow#2611)

* Adding additional printer columns to display status (kubeflow#2609)

* Adding additional printer columns to display status

* Fixing tests

* Semi-working kfctl go binary (kubeflow#2587)

* Add flag --skip-init-gcp-project

* fix gcpInitProject

* update error msg

* add deployment creation logic

* fix bugs on generateDMData

* fix bugs

* add default config to ipName and hostName

* fix bugs on app.yaml

* add Fingerprint to update deployment

* make network and gcfs as DM optional

* add todos

* add iam policy handlers

* finish patch iam policy

* adding poll op to dm api calls

* add gke api version

* temp

* change mysqlPd/nfsPd names

* remove

* temp

* add config types

* add basic auth flag

* move config to gcp

* link use basic auth flag to generate

* use basic auth to determine config path

* change to gabrielwen repo for now

* change config on the fly

* change repo path

* create new Genereate method

* add required packages

* implement NewGenerate

* clean up default config and add on-the-fly configs

* move config handling to ksonnet.go

* add ks param set

* add application as component

* fix typo

* add simple TargetConfiguration factory

* add fixed backof

* temp

* fix from merge

* make namespace in gke

* bind user as default-admin in gke

* finish createSecrets

* write oauth secret

* uncomment ks apply

* add ks show

* add ks apply logic to k8sutils

* uncomment deployment

* build rest.Config from remote

* impersonate as admin for rbac

* use remote config as REST client config

* update default.yaml path

* complete apply logic

* add retry

* add ignore

* merge

* remove temp comment

* use backoff in gcp

* remove progress as it is not updating

* use backoff

* use backoff

*  use default zone

* fix zone config

* add doc

* add doc

* update Makefile

* fix flag doc

* fix

* doc

* doc

* add doc

* sort packages and component names

* shell out to gcloud and kubectl for now

* remove some configs

* fix

* remove GkeApiVersion

* add todo

* add notebook-controller back

* change names

* updates

* add field InitRequired

* remove KsInitParams

* migrate

* Add status to notebook (kubeflow#2558)

* wip

* wip

* update test to check status condition

* fix

* Add prodonjs to OWNERS (kubeflow#2613)

* Changed sidebar tab from JupyterHub to Notebooks (kubeflow#2619)

* fix (kubeflow#2620)

* pf gcb (kubeflow#2603)

* Setting the base_url flag of Jupyter images (kubeflow#2627)

* set base_url of jupyter

* change the env base_url to NB_PREFIX to sync with kubeflow#2620

* fix (kubeflow#2631)

* resolve merge conflicts from upstream/master, fix error on master when --platform=none or not specified

* store non exist parameter differently (kubeflow#2625)

* fix (kubeflow#2632)

* update pipeline system images to 0.1.12 release (kubeflow#2637)

* updated jupyter image paths to point to the latest ones (kubeflow#2638)

* add retry around ks init (kubeflow#2643)

* add retry around ks init

* update comments

* merge errors

* Getting started card completed (kubeflow#2651)

* Getting Started card content added, and un-hidden. Windows support added in webpack to run dev builds

* Getting Started card fully implemented from mocks

* Spaced out cards a little more

* Got eslint working! And fixed eslint issues in webpack
saffaalvi pushed a commit to StatCan/kubeflow that referenced this pull request Feb 11, 2021
* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix
saffaalvi pushed a commit to StatCan/kubeflow that referenced this pull request Feb 11, 2021
…forms' (kubeflow#2547)

* revert to prior version

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'kfctl - Fetch registry automatically'

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* change DefaultDevRepo to point to just the repo not repo/kubeflow

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* plugins for all existing KfApp instances {ksonnet, minikube, foo}.

* update golang version

* fixes 'docker-for-desktop'

* delete meta-controller-cluster-role-binding

* update README.md

* remove unused var DEBUG

* remove bootstrap/cmd/plugins/foo.go

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'add the gcp platform to kfctl (golang)'

* fix merge conflict

* cli option --project is an init flag

* fix to write out project to app.yaml

* fix for nil project check

* include fix for kubeflow#2367

* added updateDM, createSecrets to Apply

* fixes to macros

* merge changes from upstream master

* remove old files, update README.md

* fix for init app-name where app-name is not a path

* fix for gcp apply

* code to create a Gcp Secret, doesn't do correct auth right now

* snapshot

* update on downloadK8sManifests, gcpInitProject, added TODO's

* additional work on gcpInitProject

* gcpInitProject now works but requires GOOGLE_APPLICATION_CREDENTIALS env var

* initial pass on updateDeployment

* update README.md to described static vs dynamic platforms

* updates to Gcp.updateDM, added GOOGLE_APPLICATION_CREDENTIALS to the Makefile tests

* minor changes on init, generate usage

* snapshot

* additional global resources identified

* do not delete scalingpolicies

* change default platform to ksonnet

* default --version to master until 0.5.0

* remove verbose from spark-operator apply

* address comments from Jeremy

* address comments from Jeremy

* fixes kubeflow#2537, refer to no platform as 'none'

* add general test for kfctl in Makefile that also tests the plugin capability

* remove kftcl config since we now have bootstrap config, fix for DefaultPlatform="none"

* change test of platform none to create directory none, updated README

* remove reference to docker-for-desktop

* update README.md, remove --debug flag (not used)

* fixes 'kfctl (golang) Simplify the child/parent relationships in platforms'

* fix backendconfig name (kubeflow#2542)

* fix backendconfig name

* fix test

* pin to the latest verified tf-operator commit in order to enable changes in tf-operator HEAD  whcih likely break kubeflow checkout tests

* fix (kubeflow#2506)

* Added unit tests for GetUpdatedPolicy at gcpUtils.go - bootstrap/app (kubeflow#2516)

* Added tests for 'GetUpdatedPolicy' - bootstrap/app

* Fix typo - gcpUtils_test.go

* Added a windows equivalent script for the makefile for central-dashboard (kubeflow#2518)

* update katib component (kubeflow#2553)

* Refactor for Express + Webpack build stack. (kubeflow#2572)

* Refactor for Express + Webpack build stack.

- Add webpack to process front-end code in public/
- Add TS and Express for server backend
- Update Dockerfile to run the server as Node.
- Fix issue with external links.

* Updates based on feedback

* address review comments

* move tests under test directory

* Add ESLint to enforce Google JS style in public/ (kubeflow#2579)

* Add ESLint to enforce Google JS style in public/

* Switch to 4 space tabs

* Updating python package imports related to tf-operator (kubeflow#2581)

* updated tf-operator imports

* fixed a typo

* fixed a typo

* Profiles e2e test (kubeflow#2404)

* profiles e2e test

* fix

* review comment

* fix

* fix

* fix

* fix

* add retry

* fix

* Update the jupyter-web-app Image (kubeflow#2589)

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* Golang profile controller  (kubeflow#2533)

* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix

* turnoff jupyter images authentication (kubeflow#2591)

* Updated Jupyter image paths for using in notebook controller (kubeflow#2552)

* updated jupyter image paths for using in notebook conroller

* removed 1.4.1 image from the list of options

* updated jupyter image tags to point to the latest verified ones

* updated jupyter images to allow any origin (kubeflow#2606)

* Removing prune for Subresource field in CRD (kubeflow#2598)

* Adding backOffLimit field to metric collector spec (kubeflow#2597)

* remove global resources by label rather than listing all and looking for the label

* mv client to coordinator

* Fixed Dashboard v0.0.1 w/ Polymer3 + Webpack (kubeflow#2576)

* Multiple issues tackled:
- Fixed webpack for windows (components/ is not a valid path in windows)
- Spacing and semicolons matched to old-codebase
- Added cross-platform support to npm run targets
- Added missing dep (babel/polyfill)
- Dashboard build version is now corrected and hover will reveal kubeflow vs Dashboard versions
- Pug fixed to match syntax for empty-value attributes
- Updated webpack for readability

* Added babel-polyfill to runtime deps rather than dev deps

* [Windows-only] Color coded all make output, Tag check added, failures now have messages, also dirty git output now has a warning during build

* Updated new dashboard reference :v20190227-v0.4.0-rc.1-176-g738de035

* Fixed Multiple changes:
- Server port fixed to 8082 which is what is needed for GKE deployment
- Refactored some code

* Final working state for new image

* TS Changes

* Build updated to match latest :v20190301-v0.4.0-rc.1-183-g07eecd2f

* Migrated dev dependency to correct location

* Uncommented linter, fixed PR comments from @prodonjs

* updated jupyter images based on postsubmit results of kubeflow@e896cd3 (kubeflow#2611)

* Adding additional printer columns to display status (kubeflow#2609)

* Adding additional printer columns to display status

* Fixing tests

* Semi-working kfctl go binary (kubeflow#2587)

* Add flag --skip-init-gcp-project

* fix gcpInitProject

* update error msg

* add deployment creation logic

* fix bugs on generateDMData

* fix bugs

* add default config to ipName and hostName

* fix bugs on app.yaml

* add Fingerprint to update deployment

* make network and gcfs as DM optional

* add todos

* add iam policy handlers

* finish patch iam policy

* adding poll op to dm api calls

* add gke api version

* temp

* change mysqlPd/nfsPd names

* remove

* temp

* add config types

* add basic auth flag

* move config to gcp

* link use basic auth flag to generate

* use basic auth to determine config path

* change to gabrielwen repo for now

* change config on the fly

* change repo path

* create new Genereate method

* add required packages

* implement NewGenerate

* clean up default config and add on-the-fly configs

* move config handling to ksonnet.go

* add ks param set

* add application as component

* fix typo

* add simple TargetConfiguration factory

* add fixed backof

* temp

* fix from merge

* make namespace in gke

* bind user as default-admin in gke

* finish createSecrets

* write oauth secret

* uncomment ks apply

* add ks show

* add ks apply logic to k8sutils

* uncomment deployment

* build rest.Config from remote

* impersonate as admin for rbac

* use remote config as REST client config

* update default.yaml path

* complete apply logic

* add retry

* add ignore

* merge

* remove temp comment

* use backoff in gcp

* remove progress as it is not updating

* use backoff

* use backoff

*  use default zone

* fix zone config

* add doc

* add doc

* update Makefile

* fix flag doc

* fix

* doc

* doc

* add doc

* sort packages and component names

* shell out to gcloud and kubectl for now

* remove some configs

* fix

* remove GkeApiVersion

* add todo

* add notebook-controller back

* change names

* updates

* add field InitRequired

* remove KsInitParams

* migrate

* Add status to notebook (kubeflow#2558)

* wip

* wip

* update test to check status condition

* fix

* Add prodonjs to OWNERS (kubeflow#2613)

* Changed sidebar tab from JupyterHub to Notebooks (kubeflow#2619)

* fix (kubeflow#2620)

* pf gcb (kubeflow#2603)

* Setting the base_url flag of Jupyter images (kubeflow#2627)

* set base_url of jupyter

* change the env base_url to NB_PREFIX to sync with kubeflow#2620

* fix (kubeflow#2631)

* resolve merge conflicts from upstream/master, fix error on master when --platform=none or not specified

* store non exist parameter differently (kubeflow#2625)

* fix (kubeflow#2632)

* update pipeline system images to 0.1.12 release (kubeflow#2637)

* updated jupyter image paths to point to the latest ones (kubeflow#2638)

* add retry around ks init (kubeflow#2643)

* add retry around ks init

* update comments

* merge errors

* Getting started card completed (kubeflow#2651)

* Getting Started card content added, and un-hidden. Windows support added in webpack to run dev builds

* Getting Started card fully implemented from mocks

* Spaced out cards a little more

* Got eslint working! And fixed eslint issues in webpack
saffaalvi pushed a commit to StatCan/kubeflow that referenced this pull request Feb 12, 2021
* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix
saffaalvi pushed a commit to StatCan/kubeflow that referenced this pull request Feb 12, 2021
…forms' (kubeflow#2547)

* revert to prior version

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'kfctl - Fetch registry automatically'

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* change DefaultDevRepo to point to just the repo not repo/kubeflow

* fixes 'refactor gcp, minikube, docker-for-desktop, ack to be kfctl plugins'

* plugins for all existing KfApp instances {ksonnet, minikube, foo}.

* update golang version

* fixes 'docker-for-desktop'

* delete meta-controller-cluster-role-binding

* update README.md

* remove unused var DEBUG

* remove bootstrap/cmd/plugins/foo.go

* fixes kfctl (golang) rename 'ks' directory and app to ksonnet and ksonnet.go respectively

* fixes 'add the gcp platform to kfctl (golang)'

* fix merge conflict

* cli option --project is an init flag

* fix to write out project to app.yaml

* fix for nil project check

* include fix for kubeflow#2367

* added updateDM, createSecrets to Apply

* fixes to macros

* merge changes from upstream master

* remove old files, update README.md

* fix for init app-name where app-name is not a path

* fix for gcp apply

* code to create a Gcp Secret, doesn't do correct auth right now

* snapshot

* update on downloadK8sManifests, gcpInitProject, added TODO's

* additional work on gcpInitProject

* gcpInitProject now works but requires GOOGLE_APPLICATION_CREDENTIALS env var

* initial pass on updateDeployment

* update README.md to described static vs dynamic platforms

* updates to Gcp.updateDM, added GOOGLE_APPLICATION_CREDENTIALS to the Makefile tests

* minor changes on init, generate usage

* snapshot

* additional global resources identified

* do not delete scalingpolicies

* change default platform to ksonnet

* default --version to master until 0.5.0

* remove verbose from spark-operator apply

* address comments from Jeremy

* address comments from Jeremy

* fixes kubeflow#2537, refer to no platform as 'none'

* add general test for kfctl in Makefile that also tests the plugin capability

* remove kftcl config since we now have bootstrap config, fix for DefaultPlatform="none"

* change test of platform none to create directory none, updated README

* remove reference to docker-for-desktop

* update README.md, remove --debug flag (not used)

* fixes 'kfctl (golang) Simplify the child/parent relationships in platforms'

* fix backendconfig name (kubeflow#2542)

* fix backendconfig name

* fix test

* pin to the latest verified tf-operator commit in order to enable changes in tf-operator HEAD  whcih likely break kubeflow checkout tests

* fix (kubeflow#2506)

* Added unit tests for GetUpdatedPolicy at gcpUtils.go - bootstrap/app (kubeflow#2516)

* Added tests for 'GetUpdatedPolicy' - bootstrap/app

* Fix typo - gcpUtils_test.go

* Added a windows equivalent script for the makefile for central-dashboard (kubeflow#2518)

* update katib component (kubeflow#2553)

* Refactor for Express + Webpack build stack. (kubeflow#2572)

* Refactor for Express + Webpack build stack.

- Add webpack to process front-end code in public/
- Add TS and Express for server backend
- Update Dockerfile to run the server as Node.
- Fix issue with external links.

* Updates based on feedback

* address review comments

* move tests under test directory

* Add ESLint to enforce Google JS style in public/ (kubeflow#2579)

* Add ESLint to enforce Google JS style in public/

* Switch to 4 space tabs

* Updating python package imports related to tf-operator (kubeflow#2581)

* updated tf-operator imports

* fixed a typo

* fixed a typo

* Profiles e2e test (kubeflow#2404)

* profiles e2e test

* fix

* review comment

* fix

* fix

* fix

* fix

* add retry

* fix

* Update the jupyter-web-app Image (kubeflow#2589)

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* Golang profile controller  (kubeflow#2533)

* init

* create api

* wip

* fix

* fix

* fix

* fix test

* address review

* fix test

* make it cluster scope

* fix test

* fix test

* fix

* turnoff jupyter images authentication (kubeflow#2591)

* Updated Jupyter image paths for using in notebook controller (kubeflow#2552)

* updated jupyter image paths for using in notebook conroller

* removed 1.4.1 image from the list of options

* updated jupyter image tags to point to the latest verified ones

* updated jupyter images to allow any origin (kubeflow#2606)

* Removing prune for Subresource field in CRD (kubeflow#2598)

* Adding backOffLimit field to metric collector spec (kubeflow#2597)

* remove global resources by label rather than listing all and looking for the label

* mv client to coordinator

* Fixed Dashboard v0.0.1 w/ Polymer3 + Webpack (kubeflow#2576)

* Multiple issues tackled:
- Fixed webpack for windows (components/ is not a valid path in windows)
- Spacing and semicolons matched to old-codebase
- Added cross-platform support to npm run targets
- Added missing dep (babel/polyfill)
- Dashboard build version is now corrected and hover will reveal kubeflow vs Dashboard versions
- Pug fixed to match syntax for empty-value attributes
- Updated webpack for readability

* Added babel-polyfill to runtime deps rather than dev deps

* [Windows-only] Color coded all make output, Tag check added, failures now have messages, also dirty git output now has a warning during build

* Updated new dashboard reference :v20190227-v0.4.0-rc.1-176-g738de035

* Fixed Multiple changes:
- Server port fixed to 8082 which is what is needed for GKE deployment
- Refactored some code

* Final working state for new image

* TS Changes

* Build updated to match latest :v20190301-v0.4.0-rc.1-183-g07eecd2f

* Migrated dev dependency to correct location

* Uncommented linter, fixed PR comments from @prodonjs

* updated jupyter images based on postsubmit results of kubeflow@598dd06 (kubeflow#2611)

* Adding additional printer columns to display status (kubeflow#2609)

* Adding additional printer columns to display status

* Fixing tests

* Semi-working kfctl go binary (kubeflow#2587)

* Add flag --skip-init-gcp-project

* fix gcpInitProject

* update error msg

* add deployment creation logic

* fix bugs on generateDMData

* fix bugs

* add default config to ipName and hostName

* fix bugs on app.yaml

* add Fingerprint to update deployment

* make network and gcfs as DM optional

* add todos

* add iam policy handlers

* finish patch iam policy

* adding poll op to dm api calls

* add gke api version

* temp

* change mysqlPd/nfsPd names

* remove

* temp

* add config types

* add basic auth flag

* move config to gcp

* link use basic auth flag to generate

* use basic auth to determine config path

* change to gabrielwen repo for now

* change config on the fly

* change repo path

* create new Genereate method

* add required packages

* implement NewGenerate

* clean up default config and add on-the-fly configs

* move config handling to ksonnet.go

* add ks param set

* add application as component

* fix typo

* add simple TargetConfiguration factory

* add fixed backof

* temp

* fix from merge

* make namespace in gke

* bind user as default-admin in gke

* finish createSecrets

* write oauth secret

* uncomment ks apply

* add ks show

* add ks apply logic to k8sutils

* uncomment deployment

* build rest.Config from remote

* impersonate as admin for rbac

* use remote config as REST client config

* update default.yaml path

* complete apply logic

* add retry

* add ignore

* merge

* remove temp comment

* use backoff in gcp

* remove progress as it is not updating

* use backoff

* use backoff

*  use default zone

* fix zone config

* add doc

* add doc

* update Makefile

* fix flag doc

* fix

* doc

* doc

* add doc

* sort packages and component names

* shell out to gcloud and kubectl for now

* remove some configs

* fix

* remove GkeApiVersion

* add todo

* add notebook-controller back

* change names

* updates

* add field InitRequired

* remove KsInitParams

* migrate

* Add status to notebook (kubeflow#2558)

* wip

* wip

* update test to check status condition

* fix

* Add prodonjs to OWNERS (kubeflow#2613)

* Changed sidebar tab from JupyterHub to Notebooks (kubeflow#2619)

* fix (kubeflow#2620)

* pf gcb (kubeflow#2603)

* Setting the base_url flag of Jupyter images (kubeflow#2627)

* set base_url of jupyter

* change the env base_url to NB_PREFIX to sync with kubeflow#2620

* fix (kubeflow#2631)

* resolve merge conflicts from upstream/master, fix error on master when --platform=none or not specified

* store non exist parameter differently (kubeflow#2625)

* fix (kubeflow#2632)

* update pipeline system images to 0.1.12 release (kubeflow#2637)

* updated jupyter image paths to point to the latest ones (kubeflow#2638)

* add retry around ks init (kubeflow#2643)

* add retry around ks init

* update comments

* merge errors

* Getting started card completed (kubeflow#2651)

* Getting Started card content added, and un-hidden. Windows support added in webpack to run dev builds

* Getting Started card fully implemented from mocks

* Spaced out cards a little more

* Got eslint working! And fixed eslint issues in webpack
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.

None yet

6 participants