1
0
mirror of https://github.com/rancher/steve.git synced 2025-05-11 17:34:24 +00:00
Commit Graph

595 Commits

Author SHA1 Message Date
renovate-rancher[bot]
9d0ab57ffb
chore(deps): update module modernc.org/sqlite to v1.37.0 2025-05-10 04:39:05 +00:00
Alejandro Ruiz
ea01a40c8d
Refactor HelmData formatter to avoid importing helm dependencies ()
* Small refactor in tests

* Small refactor around decoding

* Refactor decodeHelm3 so we can drop the helm dependency

* Vendor helmv2 protobuf types so we can drop the helmv2 old dependency

* go mod tidy

* Add test with sample HelmV2 data
2025-05-09 09:41:26 -07:00
Chad Roberts
57da759db1
Include namespace-specific permission in schemas ()
* Update formatter signature to use the interface to facilitate using a fake for testing
* Add a few unit tests
* Avoid adding empty perms to permissions map
2025-05-08 05:42:35 -04:00
Peter Matseykanets
9121a52d5d
Respect CreateOptions in ext.CreateOrUpdate () 2025-05-05 13:44:51 -04:00
Eric Promislow
e3b881f13a
Add context to the remotedialer ping logger - steve side. ()
* Add context to the remotedialer ping logger - steve side.

* Use a custom type as a context key instead of a basic string

* Bump remotedialer so it can use the configured context.
2025-04-29 11:24:31 -07:00
Eric Promislow
57ce685118
Sort-indirect PR broken into smaller parts: part 3/6 - pass listOptions by reference ()
* Move types related to list options and sql queries into their own package.

The problem having these in the informer package is that eventually code
in other packages will need to import `informer` only for constants or types,
but some members of the informer package may already depend on those. Best to
move type definitions into their own simpler package.

* Fix the ListOptions sort field.

Instead of making it a single array-ish field, convert it into a
true array of Sort Directives.  Easier to read, less bending backwards.

* Pass the listOptions struct by reference to avoid copying.

We never update the ListOptions struct once it's created so there's
no need to pass it by value.

This might be a near-useless optimization...
2025-04-25 11:19:34 -07:00
Eric Promislow
89268ba86b
Sort-indirect PR broken into smaller parts: part 2/6 - fix the Sort part of ListOptions ()
* Move types related to list options and sql queries into their own package.

The problem having these in the informer package is that eventually code
in other packages will need to import `informer` only for constants or types,
but some members of the informer package may already depend on those. Best to
move type definitions into their own simpler package.

* Fix the ListOptions sort field.

Instead of making it a single array-ish field, convert it into a
true array of Sort Directives.  Easier to read, less bending backwards.

* Rebasing (or human error) duplicated 'NewSortList'.
2025-04-25 10:15:20 -07:00
Eric Promislow
2b227dbd22
Move types related to list options and sql queries into their own package. ()
The problem having these in the informer package is that eventually code
in other packages will need to import `informer` only for constants or types,
but some members of the informer package may already depend on those. Best to
move type definitions into their own simpler package.
2025-04-25 09:11:09 -07:00
renovate-rancher[bot]
392a95f753
chore(deps): update module github.com/rancher/dynamiclistener to v0.6.2 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-04-23 16:35:55 -07:00
renovate-rancher[bot]
83cf2ac76f
chore(deps): update module helm.sh/helm/v3 to v3.17.2 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-04-22 13:20:22 -07:00
Sakala Venkata Krishna Rohit
2f12b40974
Add log message to log the error from http client () 2025-04-11 13:09:34 -07:00
Sakala Venkata Krishna Rohit
da9bc2a114
Update urfave/cli to v2 () 2025-04-08 12:46:32 -07:00
Sakala Venkata Krishna Rohit
5ae8585e5d
Fix namespace access control in steve ()
* Fix adding namespace resource access

* Add tests for addResourceAccess func
2025-04-07 17:40:43 -07:00
Tom Lebreux
e1061a86cd
Update branch ()
* Update branch

