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

Support extended kube-scheduler as batch scheduler #2136

Merged
merged 2 commits into from
Sep 3, 2024

Conversation

ChenYi015
Copy link
Contributor

Purpose of this PR

Close #1943

Proposed changes:

Change Category

Indicate the type of change by marking the applicable boxes:

  • Bugfix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that could affect existing functionality)
  • Documentation update

Rationale

Checklist

Before submitting your PR, please review the following:

  • I have conducted a self-review of my own code.
  • I have updated documentation accordingly.
  • I have added tests that prove my changes are effective or that my feature works.
  • Existing unit tests pass locally with my changes.

Additional Notes

@ChenYi015
Copy link
Contributor Author

ChenYi015 commented Aug 22, 2024

Testing

  1. Deploy a kube-scheduler with coscheduling enabled. Ref: kubernetes-sigs/scheduler-plugins.

The following example can be used to deploy a kube-scheduler named kube-scheduler:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-scheduler

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: kube-scheduler
rules:
- apiGroups: ["", "events.k8s.io"]
  resources: ["events"]
  verbs: ["create", "patch", "update"]
- apiGroups: ["coordination.k8s.io"]
  resources: ["leases"]
  verbs: ["create"]
- apiGroups: ["coordination.k8s.io"]
  resourceNames: ["kube-scheduler"]
  resources: ["leases"]
  verbs: ["get", "update"]
- apiGroups: [""]
  resources: ["endpoints"]
  verbs: ["create"]
- apiGroups: [""]
  resourceNames: ["kube-scheduler"]
  resources: ["endpoints"]
  verbs: ["get", "update"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["delete", "get", "list", "watch"]
- apiGroups: [""]
  resources: ["bindings", "pods/binding"]
  verbs: ["create"]
- apiGroups: [""]
  resources: ["pods/status"]
  verbs: ["patch", "update"]
- apiGroups: [""]
  resources: ["replicationcontrollers", "services"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps", "extensions"]
  resources: ["replicasets"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
  resources: ["statefulsets"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["policy"]
  resources: ["poddisruptionbudgets"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["persistentvolumeclaims", "persistentvolumes"]
  verbs: ["get", "list", "watch", "patch", "update"]
- apiGroups: ["authentication.k8s.io"]
  resources: ["tokenreviews"]
  verbs: ["create"]
- apiGroups: ["authorization.k8s.io"]
  resources: ["subjectaccessreviews"]
  verbs: ["create"]
- apiGroups: ["storage.k8s.io"]
  resources: ["csinodes", "storageclasses"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["scheduling.sigs.k8s.io"]
  resources: ["podgroups", "elasticquotas"]
  verbs: ["get", "list", "watch", "create", "delete", "update", "patch"]
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["scheduling.x-k8s.io"]
  resources: ["podgroups"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
  resources: ["csistoragecapacities", "csidrivers"]
  verbs: ["get", "list", "watch"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kube-scheduler
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kube-scheduler
subjects:
- kind: ServiceAccount
  name: kube-scheduler
  namespace: default

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-scheduler-config
data:
  scheduler-config.yaml: |
    apiVersion: kubescheduler.config.k8s.io/v1
    kind: KubeSchedulerConfiguration
    leaderElection:
      leaderElect: true
    profiles:
    - schedulerName: kube-scheduler
      plugins:
        multiPoint:
          enabled:
          - name: Coscheduling
        queueSort:
          enabled:
          - name: Coscheduling
          disabled:
          - name: "*"

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kube-scheduler
spec:
  replicas: 1
  selector:
    matchLabels:
      component: kube-scheduler
  template:
    metadata:
      labels:
        component: kube-scheduler
    spec:
      containers:
      - name: kube-scheduler
        image: registry.k8s.io/scheduler-plugins/kube-scheduler:v0.28.9
        command:
        - kube-scheduler
        - --config=/etc/kubernetes/config/scheduler-config.yaml
        - --leader-elect-resource-name=kube-scheduler
        - --leader-elect-resource-namespace=default
        - --v=5
        volumeMounts:
        - name: scheduler-config
          mountPath: /etc/kubernetes/config
      volumes:
      - name: scheduler-config
        configMap:
          name: kube-scheduler-config
      serviceAccount: kube-scheduler
  1. Build the image and pushed to your image registry:
IMAGE_REGISTRY=xxx
IMAGE_REPOSITORY=xxx
IMAGE_TAG=kube-scheduler-test

make docker-buildx IMAGE_REGISTRY=${IMAGE_REGISTRY} IMAGE_REPOSITORY=${IMAGE_REPOSITORY} IMAGE_TAG=${IMAGE_TAG}
  1. Install the Helm chart with custom kube-scheduler enabled:
helm install spark-operator charts/spark-operator-chart \
    --create-namespace \
    --namespace spark-operator \
    --set image.registry=${IMAGE_REGISTRY} \
    --set image.repository=${IMAGE_REPOSITORY} \
    --set image.tag=${IMAGE_TAG} \
    --set controller.batchScheduler.enable=true \
    --set 'controller.batchScheduler.kubeSchedulerNames={kube-scheduler}'
  1. Submit example SparkApplication:
kubectl apply -f examples/spark-pi-kube-scheduler.yaml

A pod group will be created:

$ kubectl describe podgroups.scheduling.x-k8s.io spark-pi-kube-scheduler-pg
Name:         spark-pi-kube-scheduler-pg
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  scheduling.x-k8s.io/v1alpha1
Kind:         PodGroup
Metadata:
  Creation Timestamp:  2024-08-22T02:49:17Z
  Generation:          1
  Owner References:
    API Version:           sparkoperator.k8s.io/v1beta2
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  SparkApplication
    Name:                  spark-pi-kube-scheduler
    UID:                   063db00f-e1fd-4469-8e78-cffe181240d1
  Resource Version:        36451569
  UID:                     4bab4bbd-d410-44a4-b7d1-86757ab16b15
Spec:
  Min Member:  1
  Min Resources:
    Cpu:     101
    Memory:  10752m
Events:      <none>

If there is no enough resources for all spark pods, then driver pod will be pending:

$ kubectl describe pod spark-pi-kube-scheduler-driver
...
Events:
  Type     Reason               Age                  From            Message
  ----     ------               ----                 ----            -------
  Warning  FailedScheduling     19m                  kube-scheduler  0/3 nodes are available: resource gap: map[cpu:{{13375 -3} {<nil>}  DecimalSI}]. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling., PodGroup default/spark-pi-kube-scheduler-pg gets rejected due to Pod spark-pi-kube-scheduler-driver is unschedulable even after PostFilter.

@ChenYi015
Copy link
Contributor Author

/assign @vara-bonthu @yuchaoran2011

@vara-bonthu
Copy link
Contributor

Testing

  1. Deploy a kube-scheduler with coscheduling enabled. Ref: kubernetes-sigs/scheduler-plugins.

The following example can be used to deploy a kube-scheduler named kube-scheduler:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-scheduler

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: kube-scheduler
rules:
- apiGroups: ["", "events.k8s.io"]
  resources: ["events"]
  verbs: ["create", "patch", "update"]
- apiGroups: ["coordination.k8s.io"]
  resources: ["leases"]
  verbs: ["create"]
- apiGroups: ["coordination.k8s.io"]
  resourceNames: ["kube-scheduler"]
  resources: ["leases"]
  verbs: ["get", "update"]
- apiGroups: [""]
  resources: ["endpoints"]
  verbs: ["create"]
- apiGroups: [""]
  resourceNames: ["kube-scheduler"]
  resources: ["endpoints"]
  verbs: ["get", "update"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["delete", "get", "list", "watch"]
- apiGroups: [""]
  resources: ["bindings", "pods/binding"]
  verbs: ["create"]
- apiGroups: [""]
  resources: ["pods/status"]
  verbs: ["patch", "update"]
- apiGroups: [""]
  resources: ["replicationcontrollers", "services"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps", "extensions"]
  resources: ["replicasets"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
  resources: ["statefulsets"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["policy"]
  resources: ["poddisruptionbudgets"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["persistentvolumeclaims", "persistentvolumes"]
  verbs: ["get", "list", "watch", "patch", "update"]
- apiGroups: ["authentication.k8s.io"]
  resources: ["tokenreviews"]
  verbs: ["create"]
- apiGroups: ["authorization.k8s.io"]
  resources: ["subjectaccessreviews"]
  verbs: ["create"]
- apiGroups: ["storage.k8s.io"]
  resources: ["csinodes", "storageclasses"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["scheduling.sigs.k8s.io"]
  resources: ["podgroups", "elasticquotas"]
  verbs: ["get", "list", "watch", "create", "delete", "update", "patch"]
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["scheduling.x-k8s.io"]
  resources: ["podgroups"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
  resources: ["csistoragecapacities", "csidrivers"]
  verbs: ["get", "list", "watch"]

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kube-scheduler
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kube-scheduler
subjects:
- kind: ServiceAccount
  name: kube-scheduler
  namespace: default

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-scheduler-config
data:
  scheduler-config.yaml: |
    apiVersion: kubescheduler.config.k8s.io/v1
    kind: KubeSchedulerConfiguration
    leaderElection:
      leaderElect: true
    profiles:
    - schedulerName: kube-scheduler
      plugins:
        multiPoint:
          enabled:
          - name: Coscheduling
        queueSort:
          enabled:
          - name: Coscheduling
          disabled:
          - name: "*"

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kube-scheduler
spec:
  replicas: 1
  selector:
    matchLabels:
      component: kube-scheduler
  template:
    metadata:
      labels:
        component: kube-scheduler
    spec:
      containers:
      - name: kube-scheduler
        image: registry.k8s.io/scheduler-plugins/kube-scheduler:v0.28.9
        command:
        - kube-scheduler
        - --config=/etc/kubernetes/config/scheduler-config.yaml
        - --leader-elect-resource-name=kube-scheduler
        - --leader-elect-resource-namespace=default
        - --v=5
        volumeMounts:
        - name: scheduler-config
          mountPath: /etc/kubernetes/config
      volumes:
      - name: scheduler-config
        configMap:
          name: kube-scheduler-config
      serviceAccount: kube-scheduler
  1. Build the image and pushed to your image registry:
IMAGE_REGISTRY=xxx
IMAGE_REPOSITORY=xxx
IMAGE_TAG=kube-scheduler-test

make docker-buildx IMAGE_REGISTRY=${IMAGE_REGISTRY} IMAGE_REPOSITORY=${IMAGE_REPOSITORY} IMAGE_TAG=${IMAGE_TAG}
  1. Install the Helm chart with custom kube-scheduler enabled:
helm install spark-operator charts/spark-operator-chart \
    --create-namespace \
    --namespace spark-operator \
    --set image.registry=${IMAGE_REGISTRY} \
    --set image.repository=${IMAGE_REPOSITORY} \
    --set image.tag=${IMAGE_TAG} \
    --set controller.batchScheduler.enable=true \
    --set 'controller.batchScheduler.kubeSchedulerNames={kube-scheduler}'
  1. Submit example SparkApplication:
kubectl apply -f examples/spark-pi-kube-scheduler.yaml

A pod group will be created:

$ kubectl describe podgroups.scheduling.x-k8s.io spark-pi-kube-scheduler-pg
Name:         spark-pi-kube-scheduler-pg
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  scheduling.x-k8s.io/v1alpha1
Kind:         PodGroup
Metadata:
  Creation Timestamp:  2024-08-22T02:49:17Z
  Generation:          1
  Owner References:
    API Version:           sparkoperator.k8s.io/v1beta2
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  SparkApplication
    Name:                  spark-pi-kube-scheduler
    UID:                   063db00f-e1fd-4469-8e78-cffe181240d1
  Resource Version:        36451569
  UID:                     4bab4bbd-d410-44a4-b7d1-86757ab16b15
Spec:
  Min Member:  1
  Min Resources:
    Cpu:     101
    Memory:  10752m
Events:      <none>

If there is no enough resources for all spark pods, then driver pod will be pending:

$ kubectl describe pod spark-pi-kube-scheduler-driver
...
Events:
  Type     Reason               Age                  From            Message
  ----     ------               ----                 ----            -------
  Warning  FailedScheduling     19m                  kube-scheduler  0/3 nodes are available: resource gap: map[cpu:{{13375 -3} {<nil>}  DecimalSI}]. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling., PodGroup default/spark-pi-kube-scheduler-pg gets rejected due to Pod spark-pi-kube-scheduler-driver is unschedulable even after PostFilter.

Please add this to examples, as it's helpful for users to build a custom scheduler on k8s.

Copy link
Contributor

@vara-bonthu vara-bonthu left a comment

Choose a reason for hiding this comment

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

Thank you for this contribution. It would be beneficial to add this to the examples section, as it provides users with valuable guidance on building a custom scheduler for Kubernetes.

I've observed that with Spark workloads, the default Kubernetes scheduler uses a LeastAllocated approach for pod bin-packing. However, this can lead to significant resource wastage across nodes. A more efficient method would be to use the MostAllocated approach, which can be configured using custom batch schedulers like the one demonstrated here.

This example showcases how to leverage custom schedulers to optimize resource allocation, a feature currently available with other batch schedulers such as YuniKorn. Including this example would provide users with a practical demonstration of advanced scheduling techniques for Spark on Kubernetes.

Could you please consider adding this example to the repository? It would serve as an excellent resource for users looking to maximize cluster efficiency with Spark workloads.

An update to your example

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-scheduler-config
data:
  scheduler-config.yaml: |
    apiVersion: kubescheduler.config.k8s.io/v1
    kind: KubeSchedulerConfiguration
    leaderElection:
      leaderElect: true
    profiles:
    - schedulerName: kube-scheduler
      plugins:
        multiPoint:
          enabled:
          - name: Coscheduling
        queueSort:
          enabled:
          - name: Coscheduling
          disabled:
          - name: "*"
        score:
          enabled:
          - name: NodeResourcesFit
            weight: 1
      pluginConfig:
      - name: NodeResourcesFit
        args:
          scoringStrategy:
            type: MostAllocated
            resources:
            - name: cpu
              weight: 1
            - name: memory
              weight: 1

@jacobsalway
Copy link
Member

If we add docs or examples on running a customer scheduler, I wonder if it'd be worth adding a warning on the complexities of doing so? At least on managed Kubernetes services like EKS, the scheduler is abstracted away from you and running a multi-scheduler cluster comes with its own headaches and gotchas.

@vara-bonthu
Copy link
Contributor

If we add docs or examples on running a customer scheduler, I wonder if it'd be worth adding a warning on the complexities of doing so? At least on managed Kubernetes services like EKS, the scheduler is abstracted away from you and running a multi-scheduler cluster comes with its own headaches and gotchas.

That's a valid point. I agree that we may need to address potential issues in the example. Let's not include that as an example.
While EKS abstracts schedulers, the default scheduler can lead to resource inefficiencies due to poor bin packing, an issue I've seen with several customers. Although implementing custom batch schedulers like YuniKorn could be a solution, not all customers are eager to adopt an additional addon; many would rather see enhancements to the existing scheduler. Hopefully, this will soon be a configurable option for EKS clusters.

@ChenYi015
Copy link
Contributor Author

The example kube-scheduler deployment is intended only for testing purpose and is not production-ready. And it is not recommended to deploy multiple kube-schedulers in managed Kubernetes services, where the scheduler is typically managed by the provider. I think K8s service providers should offer an option to configure the default scheduler to enable coscheduling.

@yuchaoran2011
Copy link
Contributor

The above statement on why this setup is not production ready should be included in the documentation (a simple paragraph will do). Otherwise the PR LGTM

Signed-off-by: Yi Chen <github@chenyicn.net>
Signed-off-by: Yi Chen <github@chenyicn.net>
@ChenYi015 ChenYi015 force-pushed the feature/kube-scheduler branch from 2e2fbb5 to 62d7444 Compare September 3, 2024 03:10
@ChenYi015
Copy link
Contributor Author

The above statement on why this setup is not production ready should be included in the documentation (a simple paragraph will do).
@yuchaoran2011 Agree, I will update the related docs once release 2.0.0 is published.

Copy link
Contributor

@yuchaoran2011 yuchaoran2011 left a comment

Choose a reason for hiding this comment

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

/lgtm

@google-oss-prow google-oss-prow bot added the lgtm label Sep 3, 2024
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: vara-bonthu, yuchaoran2011

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:
  • OWNERS [vara-bonthu,yuchaoran2011]

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

@google-oss-prow google-oss-prow bot merged commit e8d3de9 into kubeflow:master Sep 3, 2024
7 checks passed
@ChenYi015 ChenYi015 deleted the feature/kube-scheduler branch September 3, 2024 07:28
ChenYi015 added a commit to ChenYi015/spark-operator that referenced this pull request Sep 9, 2024
* Support coscheduling with kube-scheduler plugins

Signed-off-by: Yi Chen <github@chenyicn.net>

* Add example for using kube-schulder coscheduling

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit e8d3de9)
ChenYi015 added a commit to ChenYi015/spark-operator that referenced this pull request Sep 9, 2024
* Support coscheduling with kube-scheduler plugins

Signed-off-by: Yi Chen <github@chenyicn.net>

* Add example for using kube-schulder coscheduling

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit e8d3de9)
Signed-off-by: Yi Chen <github@chenyicn.net>
google-oss-prow bot pushed a commit that referenced this pull request Sep 23, 2024
* Support gang scheduling with Yunikorn (#2107)

* Add Yunikorn scheduler and example

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add test cases

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add code comments

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add license comment

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Inline mergeNodeSelector

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Fix initial number implementation

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

---------

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 8fcda12)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Update Makefile for building sparkctl (#2119)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 4bc6e89)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: Add default values for namespaces to match usage descriptions  (#2128)

* fix: Add default values for namespaces to match usage descriptions

Signed-off-by: pengfei4.li <pengfei4.li@ly.com>

* fix: remove incorrect cache settings

Signed-off-by: pengfei4.li <pengfei4.li@ly.com>

---------

Signed-off-by: pengfei4.li <pengfei4.li@ly.com>
Co-authored-by: pengfei4.li <pengfei4.li@ly.com>
(cherry picked from commit 52f818d)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Fix: Spark role binding did not render properly when setting spark service account name (#2135)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit a1a38ea)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Reintroduce option webhook.enable (#2142)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 9e88049)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Add default batch scheduler argument (#2143)

* Add default batch scheduler argument

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add helm unit test

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

---------

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 9cc1c02)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: unable to set controller/webhook replicas to zero (#2147)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 1afa72e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Adding support for setting spark job namespaces to all namespaces (#2123)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit c93b0ec)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Support extended kube-scheduler as batch scheduler (#2136)

* Support coscheduling with kube-scheduler plugins

Signed-off-by: Yi Chen <github@chenyicn.net>

* Add example for using kube-schulder coscheduling

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit e8d3de9)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Run e2e tests on Kind (#2148)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit c810ece)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Set schedulerName to Yunikorn (#2153)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 62b4ca6)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Create role and rolebinding for controller/webhook in every spark job namespace if not watching all namespaces (#2129)

watching all namespaces

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 592b649)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Fix: e2e test failes due to webhook not ready (#2149)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit dee91ba)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Upgrade to Go 1.23.1 (#2155)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 10fcb8e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Upgrade to Spark 3.5.2 (#2154)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit e1b7a27)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump sigs.k8s.io/scheduler-plugins from 0.29.7 to 0.29.8 (#2159)

Bumps [sigs.k8s.io/scheduler-plugins](https://github.com/kubernetes-sigs/scheduler-plugins) from 0.29.7 to 0.29.8.
- [Release notes](https://github.com/kubernetes-sigs/scheduler-plugins/releases)
- [Changelog](https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/RELEASE.md)
- [Commits](kubernetes-sigs/scheduler-plugins@v0.29.7...v0.29.8)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/scheduler-plugins
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit 95d202e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* feat: support driver and executor pod use different priority (#2146)

* feat: support driver and executor pod use different priority

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: if *app.Spec.Driver.PriorityClassName and *app.Spec.Executor.PriorityClassName specifically defined, then can precedence over spec.batchSchedulerOptions.priorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: merge the logic of setPodPriorityClassName into addPriorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: support driver and executor pod use different priority

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: if *app.Spec.Driver.PriorityClassName and *app.Spec.Executor.PriorityClassName specifically defined, then can precedence over spec.batchSchedulerOptions.priorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: merge the logic of setPodPriorityClassName into addPriorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: add adjust pointer if is nil

Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: remove spec.batchSchedulerOptions.priorityClassName define , split driver and executor pod priorityClass

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: remove spec.batchSchedulerOptions.priorityClassName define , split driver and executor pod priorityClass

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: Optimize code to avoid null pointer exceptions

Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* fix: remove backup crd files

Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* fix: remove BatchSchedulerOptions.PriorityClassName test code

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* fix: add driver and executor pod priorityClassName test code

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

---------

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>
Co-authored-by: Kevin Wu <kevin.wu@momenta.ai>
(cherry picked from commit 6ae1b2f)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump gocloud.dev from 0.37.0 to 0.39.0 (#2160)

Bumps [gocloud.dev](https://github.com/google/go-cloud) from 0.37.0 to 0.39.0.
- [Release notes](https://github.com/google/go-cloud/releases)
- [Commits](google/go-cloud@v0.37.0...v0.39.0)

---
updated-dependencies:
- dependency-name: gocloud.dev
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit e58023b)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Update e2e tests (#2161)

* Add sleep buffer to ensture the webhooks are ready before running the e2e tests

Signed-off-by: Yi Chen <github@chenyicn.net>

* Remove duplicate operator image build tasks

Signed-off-by: Yi Chen <github@chenyicn.net>

* Update e2e tests

Signed-off-by: Yi Chen <github@chenyicn.net>

* Update examples

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit e6a7805)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: webhook not working when settings spark job namespaces to empty (#2163)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 7785107)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: The logger had an odd number of arguments, making it panic (#2166)

Signed-off-by: tcassaert <tcassaert@inuits.eu>
(cherry picked from commit eb48b34)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Upgrade to Spark 3.5.2(#2012) (#2157)

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

---------

Signed-off-by: HyukSangCho <a01045542949@gmail.com>
(cherry picked from commit 9f0c08a)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Feature: Add pprof endpoint (#2164)

* add pprof support to the operator Controller Manager

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>

* add pprof support to helm chart

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>

---------

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>
(cherry picked from commit 75b9266)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix the make kind-delete-custer to avoid accidental kubeconfig deletion (#2172)

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>
(cherry picked from commit cbfefd5)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump github.com/aws/aws-sdk-go-v2/config from 1.27.27 to 1.27.33 (#2174)

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.27 to 1.27.33.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](aws/aws-sdk-go-v2@config/v1.27.27...config/v1.27.33)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit b818332)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump helm.sh/helm/v3 from 3.15.3 to 3.16.1 (#2173)

Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.15.3 to 3.16.1.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](helm/helm@v3.15.3...v3.16.1)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit f3f80d4)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Add specific error in log line when failed to create web UI service (#2170)

* Add specific error in log line when failed to create web UI service

Signed-off-by: tcassaert <tcassaert@inuits.eu>

* Update log to reflect correct resource that could not be created

Co-authored-by: Yi Chen <github@chenyicn.net>
Signed-off-by: tcassaert <tcassaert@protonmail.com>

---------

Signed-off-by: tcassaert <tcassaert@inuits.eu>
Signed-off-by: tcassaert <tcassaert@protonmail.com>
Co-authored-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit ed3226e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Account for spark.executor.pyspark.memory in Yunikorn gang scheduling (#2178)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit a2f71c6)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Fix: spark application does not respect time to live seconds (#2165)

* Add time to live seconds example spark application

Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: spark application does not respect time to live seconds

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit c855ee4)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Update release workflow and docs (#2121)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit bca6aa8)
Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
Signed-off-by: Yi Chen <github@chenyicn.net>
Signed-off-by: pengfei4.li <pengfei4.li@ly.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>
Signed-off-by: tcassaert <tcassaert@inuits.eu>
Signed-off-by: HyukSangCho <a01045542949@gmail.com>
Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>
Signed-off-by: tcassaert <tcassaert@protonmail.com>
Co-authored-by: Jacob Salway <jacob.salway@gmail.com>
Co-authored-by: Neo <56439757+snappyyouth@users.noreply.github.com>
Co-authored-by: pengfei4.li <pengfei4.li@ly.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevinz <ruoshuidba@gmail.com>
Co-authored-by: Kevin Wu <kevin.wu@momenta.ai>
Co-authored-by: tcassaert <tcassaert@protonmail.com>
Co-authored-by: ha2hi <56156892+ha2hi@users.noreply.github.com>
Co-authored-by: Sébastien Maintrot <3097030+ImpSy@users.noreply.github.com>
jbhalodia-slack pushed a commit to jbhalodia-slack/spark-operator that referenced this pull request Oct 4, 2024
* Support gang scheduling with Yunikorn (kubeflow#2107)

* Add Yunikorn scheduler and example

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add test cases

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add code comments

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add license comment

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Inline mergeNodeSelector

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Fix initial number implementation

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

---------

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 8fcda12)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Update Makefile for building sparkctl (kubeflow#2119)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 4bc6e89)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: Add default values for namespaces to match usage descriptions  (kubeflow#2128)

* fix: Add default values for namespaces to match usage descriptions

Signed-off-by: pengfei4.li <pengfei4.li@ly.com>

* fix: remove incorrect cache settings

Signed-off-by: pengfei4.li <pengfei4.li@ly.com>

---------

Signed-off-by: pengfei4.li <pengfei4.li@ly.com>
Co-authored-by: pengfei4.li <pengfei4.li@ly.com>
(cherry picked from commit 52f818d)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Fix: Spark role binding did not render properly when setting spark service account name (kubeflow#2135)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit a1a38ea)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Reintroduce option webhook.enable (kubeflow#2142)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 9e88049)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Add default batch scheduler argument (kubeflow#2143)

* Add default batch scheduler argument

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

* Add helm unit test

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>

---------

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 9cc1c02)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: unable to set controller/webhook replicas to zero (kubeflow#2147)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 1afa72e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Adding support for setting spark job namespaces to all namespaces (kubeflow#2123)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit c93b0ec)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Support extended kube-scheduler as batch scheduler (kubeflow#2136)

* Support coscheduling with kube-scheduler plugins

Signed-off-by: Yi Chen <github@chenyicn.net>

* Add example for using kube-schulder coscheduling

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit e8d3de9)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Run e2e tests on Kind (kubeflow#2148)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit c810ece)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Set schedulerName to Yunikorn (kubeflow#2153)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 62b4ca6)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Create role and rolebinding for controller/webhook in every spark job namespace if not watching all namespaces (kubeflow#2129)

watching all namespaces

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 592b649)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Fix: e2e test failes due to webhook not ready (kubeflow#2149)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit dee91ba)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Upgrade to Go 1.23.1 (kubeflow#2155)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit 10fcb8e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Upgrade to Spark 3.5.2 (kubeflow#2154)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit e1b7a27)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump sigs.k8s.io/scheduler-plugins from 0.29.7 to 0.29.8 (kubeflow#2159)

Bumps [sigs.k8s.io/scheduler-plugins](https://github.com/kubernetes-sigs/scheduler-plugins) from 0.29.7 to 0.29.8.
- [Release notes](https://github.com/kubernetes-sigs/scheduler-plugins/releases)
- [Changelog](https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/RELEASE.md)
- [Commits](kubernetes-sigs/scheduler-plugins@v0.29.7...v0.29.8)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/scheduler-plugins
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit 95d202e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* feat: support driver and executor pod use different priority (kubeflow#2146)

* feat: support driver and executor pod use different priority

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: if *app.Spec.Driver.PriorityClassName and *app.Spec.Executor.PriorityClassName specifically defined, then can precedence over spec.batchSchedulerOptions.priorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: merge the logic of setPodPriorityClassName into addPriorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: support driver and executor pod use different priority

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: if *app.Spec.Driver.PriorityClassName and *app.Spec.Executor.PriorityClassName specifically defined, then can precedence over spec.batchSchedulerOptions.priorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: merge the logic of setPodPriorityClassName into addPriorityClassName

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: add adjust pointer if is nil

Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* feat: remove spec.batchSchedulerOptions.priorityClassName define , split driver and executor pod priorityClass

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: remove spec.batchSchedulerOptions.priorityClassName define , split driver and executor pod priorityClass

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* feat: Optimize code to avoid null pointer exceptions

Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* fix: remove backup crd files

Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>

* fix: remove BatchSchedulerOptions.PriorityClassName test code

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

* fix: add driver and executor pod priorityClassName test code

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>

---------

Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>
Co-authored-by: Kevin Wu <kevin.wu@momenta.ai>
(cherry picked from commit 6ae1b2f)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump gocloud.dev from 0.37.0 to 0.39.0 (kubeflow#2160)

Bumps [gocloud.dev](https://github.com/google/go-cloud) from 0.37.0 to 0.39.0.
- [Release notes](https://github.com/google/go-cloud/releases)
- [Commits](google/go-cloud@v0.37.0...v0.39.0)

---
updated-dependencies:
- dependency-name: gocloud.dev
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit e58023b)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Update e2e tests (kubeflow#2161)

* Add sleep buffer to ensture the webhooks are ready before running the e2e tests

Signed-off-by: Yi Chen <github@chenyicn.net>

* Remove duplicate operator image build tasks

Signed-off-by: Yi Chen <github@chenyicn.net>

* Update e2e tests

Signed-off-by: Yi Chen <github@chenyicn.net>

* Update examples

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit e6a7805)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: webhook not working when settings spark job namespaces to empty (kubeflow#2163)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit 7785107)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: The logger had an odd number of arguments, making it panic (kubeflow#2166)

Signed-off-by: tcassaert <tcassaert@inuits.eu>
(cherry picked from commit eb48b34)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Upgrade to Spark 3.5.2(kubeflow#2012) (kubeflow#2157)

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

* Upgrade to Spark 3.5.2

Signed-off-by: HyukSangCho <a01045542949@gmail.com>

---------

Signed-off-by: HyukSangCho <a01045542949@gmail.com>
(cherry picked from commit 9f0c08a)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Feature: Add pprof endpoint (kubeflow#2164)

* add pprof support to the operator Controller Manager

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>

* add pprof support to helm chart

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>

---------

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>
(cherry picked from commit 75b9266)
Signed-off-by: Yi Chen <github@chenyicn.net>

* fix the make kind-delete-custer to avoid accidental kubeconfig deletion (kubeflow#2172)

Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>
(cherry picked from commit cbfefd5)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump github.com/aws/aws-sdk-go-v2/config from 1.27.27 to 1.27.33 (kubeflow#2174)

Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.27.27 to 1.27.33.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](aws/aws-sdk-go-v2@config/v1.27.27...config/v1.27.33)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit b818332)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Bump helm.sh/helm/v3 from 3.15.3 to 3.16.1 (kubeflow#2173)

Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.15.3 to 3.16.1.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](helm/helm@v3.15.3...v3.16.1)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit f3f80d4)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Add specific error in log line when failed to create web UI service (kubeflow#2170)

* Add specific error in log line when failed to create web UI service

Signed-off-by: tcassaert <tcassaert@inuits.eu>

* Update log to reflect correct resource that could not be created

Co-authored-by: Yi Chen <github@chenyicn.net>
Signed-off-by: tcassaert <tcassaert@protonmail.com>

---------

Signed-off-by: tcassaert <tcassaert@inuits.eu>
Signed-off-by: tcassaert <tcassaert@protonmail.com>
Co-authored-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit ed3226e)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Account for spark.executor.pyspark.memory in Yunikorn gang scheduling (kubeflow#2178)

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
(cherry picked from commit a2f71c6)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Fix: spark application does not respect time to live seconds (kubeflow#2165)

* Add time to live seconds example spark application

Signed-off-by: Yi Chen <github@chenyicn.net>

* fix: spark application does not respect time to live seconds

Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit c855ee4)
Signed-off-by: Yi Chen <github@chenyicn.net>

* Update release workflow and docs (kubeflow#2121)

Signed-off-by: Yi Chen <github@chenyicn.net>
(cherry picked from commit bca6aa8)
Signed-off-by: Yi Chen <github@chenyicn.net>

---------

Signed-off-by: Jacob Salway <jacob.salway@gmail.com>
Signed-off-by: Yi Chen <github@chenyicn.net>
Signed-off-by: pengfei4.li <pengfei4.li@ly.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Kevin Wu <kevin.wu@momenta.ai>
Signed-off-by: Kevin.Wu <kevin.wu@momenta.ai>
Signed-off-by: tcassaert <tcassaert@inuits.eu>
Signed-off-by: HyukSangCho <a01045542949@gmail.com>
Signed-off-by: ImpSy <3097030+ImpSy@users.noreply.github.com>
Signed-off-by: tcassaert <tcassaert@protonmail.com>
Co-authored-by: Jacob Salway <jacob.salway@gmail.com>
Co-authored-by: Neo <56439757+snappyyouth@users.noreply.github.com>
Co-authored-by: pengfei4.li <pengfei4.li@ly.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevinz <ruoshuidba@gmail.com>
Co-authored-by: Kevin Wu <kevin.wu@momenta.ai>
Co-authored-by: tcassaert <tcassaert@protonmail.com>
Co-authored-by: ha2hi <56156892+ha2hi@users.noreply.github.com>
Co-authored-by: Sébastien Maintrot <3097030+ImpSy@users.noreply.github.com>
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.

Support extended kube-scheduler as batch scheduler
4 participants