Skip to content

Commit

Permalink
IterateNumeric behavior changed to contain the value of current inter…
Browse files Browse the repository at this point in the history
…ation item. (kubeflow#904)
  • Loading branch information
ScrapCodes authored Apr 4, 2022
1 parent 53fa9e7 commit e9f61fc
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ metadata:
spec:
pipelineSpec:
params:
- name: iteration
- name: iteration-item
type: string
tasks:
- name: echo-good-morning
params:
- name: iteration
value: $(params.iteration)
- name: iteration-item
value: $(params.iteration-item)
taskSpec:
params:
- name: iteration
- name: iteration-item
type: string
steps:
- name: echo
image: ubuntu
imagePullPolicy: IfNotPresent
script: |
#!/usr/bin/env bash
echo "$(params.iteration)"
iterateNumeric: iteration
echo "$(params.iteration-item)"
iterateNumeric: iteration-item

---
apiVersion: tekton.dev/v1alpha1
Expand All @@ -33,11 +33,11 @@ metadata:
spec:
params:
- name: from
value: '1'
value: '10'
- name: step
value: '1'
- name: to
value: '3'
value: '15'
ref:
apiVersion: custom.tekton.dev/v1alpha1
kind: PipelineLoop
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,7 @@ func (c *Reconciler) createPipelineRun(ctx context.Context, logger *zap.SugaredL
Annotations: pipelineRunAnnotations,
},
Spec: v1beta1.PipelineRunSpec{
Params: getParameters(run, tls, iteration),
Params: getParameters(run, tls, iteration, string(currentIterationItemBytes)),
Timeout: tls.Timeout,
ServiceAccountName: tls.ServiceAccountName,
PodTemplate: tls.PodTemplate,
Expand Down Expand Up @@ -785,33 +785,31 @@ func computeIterations(run *v1alpha1.Run, tls *pipelineloopv1alpha1.PipelineLoop
iterationParamStr := ""
iterationParamStrSeparator := ""
for _, p := range run.Spec.Params {
if tls.IterateNumeric != "" {
if p.Name == "from" {
from, _ = strconv.Atoi(p.Value.StringVal)
}
if p.Name == "step" {
step, _ = strconv.Atoi(p.Value.StringVal)
}
if p.Name == "to" {
to, _ = strconv.Atoi(p.Value.StringVal)
if p.Name == "from" {
from, _ = strconv.Atoi(p.Value.StringVal)
}
if p.Name == "step" {
step, _ = strconv.Atoi(p.Value.StringVal)
}
if p.Name == "to" {
to, _ = strconv.Atoi(p.Value.StringVal)
}
if p.Name == tls.IterateParam {
if p.Value.Type == v1beta1.ParamTypeString {
iterationParamStr = strings.Trim(p.Value.StringVal, " ")
}
} else {
if p.Name == tls.IterateParam {
if p.Value.Type == v1beta1.ParamTypeString {
iterationParamStr = strings.Trim(p.Value.StringVal, " ")
}
if p.Value.Type == v1beta1.ParamTypeArray {
numberOfIterations = len(p.Value.ArrayVal)
for _, v := range p.Value.ArrayVal {
iterationElements = append(iterationElements, v)
}
break
if p.Value.Type == v1beta1.ParamTypeArray {
numberOfIterations = len(p.Value.ArrayVal)
for _, v := range p.Value.ArrayVal {
iterationElements = append(iterationElements, v)
}
break
}
if p.Name == tls.IterateParamSeparator {
iterationParamStrSeparator = p.Value.StringVal
}
}
if p.Name == tls.IterateParamSeparator {
iterationParamStrSeparator = p.Value.StringVal
}

}
if iterationParamStr != "" {
// Transfer p.Value to Array.
Expand Down Expand Up @@ -856,7 +854,7 @@ func computeIterations(run *v1alpha1.Run, tls *pipelineloopv1alpha1.PipelineLoop
}
}
}
if tls.IterateNumeric != "" {
if from != -1 || to != -1 {
if from == -1 || to == -1 {
return 0, iterationElements, fmt.Errorf("The from or to parameters was not found in runs")
}
Expand All @@ -874,7 +872,7 @@ func computeIterations(run *v1alpha1.Run, tls *pipelineloopv1alpha1.PipelineLoop
return numberOfIterations, iterationElements, nil
}

func getParameters(run *v1alpha1.Run, tls *pipelineloopv1alpha1.PipelineLoopSpec, iteration int) []v1beta1.Param {
func getParameters(run *v1alpha1.Run, tls *pipelineloopv1alpha1.PipelineLoopSpec, iteration int, currentIterationItem string) []v1beta1.Param {
var out []v1beta1.Param
if tls.IterateParam != "" {
// IterateParam defined
Expand Down Expand Up @@ -952,17 +950,19 @@ func getParameters(run *v1alpha1.Run, tls *pipelineloopv1alpha1.PipelineLoopSpec
out = append(out, run.Spec.Params[i])
}
}
out = append(out, v1beta1.Param{
Name: tls.IterateNumeric,
Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: strconv.Itoa(iteration)},
})
}
if tls.IterationNumberParam != "" {
out = append(out, v1beta1.Param{
Name: tls.IterationNumberParam,
Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: strconv.Itoa(iteration)},
})
}
if tls.IterateNumeric != "" {
out = append(out, v1beta1.Param{
Name: tls.IterateNumeric,
Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: currentIterationItem},
})
}
return out
}

Expand Down

0 comments on commit e9f61fc

Please sign in to comment.