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

helm: add post-delete hook that cleans up the node #1532

Merged
merged 1 commit into from
Jan 2, 2024

Conversation

marquiz
Copy link
Contributor

@marquiz marquiz commented Dec 29, 2023

This patch adds a post-delete hook to the Helm chart that runs "nfd-master --prune" in the cluster. This cleans up the node of labels, annotations, taints and extended resources that were created by NFD.

This patch adds a post-delete hook to the Helm chart that runs
"nfd-master --prune" in the cluster. This cleans up the node of labels,
annotations, taints and extended resources that were created by NFD.
@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Dec 29, 2023
Copy link

netlify bot commented Dec 29, 2023

Deploy Preview for kubernetes-sigs-nfd ready!

Name Link
🔨 Latest commit 889fffd
🔍 Latest deploy log https://app.netlify.com/sites/kubernetes-sigs-nfd/deploys/658ecc7a43cd330008dda8de
😎 Deploy Preview https://deploy-preview-1532--kubernetes-sigs-nfd.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Dec 29, 2023
@marquiz
Copy link
Contributor Author

marquiz commented Dec 29, 2023

/assign @ArangoGutierrez

Copy link
Contributor

@ArangoGutierrez ArangoGutierrez left a comment

Choose a reason for hiding this comment

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

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 2, 2024
@k8s-ci-robot
Copy link
Contributor

LGTM label has been added.

Git tree hash: d1165c620df4ae86ca9a9d94037a802f60c5cf3f

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ArangoGutierrez, marquiz

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 [ArangoGutierrez,marquiz]

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

Copy link

codecov bot commented Jan 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (456a77b) 31.09% compared to head (889fffd) 31.09%.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #1532   +/-   ##
=======================================
  Coverage   31.09%   31.09%           
=======================================
  Files          61       61           
  Lines        7775     7775           
=======================================
  Hits         2418     2418           
  Misses       5113     5113           
  Partials      244      244           

@k8s-ci-robot k8s-ci-robot merged commit b3919f3 into kubernetes-sigs:master Jan 2, 2024
11 checks passed
@marquiz marquiz deleted the devel/helm-hook branch January 2, 2024 14:50
@marquiz marquiz mentioned this pull request May 24, 2024
24 tasks
nrdufour pushed a commit to nrdufour/home-ops that referenced this pull request May 28, 2024
…465)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery) | minor | `0.15.4` -> `0.16.0` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/node-feature-discovery (node-feature-discovery)</summary>

### [`v0.16.0`](https://github.com/kubernetes-sigs/node-feature-discovery/releases/tag/v0.16.0): v0.16

[Compare Source](kubernetes-sigs/node-feature-discovery@v0.15.4...v0.16.0)

#### Changelog

##### NodeFeatureGroup API

