@@ -11,6 +11,7 @@ import (
1111 "github.com/pulumi/pulumi/sdk/v3/go/auto"
1212 "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
1313 "github.com/redhat-developer/mapt/pkg/integrations"
14+ "github.com/redhat-developer/mapt/pkg/integrations/github"
1415 "github.com/redhat-developer/mapt/pkg/integrations/gitlab"
1516 "github.com/redhat-developer/mapt/pkg/integrations/otelcol"
1617 "github.com/redhat-developer/mapt/pkg/manager"
@@ -29,9 +30,10 @@ import (
2930var CloudConfig []byte
3031
3132type userDataValues struct {
32- Gateway string
33- OtelColScript string
34- GitLabRunnerScript string
33+ Gateway string
34+ OtelColScript string
35+ GitLabRunnerScript string
36+ GHActionsRunnerScript string
3537}
3638
3739const (
@@ -183,6 +185,15 @@ func (r *pwRequest) deploy(ctx *pulumi.Context) error {
183185 }
184186 hasOtel := otelSet == 3
185187
188+ ghRunnerScript := ""
189+ if ghRunnerArgs := github .GetRunnerArgs (); ghRunnerArgs != nil {
190+ s , err := integrations .GetIntegrationSnippetAsCloudInitWritableFile (ghRunnerArgs , defaultUser )
191+ if err != nil {
192+ return err
193+ }
194+ ghRunnerScript = * s
195+ }
196+
186197 var piUserDataInput pulumi.StringPtrInput
187198 glRunnerArgs := gitlab .GetRunnerArgs ()
188199 if glRunnerArgs != nil {
@@ -192,6 +203,7 @@ func (r *pwRequest) deploy(ctx *pulumi.Context) error {
192203 }
193204 gateway := subnetInfo .Gateway
194205 localArgs := * glRunnerArgs
206+ localGHScript := ghRunnerScript
195207 piUserDataInput = authToken .ApplyT (func (token string ) (* string , error ) {
196208 localArgs .AuthToken = token
197209 glSnippet , err := integrations .GetIntegrationSnippetAsCloudInitWritableFile (& localArgs , defaultUser )
@@ -202,7 +214,7 @@ func (r *pwRequest) deploy(ctx *pulumi.Context) error {
202214 if hasOtel {
203215 otelArgs = r .otelArgs (true )
204216 }
205- ud , err := piUserData (gateway , otelArgs , * glSnippet )
217+ ud , err := piUserData (gateway , otelArgs , * glSnippet , localGHScript )
206218 if err != nil {
207219 return nil , err
208220 }
@@ -213,7 +225,7 @@ func (r *pwRequest) deploy(ctx *pulumi.Context) error {
213225 if hasOtel {
214226 otelArgs = r .otelArgs (false )
215227 }
216- ud , err := piUserData (subnetInfo .Gateway , otelArgs , "" )
228+ ud , err := piUserData (subnetInfo .Gateway , otelArgs , "" , ghRunnerScript )
217229 if err != nil {
218230 return fmt .Errorf ("failed to render user data: %w" , err )
219231 }
@@ -455,7 +467,7 @@ func (r *pwRequest) otelArgs(monitorGitLabRunner bool) *otelcol.OtelcolArgs {
455467
456468// piUserData renders the cloud-config template and returns it base64-encoded
457469// for use as PiUserData on a PowerVS instance.
458- func piUserData (gateway string , otelArgs * otelcol.OtelcolArgs , glRunnerScript string ) (string , error ) {
470+ func piUserData (gateway string , otelArgs * otelcol.OtelcolArgs , glRunnerScript , ghRunnerScript string ) (string , error ) {
459471 otelScript := ""
460472 if otelArgs != nil {
461473 s , err := otelcol .GetSnippetAsCloudInitWritableFile (otelArgs )
@@ -466,9 +478,10 @@ func piUserData(gateway string, otelArgs *otelcol.OtelcolArgs, glRunnerScript st
466478 }
467479 script , err := file .Template (
468480 userDataValues {
469- Gateway : gateway ,
470- OtelColScript : otelScript ,
471- GitLabRunnerScript : glRunnerScript ,
481+ Gateway : gateway ,
482+ OtelColScript : otelScript ,
483+ GitLabRunnerScript : glRunnerScript ,
484+ GHActionsRunnerScript : ghRunnerScript ,
472485 },
473486 string (CloudConfig ))
474487 if err != nil {
0 commit comments