Run tags from the Dagit playground may contain user defined k8s config, but currently on the tags on the pipeline definition (external_pipeline.tags) are being parsed for user defined k8s config. With this change, all run tags are parsed for user defined k8s config.
For testing, I chose the path of mocking the k8s API client. This required a bit of refactoring on K8sRunLauncher and CeleryK8sRunLauncher to allow dependency injection for a k8s API client. The tests then use a mock to record the k8s job that was given to the k8s API client.