Skip to content

chore(release): chart for v0.17.0 #5479

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

Merged
merged 1 commit into from
Jun 12, 2025

Conversation

stevehipwell
Copy link
Contributor

What does it do ?

This PR updates the Helm chart for the v0.17.0 release. It also adds automation to auto-generate the chart changelog annotations to simplify the release process.

Closes #5398

Motivation

More

  • Yes, this PR title follows Conventional Commits
  • Yes, I added unit tests
  • Yes, I updated end user documentation accordingly

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label May 28, 2025
@k8s-ci-robot k8s-ci-robot requested a review from mloiseleur May 28, 2025 16:11
@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label May 28, 2025
@stevehipwell stevehipwell force-pushed the chart-1-17-0 branch 2 times, most recently from 029566b to 4edecd7 Compare May 28, 2025 16:38
@stevehipwell
Copy link
Contributor Author

/assign @szuecs

Copy link
Collaborator

@mloiseleur mloiseleur left a comment

Choose a reason for hiding this comment

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

I tried to run the step Run CHANGELOG check locally, with latest GH version, and it gave me this changes list:

    - kind: changed
      description: "Allow extraArgs to also be a map enabling overrides of individual values. ([#5293](https://github.com/kubernetes-sigs/external-dns/pull/5293)) _@frittentheke"
    - kind: changed
      description: "   -----"
    - kind: changed
      description: "Update CRD. ([#5287](https://github.com/kubernetes-sigs/external-dns/pull/5287)) _@mloiseleur_"
    - kind: changed
      description: "   -----"
    - kind: changed
      description: "Update CRD. ([#5446](https://github.com/kubernetes-sigs/external-dns/pull/5446)) _@mloiseleur_"
    - kind: changed
      description: "   -----"
    - kind: changed
      description: "Update _ExternalDNS_ OCI image version to [v0.17.0](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.17.0). ([#5479](https://github.com/kubernetes-sigs/external-dns/pull/5479)) _@stevehipwell_"
    - kind: fixed
      description: "Fix wrong type definitions for webhook probes. ([#5297](https://github.com/kubernetes-sigs/external-dns/pull/5297)) _@semnell_"

Wdyt of

  1. Transform this step into a bash script commited into the repository (in scripts/)
  2. Adapt this script so the computed changelog can be reviewed

@stevehipwell stevehipwell force-pushed the chart-1-17-0 branch 2 times, most recently from 24d392e to 5f157a6 Compare June 4, 2025 17:09
@stevehipwell
Copy link
Contributor Author

@mloiseleur the mdq command changed it's behaviour and I missed the implications, this should be fixed now. The script could be extracted, but ideally it would be part of the native tooling. As I've copied this pattern from my own reusable workflows it's easier at this point to not have to worry about extracting the scripts. I've update the action to output the changes annotations being generated so it can be reviewed as part of the PR.

@mloiseleur mloiseleur changed the title chore: Release chart for v0.17.0 chore(release): chart for v0.17.0 Jun 4, 2025
Copy link
Collaborator

@mloiseleur mloiseleur left a comment

Choose a reason for hiding this comment

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

Changelog LGTM.
I'm not sure to understand why this PR is modifying the CRD ?
Unless I missed something, it's not the purpose of this PR.
The change does not seem to be breaking, but it will be replaced each time we run make crd.

@stevehipwell
Copy link
Contributor Author

@mloiseleur the PR is reverting the changes make crd made to the CRD format in the Helm chart.

@stevehipwell
Copy link
Contributor Author

@szuecs could you please review this?

@mloiseleur
Copy link
Collaborator

@mloiseleur the PR is reverting the changes make crd made to the CRD format in the Helm chart.

Ok. Thanks, that's what I thought 👍. When #5372 will be ready, we will have 2 CRDs. Unless I'm missing something, it will then revert this revert.

So, my question is: Would you please explain your motivation ?
Is there a way (or a parameter we missed) to generate the CRD in a better shape ?

@stevehipwell
Copy link
Contributor Author

@mloiseleur when you copy the CRDs the unwanted annotations can be removed and the YAML files can be formatted with yamlfmt. This is how I was processing the CRDs before you added the automation and I'm pretty sure I added a comment to the PR where you automated this.

TL;DR - The make script should be as follows but will need both yq & yamlfmt adding as tools.

#? crd: Generates CRD using controller-gen and copy it into chart
.PHONY: crd
crd: controller-gen-install
	${CONTROLLER_GEN} object crd:crdVersions=v1 paths="./endpoint/..."
	${CONTROLLER_GEN} object crd:crdVersions=v1 paths="./apis/..." output:crd:stdout > ./config/crd/standard/dnsendpoint.yaml
	yq eval '.metadata.annotations |= with_entries(select(.key | test("kubernetes\.io")))' ./config/crd/standard/dnsendpoint.yaml | yamlfmt - > ./charts/external-dns/crds/dnsendpoint.yaml

@stevehipwell stevehipwell force-pushed the chart-1-17-0 branch 2 times, most recently from 2654e56 to e0b93ac Compare June 11, 2025 16:30
@stevehipwell
Copy link
Contributor Author

@mloiseleur RE the schema it looks like #5510 passed before v2.0.0 was released. I've updated the config for this so we should be all good.

@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 11, 2025
@stevehipwell
Copy link
Contributor Author

@mloiseleur I've also updated the CRD copy logic to match the comments I made on other PRs.

@mloiseleur
Copy link
Collaborator

@mloiseleur I've also updated the CRD copy logic to match the comments I made on other PRs.

Thanks 👍 . That should help and avoid back-and-forth between PRs on CRDs. The change makes sense to me.
I guess you should remove charts/external-dns/crds/dnsendpoint.yaml then.

I somehow understand that your motivation for yamlfmt: even if the yaml file is valid, you prefer to have it as clean and formatted the same way as all the other files in the Chart.

I have not yet understand your motivation for removing controller-gen.kubebuilder.io/version. This annotation has been added 6 years ago with this PR. One of the two goal described is:

Analyze generated CRDs in the field using Github queries to determine the distribution of controller-gen version.

@stevehipwell
Copy link
Contributor Author

I guess you should remove charts/external-dns/crds/dnsendpoint.yaml then.

Good spot @mloiseleur!

I have not yet understand your motivation for removing controller-gen.kubebuilder.io/version. This annotation has been added 6 years ago with kubernetes-sigs/controller-tools#338. One of the two goal described is:

Analyze generated CRDs in the field using Github queries to determine the distribution of controller-gen version.

I'm fully aware of this, but neither of those goals are related to the Helm chart where the CRD is (or should be) a duplicate. The CRD in the Helm chart shouldn't be being used for debugging; firstly because it makes no logical sense, and secondly because Helm doesn't update CRDs (so the annotation wouldn't be being updated anyway). As the chart CRD should be a duplicate, from the goal perspective the annotation is at best neutral but potentially complicates the signals. Finally from a Helm and end-user perspective the annotation is meaningless but if the chart CRD is being used as a source of truth (as we use it) an annotation update can cause unnecessary churn.

@stevehipwell
Copy link
Contributor Author

/retest

@mloiseleur
Copy link
Collaborator

mloiseleur commented Jun 12, 2025

Thanks for this detailed explanation.

As the chart CRD should be a duplicate,

Unless I'm missing something, it's not what this PR is currently doing with the Makefile. I tested the code update in the Makefile: it creates and regenerate CRDs only for the chart. There is no file created or updated in config/crd/standard directory.

@stevehipwell
Copy link
Contributor Author

Thanks again @mloiseleur, I was rushing. This now updates the CRDs in the config/crd/standard directory and is compatible with multiple CRDs. It also means that any GitHub query for the annotations can use the file name for the full CRD name.

@mloiseleur
Copy link
Collaborator

/lgtm
/approve

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

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mloiseleur

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:

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 12, 2025
@k8s-ci-robot k8s-ci-robot merged commit 01f08eb into kubernetes-sigs:master Jun 12, 2025
16 checks passed
ivankatliarchuk added a commit to gofogo/k8s-sigs-external-dns-fork that referenced this pull request Jun 13, 2025
* master:
  chore: Release chart for v0.17.0 (kubernetes-sigs#5479)
@jasonslay
Copy link

jasonslay commented Jun 17, 2025

@stevehipwell it looks like this release didn't go through:

> helm repo list
NAME            URL
external-dns    https://kubernetes-sigs.github.io/external-dns/

> helm repo update external-dns & helm search repo external-dns
NAME                            CHART VERSION   APP VERSION     DESCRIPTION
external-dns/external-dns       1.16.1          0.16.1          ExternalDNS synchronizes exposed Kubernetes Ser...

> helm search repo external-dns --version ^1.17.0                                                                
No results found

@stevehipwell
Copy link
Contributor Author

@jasonslay #5533 should release the chart.

@stevehipwell stevehipwell deleted the chart-1-17-0 branch June 17, 2025 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. chart cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. docs lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Helm chart to v0.17.0
5 participants