Play Economy Infrastructure components
$owner="mfdotnetmicroservices"
$gh_pat="[PAT HERE]"
dotnet nuget add source --username USERNAME --password $gh_pat --store-password-in-clear-text --name github "https://nuget.pkg.github.com/$owner/index.json"owner="mfdotnetmicroservices"
gh_pat="[PAT HERE]"
dotnet nuget add source --username USERNAME --password "$gh_pat" --store-password-in-clear-text --name github "https://nuget.pkg.github.com/$owner/index.json"dotnet nuget list source$appname="playeconomy"
az group create --name $appname --location eastus appname="playeconomy"
az group create --name "$appname" --location eastus$app_cosmosdb_account="playeconomy-cosmosdb-account"
$appname="playeconomy"
az cosmosdb create --name $app_cosmosdb_account --resource-group $appname --kind MongoDBapp_cosmosdb_account="playeconomy-cosmosdb-account"
appname="playeconomy"
az cosmosdb create --name $app_cosmosdb_account --resource-group $appname --kind MongoDBaz servicebus namespace create --name $appname --resource-group $appname --sku Standard
appnamenamespace="playeconomy-servicebus-namespace"
appname="playeconomy"
az servicebus namespace create --name "$appnamenamespace" --resource-group "$appname" --sku Standard
$appnameAcr ="playeconomyacr"
$appname="playeconomy"
az acr create --name $appnameAcr --resource-group $appname --sku Basic
appnameAcr="playeconomyacr"
appname="playeconomy"
az acr create --name $appnameAcr --resource-group $appname --sku Basic$appnameAcr="playeconomyacr"
$appnameRg="playeconomy"
$appnamecluster = "playeconomy_cluster"
az aks create -n $appnamecluster -g $appnameRg --node-vm-size Standard_B2s --node-count 2 --attach-acr $appnameAcr --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
az aks get-credentials --name $appnamecluster --resource-group $appnameRgappnameAcr="playeconomyacr"
appnameRg="playeconomy"
appnamecluster="playeconomy_cluster"
az aks create -n "$appnamecluster" -g "$appnameRg" --node-vm-size Standard_B2s --node-count 2 --attach-acr "$appnameAcr" --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
az aks get-credentials --name "$appnamecluster" --resource-group "$appnameRg"$appnamekv="playeconomy-key-vault"
$appnameRg="playeconomy"
az keyvault create -n $appnamekv -g $appnameRg appnamekv="playeconomy-key-vault"
appnameRg="playeconomy"
az keyvault create -n "$appnamekv" -g "$appnameRg"
$namespace_dns_name="playeconomy_dns_service"
helm repo add datawire https://app.getambassador.io
helm repo update
kubectl create namespace emissary && \
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
$namespace="emissary"
helm install emissary-ingress datawire/emissary-ingress --set service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"= --namespace $namespace_dns_name --create-namespace
kubectl -lapp.kubernetes.io/instance=emissary-ingress deploy --timeout=90s --for condition=available -n $namespace waitnamespace_dns_name="playeconomy-dns-service"
helm repo add datawire https://app.getambassador.io
helm repo update
kubectl create namespace emissary && \
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
kubectl wait --timeout=90s --for=condition=available deployment/emissary-apiext -n emissary-system
namespace="emissary"
helm install emissary-ingress datawire/emissary-ingress --set service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"="$namespace_dns_name" --namespace "$namespace" --create-namespace
kubectl -n "$namespace" wait --for condition=available --timeout=90s deploy -lapp.kubernetes.io/instance=emissary-ingress
$namespace="emissary"
kubectl apply -f .\emissary-ingress\listener.yaml -n $namespace namespace="emissary"
kubectl apply -f ./emissary-ingress/listener.yaml -n "$namespace"
kubectl apply -f ./emissary-ingress/mappings.yaml -n "$namespace"namespace="emissary"
helm repo add jetstack https://charts.jetstack.io --force-update
helm repo update
helm install cert-manager jetstack/cert-manager --version v1.18.0 --set crds.enabled=true --namespace "$namespace"
namespace="emissary"
kubectl apply -f ./cert-manager/cluster-issuer.yaml -n "$namespace"
kubectl apply -f ./cert-manager/acme-challenge.yaml -n "$namespace"namespace="emissary"
kubectl apply -f ./emissary-ingress/tls-certificate.yaml -n "$namespace"namespace="emissary"
kubectl apply -f ./emissary-ingress/host.yaml -n "$namespace"$appnameAcr="playeconomyacr"
helm package ./helm/microservice
$helmUser=[guid]::Empty.Guid
$helmPassword = az acr login --name $appnameAcr --expose-token --output tsv --query accessToken
helm registry login "$appnameAcr.azurecr.io" --username $helmUser --password $helmPassword
helm push microservice-0.1.0.tgz oci://$appnameAcr.azurecr.io/helmappnameAcr="playeconomyacr"
helm package ./helm/microservice
helmUser="00000000-0000-0000-0000-000000000000"
helmPassword=$(az acr login --name "$appnameAcr" --expose-token --output tsv --query accessToken)
helm registry login "$appnameAcr.azurecr.io" --username "$helmUser" --password "$helmPassword"
helm push microservice-0.1.0.tgz oci://$appnameAcr.azurecr.io/helm
$appId = az ad sp create-for-rbac -n "GitHub" --query appId --output tsv
$subId = "[SUBSCRIPTION ID HERE]"
# az role assignment create --assignee $appId --role "ArcPush" --resource-group $appname
az role assignment create --assignee "$appId" --role "AcrPush" --scope "/subscriptions/$subId/resourceGroups/$appname"
az role assignment create --assignee $appId --role "Azure Kubernetes Service Cluster User Role" --scope "/subscriptions/$subId/resourceGroups/$appname"
az role assignment create --assignee $appId --role "Azure Kubernetes Service Contributor Role" --scope "/subscriptions/$subId/resourceGroups/$appname"appname="playeconomy"
appId=$(az ad sp create-for-rbac -n "GitHub" --query appId --output tsv)
subId="[AZURE SUBSCRIPTION ID HERE]"
az role assignment create --assignee "$appId" --role "AcrPush" --scope "/subscriptions/$subId/resourceGroups/$appname"
az role assignment create --assignee "$appId" --role "Azure Kubernetes Service Cluster User Role" --scope "/subscriptions/$subId/resourceGroups/$appname"
az role assignment create --assignee "$appId" --role "Azure Kubernetes Service Contributor Role" --scope "/subscriptions/$subId/resourceGroups/$appname"