diff --git a/.github/workflows/e2e-multicluster-test.yml b/.github/workflows/e2e-multicluster-test.yml index 4d323f1e1..60e72d5ae 100644 --- a/.github/workflows/e2e-multicluster-test.yml +++ b/.github/workflows/e2e-multicluster-test.yml @@ -103,7 +103,7 @@ jobs: run: | make e2e-cleanup make vela-cli - make e2e-setup-core + make e2e-setup-core-auth make make setup-runtime-e2e-cluster diff --git a/charts/vela-core/templates/cluster-gateway/cluster-gateway.yaml b/charts/vela-core/templates/cluster-gateway/cluster-gateway.yaml index b7af88adc..9ebe9c913 100644 --- a/charts/vela-core/templates/cluster-gateway/cluster-gateway.yaml +++ b/charts/vela-core/templates/cluster-gateway/cluster-gateway.yaml @@ -147,4 +147,7 @@ subjects: - kind: Group name: kubevela:client apiGroup: rbac.authorization.k8s.io + - kind: ServiceAccount + name: {{ include "kubevela.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} {{ end }} \ No newline at end of file diff --git a/charts/vela-core/templates/kubevela-controller.yaml b/charts/vela-core/templates/kubevela-controller.yaml index 808b68269..b3782b3da 100644 --- a/charts/vela-core/templates/kubevela-controller.yaml +++ b/charts/vela-core/templates/kubevela-controller.yaml @@ -20,12 +20,56 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: "cluster-admin" + name: {{ if .Values.authentication.enabled }} {{ include "kubevela.fullname" . }}:manager {{ else }} "cluster-admin" {{ end }} subjects: - kind: ServiceAccount name: {{ include "kubevela.serviceAccountName" . }} namespace: {{ .Release.Namespace }} +{{ if .Values.authentication.enabled }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "kubevela.fullname" . }}:manager +rules: + - apiGroups: ["core.oam.dev", "terraform.core.oam.dev", "prism.oam.dev"] + resources: ["*"] + verbs: ["*"] + - apiGroups: ["cluster.open-cluster-management.io"] + resources: ["managedclusters"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["*"] + - apiGroups: ["apiregistration.k8s.io"] + resources: ["apiservices"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: [""] + resources: ["users", "groups", "serviceaccounts"] + verbs: ["impersonate"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["*"] + - apiGroups: [""] + resources: ["namespaces", "secrets", "services"] + verbs: ["get", "watch", "list"] + - apiGroups: [""] + resources: ["events"] + verbs: ["*"] + - apiGroups: ["apps"] + resources: ["controllerrevisions"] + verbs: ["get", "watch", "list"] + - apiGroups: ["admissionregistration.k8s.io"] + resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations"] + verbs: ["get", "list", "watch"] + - apiGroups: ["flowcontrol.apiserver.k8s.io"] + resources: ["prioritylevelconfigurations", "flowschemas"] + verbs: ["get", "list", "watch"] + - apiGroups: ["authorization.k8s.io"] + resources: ["subjectaccessreviews"] + verbs: ["*"] + --- # permissions to do leader election. apiVersion: rbac.authorization.k8s.io/v1 diff --git a/makefiles/e2e.mk b/makefiles/e2e.mk index 1bd0d0759..ec7bd9ead 100644 --- a/makefiles/e2e.mk +++ b/makefiles/e2e.mk @@ -1,14 +1,29 @@ - -.PHONY: e2e-setup-core -e2e-setup-core: +.PHONY: e2e-setup-core-pre-hook +e2e-setup-core-pre-hook: sh ./hack/e2e/modify_charts.sh - helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set image.repository=vela-core-test --set applicationRevisionLimit=5 --set dependCheckWait=10s --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core + +.PHONY: e2e-setup-core-post-hook +e2e-setup-core-post-hook: kubectl wait --for=condition=Available deployment/kubevela-vela-core -n vela-system --timeout=180s helm upgrade --install --namespace vela-system --wait oam-rollout --set image.repository=vela-runtime-rollout-test --set image.tag=$(GIT_COMMIT) ./runtime/rollout/charts go run ./e2e/addon/mock & sleep 15 bin/vela addon enable rollout +.PHONY: e2e-setup-core-wo-auth: +e2e-setup-core-wo-auth: + helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set image.repository=vela-core-test --set applicationRevisionLimit=5 --set dependCheckWait=10s --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core + +.PHONY: e2e-setup-core-w-auth: +e2e-setup-core-w-auth: + helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set image.repository=vela-core-test --set applicationRevisionLimit=5 --set dependCheckWait=10s --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core --set authentication.enabled=true --set authentication.withUser=true + +.PHONY: e2e-setup-core +e2e-setup-core: e2e-setup-core-pre-hook e2e-setup-core-wo-auth e2e-setup-core-post-hook + +.PHONY: e2e-setup-core-auth +e2e-setup-core-auth: e2e-setup-core-pre-hook e2e-setup-core-w-auth e2e-setup-core-post-hook + .PHONY: setup-runtime-e2e-cluster setup-runtime-e2e-cluster: helm upgrade --install --create-namespace --namespace vela-system --kubeconfig=$(RUNTIME_CLUSTER_CONFIG) --set image.pullPolicy=IfNotPresent --set image.repository=vela-runtime-rollout-test --set image.tag=$(GIT_COMMIT) --wait vela-rollout ./runtime/rollout/charts