Add '-runner-image' and '-docker-image' flags
This commit is contained in:
parent
ffdbe5cee9
commit
e6952f5ca1
|
|
@ -36,7 +36,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
defaultImage = "summerwind/actions-runner:latest"
|
|
||||||
containerName = "runner"
|
containerName = "runner"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -51,6 +50,8 @@ type RunnerReconciler struct {
|
||||||
Log logr.Logger
|
Log logr.Logger
|
||||||
Scheme *runtime.Scheme
|
Scheme *runtime.Scheme
|
||||||
GitHubClient *github.Client
|
GitHubClient *github.Client
|
||||||
|
RunnerImage string
|
||||||
|
DockerImage string
|
||||||
}
|
}
|
||||||
|
|
||||||
// +kubebuilder:rbac:groups=actions.summerwind.dev,resources=runners,verbs=get;list;watch;create;update;patch;delete
|
// +kubebuilder:rbac:groups=actions.summerwind.dev,resources=runners,verbs=get;list;watch;create;update;patch;delete
|
||||||
|
|
@ -196,9 +197,9 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) {
|
||||||
group int64 = 0
|
group int64 = 0
|
||||||
)
|
)
|
||||||
|
|
||||||
image := runner.Spec.Image
|
runnerImage := runner.Spec.Image
|
||||||
if image == "" {
|
if runnerImage == "" {
|
||||||
image = defaultImage
|
runnerImage = r.RunnerImage
|
||||||
}
|
}
|
||||||
|
|
||||||
pod := corev1.Pod{
|
pod := corev1.Pod{
|
||||||
|
|
@ -211,7 +212,7 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) {
|
||||||
Containers: []corev1.Container{
|
Containers: []corev1.Container{
|
||||||
{
|
{
|
||||||
Name: containerName,
|
Name: containerName,
|
||||||
Image: image,
|
Image: runnerImage,
|
||||||
ImagePullPolicy: "Always",
|
ImagePullPolicy: "Always",
|
||||||
Env: []corev1.EnvVar{
|
Env: []corev1.EnvVar{
|
||||||
{
|
{
|
||||||
|
|
@ -239,7 +240,7 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "docker",
|
Name: "docker",
|
||||||
Image: "docker:19.03.5-dind",
|
Image: r.DockerImage,
|
||||||
VolumeMounts: []corev1.VolumeMount{
|
VolumeMounts: []corev1.VolumeMount{
|
||||||
{
|
{
|
||||||
Name: "docker",
|
Name: "docker",
|
||||||
|
|
|
||||||
19
main.go
19
main.go
|
|
@ -34,6 +34,11 @@ import (
|
||||||
// +kubebuilder:scaffold:imports
|
// +kubebuilder:scaffold:imports
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
defaultRunnerImage = "summerwind/actions-runner:v2.165.1"
|
||||||
|
defaultDockerImage = "docker:19.03.5-dind"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
scheme = runtime.NewScheme()
|
scheme = runtime.NewScheme()
|
||||||
setupLog = ctrl.Log.WithName("setup")
|
setupLog = ctrl.Log.WithName("setup")
|
||||||
|
|
@ -47,11 +52,19 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var metricsAddr string
|
var (
|
||||||
var enableLeaderElection bool
|
metricsAddr string
|
||||||
|
enableLeaderElection bool
|
||||||
|
|
||||||
|
runnerImage string
|
||||||
|
dockerImage string
|
||||||
|
)
|
||||||
|
|
||||||
flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
|
flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
|
||||||
flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
|
flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
|
||||||
"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
|
"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
|
||||||
|
flag.StringVar(&runnerImage, "runner-image", defaultRunnerImage, "The image name of self-hosted runner container.")
|
||||||
|
flag.StringVar(&dockerImage, "docker-image", defaultDockerImage, "The image name of docker sidecar container.")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
ghToken := os.Getenv("GITHUB_TOKEN")
|
ghToken := os.Getenv("GITHUB_TOKEN")
|
||||||
|
|
@ -85,6 +98,8 @@ func main() {
|
||||||
Log: ctrl.Log.WithName("controllers").WithName("Runner"),
|
Log: ctrl.Log.WithName("controllers").WithName("Runner"),
|
||||||
Scheme: mgr.GetScheme(),
|
Scheme: mgr.GetScheme(),
|
||||||
GitHubClient: ghClient,
|
GitHubClient: ghClient,
|
||||||
|
RunnerImage: runnerImage,
|
||||||
|
DockerImage: dockerImage,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = runnerReconciler.SetupWithManager(mgr); err != nil {
|
if err = runnerReconciler.SetupWithManager(mgr); err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue