Repository: kubeflow/kfp-tekton (language: python)

Issue:
The parallel_join_with_argo_vars pipeline has syntax error: unterminated quoted string
/kind bug

**What steps did you take and what happened:**

```
$ kfp run submit -f sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.yaml \
    --experiment-name Default \
    --run-name paralleljoin

Run 71a96352-d51c-40b1-b4c6-983246e25fdb is submitted
+--------------------------------------+--------------+----------+---------------------------+
| run id                               | name         | status   | created at                |
+======================================+==============+==========+===========================+
| 71a96352-d51c-40b1-b4c6-983246e25fdb | paralleljoin |          | 2021-02-16T21:49:10+00:00 |
+--------------------------------------+--------------+----------+---------------------------+
```

```
$ tkn pipelinerun logs --last -n kubeflow | tail

task echo has failed: "step-main" exited with code 2 (image: "docker.io/library/bash@sha256:c13972497404d4a55da93d9e4d9fb9736694f2473833e2b91180483eafe2ec33"); for logs run: kubectl -n kubeflow logs parallel-pipeline-with-argo-vars-71a96-echo-qd7q9-pod-4gngm -c step-main

Tasks Completed: 3 (Failed: 1, Cancelled 0), Skipped: 0

[gcs-download-2 : copy-artifacts] Added `storage` successfully.
[gcs-download-2 : copy-artifacts] tekton/results/data
[gcs-download-2 : copy-artifacts] tar: removing leading '/' from member names
[gcs-download-2 : copy-artifacts] `data.tgz` -> `storage/mlpipeline/artifacts/parallel-pipeline-with-argo-vars-71a96/gcs-download-2/data.tgz`
[gcs-download-2 : copy-artifacts] Total: 0 B, Transferred: 204 B, Speed: 6.56 KiB/s

[echo : main] With which he yoketh your rebellious necks Razeth your cities and subverts your towns And in a moment makes them desolate
[echo : main] : line 2: syntax error: unterminated quoted string
```


**Environment:**

* Python Version (use `python --version`): `3.9`
* SDK Version: `0.6`
* Tekton Version (use `tkn version`): `0.20`
* Kubernetes Version (use `kubectl version`): `1.18`




Discussion / hints:

Fix patch:
diff --git a/guides/kfp_tekton_install.md b/guides/kfp_tekton_install.md
index be5f0ca4c3..ba87df6e87 100644
--- a/guides/kfp_tekton_install.md
+++ b/guides/kfp_tekton_install.md
@@ -17,7 +17,7 @@ A Kubernetes cluster `v1.18` that has least 8 vCPU and 16 GB memory.
 ### IBM Cloud Kubernetes Service (IKS)
 
    1. [Create an IBM Cloud cluster](https://www.kubeflow.org/docs/ibm/create-cluster/) or if you have an existing cluster, please follow the [initial setup for an existing cluster](https://github.com/kubeflow/website/blob/master/content/en/docs/ibm/create-cluster.md#connecting-to-an-existing-cluster)
-   2. **Important**: Configure the IKS cluster with [IBM Cloud Block Storage Setup](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow/#ibm-cloud-block-storage-setup)
+   2. **Important**: Configure the IKS cluster with [IBM Cloud Block Storage Setup](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow-on-iks/#ibm-cloud-block-storage-setup)
 
 ### OpenShift
 
@@ -60,7 +60,7 @@ To install the standalone Kubeflow Pipelines with Tekton, run the following step
 
 **Important: Please complete the [prerequisites](#installation-targets-and-prerequisites) before proceeding with the following instructions.**
 
-1. Follow the [Kubeflow install instructions](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow/#kubeflow-installation)
+1. Follow the [Kubeflow install instructions](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow-on-iks/#kubeflow-installation)
    to install the entire Kubeflow stack with `kfp-tekton`.
    Kubeflow `1.2.0` uses Tekton `v0.14.0` and `kfp-tekton` `v0.4.0`. <!-- TODO update-->
 
@@ -79,7 +79,7 @@ To install the standalone Kubeflow Pipelines with Tekton, run the following step
     kubectl rollout restart -n istio-system statefulset/authservice
     ```
 
-    Then, redo the [Kubeflow install](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow/#kubeflow-installation) section to redeploy Kubeflow with the [block storageclass](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow/#ibm-cloud-block-storage-setup).
+    Then, redo the [Kubeflow install](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow-on-iks/#kubeflow-installation) section to redeploy Kubeflow with the [block storageclass](https://www.kubeflow.org/docs/ibm/deploy/install-kubeflow-on-iks/#ibm-cloud-block-storage-setup).
 
 - If you redeploy Kubeflow and some components are not showing up, it was due to the [dynamic created webhook issue](https://github.com/kubeflow/manifests/issues/1379). This issue will be [fixed](https://github.com/kubeflow/pipelines/pull/4429) in the next release of KFP.
     ```shell


Test patch:
diff --git a/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.log b/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.log
index fb9ce577ad..28c17f3363 100644
--- a/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.log
+++ b/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.log
@@ -3,9 +3,12 @@
 [gcs-download-2 : main] I find thou art no less than fame hath bruited And more than may be gatherd by thy shape Let my presumption not provoke thy wrath
 
 [echo : main] Text 1: With which he yoketh your rebellious necks Razeth your cities and subverts your towns And in a moment makes them desolate
-[echo : main] 
+[echo : main]
 [echo : main] Text 2: I find thou art no less than fame hath bruited And more than may be gatherd by thy shape Let my presumption not provoke thy wrath
-[echo : main] 
+[echo : main]
 [echo : main] With which he yoketh your rebellious necks Razeth your cities and subverts your towns And in a moment makes them desolate
-[echo : main] 
+[echo : main]
+[echo : main] parallel-pipeline-with-argo-vars
+[echo : main] kubeflow
+[echo : main] 7af44c31-799f-4651-b476-746fbe6bd095
 
diff --git a/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.py b/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.py
index d602058b8d..f226a5bb50 100644
--- a/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.py
+++ b/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.py
@@ -1,4 +1,4 @@
-# Copyright 2020 kubeflow.org
+# Copyright 2020-2021 kubeflow.org
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ def echo2_op(text1, text2):
         image='library/bash:4.4.23',
         command=['sh', '-c'],
         arguments=['echo "Text 1: $0"; echo "Text 2: $1"; echo "{{inputs.parameters.gcs-download-data}}";\
-            echo "{{workflow.name}}; echo "{{workflow.namespace}}"; echo "{{workflow.uid}}"', text1, text2]
+            echo "{{workflow.name}}"; echo "{{workflow.namespace}}"; echo "{{workflow.uid}}"', text1, text2]
     )
 
 
diff --git a/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.yaml b/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.yaml
index 9b4bdedb56..40046f1694 100644
--- a/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.yaml
+++ b/sdk/python/tests/compiler/testdata/parallel_join_with_argo_vars.yaml
@@ -1,4 +1,4 @@
-# Copyright 2020 kubeflow.org
+# Copyright 2020-2021 kubeflow.org
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -111,8 +111,8 @@ spec:
         steps:
         - args:
           - 'echo "Text 1: $0"; echo "Text 2: $1"; echo "$(inputs.params.gcs-download-data)";            echo
-            "$(params.pipelineRun-name); echo "$(params.pipelineRun-namespace)"; echo
-            "$(params.pipelineRun-uid)"'
+            "$(params.pipelineRun-name)"; echo "$(params.pipelineRun-namespace)";
+            echo "$(params.pipelineRun-uid)"'
           - $(inputs.params.gcs-download-data)
           - $(inputs.params.gcs-download-2-data)
           command: