Just-in-time Kubernetes resource creation
Problem to solve
Currently, we provision project-related k8s resources (namespace, service account) automatically for all projects related to the action (at this time avail at group-level only). This is not ideal for instance-level clusters https://gitlab.com/gitlab-org/gitlab-ce/issues/39840 as not all projects may make use of the k8s integration.
In order to provision group and instance level clusters efficiently, we should create the necessary project-related resources (namespace, service account) just-in-time. We should defer namespace and svc account creation until project has a deployment CI job. Any other type of job (ie. build, test) should not create k8s resources. Finally, environment name should be derived from the job the create the resources in the correct location.