Add '-runner-image' and '-docker-image' flags

This commit is contained in:
Moto Ishizawa 2020-02-03 16:56:52 +09:00
parent ffdbe5cee9
commit e6952f5ca1
2 changed files with 24 additions and 8 deletions

View File

@ -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
View File

@ -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 {