What's Changed
- Generate clients in clientset style by @ibuildthecloud in #1
- Change ObjectMeta to ListMeta by @ibuildthecloud in #2
- Don't use internal schema by @ibuildthecloud in #3
- apis to api if group is empty by @alena1108 in #4
- Random fixes by @ibuildthecloud in #5
- Enhance Move and add SetValue by @ibuildthecloud in #6
- Subcontext and mapping updates by @ibuildthecloud in #7
- Fix code generator by @ibuildthecloud in #8
- Updates by @ibuildthecloud in #9
- Fix imports by @ibuildthecloud in #10
- Add signal by @ibuildthecloud in #11
- Fix startup issues by @ibuildthecloud in #12
- Refactor types by @ibuildthecloud in #13
- Rename initialize to create by @ibuildthecloud in #14
- Properly namespace key on lookup by @cjellick in #16
- Generate backreference links by @ibuildthecloud in #17
- Enhancements by @ibuildthecloud in #18
- Actions tweaks by @cjellick in #19
- Multiple Fixes by @ibuildthecloud in #21
- Add event framework by @ibuildthecloud in #22
- add resourceLinkById by @StrongMonkey in #20
- Pass impersonation to k8s for C/U/D by @ibuildthecloud in #23
- Enable access control by @ibuildthecloud in #24
- Fix Do method by @ibuildthecloud in #25
- Add offspring controller by @ibuildthecloud in #26
- Fix compilation error by @ibuildthecloud in #27
- Various enhancements by @ibuildthecloud in #28
- Use CodeName in ranhcer client by @ibuildthecloud in #29
- Add field.cattle.io/creatorId to each resource by @ibuildthecloud in #31
- Add support for message field on condition by @cjellick in #30
- Various changes by @ibuildthecloud in #34
- Always set message on conditions by @cjellick in #32
- Stop the madness by @cjellick in #35
- Fix patch, namespace by @StrongMonkey in #33
- Various changes by @ibuildthecloud in #36
- Various changes by @ibuildthecloud in #37
- Handle time.Time to string conversion by @ibuildthecloud in #38
- return errors where appropriate by @cjellick in #39
- Fix update on secrets by @ibuildthecloud in #40
- change better format for finalizer by @StrongMonkey in #41
- API-UI 1.1.4 by @ibuildthecloud in #42
- api-ui v1.1.4 by @cjellick in #44
- Fix panic by @ibuildthecloud in #45
- DoUntilTrue condition function by @cjellick in #46
- Various updates by @ibuildthecloud in #47
- Special handling for endpoints plural name by @alena1108 in #43
- Allow namespaces to have finalizers by @cjellick in #49
- Set namespace and name on object always by @ibuildthecloud in #48
- Add name to handlers by @ibuildthecloud in #51
- Add suport for cluster scoped controllers by @cjellick in #52
- Various fixes by @ibuildthecloud in #53
- Put in stubs for dynamic access control on schemas by @ibuildthecloud in #54
- Fix generator for new access control by @ibuildthecloud in #55
- Cleanup channels by @ibuildthecloud in #56
- Changes to make conditions less chatty by @ibuildthecloud in #57
- Don't check for object in collection actions by @ibuildthecloud in #58
- don't return nonnullable error if default is set by @StrongMonkey in #59
- Add helper method by @ibuildthecloud in #60
- Various by @ibuildthecloud in #62
- fix json float parsing by @ibuildthecloud in #63
- DNS label validation by @alena1108 in #61
- Add CollectionFormatter by @ibuildthecloud in #64
- more collection action code by @cjellick in #65
- more collection action changes by @cjellick in #66
- don't validate empty string as DNS name by @ibuildthecloud in #67
- fix nil pointer exceptions by @StrongMonkey in #68
- Move gorouting dump handler to norman by @ibuildthecloud in #69
- Move gorouting dump by @ibuildthecloud in #70
- Fix scheme detection in URL by @ibuildthecloud in #72
- Fix typo by @ibuildthecloud in #73
- Dump standard goroutine also by @ibuildthecloud in #74
- Dump standard goroutine also by @ibuildthecloud in #75
- Fix standard dump by @ibuildthecloud in #76
- Fix panic when posting to / by @ibuildthecloud in #77
- Add notnullable attribute by @ibuildthecloud in #78
- Change RequestHandler signature by @ibuildthecloud in #80
- Add option to pass in CACerts for verification by @dramich in #81
- Better support for subtyping by @cjellick in #82
- Fix non-updating condition by @ibuildthecloud in #84
- Only record forgetError if there is no message at all by @ibuildthecloud in #86
- Add helper functions in norman by @ibuildthecloud in #87
- Feat: Added token support to clientbase auth by @rawmind0 in #85
- only update when obj is not nil by @StrongMonkey in #83
- Major refactor of subcontexts by @ibuildthecloud in #88
- Drop password fields from response by @ibuildthecloud in #89
- Make controller and client more generic by @ibuildthecloud in #90
- Fix a series of url parsing issues by @ibuildthecloud in #92
- If you hit /v3/projects/{ID}/schemas make sure schemas have correct URLs by @ibuildthecloud in #93
- 404 on schema not found by @ibuildthecloud in #94
- If map, don't encode by @ibuildthecloud in #95
- Options to transformer by @alena1108 in #96
- API error improvements by @cjellick in #97
- Add leader election wrapper by @ibuildthecloud in #98
- Marshal to default correct type by @ibuildthecloud in #99
- Translate field to annotation only when not nil by @alena1108 in #100
- Delete unused code by @ibuildthecloud in #101
- Transfrom fix by @alena1108 in #102
- More mappers by @ibuildthecloud in #103
- Add insecure flag, fix collection link, add yaml tag by @StrongMonkey in #91
- Index out of range fix in batchMove by @alena1108 in #104
- Default empty strings by @ibuildthecloud in #106
- Use escaped path for url parsing by @cjellick in #105
- Fix url escaping by @cjellick in #107
- Pass in schema to Filter/FilterList by @ibuildthecloud in #108
- Add ByID param so transformer to known by @ibuildthecloud in #109
- Change NewErrors signature by @ibuildthecloud in #110
- Change defaulting logic by @ibuildthecloud in #111
- Forgot to assign value by @ibuildthecloud in #112
- Support parsing the body of actions by @cjellick in #115
- Add IsConflict to httperror by @nathan-jenan-rancher in #113
- fix list link for cluster type by @StrongMonkey in #114
- Allow types that start with cluster or project by @ibuildthecloud in #118
- Add schema to Transformer funcs by @ibuildthecloud in #119
- Add some debug logging to see churn by @ibuildthecloud in #120
- Add Required mapper by @ibuildthecloud in #121
- Make ints not nullable by default by @ibuildthecloud in #122
- Ignore for nullable enums by @ibuildthecloud in #123
- actionLinkByID by @kinarashah in #116
- Preserve selfLink in data by @ibuildthecloud in #124
- Add ability to generate collection actions by @dramich in #125
- Refactor access control to return error not bool by @ibuildthecloud in #126
- Update CanList API by @ibuildthecloud in #127
- Try three times to remove finalizer by @ibuildthecloud in #128
- Update generator to handle collection as an output by @dramich in #129
- Add timeouts to rest clients by @ibuildthecloud in #130
- Add CollectionAction and update template to use collections by @dramich in #131
- Move ObjectClient to different package by @ibuildthecloud in #132
- Add namespace indexer to controllers by @ibuildthecloud in #133
- Check for cluster name in annotations by @kinarashah in #134
- Add interface for APIBaseClient by @dramich in #136
- Fix 204 on DELETE by @ibuildthecloud in #135
- Do not embed map if empty by @alena1108 in #138
- Namespace/name presence validation by @alena1108 in #137
- Allow filtering of dnsLabel fields by @ibuildthecloud in #139
- Add function to generate names by @ibuildthecloud in #140
- Drop number prefix in IDs by @ibuildthecloud in #141
- Add Create to access by @ibuildthecloud in #143
- Add copy mapper by @ibuildthecloud in #144
- Fix deleting keys in maps by @ibuildthecloud in #145
- Allow changing annotation and label fields by @ibuildthecloud in #146
- Don't consider nil values when merging by @ibuildthecloud in #147
- Add CanDo function to AccessControl interface by @cjellick in #148
- make url error logging prettier by @cjellick in #152
- Move watch sharing to norman by @ibuildthecloud in #151
- Fix logic for setting annotation based fields by @cjellick in #150
- Update action generation code by @dramich in #149
- Update doAction to not expect a response by @dramich in #153
- Check namespace for clusterName by @ibuildthecloud in #156
- Make leader election have leader callback by @ibuildthecloud in #158
- Use a getID function instead of using hostname by @orangedeng in #159
- Revert "Use a getID function instead of using hostname" by @ibuildthecloud in #161
- Revert "Make leader election have leader callback" by @ibuildthecloud in #163
- Filter on defaults by @nathan-jenan-rancher in #160
- Adding error if not a pointer by @nathan-jenan-rancher in #155
- Add hostname tag and fix dnsLabel validation issue by @zionwu in #164
- add yaml support by @StrongMonkey in #165
- Changes to Mapper embed to insert nil value if applicable for a schema field by @prachidamle in #169
- Support for backend types by @cjellick in #170
- DnsLabelRestricted type to validate against RFC 1035 by @alena1108 in #168
- Use logrus to log errors and panics by @cjellick in #173
- Fix pagination by @dramich in #171
- Include namespace to not found msg by @alena1108 in #172
- Update k8s vendor to 1.10.5 by @alena1108 in #174
- A lot of little changes by @ibuildthecloud in #175
- Add type before and after by @ibuildthecloud in #176
- API-UI 1.1.5 by @loganhz in #177
- Update template to include created label by @dramich in #178
- Default to noop metric provider by @cloudnautique in #179
- More little changes by @ibuildthecloud in #180
- Fallback to custom decoder by @ibuildthecloud in #182
- use background delete by @StrongMonkey in #181
- return on first try if err is not conflict by @kinarashah in #183
- Don't strip strings on output by @ibuildthecloud in #184
- Pluggable Drivers by @nathan-jenan-rancher in #185
- Revert "Don't strip strings on output" by @cjellick in #188
- add method to compare if error has tmp file path by @StrongMonkey in #187
- Revert changes to template for controllers by @dramich in #190
- Log forget error in debug by @alena1108 in #186
- Add label to objects created through norman by @dramich in #192
- Drop Config from ClientGetter interface by @ibuildthecloud in #193
- Revert "Revert "Don't strip strings on output"" by @nathan-jenan-rancher in #194
- Enable filter namespaces on server side by @antmanler in #191
- Return proper v1.Status error, not masking marshaling error by @ibuildthecloud in #197
- Ensure that closed watchers are always stopped by @maxkorp in #198
- Add dynamic field to field struct by @nathan-jenan-rancher in #189
- Random changes by @ibuildthecloud in #199
- Switch to go 1.11 and modules by @ibuildthecloud in #200
- Allow to put Reason in controller.ForgetError by @ukinau in #203
- Random by @ibuildthecloud in #204
- Enable fine-grained control for Controller related metrics by @ukinau in #201
- Add Generic Controller Related Metrics by @ukinau in #202
- Add support for k8s 1.12 by @ibuildthecloud in #205
- After failing to remove finalizer refresh finalizer list by @ibuildthecloud in #206
- Move packages from rancher/rancher to norman by @ibuildthecloud in #207
- Fix k3s issues by @ibuildthecloud in #208
- Handlers return object and error by @ibuildthecloud in #211
- Update vendor by @ibuildthecloud in #212
- Generator and build cleanup by @ibuildthecloud in #213
- [2.2]Dynamically response the JS and CSS of API UI by @orangedeng in #209
- Remove hard dependency on k3s by @ibuildthecloud in #214
- Remove circular dep to rancher/rancher by @ibuildthecloud in #215
- Fix broken windows agent by @ibuildthecloud in #216
- Update readme to refer to go-skel by @ibuildthecloud in #217
- Switch handler return type to runtime.Object by @ibuildthecloud in #219
- Fix no_etcd and k3s by @ibuildthecloud in #220
- Random fixes by @ibuildthecloud in #221
- Add float support for Rancher API by @orangedeng in #223
- Add support for Uint64 by @ibuildthecloud in #228
- List and Get retry logic by @cjellick in #227
- avoid unnecessary allocation by @cjellick in #230
- New client style by @ibuildthecloud in #226
- Fix bugs in lifecycle by @ibuildthecloud in #232
- Drop revision check for lifecycle update by @ibuildthecloud in #233
- Add a flag to make leaderelection loooong by @dramich in #236
- Add default value to float type by @aiwantaozi in #237
- Various by @ibuildthecloud in #234
- Fix issues in patch generation by @ibuildthecloud in #238
- Change log level by @ibuildthecloud in #239
- Fix embed mapper ignore list not working by @orangedeng in #241
- Add ratelimiting to objectset apply by @ibuildthecloud in #242
- Allow discovery of API clients by @ibuildthecloud in #243
- don't compare inputid by @StrongMonkey in #244
- MinLength verification bug fix by @alena1108 in #245
- Fix bug that doesn't print errors by @ibuildthecloud in #246
- Log panics as error by @cjellick in #250
- Fix concurrent map read/write by @cjellick in #252
- Adding ability to replace schemas by @nathan-jenan-rancher in #249
- Add Frame-Options header by @dramich in #255
- Adding code to address aks timeout issue by @nathan-jenan-rancher in #254
- Assign bearer token to InClusterConfig by @ibuildthecloud in #257
- Drone 1 update syntax by @drpebcak in #260
- ensure resp.Body closed by @xmh19936688 in #264
- Fix DoModify crashing on nil objects by @Mikulas in #259
- Add no pagination option by @rmweir in #270
- Track namespaces in options property by @rmweir in #266
- Fix listing by @guilhem in #273
- Generate fakes for controllers by @dramich in #268
- Fix file name for mocks by @dramich in #275
- Record cluster scoped handlers by @daxmc99 in #277
- Add IsNotFound error check by @rmweir in #278
- Update dev envvar by @dramich in #265
- Do not wrap a wrapped schema store by @gitlawr in #271
- set secure for CSRF cookie by @kinarashah in #280
- Update dev mode env var to CATTLE_DEV_MODE by @dramich in #282
- Refactor set of cluster scoped handlers by @daxmc99 in #287
- Add enable function to schema and addFeature functions by @rmweir in #289
- Configure HandshakeTimeout in websocket.Dialer by @ukinau in #291
- Pass delete options in proxy store by @gitlawr in #293
- Switch to go modules by @ibuildthecloud in #297
- Disable servicelb and enable scheduler by @ibuildthecloud in #298
- Change Error to Errorf by @daxmc99 in #299
- Global rolebindings garabage collection by @daxmc99 in #300
- improve web socket error logging by @luthermonson in #301
- Fix error shadowing by @daxmc99 in #286
- response nil check by @luthermonson in #302
- Remove remotedialer by @daxmc99 in #304
- Log etcd output by @ibuildthecloud in #306
- k8s 1.16 by @kinarashah in #308
- check for v1.Status from errorReporter by @kinarashah in #311
- show only err msg on watch by @kinarashah in #313
- Add ListNamespaced method for ObjectClient by @nanorobocop in #318
- [Forwardport] 2.4: Add unauthorized error check by @rmweir in #322
- Update to add additional metrics by @dramich in #310
- change loglevel for watcher err by @kinarashah in #319
- Fix goroutine leak on failed sync() or before by @ibuildthecloud in #324
- Use original crd if already exists by @nanorobocop in #309
- Update controller to allow adding handlers after controller is running by @dramich in #332
- Update to k8s v1.17.0 by @ibuildthecloud in #334
- Make 1.17 behave like 1.16 to avoid ratelimiting by @ibuildthecloud in #335
- Move session metrics to remotedialer by @dramich in #336
- Use kubernetes to generate names by @dramich in #337
- Add generic broadcaster by @ibuildthecloud in #338
- Move ratelimit to wrangler by @ibuildthecloud in #339
- k3s options update by @brendarearden in #333
- Add ability to add handlers transactionally across controllers by @ibuildthecloud in #340
- Add EnqueueAfter by @ibuildthecloud in #341
- Proxy Support by @jordanjean in #329
- Don't rate limit the sync of handlers by @ibuildthecloud in #342
- Added ListAll function on types_template.go to depaginate results on collection by @rawmind0 in #343
- Fix ListAll function on types_template.go to depaginate results on collection by @rawmind0 in #344
- Make URL parsing logic match steve by @ibuildthecloud in #346
- Refactor k8s startup to return ClientConfig by @ibuildthecloud in #345
- Fix non-Linux build by @ibuildthecloud in #347
- Fix x-api-host when setting ports by @ibuildthecloud in #348
- CSRF Cookie fixes by @vincent99 in #349
- Performance enhancement by using strings.Builder or bytes.Buffer by @ibuildthecloud in #352
- Update cluster_check to use interface if available by @dramich in #353
- CRD creation should return error by @ibuildthecloud in #354
- Move debug log to trace by @superseb in #355
- Add programmatic expiration of access control by @ibuildthecloud in #356
- Expire RBAC cache earlier on watches by @ibuildthecloud in #357
- Update to k8s 1.18 by @ibuildthecloud in #358
- Sync URL parsing with Steve by @ibuildthecloud in #360
- Rebase on lasso by @ibuildthecloud in #363
- Change context in realWatch by @rmweir in #370
- Updates to make rancher/types move work by @ibuildthecloud in #372
- Updates to generator to improve speed by @ibuildthecloud in #373
- Support unwrapping errors to find httperror.APIError by @ibuildthecloud in #374
- Move k8scheck to wrangler by @ibuildthecloud in #375
- Increase timeouts for etcd by @ibuildthecloud in #378
- Rename blacklist to skipNames by @ibuildthecloud in #380
- Differentiate between empty and nil arrays by @rmweir in #382
- Set creator field again from norman by @ibuildthecloud in #381
- Ensure controller is scoped to namespace by @ibuildthecloud in #383
- Ensure namespaced scoped listers default to the correct namespace by @ibuildthecloud in #384
- Don't filter out nil objects by @ibuildthecloud in #385
- k3s disable agent removal by @cbron in #386
- Enable coredns in k3s by @cbron in #387
- Fix local node name to "local-node" by @ibuildthecloud in #388
- JSON encode schemas URL passed to html template by @ibuildthecloud in #389
- Add self link mapper by @StrongMonkey in #392
- Fix self link by @StrongMonkey in #393
- Use lower name by @StrongMonkey in #395
- Set x-frame-options to sameorigin by @ibuildthecloud in #397
- Add 'nullablestring' field type by @cmurphy in #398
- Adding impersonate-extra headers to request by @prachidamle in #396
- Log k3s server logs to file by @StrongMonkey in #399
- Use norman:"pointer" for nullable fields by @cmurphy in #400
- Updated to use v1 API for CustomResourceDefinition by @snasovich in #401
- [2.5.11] Added typer to store by @paynejacob in #402
- [2.6] Start k3s with embedded etcd by @a-blender in #406
- Stop ignoring id fields for sub-schemas by @thedadams in #407
- Fix DeleteOption encoding errors for norman api by @niusmallnan in #408
- Fix doSchema lock issue by @takmatsu in #403
- Dependencies bumps by @macedogm in #410
- Remove controller metrics by @rmweir in #412
- [Forwardport] v2.6: Only update change by @rmweir in #413
- updated cookie token size by @KevinJoiner in #414
- Update Deprecated comment in controller template by @jakefhyde in #416
- update k8s to v1.24 by @kinarashah in #417
- enable fossa scanning by @paraglade in #409
- EIO-1168: Ignore FOSSA failures by @oxr463 in #421
- Updated dapper files by @steffantucker in #418
- Support K8s 1.25 by @jiaqiluo in #422
- [Forwardport] v2.7: Add ability to copy controller and add useragent by @rmweir in #424
- Update wrangler to v1.1.0 by @rmweir in #425
- Added logs to cluster extraction by @rmweir in #428
- Bump API-UI version by @macedogm in #431
- Add initial Renovate configuration by @renovate-rancher in #429
- Security bumps and remove unsued Dockerfile by @macedogm in #447
- Update module golang.org/x/tools to v0.12.0 by @renovate-rancher in #444
- Update module github.com/matryer/moq to v0.3.2 by @renovate-rancher in #441
- Update module github.com/gorilla/websocket to v1.5.0 by @renovate-rancher in #440
- Update dependency golangci/golangci-lint to v1.54.0 by @renovate-rancher in #439
- Update module github.com/rancher/wrangler to v1.1.1 by @renovate-rancher in #437
- Update k8s.io/gengo digest to ab3349d by @renovate-rancher in #435
- Update module github.com/sirupsen/logrus to v1.9.3 by @renovate-rancher in #442
- Update gomod-k8sio-dependencies to v0.25.12 by @renovate-rancher in #436
- Update module github.com/stretchr/testify to v1.8.4 by @renovate-rancher in #438
- Update github.com/rancher/lasso digest to a86ba6c by @renovate-rancher in #434
- Remove dump pkg by @cmurphy in #450
- updated deps for k8s-1.27.4 by @vardhaman22 in #448
- replace deprecated wait.Poll with wait.PollUntilContextTimeout by @vardhaman22 in #457
- [v1.28] Bump dependencies to support k8s 1.28 | Update wrangler to wrangler/v2 by @chiukapoor in #466
- [2.9] Fixes by @pmatseykanets in #476
- Add codeowners file by @JonCrowther in #480
- Update registry.suse.com/bci/golang Docker tag to v1.22 by @renovate-rancher in #465
- Update dependency golangci/golangci-lint to v1.57.1 by @renovate-rancher in #451
- Dependency bumps by @tomleb in #482
- Bump wrangler to v2.2.0-rc1 by @tomleb in #485
- Run go test in CI by @tomleb in #477
- Update dependency golangci/golangci-lint to v1.57.2 by @renovate-rancher in #486
- Update module github.com/rancher/wrangler/v2 to v2.2.0-rc3 by @tomleb in #492
- Support setting proxy url in client opts by @sboschman in #453
- Downgrade prometheus to v0.16.0 by @tomleb in #494
- [v1.29] Bump dependencies to support k8s 1.29 by @krunalhinguu in #497
- Migrate to GHA by @tomleb in #505
- Stop using the gengo package. by @ericpromislow in #499
- k8s 1.30 dependencies updated by @vardhaman22 in #511
- Update module github.com/rancher/wrangler/v3 to v3.0.0 by @renovate-rancher in #514
- Change the base branch from "master" to "main" in renovate config by @maxsokolovsky in #516
- Update module golang.org/x/sync to v0.8.0 by @renovate-rancher in #518
- [v1.31] Bump dependencies to support k8s 1.31 by @krunalhinguu in #520
- Create release on tag push by @tomleb in #526
New Contributors
- @StrongMonkey made their first contribution in #20
- @rawmind0 made their first contribution in #85
- @nathan-jenan-rancher made their first contribution in #113
- @zionwu made their first contribution in #164
- @prachidamle made their first contribution in #169
- @loganhz made their first contribution in #177
- @cloudnautique made their first contribution in #179
- @antmanler made their first contribution in #191
- @maxkorp made their first contribution in #198
- @ukinau made their first contribution in #203
- @aiwantaozi made their first contribution in #237
- @xmh19936688 made their first contribution in #264
- @Mikulas made their first contribution in #259
- @guilhem made their first contribution in #273
- @gitlawr made their first contribution in #271
- @nanorobocop made their first contribution in #318
- @brendarearden made their first contribution in #333
- @jordanjean made their first contribution in #329
- @vincent99 made their first contribution in #349
- @superseb made their first contribution in #355
- @cmurphy made their first contribution in #398
- @snasovich made their first contribution in #401
- @a-blender made their first contribution in #406
- @thedadams made their first contribution in #407
- @niusmallnan made their first contribution in #408
- @takmatsu made their first contribution in #403
- @jakefhyde made their first contribution in #416
- @paraglade made their first contribution in #409
- @oxr463 made their first contribution in #421
- @steffantucker made their first contribution in #418
- @jiaqiluo made their first contribution in #422
- @vardhaman22 made their first contribution in #448
- @JonCrowther made their first contribution in #480
- @sboschman made their first contribution in #453
- @krunalhinguu made their first contribution in #497
- @ericpromislow made their first contribution in #499
- @maxsokolovsky made their first contribution in #516
Full Changelog: https://github.com/rancher/norman/commits/v0.5.0