* Update norman and apiserver to v0.6.0
2025-03-18 11:36:01 -04:00
Tom Lebreux
b29f7d505c
Reapply "Fix not finding ClusterRoleBinding or RoleBinding for service account…" () ()
This reverts commit 53f2165aee.
2025-03-14 11:52:28 -04:00
Tom Lebreux
53f2165aee
Revert "Fix not finding ClusterRoleBinding or RoleBinding for service account…" ()
This reverts commit 0f4fd1fde6.
2025-03-11 11:14:21 -04:00
Tom Lebreux
0f4fd1fde6
Fix not finding ClusterRoleBinding or RoleBinding for service accounts () 2025-03-10 13:35:01 -04:00
Eric Promislow
f486902100
Add support for another field: ()
provisioning.cattle.io.clusters\
metadata.annotations[provisioning.cattle.io/management-cluster-display-name]

Needed to add another character to the subfieldRegex in
listoption_indexer to allow hyphens in annotation field names.
2025-03-05 12:53:59 -08:00
Eric Promislow
2f331b1a1a
Ensure complex accessors from schema don't result in double-bracketing. () 2025-03-04 09:52:35 -08:00
Eric Promislow
2711fd1f46
Added more fields - part 6. ()
* Added more fields - part 6.

* Tweaks needed to get 'batch.cronjobs' working

* Add a clarifying comment on pulling values out of an array.

* Use the correct capitalization for the etcd-snapshot kind.
2025-03-04 09:31:21 -08:00
Eric Promislow
0edba0da3e
Sort labels ()
* Support sorting on metadata.labels.NAME

The key to doing this is if we want to sort on, say, `metadata.labels.foo`, we need to
search for all rows with a label of the name `foo` in all the various
join tables we create for each label the query references.

We ignore nulls by giving them lowest priority using "NULLS LAST"
("NULLS FIRST" if sorting in descending order).

* Ensure labels that are mentioned only in sort params are still selected.

If we don't do this -- say we sort on metadata.labels.foo but never
make a test on it, the sort resuilts are ignored.

* Remove extraneous debugger statements.
2025-03-04 09:30:14 -08:00
renovate-rancher[bot]
a85993129e
chore(deps): update module modernc.org/sqlite to v1.36.0 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-27 17:10:58 -05:00
Eric Promislow
3b45729415
Generate field names with brackets when needed. ()
* Generate field names with brackets when needed.

* Stop hard-wiring complex selectors as `["field1", "field2[sub-field3]"]`

and instead represent them as a more consistent `["field1", "field2", "sub-field3"]`

* Convert all filter strings ending with square brackets to an array.

Stop special-casing 'metadata.labels[X]' and handle any query string that ends with '[...]'.

* Stop checking for pre-bracketed terms in constant field-accessor arrays.

In this commit we stop converting string arrays like
`["metadata", "labels[k8s.io/deepcode]"]` into the database field
`"metadata.labels[k8s.io/deepcode]"` and instead will do a
naive `join` to give `metadata[labels[k8s.io/deepcode]]`.  The solution
is to never express the above terms in separate fields, like
`["metadata", "labels", "k8s.io/deepcode"]`. This also better reflects
the stucture of the referenced object.

* gofmt changes

* Simplify comment about 'smartJoin'.
2025-02-25 10:39:29 -08:00
Sakala Venkata Krishna Rohit
527d44a3a7
Bump golang lint () 2025-02-24 09:51:38 -08:00
renovate-rancher[bot]
078ddfe47d
chore(deps): update module github.com/rancher/saml to v0.4.14 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-23 10:59:59 -08:00
Sakala Venkata Krishna Rohit
0c73b199be
Update renovate.json to ignore packages ()
* Rancher 2.7 is EOL, so removing release/v0.1

* Ignore dependencies for steve renovate

* Ignore major, minor bumps of rancher deps

* test
2025-02-21 10:37:19 -08:00
Eric Promislow
c906c36bc3
support unwatchables in vai ()
* Create and use a synthetic watcher for non-watchable resources.

* Write unit tests for the synthetic watcher.

* Make the refresh interval for synthetic watchers configurable.

The default is to call `client.List(...)` every 5 seconds for each unwatchable GVK.

There are currently only 3 such GVKs right now so this will be informative
enough but not really noticeable.

* Pass the context into the synthetic watch func.

* Restore changes lost in rebasing.

---------

Co-authored-by: Tom Lebreux <tom.lebreux@suse.com>
2025-02-20 12:45:58 -08:00
Alejandro Ruiz
6559fa9ad7
Fix "Unable to cancel request for *client.addQuery" warnings () 2025-02-20 12:03:03 -05:00
renovate-rancher[bot]
d7746fd993
chore(deps): update module modernc.org/sqlite to v1.35.0 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-14 09:05:49 -08:00
Chad Roberts
5b5db5c40f
[main&2.10.3] Add schema links and resource methods for resource verb patch ()
* Show patch link on the API resource when patch permission is present and add patch ResourceMethod to the schema.

