FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
secureCodeBox/operator/main.go at v5.7.0 · secureCodeBox/secureCodeBox · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
secureCodeBox
/
secureCodeBox
Public
Notifications
You must be signed in to change notification settings
Fork
183
Star
985
Code
Issues
62
Pull requests
3
Discussions
Actions
Projects
Security and quality
1
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
secureCodeBox
/
operator
/
main.go
Copy path
More file actions
More file actions
Latest commit
History
History
History
124 lines (109 loc) · 4.14 KB
Breadcrumbs
secureCodeBox
/
operator
/
main.go
Copy path
File metadata and controls
124 lines (109 loc) · 4.14 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
// SPDX-FileCopyrightText: the secureCodeBox authors
//
// SPDX-License-Identifier: Apache-2.0
package
main
import
(
"flag"
"os"
// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
// to ensure that exec-entrypoint and run can make use of them.
_
"k8s.io/client-go/plugin/pkg/client/auth"
"k8s.io/apimachinery/pkg/runtime"
utilruntime
"k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/klog/v2"
ctrl
"sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
"sigs.k8s.io/controller-runtime/pkg/metrics/server"
cascadingv1
"github.com/secureCodeBox/secureCodeBox/operator/apis/cascading/v1"
executionv1
"github.com/secureCodeBox/secureCodeBox/operator/apis/execution/v1"
executioncontrollers
"github.com/secureCodeBox/secureCodeBox/operator/controllers/execution"
scancontroller
"github.com/secureCodeBox/secureCodeBox/operator/controllers/execution/scans"
"github.com/secureCodeBox/secureCodeBox/operator/internal/telemetry"
//+kubebuilder:scaffold:imports
)
var
(
scheme
=
runtime
.
NewScheme
()
setupLog
=
ctrl
.
Log
.
WithName
(
"setup"
)
)
func
init
() {
utilruntime
.
Must
(
clientgoscheme
.
AddToScheme
(
scheme
))
utilruntime
.
Must
(
executionv1
.
AddToScheme
(
scheme
))
utilruntime
.
Must
(
cascadingv1
.
AddToScheme
(
scheme
))
//+kubebuilder:scaffold:scheme
}
func
main
() {
var
metricsAddr
string
var
enableLeaderElection
bool
var
probeAddr
string
flag
.
StringVar
(
&
metricsAddr
,
"metrics-bind-address"
,
":8080"
,
"The address the metric endpoint binds to."
)
flag
.
StringVar
(
&
probeAddr
,
"health-probe-bind-address"
,
":8081"
,
"The address the probe endpoint binds to."
)
flag
.
BoolVar
(
&
enableLeaderElection
,
"leader-elect"
,
false
,
"Enable leader election for controller manager. "
+
"Enabling this will ensure there is only one active controller manager."
)
opts
:=
zap.
Options
{
Development
:
false
,
}
opts
.
BindFlags
(
flag
.
CommandLine
)
flag
.
Parse
()
logger
:=
zap
.
New
(
zap
.
UseFlagOptions
(
&
opts
))
ctrl
.
SetLogger
(
logger
)
klog
.
SetLogger
(
logger
)
mgr
,
err
:=
ctrl
.
NewManager
(
ctrl
.
GetConfigOrDie
(), ctrl.
Options
{
Scheme
:
scheme
,
Metrics
: server.
Options
{
BindAddress
:
metricsAddr
,
},
HealthProbeBindAddress
:
probeAddr
,
LeaderElection
:
enableLeaderElection
,
LeaderElectionID
:
"e341d981.securecodebox.io"
,
})
if
err
!=
nil
{
setupLog
.
Error
(
err
,
"unable to start manager"
)
os
.
Exit
(
1
)
}
if
err
=
(
&
scancontroller.
ScanReconciler
{
Client
:
mgr
.
GetClient
(),
Log
:
ctrl
.
Log
.
WithName
(
"controllers"
).
WithName
(
"execution"
).
WithName
(
"Scan"
),
Scheme
:
mgr
.
GetScheme
(),
}).
SetupWithManager
(
mgr
);
err
!=
nil
{
setupLog
.
Error
(
err
,
"unable to create controller"
,
"controller"
,
"Scan"
)
os
.
Exit
(
1
)
}
if
err
=
(
&
executioncontrollers.
ScheduledScanReconciler
{
Client
:
mgr
.
GetClient
(),
Log
:
ctrl
.
Log
.
WithName
(
"controllers"
).
WithName
(
"execution"
).
WithName
(
"ScheduledScan"
),
Recorder
:
mgr
.
GetEventRecorderFor
(
"ScheduledScanController"
),
Scheme
:
mgr
.
GetScheme
(),
}).
SetupWithManager
(
mgr
);
err
!=
nil
{
setupLog
.
Error
(
err
,
"unable to create controller"
,
"controller"
,
"ScheduledScan"
)
os
.
Exit
(
1
)
}
if
err
=
(
&
executioncontrollers.
ScanTypeReconciler
{
Client
:
mgr
.
GetClient
(),
Log
:
ctrl
.
Log
.
WithName
(
"controllers"
).
WithName
(
"execution"
).
WithName
(
"ScanTypeController"
),
Scheme
:
mgr
.
GetScheme
(),
Recorder
:
mgr
.
GetEventRecorderFor
(
"ScanTypeController"
),
}).
SetupWithManager
(
mgr
);
err
!=
nil
{
setupLog
.
Error
(
err
,
"unable to create controller"
,
"controller"
,
"ScanTypeController"
)
os
.
Exit
(
1
)
}
//+kubebuilder:scaffold:builder
if
err
:=
mgr
.
AddHealthzCheck
(
"healthz"
,
healthz
.
Ping
);
err
!=
nil
{
setupLog
.
Error
(
err
,
"unable to set up health check"
)
os
.
Exit
(
1
)
}
if
err
:=
mgr
.
AddReadyzCheck
(
"readyz"
,
healthz
.
Ping
);
err
!=
nil
{
setupLog
.
Error
(
err
,
"unable to set up ready check"
)
os
.
Exit
(
1
)
}
if
enabled
,
ok
:=
os
.
LookupEnv
(
"TELEMETRY_ENABLED"
);
ok
&&
enabled
==
"true"
{
go
telemetry
.
Loop
(
mgr
.
GetClient
(),
ctrl
.
Log
.
WithName
(
"telemetry"
))
}
setupLog
.
Info
(
"starting manager"
)
if
err
:=
mgr
.
Start
(
ctrl
.
SetupSignalHandler
());
err
!=
nil
{
setupLog
.
Error
(
err
,
"problem running manager"
)
os
.
Exit
(
1
)
}
}
Back
|
FazBrowse Home
|
New Git URL