Skip to content

Commit 512248f

Browse files
committed
Adjustments for new controller-runtime and CAPI
1 parent 551bdf3 commit 512248f

File tree

4 files changed

+60
-28
lines changed

4 files changed

+60
-28
lines changed

config/manager/manager.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@ spec:
2222
args:
2323
- "--leader-elect"
2424
- "--v=2"
25-
- "--metrics-bind-addr=127.0.0.1:8080"
25+
- "--diagnostics-address=${CAPO_DIAGNOSTICS_ADDRESS:=:8443}"
26+
- "--insecure-diagnostics=${CAPO_INSECURE_DIAGNOSTICS:=false}"
2627
image: controller:latest
2728
imagePullPolicy: Always
2829
name: manager
2930
ports:
3031
- containerPort: 9440
3132
name: healthz
3233
protocol: TCP
34+
- containerPort: 8443
35+
name: metrics
36+
protocol: TCP
3337
readinessProbe:
3438
httpGet:
3539
path: /readyz

main.go

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,13 @@ import (
3434
_ "k8s.io/component-base/logs/json/register"
3535
"k8s.io/klog/v2"
3636
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
37+
"sigs.k8s.io/cluster-api/util/flags"
3738
ctrl "sigs.k8s.io/controller-runtime"
38-
"sigs.k8s.io/controller-runtime/pkg/client"
39+
cache "sigs.k8s.io/controller-runtime/pkg/cache"
40+
client "sigs.k8s.io/controller-runtime/pkg/client"
3941
"sigs.k8s.io/controller-runtime/pkg/client/config"
4042
"sigs.k8s.io/controller-runtime/pkg/controller"
43+
"sigs.k8s.io/controller-runtime/pkg/webhook"
4144

4245
infrav1alpha5 "sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha5"
4346
infrav1alpha6 "sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha6"
@@ -54,7 +57,7 @@ var (
5457
setupLog = ctrl.Log.WithName("setup")
5558

5659
// flags.
57-
metricsBindAddr string
60+
diagnosticsOptions = flags.DiagnosticsOptions{}
5861
enableLeaderElection bool
5962
leaderElectionLeaseDuration time.Duration
6063
leaderElectionRenewDeadline time.Duration
@@ -91,8 +94,7 @@ func InitFlags(fs *pflag.FlagSet) {
9194
logs.AddFlags(fs, logs.SkipLoggingConfigurationFlags())
9295
logsv1.AddFlags(logOptions, fs)
9396

94-
fs.StringVar(&metricsBindAddr, "metrics-bind-addr", "localhost:8080",
95-
"The address the metric endpoint binds to.")
97+
flags.AddDiagnosticsOptions(fs, &diagnosticsOptions)
9698

9799
fs.BoolVar(&enableLeaderElection, "leader-elect", false,
98100
"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
@@ -143,6 +145,10 @@ func InitFlags(fs *pflag.FlagSet) {
143145
fs.BoolVar(&showVersion, "version", false, "Show current version and exit.")
144146
}
145147

148+
// Add RBAC for the authorized diagnostics endpoint.
149+
// +kubebuilder:rbac:groups=authentication.k8s.io,resources=tokenreviews,verbs=create
150+
// +kubebuilder:rbac:groups=authorization.k8s.io,resources=subjectaccessreviews,verbs=create
151+
146152
func main() {
147153
InitFlags(pflag.CommandLine)
148154
pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
@@ -183,22 +189,41 @@ func main() {
183189
}
184190
}
185191

192+
diagnosticsOpts := flags.GetDiagnosticsOptions(diagnosticsOptions)
193+
194+
var watchNamespaces map[string]cache.Config
195+
if watchNamespace != "" {
196+
watchNamespaces = map[string]cache.Config{
197+
watchNamespace: {},
198+
}
199+
}
200+
186201
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
187-
Scheme: scheme,
188-
MetricsBindAddress: metricsBindAddr,
189-
LeaderElection: enableLeaderElection,
190-
LeaderElectionID: "controller-leader-election-capo",
191-
LeaseDuration: &leaderElectionLeaseDuration,
192-
RenewDeadline: &leaderElectionRenewDeadline,
193-
RetryPeriod: &leaderElectionRetryPeriod,
194-
Namespace: watchNamespace,
195-
SyncPeriod: &syncPeriod,
196-
ClientDisableCacheFor: []client.Object{
197-
&corev1.ConfigMap{},
198-
&corev1.Secret{},
202+
Scheme: scheme,
203+
Metrics: diagnosticsOpts,
204+
LeaderElection: enableLeaderElection,
205+
LeaderElectionID: "controller-leader-election-capo",
206+
LeaseDuration: &leaderElectionLeaseDuration,
207+
RenewDeadline: &leaderElectionRenewDeadline,
208+
RetryPeriod: &leaderElectionRetryPeriod,
209+
Cache: cache.Options{
210+
DefaultNamespaces: watchNamespaces,
211+
SyncPeriod: &syncPeriod,
212+
},
213+
Client: client.Options{
214+
Cache: &client.CacheOptions{
215+
DisableFor: []client.Object{
216+
&corev1.ConfigMap{},
217+
&corev1.Secret{},
218+
},
219+
},
199220
},
200-
Port: webhookPort,
201-
CertDir: webhookCertDir,
221+
WebhookServer: webhook.NewServer(
222+
webhook.Options{
223+
Port: webhookPort,
224+
CertDir: webhookCertDir,
225+
},
226+
),
202227
HealthProbeBindAddress: healthAddr,
203228
})
204229
if err != nil {

test/e2e/data/e2e_conf.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
managementClusterName: capo-e2e
1313

1414
images:
15-
- name: gcr.io/k8s-staging-cluster-api/cluster-api-controller:v1.5.0
15+
- name: gcr.io/k8s-staging-cluster-api/cluster-api-controller:v1.6.0-beta.1
1616
loadBehavior: tryLoad
17-
- name: gcr.io/k8s-staging-cluster-api/kubeadm-bootstrap-controller:v1.5.0
17+
- name: gcr.io/k8s-staging-cluster-api/kubeadm-bootstrap-controller:v1.6.0-beta.1
1818
loadBehavior: tryLoad
19-
- name: gcr.io/k8s-staging-cluster-api/kubeadm-control-plane-controller:v1.5.0
19+
- name: gcr.io/k8s-staging-cluster-api/kubeadm-control-plane-controller:v1.6.0-beta.1
2020
loadBehavior: tryLoad
2121
# Use local dev images built source tree;
2222
- name: gcr.io/k8s-staging-capi-openstack/capi-openstack-controller:e2e
@@ -32,8 +32,8 @@ providers:
3232
- name: cluster-api
3333
type: CoreProvider
3434
versions:
35-
- name: v1.5.0
36-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.0/core-components.yaml"
35+
- name: v1.6.0-beta.1
36+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0-beta.1/core-components.yaml"
3737
type: url
3838
contract: v1beta1
3939
files:
@@ -58,8 +58,8 @@ providers:
5858
- name: kubeadm
5959
type: BootstrapProvider
6060
versions:
61-
- name: v1.5.0
62-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.0/bootstrap-components.yaml"
61+
- name: v1.6.0-beta.1
62+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0-beta.1/bootstrap-components.yaml"
6363
type: url
6464
contract: v1beta1
6565
files:
@@ -84,8 +84,8 @@ providers:
8484
- name: kubeadm
8585
type: ControlPlaneProvider
8686
versions:
87-
- name: v1.5.0
88-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.5.0/control-plane-components.yaml"
87+
- name: v1.6.0-beta.1
88+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0-beta.1/control-plane-components.yaml"
8989
type: url
9090
contract: v1beta1
9191
files:

test/e2e/data/shared/v1beta1/metadata.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@ releaseSeries:
1313
- major: 1
1414
minor: 5
1515
contract: v1beta1
16+
- major: 1
17+
minor: 6
18+
contract: v1beta1

0 commit comments

Comments
 (0)