-
Notifications
You must be signed in to change notification settings - Fork 46
/
renovate.json5
135 lines (135 loc) · 4.6 KB
/
renovate.json5
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
{
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
extends: [
'config:recommended',
'github>gardener/ci-infra//config/renovate/automerge-with-tide.json5',
'github>gardener/ci-infra//config/renovate/makefile-versions.json5',
],
labels: ['kind/enhancement'],
postUpdateOptions: ['gomodTidy'],
separateMinorPatch: true,
flux: {
fileMatch: [
'^clusters/.+\\.yaml$',
'^deploy/.+\\.yaml$',
],
},
customManagers: [
{
customType: 'regex',
fileMatch: ['config/prow/cluster/.+/helm/generate-.+-deployments.sh$'],
matchStrings: [
'helm repo add .+ (?<registryUrl>.+?)\\s(.|\\n)*helm template -n .+ .+ .+\\/(?<depName>.+?) --version "(?<currentValue>.*)"\\s',
],
datasourceTemplate: 'helm',
},
{
// Generic detection for pod-like and CLI-argument-like image specifications in prow jobs.
customType: 'regex',
fileMatch: ['^config/jobs/.+\\.yaml$'],
matchStrings: ['image(: |=)(?<depName>.*?):(?<currentValue>.*?)\\s'],
datasourceTemplate: 'docker',
},
{
// Generic detection for container images to be copied.
customType: 'regex',
fileMatch: ['^config/images/images\\.yaml$'],
matchStrings: [
'\\s+source:\\s+(?<depName>.+?)\\n\\s+destination:\\s+.*\\n\\s+tags:\\n(\\s+-\\s+v?[0-9][0-9a-zA-Z\\-\\.]*\\n)*\\s+-\\s+(?<currentValue>.+?)\\n'
],
datasourceTemplate: 'docker',
},
],
packageRules: [
{
groupName: 'prow apps',
matchDatasources: ['github-releases', 'helm'],
matchPackageNames: [
'/prometheus-operator/kube-prometheus/',
],
postUpgradeTasks: {
commands: [
'make generate-prow-deployments',
],
executionMode: 'branch',
},
},
{
groupName: 'renovate',
matchDatasources: ['docker', 'helm'],
matchPackageNames: [
'renovate',
'ghcr.io/renovatebot/renovate',
],
automerge: true,
schedule: ['after 08:30 and before 15:30 every weekday'],
},
{
// sigs.k8s.io/prow is too noisy because it does not create releases but is referenced by digest.
matchDatasources: ['go'],
matchPackageNames: ['/sigs\\.k8s\\.io/prow/'],
extends: ['schedule:monthly'],
},
{
// Do not update Kubernetes dependencies except sigs.k8s.io/prow.
// The versions of api, apimachinery, client-go and controller-runtime depend on sigs.k8s.io/prow.
matchDatasources: ['go'],
matchPackageNames: [
'/k8s\\.io/(api|apimachinery|client-go)/',
'/sigs\\.k8s\\.io/controller-runtime/',
],
enabled: false,
},
{
// Do not update patch versions of the Go Toolchain.
// Default golang images set the environment variable GOTOOLCHAIN=local
// and we don't want to enforce every (test-)image to be on the latest patch level.
matchManagers: ['gomod'],
matchUpdateTypes: ['patch'],
matchPackageNames: ['/go/',],
enabled: false,
},
{
// Pin grafana to the latest minor version published with Apache 2.0 license.
matchDatasources: ['docker'],
matchUpdateTypes: ['major', 'minor'],
matchPackageNames: ['/grafana/grafana/'],
enabled: false,
},
{
// Pin certain components to the current version.
matchDatasources: ['docker'],
matchUpdateTypes: ['major', 'minor', 'patch'],
matchFileNames: ['config/images/images.yaml'],
matchPackageNames: [
'/coredns/coredns/',
'/calico/node/',
'/calico/cni/',
'/calico/typha/',
'/calico/kube-controllers/',
'/calico/pod2daemon-flexvol/',
'/fluent/fluent-bit/',
'/grafana/grafana/',
'/grafana/loki/',
'/grafana/promtail/',
'/k8scloudprovider/openstack-cloud-controller-manager/',
'/k8scloudprovider/cinder-csi-plugin/',
'/kubesphere/fluent-bit/',
'/kubesphere/fluent-operator/',
'/nginx/',
],
enabled: false,
},
{
// Add new versions instead of replacing old version to keep a list of all copied versions.
matchFileNames: ['config/images/images.yaml'],
postUpgradeTasks: {
commands: [
'go install github.com/mikefarah/yq/v4@latest',
'bash -c "sed -i `yq \'(.images[] | select(.source == \\"{{{depName}}}\\") | key) as \\$imagePos | (.images[\\$imagePos].tags | length) as \\$tagLength | .images[\\$imagePos].tags[\\$tagLength - 1] | line\' config/images/images.yaml`\'i\\ - {{{currentValue}}}\' config/images/images.yaml"',
],
executionMode: 'update',
},
},
],
}