Skip to content

Commit 73a9af9

Browse files
authored
Merge pull request #7 from tommy351/triggers
feat: Add Trigger CRD
2 parents a1a66c5 + 3f70ec1 commit 73a9af9

118 files changed

Lines changed: 3783 additions & 1480 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cmd/controller/manager.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/tommy351/pullup/cmd"
88
"github.com/tommy351/pullup/internal/controller/resourceset"
99
"github.com/tommy351/pullup/internal/controller/resourcetemplate"
10+
"github.com/tommy351/pullup/internal/controller/trigger"
1011
"github.com/tommy351/pullup/internal/controller/webhook"
1112
"github.com/tommy351/pullup/pkg/apis/pullup/v1alpha1"
1213
"github.com/tommy351/pullup/pkg/apis/pullup/v1beta1"
@@ -38,41 +39,42 @@ func NewControllerManager(restConf *rest.Config, scheme *runtime.Scheme, conf cm
3839
func NewManager(
3940
mgr manager.Manager,
4041
rs *resourceset.Reconciler,
41-
hook *webhook.AlphaReconciler,
42+
hook *webhook.Reconciler,
4243
rt *resourcetemplate.Reconciler,
43-
factory *webhook.BetaReconcilerFactory,
44+
trigger *trigger.Reconciler,
4445
) (*Manager, error) {
4546
err := builder.
4647
ControllerManagedBy(mgr).
4748
For(&v1alpha1.Webhook{}).
4849
Owns(&v1alpha1.ResourceSet{}).
4950
Complete(hook)
5051
if err != nil {
51-
return nil, fmt.Errorf("failed to build the Webhook controller: %w", err)
52+
return nil, fmt.Errorf("failed to build Webhook controller: %w", err)
5253
}
5354

5455
err = builder.
5556
ControllerManagedBy(mgr).
5657
For(&v1alpha1.ResourceSet{}).
5758
Complete(rs)
5859
if err != nil {
59-
return nil, fmt.Errorf("failed to build the ResourceSet controller: %w", err)
60+
return nil, fmt.Errorf("failed to build ResourceSet controller: %w", err)
6061
}
6162

6263
err = builder.
6364
ControllerManagedBy(mgr).
6465
For(&v1beta1.ResourceTemplate{}).
6566
Complete(rt)
6667
if err != nil {
67-
return nil, fmt.Errorf("failed to build the ResourceTemplate controller: %w", err)
68+
return nil, fmt.Errorf("failed to build ResourceTemplate controller: %w", err)
6869
}
6970

70-
if err := factory.Build(mgr, &v1beta1.HTTPWebhook{}); err != nil {
71-
return nil, fmt.Errorf("failed to build the HTTPWebhook controller: %w", err)
72-
}
73-
74-
if err := factory.Build(mgr, &v1beta1.GitHubWebhook{}); err != nil {
75-
return nil, fmt.Errorf("failed to build the HTTPWebhook controller: %w", err)
71+
err = builder.
72+
ControllerManagedBy(mgr).
73+
For(&v1beta1.Trigger{}).
74+
Owns(&v1beta1.ResourceTemplate{}).
75+
Complete(trigger)
76+
if err != nil {
77+
return nil, fmt.Errorf("failed to build Trigger controller: %w", err)
7678
}
7779

7880
return &Manager{Manager: mgr}, nil

cmd/controller/wire.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/tommy351/pullup/internal/controller"
99
"github.com/tommy351/pullup/internal/controller/resourceset"
1010
"github.com/tommy351/pullup/internal/controller/resourcetemplate"
11+
"github.com/tommy351/pullup/internal/controller/trigger"
1112
"github.com/tommy351/pullup/internal/controller/webhook"
1213
"github.com/tommy351/pullup/internal/k8s"
1314
"github.com/tommy351/pullup/internal/log"
@@ -23,8 +24,8 @@ func InitializeManager(conf cmd.Config) (*Manager, func(), error) {
2324
controller.NewEventRecorder,
2425
controller.NewAPIReader,
2526
resourceset.ReconcilerSet,
26-
webhook.AlphaReconcilerSet,
27-
webhook.BetaReconcilerFactorySet,
27+
webhook.ReconcilerSet,
28+
trigger.ReconcilerSet,
2829
resourcetemplate.ReconcilerSet,
2930
NewManager,
3031
)

cmd/controller/wire_gen.go

Lines changed: 7 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/webhook/wire_gen.go

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deployment/base/crds/pullup.dev_githubwebhooks.yaml

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -33,48 +33,13 @@ spec:
3333
type: object
3434
spec:
3535
properties:
36-
patches:
37-
items:
38-
properties:
39-
apiVersion:
40-
type: string
41-
jsonPatch:
42-
items:
43-
properties:
44-
from:
45-
type: string
46-
op:
47-
enum:
48-
- add
49-
- remove
50-
- replace
51-
- copy
52-
- move
53-
- test
54-
type: string
55-
path:
56-
type: string
57-
value:
58-
x-kubernetes-preserve-unknown-fields: true
59-
required:
60-
- op
61-
- path
62-
type: object
63-
type: array
64-
kind:
65-
type: string
66-
merge:
67-
type: object
68-
x-kubernetes-preserve-unknown-fields: true
69-
sourceName:
70-
type: string
71-
targetName:
72-
type: string
73-
required:
74-
- apiVersion
75-
- kind
76-
type: object
77-
type: array
36+
action:
37+
enum:
38+
- create
39+
- update
40+
- apply
41+
- delete
42+
type: string
7843
repositories:
7944
items:
8045
properties:
@@ -153,8 +118,30 @@ spec:
153118
- name
154119
type: object
155120
type: array
156-
resourceName:
157-
type: string
121+
triggers:
122+
items:
123+
properties:
124+
ref:
125+
properties:
126+
apiVersion:
127+
type: string
128+
kind:
129+
type: string
130+
name:
131+
type: string
132+
namespace:
133+
type: string
134+
required:
135+
- apiVersion
136+
- kind
137+
- name
138+
type: object
139+
transform:
140+
x-kubernetes-preserve-unknown-fields: true
141+
required:
142+
- ref
143+
type: object
144+
type: array
158145
required:
159146
- repositories
160147
type: object

deployment/base/crds/pullup.dev_httpwebhooks.yaml

Lines changed: 30 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -33,49 +33,12 @@ spec:
3333
type: object
3434
spec:
3535
properties:
36-
patches:
37-
items:
38-
properties:
39-
apiVersion:
40-
type: string
41-
jsonPatch:
42-
items:
43-
properties:
44-
from:
45-
type: string
46-
op:
47-
enum:
48-
- add
49-
- remove
50-
- replace
51-
- copy
52-
- move
53-
- test
54-
type: string
55-
path:
56-
type: string
57-
value:
58-
x-kubernetes-preserve-unknown-fields: true
59-
required:
60-
- op
61-
- path
62-
type: object
63-
type: array
64-
kind:
65-
type: string
66-
merge:
67-
type: object
68-
x-kubernetes-preserve-unknown-fields: true
69-
sourceName:
70-
type: string
71-
targetName:
72-
type: string
73-
required:
74-
- apiVersion
75-
- kind
76-
type: object
77-
type: array
78-
resourceName:
36+
action:
37+
enum:
38+
- create
39+
- update
40+
- apply
41+
- delete
7942
type: string
8043
schema:
8144
x-kubernetes-preserve-unknown-fields: true
@@ -97,6 +60,30 @@ spec:
9760
- key
9861
type: object
9962
type: object
63+
triggers:
64+
items:
65+
properties:
66+
ref:
67+
properties:
68+
apiVersion:
69+
type: string
70+
kind:
71+
type: string
72+
name:
73+
type: string
74+
namespace:
75+
type: string
76+
required:
77+
- apiVersion
78+
- kind
79+
- name
80+
type: object
81+
transform:
82+
x-kubernetes-preserve-unknown-fields: true
83+
required:
84+
- ref
85+
type: object
86+
type: array
10087
type: object
10188
status:
10289
type: object

deployment/base/crds/pullup.dev_resourcetemplates.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,8 @@ spec:
2020
scope: Namespaced
2121
versions:
2222
- additionalPrinterColumns:
23-
- jsonPath: .spec.webhookRef.kind
24-
name: Webhook Kind
25-
type: string
26-
- jsonPath: .spec.webhookRef.name
27-
name: Webhook Name
23+
- jsonPath: .spec.triggerRef.name
24+
name: Trigger
2825
type: string
2926
- jsonPath: .status.lastUpdateTime
3027
name: Last Update
@@ -87,14 +84,16 @@ spec:
8784
- kind
8885
type: object
8986
type: array
90-
webhookRef:
87+
triggerRef:
9188
properties:
9289
apiVersion:
9390
type: string
9491
kind:
9592
type: string
9693
name:
9794
type: string
95+
namespace:
96+
type: string
9897
required:
9998
- apiVersion
10099
- kind
@@ -112,6 +111,8 @@ spec:
112111
type: string
113112
name:
114113
type: string
114+
namespace:
115+
type: string
115116
required:
116117
- apiVersion
117118
- kind

0 commit comments

Comments
 (0)