Skip to content

alyvusal/kusk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Kusk

back

install

helm repo add kubeshop https://kubeshop.github.io/helm-charts

# Install Kusk Manager
helm upgrade -i kusk-gateway kubeshop/kusk-gateway \
  --namespace kusk-system --create-namespace \
  --version 0.0.65 \
  -f k8s/helm/kusk-gateway.yaml

# install the default EnvoyFleet which will serve public requests to your API
# install metallb for on-premis k8s
helm upgrade -i kusk-gateway-envoy-fleet kubeshop/kusk-gateway-envoyfleet \
  --namespace kusk-system \
  --version 0.0.7 \
  -f k8s/helm/kusk-gateway-envoy-fleet.yaml

# https://docs.kusk.io/reference/customresources/envoyfleet/
kubectl -n kusk-system get envoyfleet kusk-gateway-envoy-fleet -o yaml

# Create a Private EnvoyFleet (a service of type ClusterIP, so Kusk Dashboard isn't accessed publicly)
helm upgrade -i kusk-gateway-private-envoy-fleet kubeshop/kusk-gateway-envoyfleet \
  --namespace kusk-system \
  --version 0.0.7 \
  -f k8s/helm/kusk-gateway-envoyfleet-private.yaml

# Install Kusk API (configured to be exposed through the private EnvoyFleet)
helm upgrade -i kusk-gateway-api kubeshop/kusk-gateway-api \
  --namespace kusk-system \
  --version 0.1.28 \
  -f k8s/helm/kusk-gateway-api.yaml

# Install Kusk Dashboard (configured to be connected to Kusk API and exposed through the private EnvoyFleet)
helm upgrade -i kusk-gateway-dashboard kubeshop/kusk-gateway-dashboard \
  --namespace kusk-system \
  --version 0.1.19 \
  -f k8s/helm/kusk-gateway-dashboard.yaml

# Install ingress for dashboard
kubectl apply -f k8s/ingress.yaml

Open dashboard at:

Examples

create mock api (fake)

# deploy mock example
kusk deploy -i examples/api-mock.yaml [--envoyfleet.name kusk-gateway-public-envoy-fleet]
kubectl get apis.gateway.kusk.io
kubectl get api

kusk ip
# if public ip not get
kubectl port-forward svc/kusk-gateway-public-envoy-fleet -n kusk-system 8080:80
curl -s localhost:8080/hello | jq
# or
curl -s 172.18.255.200/hello | jq

real api

kubectl create deployment hello-world --image=kubeshop/kusk-hello-world:v1.1.0
kubectl expose deployment hello-world --name hello-world-svc --port=8080
kusk deploy -i examples/api-real.yaml [--envoyfleet.name kusk-gateway-public-envoy-fleet]

generate kusk gateway api resource from openapi for ci/cd

kusk generate -i examples/api-mock.yaml

static route

kubectl create deployment web-app --image=kubeshop/kusk-web-app-example:v1.0.0
kubectl expose deployment web-app --name web-app-svc --port=3000
kubectl apply -f examples/staticroute.yaml

kusk ip
# if public ip not get
kubectl port-forward svc/kusk-gateway-public-envoy-fleet -n kusk-system 8080:80
curl -s localhost:8080
# or
curl -s 172.18.255.200

REFERENCE

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors