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

how to customize a manifest by params #27

Closed
hougangliu opened this issue Apr 19, 2019 · 9 comments
Closed

how to customize a manifest by params #27

hougangliu opened this issue Apr 19, 2019 · 9 comments

Comments

@hougangliu
Copy link
Member

Take the example as here, whether--namespace and --enable-gang-scheduling are appended into args is based on two params.

For kustomize manifest counterpart, 4 overlays is need to cover all the cases of its ksonnet version.

As for more params, kustomize overlays may exponential increase if we try to match ksonnet version kubeflow.

I think we should discuss about how to handle it.

@jlewi @kkasravi @swiftdiaries

@kkasravi
Copy link
Contributor

@hougangliu @jlewi @swiftdiaries these won't be covered by overlays, rather by vars that are inserted into a ConfigMap.

I'll do this component and update the manifests README.md to show how this was done as an example. I'll open the PR this morning or early afternoon.

@kkasravi
Copy link
Contributor

@hougangliu @jlewi @swiftdiaries @ashahba the enableGangScheduling boolean which, if true, updates the ClusterRole rules sections and adds a flag to the command in the deployment podtemplate will likely be done using a device overlay.
I'm thinking of enabling different overlays in the app.yaml under componentParams for example
app.yaml

...
  componentParams:
    tf-job-operator:
    - name: overlays
      value: [device]

Currently if a platform is specified to kfctl (kftcl init --platform gcp) then this overlay is automatically called. For additional overlays I was thinking of the approach above.

The deploymentNamespace is an early attempt to do multi-user namespaces and would likely be done via a profiles overlay which would involve a number of components and some changes to the tf-job-operator.

Feedback is encouraged.

@hougangliu
Copy link
Member Author

@kkasravi good idea!

@jlewi
Copy link
Contributor

jlewi commented Apr 22, 2019

Might this (gang scheduling) be a case where users have to define a new overlay combining the different options?

Can you describe the example in more detail? E.g what are the parameters and what are they controlling?

If IUUC there are different roles and bindings and different command line arguments.

What if we provided different overlays/manifests for the roles and bindings and added users to combine them with the correct command line flags (e.g edit the manifest or overlay to set the command line argument)?

@kkasravi
Copy link
Contributor

kkasravi commented Apr 26, 2019

i'll have a PR this morning for tf-job-operator, with an overview

@kkasravi
Copy link
Contributor

kkasravi commented Apr 29, 2019

@jlewi

Can you describe the example in more detail? E.g what are the parameters and what are they controlling?

If IUUC there are different roles and bindings and different command line arguments.

What if we provided different overlays/manifests for the roles and bindings and added users to combine them with the correct command line flags (e.g edit the manifest or overlay to set the command line argument)?

This is the approach being taken in #34.

└── tf-job-operator
    ├── base
    │   ├── config-map.yaml
    │   ├── crd.yaml
    │   ├── deployment.yaml
    │   ├── kustomization.yaml
    │   ├── params.env
    │   ├── params.yaml
    │   ├── service-account.yaml
    │   └── service.yaml
    └── overlays
        ├── cluster
        │   ├── cluster-role-binding.yaml
        │   ├── cluster-role.yaml
        │   ├── deployment.yaml
        │   └── kustomization.yaml
        ├── cluster-gangscheduled
        │   ├── cluster-role-patch.yaml
        │   ├── cluster-role.yaml
        │   ├── deployment-patch.yaml
        │   ├── deployment.yaml
        │   ├── kustomization.yaml
        ├── namespaced
        │   ├── deployment.yaml
        │   ├── kustomization.yaml
        │   ├── role-binding.yaml
        │   └── role.yaml
        └── namespaced-gangscheduled
            ├── deployment-patch.yaml
            ├── deployment.yaml
            ├── kustomization.yaml
            ├── role-patch.yaml
            └── role.yaml

The cluster overlay adds cluster-role and cluster-role-binding resources, the namespaced overlay
adds role and role-binding resources. For cluster, both deployments are modified to add KUBEFLOW envs

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: dashboard-deployment
spec:
  template:
    metadata:
    spec:
      containers:
      - name: dashboard-container
        env:
        - name: KUBEFLOW_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: deployment
spec:
  template:
    spec:
      containers:
      - name: container
        env:
        - name: KUBEFLOW_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace

However, I'm not sure I entirely understand how deploymentNamespace parameter should work with Profiles.
My understand was that the overlay for cluster would have

  • crd with scope Cluster
  • cluster-role, cluster-role-binding
  • dashboard deployment, service-account, service in kubeflow namespace
  • tf-operator deployment, service-account, service in kubeflow namespace

User submits a TFJob with no namespace specified.
How does the tf-operator know to run the TFJob in the user's Profile namespace?

If we have an overlay for namespaced then

  • crd with scope Namespaced
  • role, role-binding
  • dashboard deployment, service-account, service in kubeflow namespace
  • tf-operator deployment, service-account, service in kubeflow namespace

User submits a TFJob with the kubeflow namespace specified.
How does the tf-operator know to run the TFJob in the user's Profile namespace?

@kkasravi
Copy link
Contributor

In both cases above, the 'deploymentNamespace' would only be used to specify a different namespace other that 'kubeflow' which - would we ever use this?. And (unless I'm missing something), the tf-operator is missing information on where to launch the TFJob for Profiles.

@stale
Copy link

stale bot commented Jun 2, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in one week if no further activity occurs. Thank you for your contributions.

@issue-label-bot
Copy link

Issue-Label Bot is automatically applying the labels:

Label Probability
kind/question 0.73

Please mark this comment with 👍 or 👎 to give our bot feedback!
Links: app homepage, dashboard and code for this bot.

@jlewi jlewi closed this as completed Jun 3, 2020
Tomcli pushed a commit to Tomcli/manifests that referenced this issue Dec 11, 2020
yhwang added a commit to yhwang/manifests that referenced this issue Oct 1, 2021
update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Feb 10, 2022
update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Feb 12, 2022
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Feb 14, 2022
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Feb 14, 2022
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Mar 7, 2022
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Jan 25, 2023
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Jan 31, 2023
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Aug 10, 2023
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
yhwang added a commit to yhwang/manifests that referenced this issue Aug 10, 2023
* Add IKS files

- Add orignal distributions folder as dist and remove
  non-IKS files, except OpenShift
- Add `iks-single` for single user deployment
- Add `iks-multi` for multiple user deployment

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* remove openshift related files

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Add Application CRD

Add Application CRD and an application object
to specify kubeflow version and show on centraldashboard.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update doc links on centraldashboard (kubeflow#27)

update doc links on centraldashboard's landing page to
point to IKS and pipeline docs.

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* Update README for v1.4

Update the README to indicate that this
repo is used for Kubeflow on IKS. And
point out two specific directories for single
and multi-tenant deployments

Signed-off-by: Yihong Wang <yh.wang@ibm.com>

* use the overlay for knative

because of this issue:
kubeflow#1966
an overlay is created. need to use it instead of the
knative/base

Signed-off-by: Yihong Wang <yh.wang@ibm.com>
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

3 participants