The NodeFeatureGroup custom resource was added to the NFD API. The NodeFeatureGroup API enables the creation of node groups based on features discovered by NFD. The API is an alpha feature and is disabled by default and can be enabled with the NodeFeatureGroupAPI [feature gate](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/usage/custom-resources.html#nodefeaturegroup).

See [documentation](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/usage/custom-resources.html#nodefeaturegroup) for more details.

##### Feature gates

NFD adapted the concept of feature gates from Kubernetes to introduce and stabilize new features in a controlled way. See the [documentation](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/reference/feature-gates.html) for more details. Two existing features ([NodeFeature API](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/reference/feature-gates.html#nodefeatureapi) and [disabling label auto-prefixing](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/reference/feature-gates.html#disableautoprefix)) were converted into feature gates.

##### Deprecations

##### Upcoming changes

Support for [hooks](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/usage/customization-guide.html#hooks) is deprecated since [v0.12.0](https://github.com/kubernetes-sigs/node-feature-discovery/releases/tag/v0.12.0) and will be completely dropped in the NFD v0.17.

##### RDT feature labels removed

The `feature.node.kubernetes.io/cpu-rdt.*` feature labels that were deprecated in NFD [v0.13](https://github.com/kubernetes-sigs/node-feature-discovery/releases/tag/v0.13.0) were removed. RDT features are still available for use in [NodeFeatureRules](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/usage/custom-resources.html#nodefeaturerule) for custom labels.

##### Deprecated flags and options

The [autoDefaultNs](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/reference/master-configuration-reference.html#autodefaultns) config file option of nfd-master is deprecated and will be removed in NFD v0.17. Superseded by the [DisableAutoPrefix](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/reference/feature-gates.html#disableautoprefix) feature gate (`featureGates.DisableAutoPrefix` Helm parameter).

The `-enable-nodefeature-api` command line flag of nfd-master and nfd-worker and the corresponding `enableNodeFeatureApi` [Helm chart parameter](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/deployment/helm.html#general-parameters) have been deprecated and will be removed in NFD v0.17. Superseded by the [NodeFeature API](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/reference/feature-gates.html#nodefeatureapi) feature gate (`featureGates.NodeFeatureAPI` Helm parameter).

The `-crd-controller` command line flag of nfd-master is deprecated and will be removed with the gRPC API in a future release.

##### Miscellaneous

##### Network devices

Discover speed of virtual network interfaces.

##### DMI

Added support for detecting DMI attributes from `/sys/devices/virtual/dmi/id/`. In v0.16 only `sys_vendor` discovered, available as `system.dmiid.sys_vendor` feature for use in [NodeFeatureRules](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/usage/custom-resources.html#nodefeaturerule).

##### Swap

Discover the availability of swap on the node. Available as `memory.swap.enabled` feature for use in [NodeFeatureRules](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/usage/custom-resources.html#nodefeaturerule).

##### Helm chart

Now all nodes are cleaned up (feature labels, annotations, extended resources and taints are removed) after uninstalling NFD using a post-delete hook.

The Helm chart now sets resource requests (cpu and memory) for NFD pods. Users may want to adjust these for their cluster. An option to set the pod priority class was added. See [Helm chart parameters](https://kubernetes-sigs.github.io/node-feature-discovery/v0.16/deployment/helm.html#chart-parameters) in the documentation).

##### Container health

A gRPC health server was added to the nfd-master, nfd-worker and nfd-topology-updater daemons. Deployments (Helm and kustomize) configure container liveness and readiness probes to use that for health checking.

#### List of PRs

-   github: update tagging instructions in release checklists ([#&#8203;1527](kubernetes-sigs/node-feature-discovery#1527))
-   Update readme to v0.15.0 release ([#&#8203;1524](kubernetes-sigs/node-feature-discovery#1524))
-   makefile: fix build: target ([#&#8203;1528](kubernetes-sigs/node-feature-discovery#1528))
-   Makefile: add -timeout argument to e2e-tests ([#&#8203;1526](kubernetes-sigs/node-feature-discovery#1526))
-   helm: add post-delete hook that cleans up the node ([#&#8203;1532](kubernetes-sigs/node-feature-discovery#1532))
-   deployment/kustomize: drop the sample cert-manager overlay ([#&#8203;1534](kubernetes-sigs/node-feature-discovery#1534))
-   nfd-master: run a separate gRPC health server ([#&#8203;1535](kubernetes-sigs/node-feature-discovery#1535))
-   source/network: discover speed of virtual network interfaces ([#&#8203;1536](kubernetes-sigs/node-feature-discovery#1536))
-   go.mod: update dependencies ([#&#8203;1539](kubernetes-sigs/node-feature-discovery#1539))
-   chore: combine cpu count and thread_siblings functions into discover topology function ([#&#8203;1505](kubernetes-sigs/node-feature-discovery#1505))
-   source/cpu: drop deprecated cpu-rdt labels ([#&#8203;1530](kubernetes-sigs/node-feature-discovery#1530))
-   Update readme to v0.15.1 release ([#&#8203;1552](kubernetes-sigs/node-feature-discovery#1552))
-   hack/generate: patch auto-generated deepcopy functions ([#&#8203;1553](kubernetes-sigs/node-feature-discovery#1553))
-   apis/nfd: Trivial typo fix in tests ([#&#8203;1537](kubernetes-sigs/node-feature-discovery#1537))
-   docs: update docs build dependencies ([#&#8203;1543](kubernetes-sigs/node-feature-discovery#1543))
-   topology-updater: initialize properly with -no-publish ([#&#8203;1554](kubernetes-sigs/node-feature-discovery#1554))
-   topology-updater: document the -no-publish flag correctly ([#&#8203;1555](kubernetes-sigs/node-feature-discovery#1555))
-   Wrap nested errors ([#&#8203;1558](kubernetes-sigs/node-feature-discovery#1558))
-   Prevent `nfd-worker` erroring when reading attributes from paravirtual devices ([#&#8203;1557](kubernetes-sigs/node-feature-discovery#1557))
-   pkg/utils: move GetKubeconfig from pkg/apihelper here ([#&#8203;1562](kubernetes-sigs/node-feature-discovery#1562))
-   OWNERS: add AhmedGrati as a reviewer ([#&#8203;1564](kubernetes-sigs/node-feature-discovery#1564))
-   deployment/helm: don't deploy topology-updater conf unnecessarily ([#&#8203;1565](kubernetes-sigs/node-feature-discovery#1565))
-   topology-updater: get topology api client directly ([#&#8203;1566](kubernetes-sigs/node-feature-discovery#1566))
-   pkg/utils: move JsonPatch from pkg/apihelper ([#&#8203;1568](kubernetes-sigs/node-feature-discovery#1568))
-   nfd-master: ditch apihelper ([#&#8203;1570](kubernetes-sigs/node-feature-discovery#1570))
-   topology-updater: ditch apihelper ([#&#8203;1567](kubernetes-sigs/node-feature-discovery#1567))
-   Drop pkg/apihelper ([#&#8203;1561](kubernetes-sigs/node-feature-discovery#1561))
-   nfd-master: fix node status patching ([#&#8203;1571](kubernetes-sigs/node-feature-discovery#1571))
-   nfd-topology-updater add pods fingerprint by default ([#&#8203;1560](kubernetes-sigs/node-feature-discovery#1560))
-   docs: add KEP of Spiffe integration ([#&#8203;1444](kubernetes-sigs/node-feature-discovery#1444))
-   docs: document removal of hooks in v0.17 ([#&#8203;1573](kubernetes-sigs/node-feature-discovery#1573))
-   build(deps): bump github.com/opencontainers/runc from 1.1.10 to 1.1.12 ([#&#8203;1575](kubernetes-sigs/node-feature-discovery#1575))
-   build(deps-dev): bump nokogiri from 1.16.0 to 1.16.2 in /docs ([#&#8203;1576](kubernetes-sigs/node-feature-discovery#1576))
-   scripts/test-infra: bump golangci-lint to v1.56.1 ([#&#8203;1580](kubernetes-sigs/node-feature-discovery#1580))
-   scripts/test-infra: bump k8s logcheck to v0.8.1 ([#&#8203;1583](kubernetes-sigs/node-feature-discovery#1583))
-   Bump Go to v1.22 ([#&#8203;1579](kubernetes-sigs/node-feature-discovery#1579))
-   scripts/test-infra: bump helm to v3.14.0 ([#&#8203;1582](kubernetes-sigs/node-feature-discovery#1582))
-   source/kernel: add unit tests for kernel version parsing ([#&#8203;1588](kubernetes-sigs/node-feature-discovery#1588))
-   helm: add priorityClassName option ([#&#8203;1587](kubernetes-sigs/node-feature-discovery#1587))
-   source/pci: add unit test for the pci source ([#&#8203;1589](kubernetes-sigs/node-feature-discovery#1589))
-   nfd-master: log errors on node update retries ([#&#8203;1591](kubernetes-sigs/node-feature-discovery#1591))
-   source/system: Add reading vendor information ([#&#8203;1574](kubernetes-sigs/node-feature-discovery#1574))
-   source/cpu: fix build tags on rdt discovery ([#&#8203;1594](kubernetes-sigs/node-feature-discovery#1594))
-   helm: add ability to use a custom issuer ([#&#8203;1598](kubernetes-sigs/node-feature-discovery#1598))
-   fix hook issue ([#&#8203;1604](kubernetes-sigs/node-feature-discovery#1604))
-   generate: update autogenerate tools ([#&#8203;1606](kubernetes-sigs/node-feature-discovery#1606))
-   apis/nfd/validate: use testify/assert for checking test results ([#&#8203;1590](kubernetes-sigs/node-feature-discovery#1590))
-   Update readme to v0.15.2 release ([#&#8203;1611](kubernetes-sigs/node-feature-discovery#1611))
-   Update generate scripts to use latest code_gen functions ([#&#8203;1605](kubernetes-sigs/node-feature-discovery#1605))
-   nfd-master: mark the -crd-controller flag as deprecated ([#&#8203;1612](kubernetes-sigs/node-feature-discovery#1612))
-   build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 ([#&#8203;1613](kubernetes-sigs/node-feature-discovery#1613))
-   Use close to signal stop channedl in worker and topology-updater ([#&#8203;1620](kubernetes-sigs/node-feature-discovery#1620))
-   nfd-master: fix memory leak in nfd api-controller ([#&#8203;1615](kubernetes-sigs/node-feature-discovery#1615))
-   Update readme to v0.15.3 release ([#&#8203;1628](kubernetes-sigs/node-feature-discovery#1628))
-   Add FeatureGate framework to handle new features ([#&#8203;1623](kubernetes-sigs/node-feature-discovery#1623))
-   replace AhmedGrati account with TessaIO as reviewer ([#&#8203;1630](kubernetes-sigs/node-feature-discovery#1630))
-   add swap support in nfd ([#&#8203;1585](kubernetes-sigs/node-feature-discovery#1585))
-   nfd-master: check if node exists before trying update ([#&#8203;1595](kubernetes-sigs/node-feature-discovery#1595))
-   Remove references to -enable-nodefeature-api flag ([#&#8203;1632](kubernetes-sigs/node-feature-discovery#1632))
-   Add owner reference to NRT object ([#&#8203;1602](kubernetes-sigs/node-feature-discovery#1602))
-   nfd-master: retry node updates indefinitely ([#&#8203;1596](kubernetes-sigs/node-feature-discovery#1596))
-   nfd-worker: Add liveness probe ([#&#8203;1609](kubernetes-sigs/node-feature-discovery#1609))
-   topology-updater: Set APIVersion, Kind in the OwnerReference explicitly ([#&#8203;1634](kubernetes-sigs/node-feature-discovery#1634))
-   helm: fix invalid name of host-swaps volume ([#&#8203;1635](kubernetes-sigs/node-feature-discovery#1635))
-   nfd-master: do nfd API scheme registration in an init function ([#&#8203;1641](kubernetes-sigs/node-feature-discovery#1641))
-   chore/deployment: add resources requests and limits for helm and Kustomize ([#&#8203;1631](kubernetes-sigs/node-feature-discovery#1631))
-   nfd-topology-updater: Add liveness probe ([#&#8203;1643](kubernet