Skip to content

Commit

Permalink
Recreate the operator using the current SDK
Browse files Browse the repository at this point in the history
This is the PR for submariner-io#81

Signed-off-by: Stephen Kitt <[email protected]>
  • Loading branch information
skitt committed Apr 11, 2022
1 parent f72e552 commit 4226666
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions submariner-operator/issue-81-operator-rework.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
## Epic Description

The operator was built using an old version of the
[Operator SDK](https://sdk.operatorframework.io/docs/building-operators/golang/quickstart/).
This causes a number of problems:

* our code (in particular, metrics setup) relies on an old version of the Operator framework,
which is incompatible with current versions of the Kubernetes libraries
* we’re missing out on features supported by newer versions of the SDK (such as healthchecks)

We need to upgrade our operator to use the current Operator SDK, following
[the migration guide](https://sdk.operatorframework.io/docs/building-operators/golang/migration/).

This work will be easier once `subctl` is in its own repository; see
[Epic: Move subctl to its own repo](https://github.com/submariner-io/enhancements/issues/89).
Without this work, a non-negligible amount of time would probably go into avoiding `subctl`
breakage while reworking the operator itself.

## Acceptance Criteria

All our end-to-end tests pass with the new operator.

## Definition of Done (Checklist)
<!-- Make sure to check all relevant items before end of the release: -->

* [ ] Code complete
* [ ] The acceptance criteria met
* [ ] Unit/e2e test added & pass
* [ ] CI jobs pass
* [ ] Deployed using cloud-prepare+subctl
* [ ] Run subctl verify, diagnose and gather
* [ ] Uninstall
* [ ] Troubleshooting (gather/diagnose) added
* [ ] Documentation added
* [ ] Release notes added

## Work Items

* [ ] Create a new operator using the Operator SDK, preserving our existing group and identifiers
* [ ] Integrate the existing controllers into the new framework.
* [ ] Make sure the setup work done in our code is replicated in the new framework:
* [ ] Remove code which takes care of features supported elsewhere (metrics)
* [ ] Determine how to handle unorthodox features in our code (CRD setup; see the addon for inspiration)

0 comments on commit 4226666

Please sign in to comment.