* Added tests for new functionality and corrected disallowed method for patch
2025-02-14 06:12:17 -05:00
renovate-rancher[bot]
f51f89196c
chore(deps): update module golang.org/x/sync to v0.11.0 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-13 10:07:08 -08:00
Chad Roberts
ccbadbd75f
Update to k8s 1.32 libraries ()
* Rebase

* Update dynamiclistener to v0.6.2-rc.3
2025-02-12 13:26:58 -05:00
renovate-rancher[bot]
36b97a97fb
chore(deps): update actions/checkout action to v4.2.2 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-12 09:26:50 -08:00
Richard Cox
eab91bb3d3
Fix code blocks in README ()
- an errant set of backticks broke quotes below
2025-02-12 09:26:25 -08:00
renovate-rancher[bot]
f664022933
chore(deps): update module github.com/rancher/dynamiclistener to v0.6.1 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-12 09:20:45 -08:00
renovate-rancher[bot]
d314442a42
chore(deps): update module github.com/urfave/cli/v2 to v2.27.5 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-12 09:20:20 -08:00
renovate-rancher[bot]
b72a24c0bc
chore(deps): update module github.com/google/gnostic-models to v0.6.9 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-12 09:17:27 -08:00
Silvio Moioli
3350323f91
sql: propagate and use contexts ()
Previous SQLite-related code used context.Background() and context.TODO() because it was not developed with context awareness.

This commit propagates the main Steve context so that it can be used when interacting with SQL context-aware functions.

This PR removes all production-code use of context.Background() and context.TODO() and replaces test-code use of TODO with Background.

Contributes to 
2025-02-12 09:46:10 +01:00
renovate-rancher[bot]
e71f8c455d
chore(deps): update module github.com/rancher/wrangler/v3 to v3.1.0 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 13:04:45 -08:00
renovate-rancher[bot]
b4551c5472
chore(deps): update module go.uber.org/mock to v0.5.0 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 13:03:15 -08:00
renovate-rancher[bot]
cab3ff10b5
chore(deps): update golangci/golangci-lint-action action to v6.3.2 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:54:07 -08:00
renovate-rancher[bot]
ac1e70719e
chore(deps): update actions/setup-go action to v5.3.0 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:53:45 -08:00
renovate-rancher[bot]
747284103a
chore(deps): update module github.com/urfave/cli to v1.22.16 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:53:19 -08:00
renovate-rancher[bot]
b826f74af2
chore(deps): update module github.com/adrg/xdg to v0.5.3 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:52:43 -08:00
renovate-rancher[bot]
8c96897309
chore(deps): update dependency go to v1.23.6 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:52:20 -08:00
renovate-rancher[bot]
4768bba63b
chore(deps): update module github.com/gorilla/websocket to v1.5.3 ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:52:00 -08:00
renovate-rancher[bot]
43f0f7cf62
Add initial Renovate configuration ()
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
2025-02-11 12:27:15 -08:00
Silvio Moioli
9139e492e0
vai: do not discard closing statement errors () 2025-02-07 08:31:08 +01:00
Silvio Moioli
772dc7577e
sql: use a closure to wrap transactions ()
This introduces the a `WithTransaction` function, which is then used for all transactional work in Steve.

Because `WithTransaction` takes care of all `Begin`s, `Commit`s and `Rollback`s, it eliminates the problem where forgotten open transactions can block all other operations (with long stalling and `SQLITE_BUSY` errors).

This also:

- merges together the disparate `DBClient` interfaces in one only `db.Client` interface with one unexported non-test implementation. I found this much easier to follow
- refactors the transaction package in order to make it as minimal as possible, and as close to the wrapped `sql.Tx` and `sql.Stmt` functions as possible, in order to reduce cognitive load when working with this part of the codebase
- simplifies tests accordingly
- adds a couple of known files to `.gitignore`
    
Credits to @tomleb for suggesting the approach: https://github.com/rancher/lasso/pull/121#pullrequestreview-2515872507
2025-02-05 10:05:52 +01:00
Silvio Moioli
6a46a1e091
sql: encrypt Tokens by default ()
Co-authored-by: Eric Promislow <epromislow@suse.com>
2025-02-03 09:12:02 +01:00