Commit Graph

13 Commits

Author SHA1 Message Date
Stavros Kontopoulos f69f148b7c
Optionally generate an init func for an informer (#2989)
* Optionally generate an init func for an informer

* lint

* move condition to go template

* rename flag and fixes

* pass flag value via the generator
2024-03-28 13:51:56 +00:00
Dave Protasowski dfb4bf0463
Drop dynamic wrapper injection code generation (#2742)
* drop dynamic wrapper injection codegen

* run update codegen
2023-05-18 10:57:12 +00:00
Dave Protasowski 5dd89c68db
Support istio *List types where Items is an array of pointer types (#2613)
Generally K8s types have a list type where the 'Items' member is an
array of structs.

ie. https://pkg.go.dev/k8s.io/api@v0.25.3/apps/v1#DeploymentList

type DeploymentList struct {
	...
	// Items is the list of Deployments.
	Items []Deployment `json:"items" protobuf:"bytes,2,rep,name=items"`
}

Istio is an exception where the list contains pointers to structs

type GatewayList struct {
	...
	Items       []*Gateway `json:"items" protobuf:"bytes,2,rep,name=items"`
}

To hint that the list types are pointers you can now pass the flag
'--lister-has-pointer-elem'.

Ideally we could infer this info by inspecting the types but
unfortunately the generator doesn't load this information
2022-10-20 14:09:13 +00:00
Dave Protasowski 785eb637f6
switch to klog/v2 (#2386) 2022-01-11 13:02:14 -08:00
Matt Moore 819d556cda
Allow configuring bounded staleness for dynamic injection. (#2323)
Unfortunately the lister interfaces didn't plumb through `ctx` so
this is slightly more complex than I'd have liked.  Instead of
threading the `resourceVersion` (bounded-staleness) through `ctx`
it is stored on the lister implementation.

It is seeded with `injection.WithResourceVersion` (ideally this
would have been all we needed, w/o state), and this state can be
updated by calling `SetResourceVersion`.

The stored `resourceVersion` is passed via `FooOptions` to `Get`
and `List` calls.

Fixes: a long-standing `TODO(mattmoor)`
2021-10-25 08:17:38 -07:00
Matt Moore 7b5ecbc0e4
Sketch out an alternate way of injecting clients/informers (#2210)
* This commit contains the actual changes to support dynamic client injection.

* Incorporate n3wscott review nits

* This includes the code-generation for the dynamic client-based injection.

This also includes a number of manually created files of the form `*_expansion.go`, which are needed to satisfy some of the Kubernetes manual type "expansions".  At present, these are all simply `panic("NYI")`, but may become more than that in the future.
2021-08-18 06:52:08 -07:00
Victor Agababov 1e373a9e5d
take 2 (#1755) 2020-09-29 14:10:29 -07:00
Scott Nichols 3a272190c3
Found missing forced packages in injection gen. (#1116)
* ctx

* runtime.object

* update codegen
2020-02-21 13:42:07 -08:00
Dave Protasowski 528ad1c1dd Generate K8s Injection Code (#640)
* update codegen so the fatal error messages are more informative

String representation of an untyped nil is 'nil' so the Fatal messages weren't useful

* generate k8s injection code

* generate apiextensions injection code

* use Fatal & move output paths

* switch from Fatal to Panic

* injection creates a single factory
2019-09-09 12:52:11 -07:00
Matt Moore 222dd25986 Migrate pkg to use the knative.dev/pkg import path (#489)
* Manual changes.

* scripted changes.
2019-06-26 13:02:06 -07:00
mattmoor-sockpuppet 5d105b46d3 golang format tools (#444)
Produced via:
  `gofmt -s -w $(find -path './vendor' -prune -o -type f -name '*.go' -print))`
  `goimports -w $(find -name '*.go' | grep -v vendor)`
2019-06-06 09:54:40 -07:00
Matt Moore 4d86f3ad6f Access a logger and Fatalf when Get would return nil. (#439) 2019-06-05 09:06:38 -07:00
Matt Moore 35bb0fc83b Add code-generation for the various injection stubs. (#438)
This is largely based on work by @n3wscott
2019-06-05 08:50:38 -07:00