Last active
February 27, 2025 15:54
-
-
Save mbarnes/fda6047c9b236473f07f310250ce9bc3 to your computer and use it in GitHub Desktop.
Bash aliases to help test the ARO-HCP resource provider
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Helper functions for testing the ARO-HCP resource provider. | |
# | |
# These assume the RP is running locally or using port forwarding. | |
# | |
CLUSTER=${CLUSTER:-mbarnestest} | |
NODE_POOL=${NODE_POOL:-np-1} | |
API_VERSION=${API_VERSION:-2024-06-10-preview} | |
if [ ! -v AZURE_TENANT_ID ] | |
then | |
export AZURE_TENANT_ID=$(az account show --query tenantId --output tsv) | |
fi | |
if [ ! -v AZURE_SUBSCRIPTION_ID ] | |
then | |
export AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv) | |
fi | |
export ARO_HCP_SERVER="localhost:8443" | |
# For interacting with AKS | |
alias k=kubectl | |
export KUBECONFIG=/home/mbarnes/.kube/hcp-underlay-usw3mbar-svc.kubeconfig | |
# Log into OpenShift Cluster Manager | |
alias ocm_login="ocm login --url=http://localhost:8000 --use-auth-code" | |
# Watch pods in aro-hcp namespace | |
alias aro_hcp_pods="watch kubectl get pods --namespace aro-hcp --output wide" | |
# Scale aro-hcp-frontend/backend to one replica | |
alias aro_hcp_frontend_scale="kubectl scale --replicas 1 --namespace aro-hcp deployment/aro-hcp-frontend" | |
alias aro_hcp_backend_scale="kubectl scale --replicas 1 --namespace aro-hcp deployment/aro-hcp-backend" | |
# Follow Resource Provider pod logs | |
alias aro_hcp_frontend_logs="kubectl logs --follow --namespace aro-hcp \$(kubectl get pods --namespace aro-hcp --selector app=aro-hcp-frontend --output=name | head --lines=1) | jq 'select(.request_path != \"/healthz\")'" | |
alias aro_hcp_backend_logs="kubectl logs --follow --namespace aro-hcp \$(kubectl get pods --namespace aro-hcp --selector app=aro-hcp-backend --output=name | head --lines=1) | jq '.'" | |
# Follow clusters-service pod logs | |
alias clusters_service_logs="kubectl logs --follow --namespace cluster-service \$(kubectl get pods --namespace cluster-service --selector app=clusters-service --output=name | head --lines=1)" | |
# Port-forward to aro-hcp-frontend or clusters-service | |
alias aro_hcp_frontend_port_forward="kubectl port-forward --namespace aro-hcp svc/aro-hcp-frontend 8443" | |
alias clusters_service_port_forward="kubectl port-forward --namespace cluster-service svc/clusters-service 8000" | |
function aro_hcp_get_subscription { | |
bash -v -c "curl --silent --referer "http://${ARO_HCP_SERVER}" --request GET \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}?api-version=2.0\"" | |
} | |
function aro_hcp_put_subscription { | |
STATE=${1:-Registered} | |
AZURE_SUBSCRIPTION_ID_DATA='{\"state\":\"'${STATE}'\", \"registrationDate\": \"'$(date --iso-8601=seconds)'\", \"properties\": {\"tenantId\": \"'${AZURE_TENANT_ID}'\"}}' | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request PUT \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}?api-version=2.0\" --json \"${AZURE_SUBSCRIPTION_ID_DATA}\"" | |
} | |
function aro_hcp_list_clusters_by_subscription { | |
URL="http://${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters?api-version=${API_VERSION}" | |
bash -v -c "curl --silent --referer "${URL}" --request GET \"${URL}\"" | |
} | |
function aro_hcp_list_clusters_by_location { | |
bash -v -c "curl --silent --referer "http://${ARO_HCP_SERVER}" --request GET \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/locations/${LOCATION:-westus3}/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters?api-version=${API_VERSION}\"" | |
} | |
function aro_hcp_list_clusters_by_resource_group { | |
bash -v -c "curl --silent --referer "http://${ARO_HCP_SERVER}" --request GET \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters?api-version=${API_VERSION}\"" | |
} | |
function aro_hcp_list_node_pools { | |
bash -v -c "curl --silent --referer "http://${ARO_HCP_SERVER}" --request GET \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}/nodePools?api-version=${API_VERSION}\"" | |
} | |
function aro_hcp_get_cluster { | |
bash -v -c "curl --silent --referer "http://${ARO_HCP_SERVER}" --request GET \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}?api-version=${API_VERSION}\"" | |
} | |
function aro_hcp_put_cluster { | |
IDENTITY_URL='https://dummyhost.identity.azure.net' | |
SYSTEM_DATA='{\"createdBy\": \"aro-hcp-local-testing\", \"createdByType\": \"User\", \"createdAt\": \"'$(date --iso-8601=seconds)'\"}' | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request PUT \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}?api-version=${API_VERSION}\" -H \"X-Ms-Arm-Resource-System-Data: ${SYSTEM_DATA}\" -H \"X-Ms-Identity-Url: ${IDENTITY_URL}\" --json @${1:-cluster.json}" | |
} | |
function aro_hcp_patch_cluster { | |
SYSTEM_DATA='{\"lastModifiedBy\": \"aro-hcp-local-testing\", \"lastModifiedByType\": \"User\", \"lastModifiedAt\": \"'$(date --iso-8601=seconds)'\"}' | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request PATCH \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}?api-version=${API_VERSION}\" -H \"X-Ms-Arm-Resource-System-Data: ${SYSTEM_DATA}\" --json @${1:-cluster_patch.json}" | |
} | |
function aro_hcp_delete_cluster { | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request DELETE \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}?api-version=${API_VERSION}\"" | |
} | |
function aro_hcp_get_node_pool { | |
bash -v -c "curl --silent --referer "http://${ARO_HCP_SERVER}" --request GET \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}/nodePools/${NODE_POOL}?api-version=${API_VERSION}\"" | |
} | |
function aro_hcp_put_node_pool { | |
SYSTEM_DATA='{\"createdBy\": \"aro-hcp-local-testing\", \"createdByType\": \"User\", \"createdAt\": \"'$(date --iso-8601=seconds)'\"}' | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request PUT \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}/nodePools/${NODE_POOL}?api-version=${API_VERSION}\" -H \"X-Ms-Arm-Resource-System-Data: ${SYSTEM_DATA}\" --json @${1:-node_pool.json}" | |
} | |
function aro_hcp_patch_node_pool { | |
SYSTEM_DATA='{\"lastModifiedBy\": \"aro-hcp-local-testing\", \"lastModifiedByType\": \"User\", \"lastModifiedAt\": \"'$(date --iso-8601=seconds)'\"}' | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request PATCH \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}/nodePools/${NODE_POOL}?api-version=${API_VERSION}\" -H \"X-Ms-Arm-Resource-System-Data: ${SYSTEM_DATA}\" --json @${1:-node_pool_patch.json}" | |
} | |
function aro_hcp_delete_node_pool { | |
bash -v -c "curl --include --silent --referer "http://${ARO_HCP_SERVER}" --request DELETE \"${ARO_HCP_SERVER}/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/mbarnes-dev-rg/providers/Microsoft.RedHatOpenShift/hcpOpenShiftClusters/${CLUSTER}/nodePools/${NODE_POOL}?api-version=${API_VERSION}\"" | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment