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

Release v0.15 #1483

Closed
24 tasks done
marquiz opened this issue Dec 1, 2023 · 13 comments
Closed
24 tasks done

Release v0.15 #1483

marquiz opened this issue Dec 1, 2023 · 13 comments
Labels
sig/release Categorizes an issue or PR as relevant to SIG Release.
Milestone

Comments

@marquiz
Copy link
Contributor

marquiz commented Dec 1, 2023

Release Checklist

  • All OWNERS must LGTM the release proposal
  • Verify that the changelog in this issue is up-to-date
  • Create new release branch (release v0.$MAJ.0)
    • an OWNER creates a vanilla release branch with
      git branch release-0.$MAJ master
    • An OWNER pushes the new release branch with
      git push release-0.$MAJ
    • Create Prow pre-submit job configuration for the new release branch in K8s
      test-infra, submit a PR
    • Wait for the test-infra Prow config PR to be merged
  • Run hack/prepare-release.sh $VERSION to turn references to point to the upcoming release
    (README, deployment templates, docs configuration, test/e2e flags), submit a PR against the release branch
  • An OWNER prepares a draft release
    • Create a draft release at Github releases page
    • Write the change log into the draft release
    • Upload release artefacts generated by prepare-release.sh script above to the draft release
  • An OWNER runs
    git tag -s $VERSION
    and inserts the changelog into the tag description.
  • An OWNER pushes the tag with
    git push $VERSION
  • Submit a PR against k8s.io, updating registry.k8s.io/images/k8s-staging-nfd/images.yaml to promote the container images (both "full" and "minimal" variants) to production
  • Wait for the PR to be merged and verify that the image (registry.k8s.io/nfd/node-feature-discovery:$VERSION) is available.
  • Publish the draft release prepared at the Github releases page
    which will also trigger a Helm repo index update to add the latest release
  • Add a link to the tagged release in this issue.
  • Send an announcement email to [email protected] with the subject [ANNOUNCE] node-feature-discovery $VERSION is released
    • Add a link to the release announcement in this issue
  • Update README in master branch
    • Update references e.g. by running hack/prepare-release.sh $VERSION but only committing README.md, and,
      submit a PR
    • Wait for the PR to be merged
  • Create an unannotated devel tag in the master branch, on the first commit that gets merged after the release branch has been created (presumably the README update commit above), and, push the tag:
    DEVEL=v0.$(($MAJ+1)).0-devel; git tag $DEVEL master && git push $DEVEL
    This ensures that the devel builds on the master branch will have a meaningful version number.
  • Close this issue

What's new

NodeFeatureRule API extended

Annotations

NFD now supports creating node annotations with the NodeFeatureRuless. See the documentation for details.

matchName

New matchName field was added to the NodeFeatureRule CRD. It can be used to match the names of features (instead of their values which is done with the matchExpressions field). See
documentation for details.

Feature files

