Repository: kubeflow/pipelines

Issue:
Invalid pipeline is generated if its name contains non-ascii chars only
### What steps did you take:
[A clear and concise description of what the bug is.]

Suppose there is a pipeline with non-ascii name:

```py
# sample.py
from kfp import dsl
@dsl.pipeline(name="サンプル")
def sample():
    ...
```

Then compile it:

```bash
dsl-compile --py sample.py --out sample.yaml
```

The sample.yaml becomes:

```yaml
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: Pipeline-
  ...
```

Then upload the pipeline and create run.

### What happened:

Failed because `Pipeline-` contains upper case char (`P`)

![image](https://user-images.githubusercontent.com/96157/107466593-acef3380-6ba7-11eb-81c1-4cd24d1f7337.png)

```json
{
   "error":"Failed to create a new run.: InternalServerError: Failed to create a workflow for (): Workflow.argoproj.io \"Pipeline-45z6j\" is invalid: [metadata.generateName: Invalid value: \"Pipeline-\": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'), metadata.name: Invalid value: \"Pipeline-45z6j\": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')]",
   "message":"Failed to create a new run.: InternalServerError: Failed to create a workflow for (): Workflow.argoproj.io \"Pipeline-45z6j\" is invalid: [metadata.generateName: Invalid value: \"Pipeline-\": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'), metadata.name: Invalid value: \"Pipeline-45z6j\": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')]",
   "code":13,
   "details":[
      {
         "@type":"type.googleapis.com/api.Error",
         "error_message":"Internal Server Error",
         "error_details":"Failed to create a new run.: InternalServerError: Failed to create a workflow for (): Workflow.argoproj.io \"Pipeline-45z6j\" is invalid: [metadata.generateName: Invalid value: \"Pipeline-\": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'), metadata.name: Invalid value: \"Pipeline-45z6j\": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')]"
      }
   ]
}
```

### What did you expect to happen:

Successfully create run.

### Environment:
<!-- Please fill in those that seem relevant. -->

How did you deploy Kubeflow Pipelines (KFP)? AI Platform Pipelines
<!-- If you are not sure, here's [an introduction of all options](https://www.kubeflow.org/docs/pipelines/installation/overview/). -->

KFP version: <!-- If you are not sure, build commit shows on bottom of KFP UI left sidenav. --> 1.0.4

KFP SDK version: <!-- Please attach the output of this shell command: $pip list | grep kfp --> 1.3.0


### Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]

The string `'Pipeline'` comes from 

https://github.com/kubeflow/pipelines/blob/3d40bba9a3e14b170a2c05e41a0b0bee64d399b8/sdk/python/kfp/compiler/compiler.py#L692

/kind bug
<!-- Please include labels by uncommenting them to help us better triage issues, choose from the following -->
<!--
// /area frontend
// /area backend
// /area sdk
// /area testing
// /area engprod
-->



Discussion:

Resolving patch:
diff --git a/sdk/python/kfp/compiler/compiler.py b/sdk/python/kfp/compiler/compiler.py
--- a/sdk/python/kfp/compiler/compiler.py
+++ b/sdk/python/kfp/compiler/compiler.py
@@ -689,7 +689,8 @@ def _create_pipeline_workflow(self, parameter_defaults, pipeline, op_transformer
         exit_handler = first_group.exit_op
 
     # The whole pipeline workflow
-    pipeline_name = pipeline.name or 'Pipeline'
+    # It must valid as a subdomain
+    pipeline_name = pipeline.name or 'pipeline'
 
     # Workaround for pipeline name clashing with container template names
     # TODO: Make sure template names cannot clash at all (container, DAG, workflow)


Test patch: