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