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

✨re-scaffold the project with a new command #3431

Merged
merged 1 commit into from
Jun 12, 2023

Conversation

yyy1000
Copy link
Member

@yyy1000 yyy1000 commented May 24, 2023

This is the first part of the whole project:
only the alpha command and be able to re-scaffold the init command for example for the layout.

The demo video is here:

first-PR-video-show.mp4

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label May 24, 2023
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels May 24, 2023
@k8s-ci-robot
Copy link
Contributor

Hi @yyy1000. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

scaffoldCmd := &cobra.Command{
Use: "generate",
Short: "Re-scaffold an existing kuberbuilder project",
Long: `Re-scaffold an existing kuberbuilder project`,
Copy link
Member

@camilamacedo86 camilamacedo86 May 24, 2023

Choose a reason for hiding this comment

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

WDYT about add a long description here?

Maybe we can describe that this command is an experimental feature that has the purpose of ....

scaffoldCmd := &cobra.Command{
Use: "generate",
Short: "Re-scaffold an existing kuberbuilder project",
Long: `Re-scaffold an existing kuberbuilder project`,
Copy link
Member

Choose a reason for hiding this comment

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

What about we add the Examples, such as:

Example: fmt.Sprintf(`# If shell completion is not already enabled in your environment you will need
# to enable it. You can execute the following once:
$ echo "autoload -U compinit; compinit" >> ~/.zshrc
# To load completions for each session, execute once:
$ %[1]s completion zsh > "${fpath[1]}/_%[1]s"
# You will need to start a new shell for this setup to take effect.
`, c.commandName),

Just a couple of them based on what it is doing now.

Copy link
Member Author

Choose a reason for hiding this comment

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

OK, I will follow that!

Copy link
Member

Choose a reason for hiding this comment

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

Short: "Re-scaffold an existing kuberbuilder project",
Long: `Re-scaffold an existing kuberbuilder project`,
Run: func(cmd *cobra.Command, args []string) {
cwd, err := os.Getwd()
Copy link
Member

Choose a reason for hiding this comment

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

Could we encapsulate this code in a func like run() since it will probably grow?

Copy link
Member Author

Choose a reason for hiding this comment

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

Good suggestion! I will do that.

"path to output the scaffolding. defaults to the current working directory")
return scaffoldCmd
}

Copy link
Member

Choose a reason for hiding this comment

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

I think we need a func like setDefaults which will set the defaults (here you can find a nice example)

Also, one validate() which we should call before do anything and has the purpose to validate if ALL is OK prior run the command or fail. What do you think?

Copy link
Member Author

Choose a reason for hiding this comment

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

Cool! I used to have a validate() in it, but I don't know what it should check so I delete it. Maybe it can check 'whether it can find the kubebuilder binary'. :)

Copy link
Member

Choose a reason for hiding this comment

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

I think you must ensure that has a PROJECT file
Otherwise, how will you do the re-scaffold?

For now, I think just that. But we will need also do checks like
If the Project file has layout == go/v2 or go/v3 AND if the Project file is the old config version than we say that the command is not supported. but we can do that in a follow up.

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks! So far my code will ensure the PROJECT file.
I will add other check in a follow up. :)

log.Fatal(err)
}
outputDirectory := getOutputPath(cwd, outputPath)
// create output directory
Copy link
Member

Choose a reason for hiding this comment

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

I think we should either have a GenerateCMD struct so that we can define and store all values that will be used by it. Then, the funcs will have it as a receiver like (GenerateCMD cmd) run() or (GenerateCMD cmd) validate() and etc.

WDYT?

Copy link
Member Author

Choose a reason for hiding this comment

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

Great! I will try to change the code to make it. :)

camilamacedo86

This comment was marked as outdated.

camilamacedo86

This comment was marked as outdated.

Copy link
Member

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

You made a terrific work 🥇
I just suggested a couple of nits that are more related to improvements to help you grow the command in your journey.

Anyway, that is amazing work !!!!

Copy link
Member

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels May 24, 2023
outputDirectory := getOutputPath(cwd, outputPath)
// create output directory
if err = os.MkdirAll(outputDirectory, os.ModePerm); err != nil {
log.Fatal(err)
Copy link
Member

Choose a reason for hiding this comment

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

If we encounter errors here, do we want to proceed with the next steps? If not, we can exit with os.Exit(1).

Copy link
Member Author

Choose a reason for hiding this comment

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

Good idea!

Comment on lines 59 to 61
defer func() {
_ = os.Chdir(cwd)
}()
Copy link
Member

Choose a reason for hiding this comment

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

Do we need this? Looks like after doing the initial scaffolding we are not taking any actions, so we can need not necessarily set the context to where we started.

return util.RunCmd("kubebuilder init", "kubebuilder", args...)
}

func getInputPath(cwd string, inputPath string) string {
Copy link
Member

Choose a reason for hiding this comment

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

Do we also want to check if the input and output directory exist with os.Stat? Are we doing it somewhere?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, we can check them. There're some places using it.


// NewScaffoldCommand return a new scaffold command
func NewScaffoldCommand() *cobra.Command {
var outputPath, inputPath string
Copy link
Member

Choose a reason for hiding this comment

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

So we could store the input values in the struct and manipulate it separately. For example, we could have:

type migrateOptions struct{
    inputDir string
    outputDir string
}

Then you can bind the values from these flags to the fields in the struct. For example:

opts := &migrateOptions{}

cmd.Flags().StringVar(&opts.inputDir, "input-dir", "<>" , "<>")

And then you can have methods on this struct to execute the code.
like:

func (opts *migrateOptions) Complete() error {
    // logic for checking input and output dir etc
}

Copy link
Member Author

Choose a reason for hiding this comment

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

I will try it. :)

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jun 5, 2023
Comment on lines 35 to 36
$ ls my-output/
Dockerfile Makefile PROJECT README.md cmd config go.mod go.sum hack
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
$ ls my-output/
Dockerfile Makefile PROJECT README.md cmd config go.mod go.sum hack

I think we do not need to put an example of the output.

Copy link
Member Author

Choose a reason for hiding this comment

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

Solved it and below. :)

