This repo is meant to demonstrate how to deploy and manage solo.io products with a declarative GitOps based approach using argoCD
- Kubernetes clusters up and authenticated to kubectl
Since we will potentially be using multiple clusters/contexts, it is useful to rename your contexts for a better experience
kubectl config get-contexts
kubectl config rename-contexts <current_name> <new_name>
export CONTEXT=<new_name>
argoCD is required to be deployed on each cluster if you want to deploy the applications below
To install argoCD:
cd argocd
install-argocd.sh ${CONTEXT}
There are a few argument options you have when deploying the scripts below
CONTEXT = name of the cluster context you are deploying to
FEATURES = enterprise edition features such as `fed` or `nofed` where applicable
To install gloo-edge demo:
cd gloo-edge
# For gloo edge enterprise
./install-gloo-edge-enterprise-aoa.sh ${CONTEXT} ${FEATURES}
# For gloo edge oss
./install-gloo-edge-oss-aoa.sh ${CONTEXT}
To install gloo-mesh demo:
cd gloo-mesh
./install-gloo-mesh.sh ${CONTEXT} ${FEATURES}
To install upstream istio demo:
cd istio
./install-istio-aoa.sh ${CONTEXT}
To install istioinaction workshop demo:
cd istioinaction-workshop
./install-istioinaction-aoa.sh ${CONTEXT}
using port forward:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Access the argoCD UI at (http://localhost:8080) with the credentials admin/solo.io
Access the bookinfo app with the command below:
echo for kind deployments:
echo access bookinfo app here: "http://$(kubectl --context ${CONTEXT} -n istio-system get svc istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')/productpage"
echo for cloud deployments:
echo access bookinfo app here: "http://$(kubectl --context ${CONTEXT} -n istio-system get svc istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')/productpage"
./uninstall.sh ${CONTEXT}
Header match:
curl -H "Host: petstore.solo.io" -H "header1: value1" $(glooctl proxy url)/all-pets -v
Exact path match:
curl -H "Host: petstore.solo.io" $(glooctl proxy url)/all-pets -v
Prefix path match:
curl -H "Host: petstore.solo.io" $(glooctl proxy url)/foo -v
httpbin curl:
curl -H "Host: httpbin.solo.io" $(glooctl proxy url)/headers -v
bookinfo curl:
curl $(glooctl proxy url)/productpage -v