Open gvso opened 4 years ago
Based on our discussion today: the easiest way to do this will be not use k8s.io/client-go
and github.com/knative/serving/pkg/apis/serving/v1
package at all. With that, we need to have a KUBECONFIG file (or construct it in-memory) which complicates the configuration surface quite a bit.
If all we want to support is GKE, we can:
gcloud run
cli and accept --cluster-location
and --cluster
optionsgolang.org/x/oauth2
+ /google
)roles/container.admin
role (or equivalent Kubernetes RBAC binding inside the cluster, doesn't really matter).The only downsides I see are that:
metadata:
, and run/v1 package is not updated and picked up in this tool).run/v1
work with the k8s endpoint by tweaking some options).Thinking of the configuration from the user perspective:
./cloud_run_release_manager -platform=gke [-clusters=<MY_CLUSTER1>,<MY_CLUSTER2>] [-cluster-locations=us-central1-a,us-central1-b] [-namespaces=default] [-project=<PROJECT_ID>]
platform
is by default managed
. We could add support for managing services in CRFM and CRfA at the same time later
For the first implementation of this, we might want to make the optional arguments required. Maybe support a single cluster only
For the first implementation of this, we might want to make the optional arguments required. Maybe support a single cluster only
I think that'll be the case forever, by design. The tool should manage (1) either FM or CRFA, not both simultaneously, (2) only one cluster at a time.
This is related to #78 but simpler to do since we already have most of the basics. Let's add support for Knative running on Cloud Run for Anthos to cover all the Cloud Run cases