/
config.go
59 lines (48 loc) · 1.95 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
Copyright 2020 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package apiserver
import (
"k8s.io/apimachinery/pkg/runtime/schema"
v1 "knative.dev/eventing/pkg/apis/sources/v1"
)
type ResourceWatch struct {
// GVR the group version resource of the resource to watch.
GVR schema.GroupVersionResource `json:"gvr"`
// LabelSelector filters this source to objects to those resources pass the
// label selector.
// +optional
LabelSelector string `json:"selector,omitempty"`
}
type Config struct {
// Namespaces specifies the namespaces where Resources[] exist.
// +required
Namespaces []string `json:"namespaces"`
// AllNamespaces indicates whether this source is watching all
// existing namespaces
AllNamespaces bool `json:"allNamespaces"`
// Resource is the resource this source will track and send related
// lifecycle events from the Kubernetes ApiServer.
// +required
Resources []ResourceWatch `json:"resources"`
// ResourceOwner is an additional filter to only track resources that are
// owned by a specific resource type. If ResourceOwner matches Resources[n]
// then Resources[n] is allowed to pass the ResourceOwner filter.
// +optional
ResourceOwner *v1.APIVersionKind `json:"owner,omitempty"`
// EventMode controls the format of the event.
// `Reference` sends a dataref event type for the resource under watch.
// `Resource` send the full resource lifecycle event.
// Defaults to `Reference`
// +optional
EventMode string `json:"mode,omitempty"`
}