Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Migrate to kube_codegen.sh * Migrate to reconciliation loop using controller-runtime (#208) * Setup optional controller-runtime manager in main Removes the kubeconfig flag and instead uses ctrl.RegisterFlags(fs) and ctrl.GetConfig(). The controller-runtime currently registers the kubeconfig flag, which lead to a redefined flag error when registering it again. * Add update permissions for resource finalizers * Add envtest to Makefile This is based on the Makefile of an operator-sdk based project. * Update test to include envtest and run the internal/controller test suite * Add account, consumer and stream controller stubs to be implemented Controllers and tests are based on files generated by operator-sdk. Adds a minimal test suite for the controllers with a etcd test env and a test nats jetStream server to test against. * Add logs to Reconcile functions * Add internal/controller to jetstreamSrc * Register account, consumer and stream reconcilers * Add jsClient to test suit variables * Remove format from log string * feat(controller-runtime): Implement stream controller (#211) * Add account, consumer and stream controller stubs to be implemented Controllers and tests are based on files generated by operator-sdk. Adds a minimal test suite for the controllers with a etcd test env and a test nats jetStream server to test against. * Add logs to Reconcile functions * Add jsClient to test suit variables * Remove format from log string * Make upsertCondition public to be used in new controllers * Implement basic cases for stream reconciliation See TODOs on what still needs to be implemented. * refactor to use shared base controller * Support jetstream connection options in stream spec * implement stream deletion * update observedGeneration of status * check Spec.PreventDelete before stream deletion * remove base js client Use a single use client on every connection. This should be replaced by a client pool in the future. * move asJsonString to jetstream_controller * check namespace read only and prevent update mode * Update comments and log * Fix test docs and check precondition * Add preventUpdate test cases * Add tests for read-only or namespace restricted mode * fix empty ca when no ca set Setting CAs: []string{*ca} resulted in []string{""} when no CA was set, leading to an error when creating clients. * simplify error message * fix error loop when the underlying stream was deleted * refactor each phase into separate method * Fix errors during parallel reconciliation & Refactor tests - Trigger only on generation changes - Split initialization and create into separate calls to Reconcile * make test description strings more uniform * Update docs and log messages * extract configuration to buildNatsConfig method * fix checking for preventDelete in the update step Instead check for preventUpdate. Introduced during refactor. * fix k8s binaries not downloaded for tests * add /bin to gitignore * rename stream helper functions Prefix with stream to prevent conflict with other resources. * update naming as suggested * fix assumed reason in log message * Update todo comments marked with review - Add note on opts.Account - Add comment on possible feature to expose TLSFirst in the spec. * separate CA config from client cert and key * set streamName and consumerName fields once on logger Reword log messages. * feat(controller-runtime): Add consumer controller (#212) * implement consumerSpecToConfig * implement consumer resource initialization * implement consumer update/creation * implement preventUpdate, readonly and namespace restrictions Checks for the PreventUpdate or readonly mode during creation/update. Skips reconciliation when resource is in namespace not matching restriction. * test consumer creation on alternative server * implement consumer deletion * handle deletion when the underlying stream was deleted * add missing GenerationChanged event filter to consumerReconciler * update logging Set streamName and consumerName fields once. Reword log messages. * feat(controller-runtime): Add keyvalue store spec and controller (#215) * Bump helm/kind-action from 1.10.0 to 1.11.0 (#213) Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.10.0 to 1.11.0. - [Release notes](https://github.com/helm/kind-action/releases) - [Commits](helm/kind-action@v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: helm/kind-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump helm/kind-action from 1.11.0 to 1.12.0 (#214) Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.11.0 to 1.12.0. - [Release notes](https://github.com/helm/kind-action/releases) - [Commits](helm/kind-action@v1.11.0...v1.12.0) --- updated-dependencies: - dependency-name: helm/kind-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * * Formatting * Add initial definitions for KeyValue store * Deps * Fix test * Add KeyValue controller * Add KeyValue tests * Update PreventUpdate behavior * Minor error handling change --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add initial object store types. Update Stream config and reorg to keep in-line with nats client. * Add ObjectStore tests and remaining options * Add test for sealed stream option * Add Account Controller (#224) * Add explicit Scheme field to Reconciler structs to better match convention * Update spec to assume consumer field 'Name' over deprecated 'DurableName' * Add account controller and support for account CRD auth config * Update CRDs. Slight change to connection options * Namespace and error handling improvements * Improve deleted log message * Namespace fix * Add check for removed Push Consumer options * Revert consumer name change * Add InactiveThreshold parsing * Fix test * Add Watch for Account resource changes to trigger reconcile of dependent resources. Improve connection opts handling * Add actual/desired state comparison for stream/consumer to avoid unnecessary update calls. Corrected ready state * Fix duplicate resource tracking * Improve config comparison logic * Add flags for sync interval and cache directory * Add back generation changed filter. Move finalizer add to after deletion check. * Rework Reconcile scheduled sync * Deps * Create configured cache dir if DNE * Move stream controller to jsm.go for pedantic mode * Move consumer controller to jsm.go for pedantic mode * Remove debug log entry * deps * Improve connection config priority. Add missing option from consumer CRD. * Deps. Fix placement config enforcement * Bump jsm.go. Fix typo * Log diff on resource update * Improve README. Modernize examples. * Avoid excess disk writes to cache directory. README tweaks. --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Adrian <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Loading branch information