mirror of
https://github.com/kubernetes-sigs/descheduler.git
synced 2026-01-26 13:29:11 +01:00
Compare commits
9 Commits
chart-0.18
...
release-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec76672ec7 | ||
|
|
44f2be4f01 | ||
|
|
6400f08b1a | ||
|
|
086962b765 | ||
|
|
4d841a2eef | ||
|
|
76ab9e765a | ||
|
|
78313651dc | ||
|
|
c6c3be6362 | ||
|
|
d2b8f07876 |
19
.github/workflows/release.yaml
vendored
19
.github/workflows/release.yaml
vendored
@@ -2,8 +2,8 @@ name: Release Charts
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
branches:
|
||||||
- chart-*
|
- release-*
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
@@ -11,20 +11,21 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Configure Git
|
- name: Configure Git
|
||||||
run: |
|
run: |
|
||||||
git config user.name "$GITHUB_ACTOR"
|
git config user.name "$GITHUB_ACTOR"
|
||||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
|
|
||||||
- name: Fetch history
|
- name: Install Helm
|
||||||
run: git fetch --prune --unshallow
|
uses: azure/setup-helm@v1
|
||||||
|
with:
|
||||||
- name: Add dependency chart repos
|
version: v3.4.0
|
||||||
run: |
|
|
||||||
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
|
|
||||||
|
|
||||||
- name: Run chart-releaser
|
- name: Run chart-releaser
|
||||||
uses: helm/chart-releaser-action@v1.0.0-rc.2
|
uses: helm/chart-releaser-action@v1.1.0
|
||||||
env:
|
env:
|
||||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
CR_RELEASE_NAME_TEMPLATE: "descheduler-helm-chart-{{ .Version }}"
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
name: descheduler
|
name: descheduler
|
||||||
version: 0.18.0
|
version: 0.18.2
|
||||||
appVersion: 0.18.0
|
appVersion: 0.18.0
|
||||||
description: Descheduler for Kubernetes is used to rebalance clusters by evicting pods that can potentially be scheduled on better nodes. In the current implementation, descheduler does not schedule replacement of evicted pods but relies on the default scheduler for that.
|
description: Descheduler for Kubernetes is used to rebalance clusters by evicting pods that can potentially be scheduled on better nodes. In the current implementation, descheduler does not schedule replacement of evicted pods but relies on the default scheduler for that.
|
||||||
keywords:
|
keywords:
|
||||||
- kubernetes
|
- kubernetes
|
||||||
- descheduler
|
- descheduler
|
||||||
- kube-scheduler
|
- kube-scheduler
|
||||||
home: https://github.com/kubernetes-sigs/descheduler
|
home: https://github.com/kubernetes-sigs/descheduler
|
||||||
icon: https://kubernetes.io/images/favicon.png
|
icon: https://kubernetes.io/images/favicon.png
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/kubernetes-sigs/descheduler
|
- https://github.com/kubernetes-sigs/descheduler
|
||||||
maintainers:
|
maintainers:
|
||||||
- name: stevehipwell
|
- name: Kubernetes SIG Scheduling
|
||||||
email: steve.hipwell@github.com
|
email: kubernetes-sig-scheduling@googlegroups.com
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ The following table lists the configurable parameters of the _descheduler_ chart
|
|||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
||||||
| `image.repository` | Docker repository to use | `us.gcr.io/k8s-artifacts-prod/descheduler/descheduler` |
|
| `image.repository` | Docker repository to use | `us.gcr.io/k8s-artifacts-prod/descheduler/descheduler` |
|
||||||
| `image.tag` | Docker tag to use | `v[chart appVersion]` |
|
| `image.tag` | Docker tag to use | `v[chart appVersion]` |
|
||||||
| `image.pullPolicy` | Docker image pull policy | `IfNotPresent` |
|
| `image.pullPolicy` | Docker image pull policy | `IfNotPresent` |
|
||||||
| `nameOverride` | String to partially override `descheduler.fullname` template (will prepend the release name) | `""` |
|
| `nameOverride` | String to partially override `descheduler.fullname` template (will prepend the release name) | `""` |
|
||||||
| `fullnameOverride` | String to fully override `descheduler.fullname` template | `""` |
|
| `fullnameOverride` | String to fully override `descheduler.fullname` template | `""` |
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
1. Make sure your repo is clean by git's standards
|
1. Make sure your repo is clean by git's standards
|
||||||
2. Create a release branch `git checkout -b release-1.18` (not required for patch releases)
|
2. Create a release branch `git checkout -b release-1.18` (not required for patch releases)
|
||||||
3. Push the release branch to the descheuler repo and ensure branch protection is enabled (not required for patch releases)
|
3. Push the release branch to the descheuler repo and ensure branch protection is enabled (not required for patch releases)
|
||||||
4. Tag the repository and push the tag `VERSION=v0.18.0 git tag -m $VERSION $VERSION; git push origin $VERSION`
|
4. Tag the repository from the `master` branch (from the `release-1.18` branch for a patch release) and push the tag `VERSION=v0.18.0 git tag -m $VERSION $VERSION; git push origin $VERSION`
|
||||||
5. Publish a draft release using the tag you just created
|
5. Publish a draft release using the tag you just created
|
||||||
6. Perform the [image promotion process](https://github.com/kubernetes/k8s.io/tree/master/k8s.gcr.io#image-promoter)
|
6. Perform the [image promotion process](https://github.com/kubernetes/k8s.io/tree/master/k8s.gcr.io#image-promoter)
|
||||||
7. Publish release
|
7. Publish release
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
1. Make sure your repo is clean by git's standards
|
1. Make sure your repo is clean by git's standards
|
||||||
2. Create a release branch `git checkout -b release-1.18` (not required for patch releases)
|
2. Create a release branch `git checkout -b release-1.18` (not required for patch releases)
|
||||||
3. Push the release branch to the descheuler repo and ensure branch protection is enabled (not required for patch releases)
|
3. Push the release branch to the descheuler repo and ensure branch protection is enabled (not required for patch releases)
|
||||||
4. Tag the repository and push the tag `VERSION=v0.18.0 git tag -m $VERSION $VERSION; git push origin $VERSION`
|
4. Tag the repository from the `master` branch (from the `release-1.18` branch for a patch release) and push the tag `VERSION=v0.18.0 git tag -m $VERSION $VERSION; git push origin $VERSION`
|
||||||
5. Checkout the tag you just created and make sure your repo is clean by git's standards `git checkout $VERSION`
|
5. Checkout the tag you just created and make sure your repo is clean by git's standards `git checkout $VERSION`
|
||||||
6. Build and push the container image to the staging registry `VERSION=$VERSION make push`
|
6. Build and push the container image to the staging registry `VERSION=$VERSION make push`
|
||||||
7. Publish a draft release using the tag you just created
|
7. Publish a draft release using the tag you just created
|
||||||
@@ -27,6 +27,11 @@
|
|||||||
10. Email `kubernetes-sig-scheduling@googlegroups.com` to announce the release
|
10. Email `kubernetes-sig-scheduling@googlegroups.com` to announce the release
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
|
It's important to create the tag on the master branch after creating the release-* branch so that the [Helm releaser-action](#helm-chart) can work.
|
||||||
|
It compares the changes in the action-triggering branch to the latest tag on that branch, so if you tag before creating the new branch there
|
||||||
|
will be nothing to compare and it will fail (creating a new release branch usually involves no code changes). For this same reason, you should
|
||||||
|
also tag patch releases (on the release-* branch) *after* pushing changes (if those changes involve bumping the Helm chart version).
|
||||||
|
|
||||||
See [post-descheduler-push-images dashboard](https://testgrid.k8s.io/sig-scheduling#post-descheduler-push-images) for staging registry image build job status.
|
See [post-descheduler-push-images dashboard](https://testgrid.k8s.io/sig-scheduling#post-descheduler-push-images) for staging registry image build job status.
|
||||||
|
|
||||||
List images in staging registry.
|
List images in staging registry.
|
||||||
@@ -50,17 +55,17 @@ docker pull gcr.io/k8s-staging-descheduler/descheduler:v20200206-0.9.0-94-ge2a23
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Helm Chart
|
## Helm Chart
|
||||||
Helm chart releases are managed by a separate set of git tags that are prefixed with `chart-*`. Example git tag name is `chart-0.18.0`. Released versions of the
|
Helm chart releases are managed by a separate set of git tags that are prefixed with `descheduler-helm-chart-*`. Example git tag name is `descheduler-helm-chart-0.18.0`.
|
||||||
helm charts are stored in the `gh-pages` branch of this repo. The [chart-releaser-action GitHub Action](https://github.com/helm/chart-releaser-action) is setup to
|
Released versions of the helm charts are stored in the `gh-pages` branch of this repo. The [chart-releaser-action GitHub Action](https://github.com/helm/chart-releaser-action)
|
||||||
build and push the helm charts to the `gh-pages` branch when a `chart-*` git tag is created.
|
is setup to build and push the helm charts to the `gh-pages` branch when changes are pushed to a `release-*` branch.
|
||||||
|
|
||||||
The major and minor version of the chart matches the descheduler major and minor versions. For example descheduler helm chart version chart-0.18.0 corresponds
|
The major and minor version of the chart matches the descheduler major and minor versions. For example descheduler helm chart version helm-descheduler-chart-0.18.0 corresponds
|
||||||
to descheduler version v0.18.0. The patch version of the descheduler helm chart and the patcher version of the descheduler will not necessarily match. The patch
|
to descheduler version v0.18.0. The patch version of the descheduler helm chart and the patcher version of the descheduler will not necessarily match. The patch
|
||||||
version of the descheduler helm chart is used to version changes specific to the helm chart.
|
version of the descheduler helm chart is used to version changes specific to the helm chart.
|
||||||
|
|
||||||
1. Merge all helm chart changes into the appropriate release branch(i.e. release-1.18)
|
1. Merge all helm chart changes into the master branch before the release is tagged/cut
|
||||||
1. Ensure that `appVersion` in file `charts/descheduler/Chart.yaml` matches the descheduler version(no `v` prefix)
|
1. Ensure that `appVersion` in file `charts/descheduler/Chart.yaml` matches the descheduler version(no `v` prefix)
|
||||||
2. Ensure that `version` in file `charts/descheduler/Chart.yaml` has been incremented. This is the chart version.
|
2. Ensure that `version` in file `charts/descheduler/Chart.yaml` has been incremented. This is the chart version.
|
||||||
2. Make sure your repo is clean by git's standards
|
2. Make sure your repo is clean by git's standards
|
||||||
3. Create the tag and push it `git checkout release-1.18; CHART_VERSION=chart-0.18.0; git tag $CHART_VERSION; git push origin $CHART_VERSION`
|
3. Follow the release-branch or patch release tagging pattern from the above section.
|
||||||
4. Verify the new helm artifact has been successfully pushed to the `gh-pages` branch
|
4. Verify the new helm artifact has been successfully pushed to the `gh-pages` branch
|
||||||
@@ -154,7 +154,10 @@ func classifyNodes(npm NodePodsMap, thresholds api.ResourceThresholds, targetThr
|
|||||||
klog.V(2).Infof("Node %#v is over utilized with usage: %#v", node.Name, usage)
|
klog.V(2).Infof("Node %#v is over utilized with usage: %#v", node.Name, usage)
|
||||||
targetNodes = append(targetNodes, nuMap)
|
targetNodes = append(targetNodes, nuMap)
|
||||||
} else {
|
} else {
|
||||||
klog.V(2).Infof("Node %#v is appropriately utilized with usage: %#v", node.Name, usage)
|
if nodeutil.IsNodeUnschedulable(node) {
|
||||||
|
klog.V(2).Infof("Node %#v is unschedulable", node.Name)
|
||||||
|
}
|
||||||
|
klog.V(2).Infof("Node %#v is utilized with usage: %#v", node.Name, usage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return lowNodes, targetNodes
|
return lowNodes, targetNodes
|
||||||
|
|||||||
Reference in New Issue
Block a user