Skip to content

Commit 19fc55b

Browse files
committed
Add --disableupdate flag
1 parent 5f1a998 commit 19fc55b

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

bin/runner.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"os/signal"
1616
"path"
1717
"regexp"
18+
"strings"
1819
"syscall"
1920

2021
expect "github.com/google/goexpect"
@@ -136,8 +137,12 @@ func getRemoveToken(repository string, token string) string {
136137
return removeTokenResponse.Token
137138
}
138139

139-
func run(registrationToken string, repository string, hostname string) {
140-
e, _, err := expect.Spawn(fmt.Sprintf("bash config.sh --token %s --url https://github.com/%s", registrationToken, repository), -1)
140+
func run(registrationToken string, repository string, hostname string, disableupdate bool) {
141+
var args []string
142+
if disableupdate {
143+
args = append(args, "--disableupdate")
144+
}
145+
e, _, err := expect.Spawn(fmt.Sprintf("bash config.sh --token %s --url https://github.com/%s %s", registrationToken, repository, strings.Join(args, " ")), -1)
141146
if err != nil {
142147
log.Fatal(err)
143148
}
@@ -200,12 +205,14 @@ func main() {
200205
var hostname string
201206
var onlyInstall bool
202207
var withoutInstall bool
208+
var disableupdate bool
203209
flag.StringVar(&runnerVersion, "runner-version", "2.291.1", "Version of GitHub Actions runner")
204210
flag.StringVar(&repository, "repository", "kaidotdev/github-actions-runner-controller", "GitHub Repository Name")
205211
flag.StringVar(&token, "token", "********", "GitHub Token")
206212
flag.StringVar(&hostname, "hostname", "runner", "Hostname used as Runner name")
207213
flag.BoolVar(&onlyInstall, "only-install", false, "Execute install only")
208214
flag.BoolVar(&withoutInstall, "without-install", false, "Execute without install")
215+
flag.BoolVar(&disableupdate, "disableupdate", false, "Disable self-hosted runner automatic update to the latest released version")
209216
flag.Parse()
210217

211218
check()
@@ -221,7 +228,7 @@ func main() {
221228

222229
log.Printf("Run: %s", hostname)
223230
registrationToken := getRegistrationToken(repository, token)
224-
go run(registrationToken, repository, hostname)
231+
go run(registrationToken, repository, hostname, disableupdate)
225232

226233
<-quit
227234
log.Printf("Remove: %s", hostname)

controllers/runner_controller.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ type RunnerReconciler struct {
4646
KanikoImage string
4747
BinaryVersion string
4848
RunnerVersion string
49+
Disableupdate bool
4950
}
5051

5152
func (r *RunnerReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {
@@ -172,7 +173,7 @@ func (r *RunnerReconciler) buildBuilderContainer(runner *garV1.Runner) v1.Contai
172173
}
173174

174175
func (r *RunnerReconciler) buildRunnerContainer(runner *garV1.Runner) v1.Container {
175-
return v1.Container{
176+
c := v1.Container{
176177
Name: "runner",
177178
Image: fmt.Sprintf("%s/%s", r.PullRegistryHost, r.buildRepositoryName(runner)),
178179
ImagePullPolicy: v1.PullAlways,
@@ -212,6 +213,10 @@ func (r *RunnerReconciler) buildRunnerContainer(runner *garV1.Runner) v1.Contain
212213
TerminationMessagePath: coreV1.TerminationMessagePathDefault,
213214
TerminationMessagePolicy: coreV1.TerminationMessageReadFile,
214215
}
216+
if r.Disableupdate {
217+
c.Args = append(c.Args, "--disableupdate")
218+
}
219+
return c
215220
}
216221

217222
func (r *RunnerReconciler) buildExporterContainer(runner *garV1.Runner) v1.Container {

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ func main() {
3737
var kanikoImage string
3838
var binaryVersion string
3939
var runnerVersion string
40+
var disableupdate bool
4041
flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
4142
flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
4243
"Enable leader election for controller manager.")
@@ -47,6 +48,7 @@ func main() {
4748
flag.StringVar(&kanikoImage, "kaniko-image", "gcr.io/kaniko-project/executor:v0.18.0", "Docker Image of kaniko used by builder container")
4849
flag.StringVar(&binaryVersion, "binary-version", "0.3.13", "Version of own runner binary")
4950
flag.StringVar(&runnerVersion, "runner-version", "2.291.1", "Version of GitHub Actions runner")
51+
flag.BoolVar(&disableupdate, "disableupdate", false, "Disable self-hosted runner automatic update to the latest released version")
5052
flag.Parse()
5153

5254
ctrl.SetLogger(zap.Logger(true))
@@ -75,6 +77,7 @@ func main() {
7577
KanikoImage: kanikoImage,
7678
BinaryVersion: binaryVersion,
7779
RunnerVersion: runnerVersion,
80+
Disableupdate: disableupdate,
7881
}).SetupWithManager(mgr); err != nil {
7982
setupLog.Error(err, "unable to create controller", "controller", "Runner")
8083
os.Exit(1)

0 commit comments

Comments
 (0)