Long: `It's an experimental feature that has the purpose of
re-scaffolding the whole project from the scratch using the
current version of KubeBuilder binary available.
# make sure the PROJECT file is in the 'input-dir' argument, the default is the current directory.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
# make sure the PROJECT file is in the 'input-dir' argument, the default is the current directory.
# make sure the PROJECT file is in the 'input-dir' argument, the default is the current directory.

Copy link
Member

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

Great work 🥇

I will let @Kavinjsir and @varshaprasad96 give the second review
If they be OK with they will lgtm and this one will get merged

@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 7, 2023
Copy link
Member

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

@yyy1000

Before merging we need to squash the commits. Could you please do that?

/approved cancel

Copy link
Member

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

@yyy1000

Before merging we need to squash the commits. Could you please do that?

/approved cancel

Copy link
Member

@camilamacedo86 camilamacedo86 left a comment

Choose a reason for hiding this comment

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

@yyy1000

Before merging we need to squash the commits. Could you please do that?

/approved cancel

Copy link
Contributor

@Kavinjsir Kavinjsir left a comment

Choose a reason for hiding this comment

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

Left some comments for reference. Other than that, the PR shows great 💯

@@ -0,0 +1,49 @@
/*
Copyright 2022 The Kubernetes Authors.
Copy link
Contributor

Choose a reason for hiding this comment

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

Nits: Update 2022 -> 2023.

May probably check other updated files also

opts := rescaffold.MigrateOptions{}
scaffoldCmd := &cobra.Command{
Use: "generate",
Short: "Re-scaffold an existing kuberbuilder project",
Copy link
Contributor

Choose a reason for hiding this comment

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

nit:
kuberbuilder -> Kubebuilder

os.Exit(1)
}
// create output directory
if err := os.MkdirAll(opts.OutputDir, os.ModePerm); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

Question:
Do we need to give that much permission as ModePerm to the folder?

Copy link
Member Author

@yyy1000 yyy1000 Jun 8, 2023

Choose a reason for hiding this comment

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

Oh, that's a question. What about setting it to 0755(the default permission of directory)? According to https://www.redhat.com/sysadmin/introduction-chmod

Copy link
Contributor

@Kavinjsir Kavinjsir Jun 8, 2023

Choose a reason for hiding this comment

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

I am cool with 0755.

OR maybe we can refer to the default file permissions set by internal scaffold package:
https://github.com/kubernetes-sigs/kubebuilder/blob/v3.10.0/pkg/machinery/scaffold.go#LL38-L39 :

	defaultDirectoryPermission os.FileMode = 0700
	defaultFilePermission      os.FileMode = 0600

Copy link
Contributor

Choose a reason for hiding this comment

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

Well, for a second thought, I'd prefer 0755:

  1. This makes the permission of the root folder path more general. (Should be similar as other directories in users' hosts)
  2. The permissions of the internal files/directories can be handled by the scaffolding package which will be regulated by these values (e.g: defaultDirectoryPermission).

cc: @camilamacedo86 @varshaprasad96 Any suggestions on this?

Copy link
Contributor

Choose a reason for hiding this comment

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

As discussed, we can apply 0755.

}

func getOutputPath(cwd, outputPath string) string {
if outputPath == DefaultOutputDir {
Copy link
Contributor

Choose a reason for hiding this comment

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

In my own opinion:
It is better to have a consistent behavior when handling the incoming parameter outputPath.
We can spell an absolute path when defining a DefaultOutputDir.


As for this getOutputPath function, should this functionality to be:

  1. check if given outputPath already exists; if yes, then return err
  2. check if given outputPath is an absolute path; if yes, then return the value
  3. if given outputPath is a relative one, concatenate with file path prefix (making it an absolute one), then return?

Just some thoughts for reference
cc: @camilamacedo86 @varshaprasad96

Copy link
Member Author

Choose a reason for hiding this comment

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

Sounds good to me. Let's see whether others have different views.

Copy link
Member

Choose a reason for hiding this comment

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

I'm curious on the necessity to do the comparison. The logic in my mind should be:

  1. Check if output dir is provided. If not default it to pwd+DefaultDir
  2. If not, do an os.Stat to check if the output dir already exists.
  3. If exists, err. If not, create a new one.

return err
}

func getInputPath(cwd string, inputPath string) (string, error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

For readability, can we avoid having abbreviations for parameters?

Like cwd -> currentWorkingDirectory ?

func kubebuilderInit(store store.Store) error {
var args []string
args = append(args, "init")
return util.RunCmd("kubebuilder init", "kubebuilder", args...)
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this ready in use OR we will have future development for this?
(In other words, do we need to add a todo comment here?)

Copy link
Contributor

Choose a reason for hiding this comment

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

Also, will we call Kubebuilder executable to re-scaffold the project in the future? It feels hacky to me...

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, this is in use. We will call that to init the project from 'PROJECT file'

const DefaultOutputDir = "output-dir"

func (opts *MigrateOptions) Rescaffold() error {
store := yaml.New(machinery.Filesystem{FS: afero.NewOsFs()})
Copy link
Contributor

Choose a reason for hiding this comment

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

What about naming the variable as config to help understand the context?

Kavinjsir

This comment was marked as duplicate.

Kavinjsir

This comment was marked as duplicate.

Copy link
Contributor

@Kavinjsir Kavinjsir left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Member

@varshaprasad96 varshaprasad96 left a comment

Choose a reason for hiding this comment

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

/lgtm

Nice work @yyy1000!

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

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: camilamacedo86, Kavinjsir, varshaprasad96, yyy1000

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 [camilamacedo86,varshaprasad96]

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

Copy link
Member

@camilamacedo86 camilamacedo86 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 Jun 10, 2023
log.Fatal(err)
}
// create output directory
if err := os.MkdirAll(opts.OutputDir, 0755); err != nil {
Copy link
Member

Choose a reason for hiding this comment

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

@yyy1000 this lint issue we can ignore in this case
Add a comment here

Suggested change
if err := os.MkdirAll(opts.OutputDir, 0755); err != nil {
// nolint: gosec
if err := os.MkdirAll(opts.OutputDir, 0755); err != nil {

So that we will ignore this specific check in this specfic line then we can get this one merged

Copy link
Member Author

Choose a reason for hiding this comment

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

added and squashed.

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 10, 2023
@camilamacedo86
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 10, 2023
@camilamacedo86
Copy link
Member

camilamacedo86 commented Jun 10, 2023

Hi @yyy1000,

See the lint error:

run golangci-lint
  Running [/home/runner/golangci-lint-1.51.2-linux-amd64/golangci-lint run --out-format=github-actions --new-from-patch=/tmp/tmp-2040-jjQ4M5ZBUurK/pull.patch --new=false --new-from-rev=] in [] ...
  Error: File is not `gofmt`-ed with `-s` (gofmt)
  
  Error: issues found
  Ran golangci-lint in [26](https://github.com/kubernetes-sigs/kubebuilder/actions/runs/5228672632/jobs/9441403653?pr=3431#step:5:28)06ms

To fix this one run make lint-fix. This issue will be fixed automatically with this command, then you can commit squash and push for we get this one merged.

You can either to do this test locally by running make lint.

feat: separate file

fix: doc nit

feat: doc nit

fix: some nits

feat: file perm and error when outputPath exists

feat: golang lint

fix: nolint when create dir

fix: lint
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 10, 2023
@yyy1000
Copy link
Member Author

yyy1000 commented Jun 10, 2023

Hi @yyy1000,

See the lint error:

run golangci-lint
  Running [/home/runner/golangci-lint-1.51.2-linux-amd64/golangci-lint run --out-format=github-actions --new-from-patch=/tmp/tmp-2040-jjQ4M5ZBUurK/pull.patch --new=false --new-from-rev=] in [] ...
  Error: File is not `gofmt`-ed with `-s` (gofmt)
  
  Error: issues found
  Ran golangci-lint in [26](https://github.com/kubernetes-sigs/kubebuilder/actions/runs/5228672632/jobs/9441403653?pr=3431#step:5:28)06ms

To fix this one run make lint-fix. This issue will be fixed automatically with this command, then you can commit squash and push for we get this one merged.

You can either to do this test locally by running make lint.

Oh, thanks!
I forget to run make lint to check this. Fixed it already.

@camilamacedo86
Copy link
Member

/test pull-kubebuilder-e2e-k8s-1-27-1

@camilamacedo86
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 10, 2023
@camilamacedo86 camilamacedo86 merged commit cef5f4c into kubernetes-sigs:master Jun 12, 2023
@yyy1000 yyy1000 deleted the gsoc branch June 19, 2023 08:24
camilamacedo86 added a commit that referenced this pull request Jun 21, 2023
* 🌱 Bump kubernetes-sigs/kubebuilder-release-tools

Bumps [kubernetes-sigs/kubebuilder-release-tools](https://github.com/kubernetes-sigs/kubebuilder-release-tools) from 0.2.0 to 0.3.0.
- [Release notes](https://github.com/kubernetes-sigs/kubebuilder-release-tools/releases)
- [Changelog](https://github.com/kubernetes-sigs/kubebuilder-release-tools/blob/master/RELEASE.md)
- [Commits](kubernetes-sigs/kubebuilder-release-tools@v0.2.0...v0.3.0)

---
updated-dependencies:
- dependency-name: kubernetes-sigs/kubebuilder-release-tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cronjob_types.go

* 📖 fix untile typo in readmes (#3135)

fix untile typo in readmes

* corrected layout

* co_doc

* 📖 : update ComponentConfig tutorial (#3181)

docs: update ComponentConfig

* Bump github.com/onsi/gomega from 1.24.2 to 1.26.0

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.24.2 to 1.26.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.24.2...v1.26.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/ginkgo/v2 from 2.7.0 to 2.8.0

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.7.0...v2.8.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* change kustomize install templating to avoid tripping security alerts

Signed-off-by: jberkhahn <jaberkha@us.ibm.com>

* Upgrade the k8s version from 1.26.0 to 1.26.1 and controller-runtime from 0.14.1 to 0.14.2

Signed-off-by: Yash Singh <syash@vmware.com>

* feat: automatically update componentconfig tutorial

Co-authored-by: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com>

chore: refactor

* ⚠️ (kustomize/v2-alpha, go/v4-alpha): Upgrade kustomize from 4.5.7 to 5.0.0 (#3199)

⚠️ (kustomize/v2-alpha, go/v4-alpha): Upgrade kustomize from 4.5.7 to 5.0.0 (#3199)

* [Fix] Generate docs

* 📖 fix: sync docs tutorial with latest kb (#3209)

* 📖  Update cronjob-tutorial (#3213)

* 📖 update the status of the proposals in the repo

* Bump golang.org/x/text from 0.6.0 to 0.7.0

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump golang.org/x/tools from 0.5.0 to 0.6.0

Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.1

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.8.0...v2.8.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* ✨ (go/v3,go/v4-alpha) :Update controller-runtime and controller-tools dependencies (#3218)

:sparkles: (go/v3,go/v4-alpha) :Update controller-runtime and controller-tools dependecies

* :book: update the template for proposals (#3219)

* 📖 update the template for proposals

* Apply suggestions from code review

* 🐛 (Kubebuilder External Plugins API): fix populate PluginRequest.Universe which is empty (#3223)

* fix: populate PluginRequest.Universe

* test: add unit test for getUniverseMap

* refactor: fix linting errors

* docs(README): add latest release badge

* 🌱 Bump golang.org/x/net from 0.6.0 to 0.7.0 (#3232)

Bump golang.org/x/net from 0.6.0 to 0.7.0

Bumps [golang.org/x/net](https://github.com/golang/net) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](golang/net@v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 📖 design doc with proposal to re-scaffold projects from scratch (#3221)

* Bump github.com/onsi/gomega from 1.26.0 to 1.27.1

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.26.0 to 1.27.1.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.26.0...v1.27.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* 🌱 Update golangci-lint to latest version

* Bump github.com/onsi/ginkgo/v2 from 2.8.1 to 2.8.3

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.8.1 to 2.8.3.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.8.1...v2.8.3)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* ⚠️ (kustomize/v1) deprecated v1 version in favor of v2 (#3235)

* ⚠️ deprecated kustomize/v1 plugin

* Update docs/book/src/plugins/kustomize-v1.md

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

* Update docs/book/src/plugins/kustomize-v1.md

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

* Update docs/book/src/plugins/to-be-extended.md

* Update docs/book/src/plugins/to-be-extended.md

Co-authored-by: Varsha <varshaprasad96@gmail.com>

* Update pkg/plugins/common/kustomize/v1/plugin.go

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

* Update docs/book/src/plugins/to-be-extended.md

Co-authored-by: Varsha <varshaprasad96@gmail.com>

---------

Co-authored-by: Bryce Palmer <everettraven@gmail.com>
Co-authored-by: Varsha <varshaprasad96@gmail.com>

* fix: XDG_CONFIG_HOME external plugin discovery

* 👻 : add tony as reviewer

* test: increase coverage

* Update helper_to_upgrade_projects_by_rescaffolding.md

* Update api-changes.md

Fix a typo in the docs

* 🌱 Bump github.com/spf13/afero from 1.9.3 to 1.9.4 (#3254)

Bump github.com/spf13/afero from 1.9.3 to 1.9.4

Bumps [github.com/spf13/afero](https://github.com/spf13/afero) from 1.9.3 to 1.9.4.
- [Release notes](https://github.com/spf13/afero/releases)
- [Commits](spf13/afero@v1.9.3...v1.9.4)

---
updated-dependencies:
- dependency-name: github.com/spf13/afero
  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>

* 🌱 Bump github.com/onsi/ginkgo/v2 from 2.8.3 to 2.8.4 (#3253)

Bump github.com/onsi/ginkgo/v2 from 2.8.3 to 2.8.4

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.8.3 to 2.8.4.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.8.3...v2.8.4)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  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>

* Bump github.com/onsi/ginkgo/v2 from 2.8.4 to 2.9.0

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.8.4 to 2.9.0.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.8.4...v2.9.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* 🌱 Bump github.com/gobuffalo/flect from 1.0.0 to 1.0.2 (#3252)

Bump github.com/gobuffalo/flect from 1.0.0 to 1.0.2

Bumps [github.com/gobuffalo/flect](https://github.com/gobuffalo/flect) from 1.0.0 to 1.0.2.
- [Release notes](https://github.com/gobuffalo/flect/releases)
- [Commits](gobuffalo/flect@v1.0.0...v1.0.2)

---
updated-dependencies:
- dependency-name: github.com/gobuffalo/flect
  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>

* ⚠️ (go/v3) deprecate go/v3 in favor of go/v4 (#3238)

* ⚠️ deprecate go/v3

* Apply suggestions from code review

* Update pkg/plugins/golang/v4/plugin.go

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

---------

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

* ⚠️ (kustomize/v2) Stabilize plugin. kustomize/v2-alpha was replaced with kustomize/v2 (#3234)

* Bump golang.org/x/text from 0.7.0 to 0.8.0

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.7.0...v0.8.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/spf13/afero from 1.9.4 to 1.9.5

Bumps [github.com/spf13/afero](https://github.com/spf13/afero) from 1.9.4 to 1.9.5.
- [Release notes](https://github.com/spf13/afero/releases)
- [Commits](spf13/afero@v1.9.4...v1.9.5)

---
updated-dependencies:
- dependency-name: github.com/spf13/afero
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/gomega from 1.27.1 to 1.27.2

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.27.1 to 1.27.2.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.27.1...v1.27.2)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* 🌱 Bump joelanford/go-apidiff from 0.5.0 to 0.6.0 (#3265)

Bumps [joelanford/go-apidiff](https://github.com/joelanford/go-apidiff) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/joelanford/go-apidiff/releases)
- [Commits](joelanford/go-apidiff@v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: joelanford/go-apidiff
  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>

* 📖 : delete cronjob tutorial Incorrect kustomization.yaml (#3256)

* ⚠️ (go/v4-alpha) stabilize go/v4 plugin. Plugin go/v4-alpha replaced with go/v4 (#3237)

* [fix: go/v3, go/v4] Remove stale imports

This PR removes the stale import: "pkg/envtest/printer" that is not needed
after migrating to ginko/v2.

Controller-runtime v0.14.0+ has migrated to use ginko/v2 and thereby removed
"printer" package. The imports were still being scaffolded though not used in the
codebase.

Signed-off-by: Varsha Prasad Narsing <varshaprasad96@gmail.com>

* fix nit lint issue

* :seedleing: stop to generate all samples for go/v3

* 🐛  fix: deprecate message should be in go/v3 (#3277)

fix: deprecate message should be in go/v3

* 🌱 : fix sample project-v4-grafana (#3279)

:bug: fix sample project-v4-grafana

* :sparkles: make go/v4 default scaffold

* :book: remove warning from quick start

* :book: make component-config tuturial sample be based on go/v4 plugin

* :book: updating the component config tutorial to use go/v4

* :book: update cronjob tutorial sample to use go/v4

* :sparkles: deprecate kustomize/v1 and go/v3 packages

* :book: update multiversion tutorial to use go/v4 (#3282)

* Bump github.com/onsi/ginkgo/v2 from 2.9.0 to 2.9.1

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.9.0...v2.9.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* doc: add fish and powershell of autocompletion command

Signed-off-by: JenTing Hsiao <hsiaoairplane@gmail.com>

* fix testdata / merge conflict

* 📖 Replace "Help" field in EP doc with "Metadata" field (#3296)

* Bump github.com/onsi/gomega from 1.27.2 to 1.27.4

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.27.2 to 1.27.4.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.27.2...v1.27.4)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* 🌱 Replace deprecated command with environment file (#3298)

* ⚠️ 🐛 (API) fix deprecate interface to allow bundle plugin has deprecation message (#3276)

* 🌱 Bump actions/setup-go from 3 to 4

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* adds small version cmd test

* 🌱  [ci] : fix the issue with [CI] doc check being cancelled instead of being skipped (#3319)

* ci: remove check docs only since it is blocking the ci

* 📖: fix spelling mistakes in document (#3331)

fix spelling mistakes in doc

* 📖: Add version dropdown for doc release (#3332)

add version dropdown for doc

* Bump github.com/spf13/cobra from 1.6.1 to 1.7.0

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](spf13/cobra@v1.6.1...v1.7.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump golang.org/x/text from 0.8.0 to 0.9.0

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.8.0...v0.9.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/ginkgo/v2 from 2.9.1 to 2.9.2

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.1 to 2.9.2.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.9.1...v2.9.2)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* 📖: Update multiversion-tutorial/deployment.md to enable CA injection when deploying webhook (#3328)

* Bump golang.org/x/tools from 0.7.0 to 0.8.0

Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.7.0...v0.8.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/gomega from 1.27.4 to 1.27.6

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.27.4 to 1.27.6.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.27.4...v1.27.6)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* remove multi arch node affinity patch from auth proxy

Signed-off-by: Nikhil Sharma <nikhilsharma230303@gmail.com>

* 📖 apply changes done in the pr 3287

* 📖 fix migration guide after go/v4 stabilization and links

* 📖 fix/update go/v4 plugin page doc after the stabilization

* 📖 fix kustomize-v2 index link and udated info accordingly

* 🌱 cleanup tests after go/v3 deprecation

* ✨ (API and go/v4): Upgrade go version to 1.20

* ✨ Upgrade image gcr.io/kubebuilder/kube-rbac-proxy

* 🐛 fix scaffold remove bintest dir from gitignore and dockerfile since this directory is not scaffolded

* ✨Change `NewBundle` method to build bundles through working with options (#3312)

* change NewBundle method to build bundles through working with options

Signed-off-by: Nikhil Sharma <nikhilsharma230303@gmail.com>

* make changes in docs for the changed pattern for NewBundleWithOptions func

Signed-off-by: Nikhil Sharma <nikhilsharma230303@gmail.com>

---------

Signed-off-by: Nikhil Sharma <nikhilsharma230303@gmail.com>

* ⚠️ (API) deprecate old func to create new BunlePlugin in favor of the new one which uses as arg BundleOptinos

* 🐛 fix name controllers test

* 🌱 added test for exec.go (#3352)

added test for exec.go

pass test cases

updated tests

updated tests

Revert "updated tests"

This reverts commit 7a465c0.

updated tests

Revert "added test for exec.go"

This reverts commit da172c4.

added exec tests

rerun suits stop

added test files

removed Test Plugin File

solved bugs

minor code changes

added license header

removed exec_test

added exec_tests finally

rebase commits

* fix: scaffold when no boilerplate file

* fix: only continue when fileNotFound

* ✨ (kustomize/v2,go/v4): Upgrade kustomize version from 5.0.0 to 5.0.1 (#3366)

* rm: header.hbs

* rm: header usage

* rm: header specific styles

* feat: update k8s version to 1.27.1

* fix: only update k8s version in go-v4

* ✨ allow container tool to be configured in Makefile

- This allows building with other container tools like podman. Keeps docker as the default.

Signed-off-by: Gabe Alford <redhatrises@gmail.com>

* ✨ (go/v4): Upgrade controller-tools from 0.11.3 to v0.12.0 (#3388)

* 🌱   Update cronjob-tutorial automatically (#3231)

* Bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.1

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.8.0...v2.8.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat: update cronjob-tutorial automatically

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 📖 update doc samples within the latest changes (#3392)

* doc: update go version to v1.20

* 🐛 (deployImage) fix controller tests implemented by removing unecessary code implementation

* feat: scaffold when lincense type none

feat: change the binaryPath when update tutorial

fix: revert const name

fix: current behavior

* Bump github.com/onsi/ginkgo/v2 from 2.9.2 to 2.9.4

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.2 to 2.9.4.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.9.2...v2.9.4)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* patchesStrategicMerge to Patches

* Update the Owner Allias accordinly

* Updated Makefile to support go install kustomize

* Update completion.md with fish shell instructions

* 📖 fix formatting in quick start

* Added link for cronjob tutorial

* chore: update go version for external plugin sample

* Bump github.com/onsi/ginkgo/v2 from 2.9.4 to 2.9.5

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.4 to 2.9.5.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.9.4...v2.9.5)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Added user prompt for doc

* Bump sigs.k8s.io/kubebuilder/v3

Bumps [sigs.k8s.io/kubebuilder/v3](https://github.com/kubernetes-sigs/kubebuilder) from 3.7.0 to 3.10.0.
- [Release notes](https://github.com/kubernetes-sigs/kubebuilder/releases)
- [Changelog](https://github.com/kubernetes-sigs/kubebuilder/blob/master/RELEASE.md)
- [Commits](v3.7.0...v3.10.0)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kubebuilder/v3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Added the test coverage for completion.go and version.go

* Quote download URL in quickstart docs

Copying and pasting the `curl` line in the installation docs conflicts with zsh (or perhaps oh-my-zsh), which incorrectly escapes parentheses. 

```sh
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH)
```

becomes:

```sh
curl -L -o kubebuilder https://go.kubebuilder.io/dl/latest/$\(go env GOOS)/$(go env GOARCH)
```

Which of course doesn't have the desired result and errors out.

Double-quoting the URL should ensure the interpolated shell commands have the desired outcome. Tested on zsh and bash.

* Bump github.com/onsi/gomega from 1.27.6 to 1.27.7

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.27.6 to 1.27.7.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.27.6...v1.27.7)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/sirupsen/logrus from 1.9.0 to 1.9.2

Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.0 to 1.9.2.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](sirupsen/logrus@v1.9.0...v1.9.2)

---
updated-dependencies:
- dependency-name: github.com/sirupsen/logrus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* ✨ (go/v4): Allows kubectl to be configured in Makefile

- This allows multiple different kubectl installs to be used.

Signed-off-by: Gabe Alford <redhatrises@gmail.com>

* Fixed manager_webhook_patch not uncommented

* doc: Fix multigroup migration guide for v4

Co-authored-by: Varsha <varshaprasad96@gmail.com>
Co-authored-by: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com>
Signed-off-by: Juan-Luis de Sousa-Valadas Castaño <jvaladas@mirantis.com>

* test: add e2e tests for sample external plugin

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

* ci: add a script to install sample external plugin

* move joelanford to emeritus

Signed-off-by: Joe Lanford <joe.lanford@gmail.com>

* Bump golang.org/x/tools from 0.9.1 to 0.9.3

Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.9.1 to 0.9.3.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.9.1...v0.9.3)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.9.7

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.5 to 2.9.7.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.9.5...v2.9.7)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix function name in comments

Signed-off-by: cui fliter <imcusg@gmail.com>

* Bump github.com/sirupsen/logrus from 1.9.2 to 1.9.3

Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.9.2 to 1.9.3.
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](sirupsen/logrus@v1.9.2...v1.9.3)

---
updated-dependencies:
- dependency-name: github.com/sirupsen/logrus
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* doc: fix path error

* ✨re-scaffold the project with a new command  (#3431)

* ⚠️ deprecate component config and no longer able to ensure that it is functioning as intended

* Bump golang.org/x/text from 0.9.0 to 0.10.0

Bumps [golang.org/x/text](https://github.com/golang/text) from 0.9.0 to 0.10.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.9.0...v0.10.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump github.com/onsi/gomega from 1.27.7 to 1.27.8

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.27.7 to 1.27.8.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.27.7...v1.27.8)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Raising event doc page created

* Bump github.com/onsi/ginkgo/v2 from 2.9.7 to 2.10.0

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.9.7 to 2.10.0.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.9.7...v2.10.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Changes done

* ✨ bump controller-runtime and K8s 1.27 (#3444)

* feat: make external plugin path configurable

Co-authored-by: Bryce Palmer <everettraven@gmail.com>

* 🌱 fix ci testdata gets outdated because go version and remove job to open PR

* 🌱 Bump nashmaniac/create-issue-action from 1.1 to 1.2

Bumps [nashmaniac/create-issue-action](https://github.com/nashmaniac/create-issue-action) from 1.1 to 1.2.
- [Release notes](https://github.com/nashmaniac/create-issue-action/releases)
- [Commits](nashmaniac/create-issue-action@v1.1...v1.2)

---
updated-dependencies:
- dependency-name: nashmaniac/create-issue-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump golang.org/x/tools from 0.9.3 to 0.10.0

Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.9.3 to 0.10.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.9.3...v0.10.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump github.com/onsi/ginkgo/v2 from 2.10.0 to 2.11.0

Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.10.0 to 2.11.0.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](onsi/ginkgo@v2.10.0...v2.11.0)

---
updated-dependencies:
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* (kustomize/v2) - deprecate component-config flag

* Adding checks to e2e tests to verify make manifest and generate command

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: jberkhahn <jaberkha@us.ibm.com>
Signed-off-by: Yash Singh <syash@vmware.com>
Signed-off-by: Varsha Prasad Narsing <varshaprasad96@gmail.com>
Signed-off-by: JenTing Hsiao <hsiaoairplane@gmail.com>
Signed-off-by: Nikhil Sharma <nikhilsharma230303@gmail.com>
Signed-off-by: Gabe Alford <redhatrises@gmail.com>
Signed-off-by: Juan-Luis de Sousa-Valadas Castaño <jvaladas@mirantis.com>
Signed-off-by: Joe Lanford <joe.lanford@gmail.com>
Signed-off-by: cui fliter <imcusg@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kubernetes Prow Robot <k8s-ci-robot@users.noreply.github.com>
Co-authored-by: Sajiyah Salat <109643863+Sajiyah-Salat@users.noreply.github.com>
Co-authored-by: Pal K. Klucsik <klucsik.krisztian@gmail.com>
Co-authored-by: Swastik_Gour <Sswastik959@gmail.com>
Co-authored-by: Eileen <48944635+Eileen-Yu@users.noreply.github.com>
Co-authored-by: jberkhahn <jaberkha@us.ibm.com>
Co-authored-by: Yash Singh <syash@vmware.com>
Co-authored-by: Eileen <eileenylj@gmail.com>
Co-authored-by: Varsha <varshaprasad96@gmail.com>
Co-authored-by: Tony (TianYi) <kavinjsir@gmail.com>
Co-authored-by: El Mehdi Rami <mehdi@httphub.io>
Co-authored-by: r3drun3 <simone.ragonesi@kiratech.it>
Co-authored-by: Tharun K <53267275+tharun634@users.noreply.github.com>
Co-authored-by: Bryce Palmer <everettraven@gmail.com>
Co-authored-by: Shubham Rajvanshi <shubhamrajvanshi9@gmail.com>
Co-authored-by: 晓杰 <87080562+xiao-jay@users.noreply.github.com>
Co-authored-by: JenTing Hsiao <hsiaoairplane@gmail.com>
Co-authored-by: atoato88 <akihito-inou@nec.com>
Co-authored-by: Jongwoo Han <jongwooo.han@gmail.com>
Co-authored-by: Steve Sklar <sklarsa@gmail.com>
Co-authored-by: Nikhil Sharma <nikhilsharma230303@gmail.com>
Co-authored-by: Pratik Mota <pratik@pratikmota.com>
Co-authored-by: Steve Sklar <steven@questdb.io>
Co-authored-by: zjx20 <zhoujianxiong2@gmail.com>
Co-authored-by: Yash Khare <yash2010118@akgec.ac.in>
Co-authored-by: yyy1000 <992364620@qq.com>
Co-authored-by: Ashutosh Jha <ashutoshj887@gmail.com>
Co-authored-by: Gabe Alford <redhatrises@gmail.com>
Co-authored-by: Kun Zhang <scuzk373x@gmail.com>
Co-authored-by: Chok Yip Lau <lauchokyip@gmail.com>
Co-authored-by: David Xia <david@davidxia.com>
Co-authored-by: James Turley <jamesturley1905@googlemail.com>
Co-authored-by: Juan-Luis de Sousa-Valadas Castaño <jvaladas@mirantis.com>
Co-authored-by: Joe Lanford <joe.lanford@gmail.com>
Co-authored-by: cui fliter <imcusg@gmail.com>
Co-authored-by: Shabir Mohamed Abdul Samadh <7249208+Shabirmean@users.noreply.github.com>
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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants