.. | ||
knative | ||
solution | ||
todo-list | ||
README.md |
Ch20 lab
Setup
Deploy Knative with Contour:
kubectl apply -f lab/knative/
Deploy the to-do app:
kubectl apply -f lab/todo-list/
Get the ingress URL:
kubectl get svc -n contour-external envoy -o jsonpath='http://{.status.loadBalancer.ingress[0].*}:80'
Map your
hosts
file to use the Contour IP fortodo.kiamol.local
andapi.todo.kiamol.local
Solution
I've used a Knative Service custom resource which specifies the API container image.
kubectl apply -f lab/solution/todo-api.yaml
Check the Knative Service is running:
kubectl get ksvc -n todo
Invoke the function:
curl --data 'Write KIAMOL ch22' http://api.todo.kiamol.local/todos
Print the function logs - you should see the event being published:
kubectl -n todo logs -l serving.knative.dev/service=api -c user-container
Print the save handler logs - you should see the new item being saved:
kubectl -n todo logs -l component=save-handler
Browse to http://todo.kiamol.local to see the new item