Hidden feature files: feature files whose name start with a dot (.) are now ignored by nfd-worker. This makes it easier to update the feature files by creating a temporary file in the same directory. (#1353)

Skip labels or features: Feature files support # +no-label and # +no-feature directives to skip label and feature generation, respectively. See the documentation for details and examples.

Container image based on scratch

NFD switched to use scratch as the base container image and to build fully statically linked binaries. Switching to the virtually empty base image means that the default container image only supports running hooks that are also fully statically linked. For example, many go binaries that are "almost" statically linked don't work. The full image variant can be used for richer hook support. NOTE: hooks are deprecated and support for them will be removed in a future release.

Base image of the full image variant was updated to Debian Bookworm.

Discover virtual network interfaces

NFD now discovers virtual network interfaces as features that can be used in NodeFeatureRules. (#1448)

Kubectl plugin

Starting as a developer preview, we are introducing a kubectl-nfd plugin to perform 3 operations against NodeFeatureRule files. (#1446)

  • test: Check a NodeFeatureRule file against a node to ensure it is valid before applying it to a cluster.
  • dryrun: Check a NodeFeatureRule file against a local NodeFeature file, allowing an offline testing of the rule to be before applying it to a cluster.
  • validate: Check if the NodeFeatureRule file will valid and can be used against NodeFeatures.

See the documentation for more information.

Deprecations

Automatic prefixing of names deprecated

Automatic prefixing of names (of labels, annotations or extended resources) is deprecated. Unprefixed names should not be used in NodeFeatureRules, feature files, hooks or custom rules. The default feature.node.kubernetes.io/ prefix should be added to unprefixed names.

The nfd-master has new autoDefaultNs configuration file option (defaults to true in v0.15) to stop automatically adding the feature.node.kubernetes.io/ prefix to node labels, annotations and extended resources. If set to false, unprefixed names will be denied. (#1461)

NOTE: The autoDefaultNs option default will be changed to false in a future NFD release. This will be a breaking change for users who rely on automatic prefixing of unprefixed names. Setting the autoDefaultNs option to false with NFD v0.15 can be used to test that all NodeFeatureRules, feature files, hooks and custom rules (configuration of the "custom" feature source of nfd-worker) work correctly when the default will be switched to false.

Deprecated security labels dropped

Deprecated feature.node.kubernetes.io/cpu-sgx.enabled and feature.node.kubernetes.io/cpu-se.enabled labels were dropped. They are replaced by feature.node.kubernetes.io/cpu-security.sgx.enabled and feature.node.kubernetes.io/cpu-security.se.enabled. (#1350)

Legacy "matchOn" custom rule format dropped

Support for the legacy "matchOn" rule format of the custom source of nfd-worker was removed (deprecated since v0.10.0). (#1397)

Miscellaneous

CPU features

Detection of Intel APX and AVX10 as new CPUID features.

New cpu.topology feature socket_count.

Liveness probe

gRPC health probe utility replaced with Kubernetes' built-in gRPC liveness probe. This means that the Kubernetes v1.23 or later is required by the default deployments. (#1046)

Annotations

The nfd-master doesn't create NFD version node annotations anymore. (#1394)

Metrics

Metrics for nfd-gc were added. (#1407)

Example grafana dashboard to display NFD metrics was added. (#1413)

Helm chart

Various fixes and improvments in the Helm chart, for example ability to disable/enable nfd-master and nfd-worker.

NodeFeature API

The nfd-worker now sets owner reference in NodeFeature objects it creates, so orphaned NodeFeatures are automatically garbage-collected when the nfd-worker pod goes away. (#1491)

List of PRs

@marquiz marquiz changed the title Release v0.15.0 Release v0.15 Dec 1, 2023
@fmuyassarov
Copy link
Member

LGTM

@PiotrProkop
Copy link
Contributor

/lgtm

@adrianchiris
Copy link
Contributor

LGTM !

@ArangoGutierrez
Copy link
Contributor

I would like to see #1487 and #1455 into V0.15

@jjacobelli
Copy link
Contributor

/lgtm

1 similar comment
@ArangoGutierrez
Copy link
Contributor

/lgtm

@ArangoGutierrez
Copy link
Contributor

/sig release

@k8s-ci-robot k8s-ci-robot added the sig/release Categorizes an issue or PR as relevant to SIG Release. label Dec 20, 2023
@ArangoGutierrez ArangoGutierrez added this to the v0.15 milestone Dec 20, 2023
@ArangoGutierrez ArangoGutierrez pinned this issue Dec 20, 2023
@ArangoGutierrez
Copy link
Contributor

ArangoGutierrez commented Dec 21, 2023

Kubectl-nfd plugin entry:

Kubectl-nfd plugin

PR #1446 Adds a new binary to the NFD project.
Starting as a developer preview, we are introducing a kubectl plugin to perform 3 operations against NodeFeatureRule files.

  • test: Check a NodeFeatureRule file against a Node to ensure it is valid before applying it to a cluster. (requires KUBECONFIG set, or be passed with a flag)
  • dryrun: Check a NodeFeatureRule file against a local NodeFeature file. This allows users to dry-run the rule against a node before applying it to a cluster.
  • validate: Check if the NodeFeatureRule file will valid and can be used against NodeFeatures.

@ArangoGutierrez ArangoGutierrez unpinned this issue Dec 22, 2023
@ArangoGutierrez
Copy link
Contributor

@ArangoGutierrez
Copy link
Contributor

@marquiz
Copy link
Contributor Author

marquiz commented Dec 22, 2023

@marquiz
Copy link
Contributor Author

marquiz commented Dec 22, 2023

/close

@k8s-ci-robot
Copy link
Contributor

@marquiz: Closing this issue.

In response to this:

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/release Categorizes an issue or PR as relevant to SIG Release.
Projects
None yet
Development

No branches or pull requests

9 participants