Untitled
unknown
plain_text
a month ago
3.4 kB
5
Indexable
check_permissions() { log "Checking cluster permissions..." local has_issues=0 # Get current user info local current_user=$(kubectl config view --minify --output 'jsonpath={..user.username}') log "Current user context: $current_user" # Check cluster-level permissions log "Checking cluster-level permissions..." local CLUSTER_RESOURCES=("nodes" "namespaces" "clusterroles" "clusterrolebindings" "persistentvolumes") for resource in "${CLUSTER_RESOURCES[@]}"; do if kubectl auth can-i get "$resource" &>/dev/null; then log "✓ Can access $resource" else log "✗ Cannot access $resource" fi done # Check RunAI CRDs existence and permissions log "Checking RunAI custom resource permissions..." local RUNAI_RESOURCES=("projects.run.ai" "departments.run.ai" "trainingworkloads.run.ai" "inferenceworkloads.run.ai") local runai_permission_found=false for resource in "${RUNAI_RESOURCES[@]}"; do local can_get=false local can_create=false local can_delete=false if kubectl auth can-i get "$resource" -n "$NAMESPACE" &>/dev/null; then can_get=true runai_permission_found=true fi if kubectl auth can-i create "$resource" -n "$NAMESPACE" &>/dev/null; then can_create=true runai_permission_found=true fi if kubectl auth can-i delete "$resource" -n "$NAMESPACE" &>/dev/null; then can_delete=true runai_permission_found=true fi log "Resource: $resource" log " - Get: $([ "$can_get" = true ] && echo "✓" || echo "✗")" log " - Create: $([ "$can_create" = true ] && echo "✓" || echo "✗")" log " - Delete: $([ "$can_delete" = true ] && echo "✓" || echo "✗")" done if ! $runai_permission_found; then log "WARNING: No RunAI resource permissions found" has_issues=1 fi # Check namespace-level permissions log "Checking namespace-level permissions in $NAMESPACE..." local NS_RESOURCES=("pods" "deployments" "services" "configmaps" "secrets") local ns_permission_found=false for resource in "${NS_RESOURCES[@]}"; do if kubectl auth can-i create "$resource" -n "$NAMESPACE" &>/dev/null; then log "✓ Can manage $resource" ns_permission_found=true else log "✗ Cannot manage $resource" fi done if ! $ns_permission_found; then log "WARNING: No namespace-level permissions found" has_issues=1 fi # Check RBAC permissions log "Checking RBAC permissions..." local RBAC_RESOURCES=("roles" "rolebindings") local has_rbac_permissions=false for resource in "${RBAC_RESOURCES[@]}"; do if kubectl auth can-i create "$resource" -n "$NAMESPACE" &>/dev/null; then log "✓ Can manage $resource" has_rbac_permissions=true else log "✗ Cannot manage $resource" fi done if ! $has_rbac_permissions; then log "WARNING: No RBAC management permissions found" has_issues=1 fi # List current role bindings log "Current role bindings for $current_user:" kubectl get rolebindings,clusterrolebindings --all-namespaces -o wide | grep -i "$current_user" || log "No role bindings found" return $has_issues }
Editor is loading...
Leave a Comment