Skip to content

Commit e6957d9

Browse files
authored
Merge pull request #13 from fluxcd/controller-runtime-v0.7.0
Update controller-runtime to v0.7.0
2 parents 325d1f9 + a94ce62 commit e6957d9

File tree

5 files changed

+147
-103
lines changed

5 files changed

+147
-103
lines changed

controllers/gitrepository_predicate.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,42 +24,34 @@ import (
2424
)
2525

2626
// GitRepositoryRevisionChangePredicate triggers an update event
27-
// when a Git source revision changes
27+
// when a GitRepository revision changes.
2828
type GitRepositoryRevisionChangePredicate struct {
2929
predicate.Funcs
3030
}
3131

3232
func (GitRepositoryRevisionChangePredicate) Update(e event.UpdateEvent) bool {
33-
if e.MetaOld == nil || e.MetaNew == nil {
33+
if e.ObjectOld == nil || e.ObjectNew == nil {
3434
return false
3535
}
3636

37-
oldRepo, ok := e.ObjectOld.(*sourcev1.GitRepository)
37+
oldSource, ok := e.ObjectOld.(sourcev1.Source)
3838
if !ok {
3939
return false
4040
}
4141

42-
newRepo, ok := e.ObjectNew.(*sourcev1.GitRepository)
42+
newSource, ok := e.ObjectNew.(sourcev1.Source)
4343
if !ok {
4444
return false
4545
}
4646

47-
if oldRepo.GetArtifact() == nil && newRepo.GetArtifact() != nil {
47+
if oldSource.GetArtifact() == nil && newSource.GetArtifact() != nil {
4848
return true
4949
}
5050

51-
if oldRepo.GetArtifact() != nil && newRepo.GetArtifact() != nil &&
52-
oldRepo.GetArtifact().Revision != newRepo.GetArtifact().Revision {
51+
if oldSource.GetArtifact() != nil && newSource.GetArtifact() != nil &&
52+
oldSource.GetArtifact().Revision != newSource.GetArtifact().Revision {
5353
return true
5454
}
5555

5656
return false
5757
}
58-
59-
func (GitRepositoryRevisionChangePredicate) Create(e event.CreateEvent) bool {
60-
return false
61-
}
62-
63-
func (GitRepositoryRevisionChangePredicate) Delete(e event.DeleteEvent) bool {
64-
return false
65-
}

controllers/gitrepository_watcher.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,11 @@ import (
2222
"io/ioutil"
2323
"net/http"
2424
"os"
25-
"strings"
26-
"time"
2725

2826
"github.com/go-logr/logr"
2927
"k8s.io/apimachinery/pkg/runtime"
3028
ctrl "sigs.k8s.io/controller-runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/builder"
3130
"sigs.k8s.io/controller-runtime/pkg/client"
3231

3332
"github.com/fluxcd/pkg/untar"
@@ -44,18 +43,15 @@ type GitRepositoryWatcher struct {
4443
// +kubebuilder:rbac:groups=source.fluxcd.io,resources=gitrepositories,verbs=get;list;watch
4544
// +kubebuilder:rbac:groups=source.fluxcd.io,resources=gitrepositories/status,verbs=get
4645

47-
func (r *GitRepositoryWatcher) Reconcile(req ctrl.Request) (ctrl.Result, error) {
48-
// set timeout for the reconciliation
49-
ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
50-
defer cancel()
46+
func (r *GitRepositoryWatcher) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
47+
log := logr.FromContext(ctx)
5148

5249
// get source object
5350
var repository sourcev1.GitRepository
5451
if err := r.Get(ctx, req.NamespacedName, &repository); err != nil {
5552
return ctrl.Result{}, client.IgnoreNotFound(err)
5653
}
5754

58-
log := r.Log.WithValues(strings.ToLower(repository.Kind), req.NamespacedName)
5955
log.Info("New revision detected", "revision", repository.Status.Artifact.Revision)
6056

6157
// create tmp dir
@@ -89,8 +85,7 @@ func (r *GitRepositoryWatcher) Reconcile(req ctrl.Request) (ctrl.Result, error)
8985

9086
func (r *GitRepositoryWatcher) SetupWithManager(mgr ctrl.Manager) error {
9187
return ctrl.NewControllerManagedBy(mgr).
92-
For(&sourcev1.GitRepository{}).
93-
WithEventFilter(GitRepositoryRevisionChangePredicate{}).
88+
For(&sourcev1.GitRepository{}, builder.WithPredicates(GitRepositoryRevisionChangePredicate{})).
9489
Complete(r)
9590
}
9691

@@ -102,7 +97,7 @@ func (r *GitRepositoryWatcher) fetchArtifact(ctx context.Context, repository sou
10297
url := repository.Status.Artifact.URL
10398

10499
// for local run:
105-
// kubectl -n gitops-system port-forward svc/source-controller 8080:80
100+
// kubectl -n flux-system port-forward svc/source-controller 8080:80
106101
// export SOURCE_HOST=localhost:8080
107102
if hostname := os.Getenv("SOURCE_HOST"); hostname != "" {
108103
url = fmt.Sprintf("http://%s/gitrepository/%s/%s/latest.tar.gz", hostname, repository.Namespace, repository.Name)

go.mod

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ module github.com/fluxcd/source-watcher
33
go 1.15
44

55
require (
6-
github.com/fluxcd/pkg/runtime v0.4.0
6+
github.com/fluxcd/pkg/runtime v0.6.2
77
github.com/fluxcd/pkg/untar v0.0.5
8-
github.com/fluxcd/source-controller/api v0.5.6
9-
github.com/go-logr/logr v0.2.1
8+
github.com/fluxcd/source-controller/api v0.6.1
9+
github.com/go-logr/logr v0.3.0
10+
github.com/spf13/pflag v1.0.5
1011
k8s.io/apimachinery v0.19.4
1112
k8s.io/client-go v0.19.4
12-
sigs.k8s.io/controller-runtime v0.6.4
13+
sigs.k8s.io/controller-runtime v0.7.0
1314
)

0 commit comments

Comments
 (0)