Skip to content

Conversation

@avifence
Copy link

This PR contains quite a bit, and is not fully finished. At the very least I either want to lock away the event hook functionality behind a feature gate, finish a base implementation, or throw it away entirely before this is merged. But seemed worth while to go ahead and open the PR so you can see the direction I went with some things. I'm thinking the tenancyKind API change I mentioned could either get added into this branch or maybe on a separate PR.

The reason so many files are "changed" is that the latest operator-sdk switched to using go modules instead of vendoring dependencies. So the entire vendor directory has been removed in this PR. Kind of ruins the Github experience lol.

Here is a brief mile-high overview of the changes so far in this branch:

  • Upgrade operator-sdk to latest version (0.15.2)
  • Add development/ci helpers and a Makefile
  • Replace static manifests with helm chart
  • Rework multitenancy/tenant controllers to work in the context of single CRs
  • Break some larger components into utility packages
  • Add a validating webhook for tenant resources. The version info can also be queried through it.
  • Include git commit in operator binary when built through makefile/ci
  • Experimental (WIP) event hook implementation
  • Remove vendor as no longer needed with go module support

One extra thing I'm curious about. We talked about not wanting to place owner references on the Tenant objects to avoid accidental deletion when a MultiTenancy gets deleted. But if I'm understanding the code currently (and what is still implemented on this branch) is the "cleanup" that happens at the end of a MultiTenancy reconcile will remove pods and configmaps for just that reason. So while the Tenant will not get deleted, the pods and configmaps will be in a deletion loop until the MultiTenancy object is recreated. Do we want to maybe adjust this behavior as well?

- add development helpers and makefile
- replace static manifests with helm chart
- rework multitenancy/tenant controllers to work in the context of 
single CRs
- break larger components into utility packages
- add a validating webhook for tenant resources
- Include git commit in operator binary when built through makefile/ci
- experimental (WIP) event hook implementation.
- remove vendor as no longer needed with go module support
…me helper

- remove extra error check for serving cr metrics
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant