Support local snapshot RBAC for pull jobs
@@ -1064,18 +1064,24 @@ main () {
# always pulling the image
# (https://github.com/kubernetes-sigs/kind/issues/328).
docker tag "$i:latest" "$i:csiprow" || die "tagging the locally built container image for $i failed"
- done
- if [ -e deploy/kubernetes/rbac.yaml ]; then
+ # For components with multiple cmds, the RBAC file should be in the following format:
+ # rbac-$cmd.yaml
+ # If this file cannot be found, we can default to the standard location:
+ # deploy/kubernetes/rbac.yaml
+ rbac_file_path=$(find . -type f -name "rbac-$i.yaml")
+ if [ "$rbac_file_path" == "" ]; then
+ rbac_file_path="$(pwd)/deploy/kubernetes/rbac.yaml"
+ fi
+
+ if [ -e "$rbac_file_path" ]; then
# This is one of those components which has its own RBAC rules (like external-provisioner).
# We are testing a locally built image and also want to test with the the current,
# potentially modified RBAC rules.
- if [ "$(echo "$cmds" | wc -w)" != 1 ]; then
- die "ambiguous deploy/kubernetes/rbac.yaml: need exactly one command, got: $cmds"
- fi
- e=$(echo "$cmds" | tr '[:lower:]' '[:upper:]' | tr - _)
- images="$images ${e}_RBAC=$(pwd)/deploy/kubernetes/rbac.yaml"
+ e=$(echo "$i" | tr '[:lower:]' '[:upper:]' | tr - _)
+ images="$images ${e}_RBAC=$rbac_file_path"
fi
+ done
fi
if tests_need_non_alpha_cluster; then
