Skip to content

Commit

Permalink
Use step type to detect services in Kubernetes backend (woodpecker-ci…
Browse files Browse the repository at this point in the history
…#3141)

and use the correct name for tail log

---------

Co-authored-by: Anbraten <anton@ju60.de>
  • Loading branch information
2 people authored and fernandrone committed Feb 1, 2024
1 parent 0ae905d commit 2f61ec0
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
22 changes: 14 additions & 8 deletions pipeline/backend/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,8 @@ func (e *kube) SetupWorkflow(ctx context.Context, conf *types.Config, taskUUID s

extraHosts := []types.HostAlias{}
for _, stage := range conf.Stages {
if stage.Alias == "services" {
for _, step := range stage.Steps {
for _, step := range stage.Steps {
if step.Type == types.StepTypeService {
svc, err := startService(ctx, e, step)
if err != nil {
return err
Expand All @@ -196,6 +196,11 @@ func (e *kube) SetupWorkflow(ctx context.Context, conf *types.Config, taskUUID s

// Start the pipeline step.
func (e *kube) StartStep(ctx context.Context, step *types.Step, taskUUID string) error {
if step.Type == types.StepTypeService {
// a service should be started by SetupWorkflow so we can ignore it
log.Trace().Msgf("StartStep got service '%s', ignoring it.", step.Name)
return nil
}
log.Trace().Str("taskUUID", taskUUID).Msgf("Starting step: %s", step.Name)
_, err := startPod(ctx, e, step)
return err
Expand All @@ -204,7 +209,7 @@ func (e *kube) StartStep(ctx context.Context, step *types.Step, taskUUID string)
// Wait for the pipeline step to complete and returns
// the completion results.
func (e *kube) WaitStep(ctx context.Context, step *types.Step, taskUUID string) (*types.State, error) {
podName, err := dnsName(step.Name)
podName, err := stepToPodName(step)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -274,7 +279,7 @@ func (e *kube) WaitStep(ctx context.Context, step *types.Step, taskUUID string)

// Tail the pipeline step logs.
func (e *kube) TailStep(ctx context.Context, step *types.Step, taskUUID string) (io.ReadCloser, error) {
podName, err := dnsName(step.Name)
podName, err := stepToPodName(step)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -337,13 +342,14 @@ func (e *kube) TailStep(ctx context.Context, step *types.Step, taskUUID string)
}
}()
return rc, nil

// rc := io.NopCloser(bytes.NewReader(e.logs.Bytes()))
// e.logs.Reset()
// return rc, nil
}

func (e *kube) DestroyStep(_ context.Context, step *types.Step, taskUUID string) error {
if step.Type == types.StepTypeService {
// a service should be stopped by DestroyWorkflow so we can ignore it
log.Trace().Msgf("DestroyStep got service '%s', ignoring it.", step.Name)
return nil
}
log.Trace().Str("taskUUID", taskUUID).Msgf("Stopping step: %s", step.Name)
err := stopPod(e.ctx, e, step, defaultDeleteOptions)
return err
Expand Down
7 changes: 7 additions & 0 deletions pipeline/backend/kubernetes/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ func mkPod(namespace, name, image, workDir, goos, serviceAccountName string,
return pod, nil
}

func stepToPodName(step *types.Step) (name string, err error) {
if step.Type == types.StepTypeService {
return serviceName(step)
}
return podName(step)
}

func podName(step *types.Step) (string, error) {
return dnsName(step.Name)
}
Expand Down

0 comments on commit 2f61ec0

Please sign in to comment.