Helm/Fission: Difference between revisions
Jump to navigation
Jump to search
(10 intermediate revisions by the same user not shown) | |||
Line 170: | Line 170: | ||
kind: Ingress | kind: Ingress | ||
metadata: | metadata: | ||
name: | name: router | ||
namespace: fission | namespace: fission | ||
labels: | labels: | ||
Line 180: | Line 180: | ||
ingressClassName: nginx | ingressClassName: nginx | ||
rules: | rules: | ||
- host: "fission.k8s.local" | - host: "ht.fission.k8s.local" | ||
http: | http: | ||
paths: | paths: | ||
Line 216: | Line 216: | ||
==Serverless== | ==Serverless== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
export | export FISSION_NAMESPACE=fission | ||
export FISSION_FUNCTION_NAMESPACE=fission | export FISSION_FUNCTION_NAMESPACE=fission | ||
export FISSION_NAMESPACE= | export FISSION_ROUTER_URL=http://ht.fission.k8s.local | ||
# export FISSION_ROUTER_URL=$(kubectl -n ${FISSION_NAMESPACE} get ing router -o=yaml|yq -r .spec.rules[0].host) | |||
# export FISSION_ROUTER=$(kubectl -n ${FISSION_NAMESPACE} get svc router -o=yaml|yq -r .status.loadBalancer.ingress[0].ip) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 245: | Line 247: | ||
fission ht create --name=get-hello-go --method=GET --url=/api/hello/go --function=hello-go | fission ht create --name=get-hello-go --method=GET --url=/api/hello/go --function=hello-go | ||
curl http://fission.k8s.local/api/hello/go | curl http://ht.fission.k8s.local/fission-function/hello-go | ||
curl http://ht.fission.k8s.local/api/hello/go | |||
fission pkg delete --name=hello-go-<uuid> -f | fission pkg delete --name=hello-go-<uuid> -f | ||
Line 268: | Line 271: | ||
fission ht create --name=get-hello-java --method=GET --url=/api/hello/java --function=hello-java | fission ht create --name=get-hello-java --method=GET --url=/api/hello/java --function=hello-java | ||
curl http://fission.k8s.local/api/hello/java | curl http://ht.fission.k8s.local/fission-function/hello-java | ||
curl http://ht.fission.k8s.local/api/hello/java | |||
fission ht delete --name=get-hello-java | fission ht delete --name=get-hello-java | ||
Line 286: | Line 290: | ||
fission ht create --name=get-hello-cs --method=GET --url=/api/hello/cs --function=hello-cs | fission ht create --name=get-hello-cs --method=GET --url=/api/hello/cs --function=hello-cs | ||
curl http://fission.k8s.local/api/hello/cs | curl http://ht.fission.k8s.local/fission-function/hello-cs | ||
curl http://ht.fission.k8s.local/api/hello/cs | |||
fission pkg delete --name=hello-cs-<uuid> -f | fission pkg delete --name=hello-cs-<uuid> -f | ||
Line 304: | Line 309: | ||
fission ht create --name=get-hello-py --method=GET --url=/api/hello/py --function=hello-py | fission ht create --name=get-hello-py --method=GET --url=/api/hello/py --function=hello-py | ||
curl http://fission.k8s.local/fission-function/hello-py | curl http://ht.fission.k8s.local/fission-function/hello-py | ||
curl http://fission.k8s.local/api/hello/py | curl http://ht.fission.k8s.local/api/hello/py | ||
fission pkg delete --name=hello-py-<uuid> -f | fission pkg delete --name=hello-py-<uuid> -f | ||
Line 317: | Line 322: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
fission env create --name=nodejs --image=ghcr.io/fission/node-env | fission env create --name=nodejs --image=ghcr.io/fission/node-env | ||
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/nodejs/hello.js -o hello.js | curl -fsSL https://raw.githubusercontent.com/fission/examples/main/nodejs/hello.js -o hello.js | ||
Line 324: | Line 328: | ||
fission ht create --name=get-hello-js --method=GET --url=/api/hello/js --function=hello-js | fission ht create --name=get-hello-js --method=GET --url=/api/hello/js --function=hello-js | ||
curl http://fission.k8s.local/fission-function/hello-js | curl http://ht.fission.k8s.local/fission-function/hello-js | ||
curl http://fission.k8s.local/api/hello/js | curl http://ht.fission.k8s.local/api/hello/js | ||
fission pkg delete --name=hello-js-<uuid> -f | fission pkg delete --name=hello-js-<uuid> -f | ||
Line 343: | Line 347: | ||
fission spec apply | fission spec apply | ||
fission fn test --name=hellojs | fission fn test --name=hellojs | ||
curl http://fission.k8s.local/api/hello/js | |||
curl http://ht.fission.k8s.local/fission-function/hello-js | |||
curl http://ht.fission.k8s.local/api/hello/js | |||
fission spec destroy | fission spec destroy | ||
Line 368: | Line 374: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
kubectl -n fission get configmap feature-config -o json|jq -r '.data."config.yaml"'|base64 -d;echo | kubectl -n fission get configmap feature-config -o json|jq -r '.data."config.yaml"'|base64 -d;echo | ||
kubectl -n fission get svc router -o=yaml|yq -r .status.loadBalancer.ingress[0].ip | |||
kubectl -n fission get svc router -o=yaml|yq -r .spec.ports[0].port | |||
kubectl -n fission get ing router -o=yaml|yq -r .spec.rules[0].host | |||
kubectl -n fission logs -f svc/webhook-service -c webhook | kubectl -n fission logs -f svc/webhook-service -c webhook | ||
kubectl -n fission logs -f svc/storagesvc -c storagesvc | kubectl -n fission logs -f svc/storagesvc -c storagesvc | ||
Line 445: | Line 455: | ||
* [https://github.com/fission/examples/tree/main Fission » Examples » GitHub] | * [https://github.com/fission/examples/tree/main Fission » Examples » GitHub] | ||
* [https://fission.io/examples/ Fission » Examples » Gallery] | * [https://fission.io/examples/ Fission » Examples » Gallery] | ||
* [https://fission.io/docs/installation/env_vars/ Fission » Installation » Env] | |||
* [https://fission.io/docs/architecture/ Fission » Architecture] | * [https://fission.io/docs/architecture/ Fission » Architecture] | ||
* [https://github.com/fission/examples/tree/main/miscellaneous/workshop Fission » Workshop] | * [https://github.com/fission/examples/tree/main/miscellaneous/workshop Fission » Workshop] | ||
Line 483: | Line 494: | ||
| valign="top" | | | valign="top" | | ||
* [[Ruby on Rails]] | * [[Ruby on Rails]] | ||
* [[JavaScript]] | * [[JavaScript]] |
Latest revision as of 10:27, 11 December 2024
helm repo add fission-charts https://fission.github.io/fission-charts helm repo update && helm repo list kubectl config get-contexts
Config
export KUBECONFIG="${HOME}/.kube/dev-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/gcp-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/config"
| |
| |
mc alias set local http://s3.host.k8s.local admin
# Enter Secret Key: sadaqah!
mc config host ls
mc admin info local
mc mb local/fission
|
echo -n password: ;read -s MINIO_PASSWORD;export MINIO_PASSWORD;echo
# password: sadaqah!
mc admin user add local fission ${MINIO_PASSWORD}
mc admin policy attach local diagnostics readwrite consoleAdmin --user fission
mc admin user info local fission
|
| |
ACCESS_KEY="lJK09A3zwTF7bY2v5yey";\
SECRET_KEY="umVZsDmWNLUY5i3PDz17IhksvmBV5TCnE07GYw26";\
alias mc_admin_add_key="mc admin accesskey create local \
fission --name=fission --access-key=${ACCESS_KEY} --secret-key=${SECRET_KEY}"
| |
| |
cat <<JSN | mc_admin_add_key --policy=/dev/stdin
{
"Version":"2012-10-17",
"Statement":[
{"Effect":"Allow","Action":["kms:*"]},
{"Effect":"Allow","Action":["admin:*"]},
{"Effect":"Allow","Action":["s3:*"],"Resource":["arn:aws:s3:::fission"]},
{"Effect":"Allow","Action":[
"admin:BandwidthMonitor",
"admin:TopLocksInfo",
"admin:ServerTrace",
"admin:ConsoleLog",
"admin:Prometheus",
"admin:ServerInfo",
"admin:Profiling",
"admin:OBDInfo"
],"Resource":["arn:aws:s3:::fission"]
}
]
}
JSN
|
Install
kubectl get ns|grep fission
kubectl delete ns fission
|
kubectl get ns|grep fission
kubectl create ns fission
|
| |
export FISSION_NAMESPACE="fission"
kubectl create -k "github.com/fission/fission/crds/v1?ref=v1.20.5"
| |
| |
cat <<YML | helm -n fission install fission fission-charts/fission-all --version=v1.20.5 -f -
---
serviceType: ClusterIP
routerServiceType: LoadBalancer
persistence:
enabled: true
storageType: s3
s3:
endPoint: http://s3.host.k8s.local
bucketName: fission
subDir: serverless
region: us-east-1
accessKeyId: lJK09A3zwTF7bY2v5yey
secretAccessKey: umVZsDmWNLUY5i3PDz17IhksvmBV5TCnE07GYw26
YML
|
cat <<YML | helm -n fission install fission fission-charts/fission-all --version=v1.20.5 -f -
---
serviceType: NodePort
routerServiceType: NodePort
persistence:
enabled: true
storageType: s3
s3:
endPoint: http://s3.host.k8s.local
bucketName: fission
subDir: serverless
region: us-east-1
accessKeyId: lJK09A3zwTF7bY2v5yey
secretAccessKey: umVZsDmWNLUY5i3PDz17IhksvmBV5TCnE07GYw26
YML
|
| |
cat <<-'EXE'|sudo bash
curl -fsSL https://github.com/fission/fission/releases/download/v1.20.5/fission-v1.20.5-linux-amd64 -o /usr/local/bin/fission
chmod +x /usr/local/bin/fission
EXE
fission version
fission --help
fission check
|
Ingress
cat << YML | kubectl apply -n fission -f -
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: router
namespace: fission
labels:
app.kubernetes.io/version: 1.0.0
app.kubernetes.io/managed-by: kubectl
app.kubernetes.io/name: fission-router
app.kubernetes.io/instance: fission-router
spec:
ingressClassName: nginx
rules:
- host: "ht.fission.k8s.local"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: router
port:
number: 80
YML
Uninstall
helm uninstall -n fission fission
kubectl delete namespace fission
kubectl get crd|grep fission.io
kubectl delete crd packages.fission.io
kubectl delete crd functions.fission.io
kubectl delete crd environments.fission.io
kubectl delete crd httptriggers.fission.io
kubectl delete crd timetriggers.fission.io
kubectl delete crd canaryconfigs.fission.io
kubectl delete crd messagequeuetriggers.fission.io
kubectl delete crd kuberneteswatchtriggers.fission.io
kubectl get apiservice
kubectl delete apiservice v1beta1.external.metrics.k8s.io
kubectl patch ns fission -p '{"metadata":{"finalizers":null}}'s":null}}'
Serverless
export FISSION_NAMESPACE=fission
export FISSION_FUNCTION_NAMESPACE=fission
export FISSION_ROUTER_URL=http://ht.fission.k8s.local
# export FISSION_ROUTER_URL=$(kubectl -n ${FISSION_NAMESPACE} get ing router -o=yaml|yq -r .spec.rules[0].host)
# export FISSION_ROUTER=$(kubectl -n ${FISSION_NAMESPACE} get svc router -o=yaml|yq -r .status.loadBalancer.ingress[0].ip)
mkdir -p /opt/${USER}/chorke/academia/var/playground/fission
ls -lah /opt/${USER}/chorke/academia/var/playground/fission
ln -s /opt/${USER}/chorke/academia/var/playground/fission ${HOME}/Documents/fission-playground
ls -lah ${HOME}/Documents/fission-playground/
cd ${HOME}/Documents/fission-playground/
fission env list
fission fn list
fission ht list
fission pkg list
Serverless » Go
fission env create --name=go --image=ghcr.io/fission/go-env --builder=ghcr.io/fission/go-builder
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/go/hello-world/hello.go -o hello.go
fission fn create --name=hello-go --env go --src hello.go --entrypoint Handler
fission fn test --name=hello-go
fission ht create --name=get-hello-go --method=GET --url=/api/hello/go --function=hello-go
curl http://ht.fission.k8s.local/fission-function/hello-go
curl http://ht.fission.k8s.local/api/hello/go
fission pkg delete --name=hello-go-<uuid> -f
fission ht delete --name=get-hello-go
fission fn delete --name=hello-go
fission env delete --name=go
Serverless » Java
fission environment create --name=java --image=ghcr.io/fission/jvm-env --builder=ghcr.io/fission/jvm-builder --keeparchive --version 3
mkdir -p src/main/java/io/fission
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/java/hello-world/src/main/java/io/fission/HelloWorld.java -o src/main/java/io/fission/HelloWorld.java
curl -fsSL https://raw.githubusercontent.com/fission/environments/master/jvm/examples/java/pom.xml -o pom.xml
zip java-src-pkg.zip -r src pom.xml
fission package create --name=hello-pkg --env java --src java-src-pkg.zip
fission fn create --name=hello-java --env java --pkg hello-pkg --entrypoint io.fission.HelloWorld
fission fn test --name=hello-java
fission ht create --name=get-hello-java --method=GET --url=/api/hello/java --function=hello-java
curl http://ht.fission.k8s.local/fission-function/hello-java
curl http://ht.fission.k8s.local/api/hello/java
fission ht delete --name=get-hello-java
fission fn delete --name=hello-java
fission pkg delete --name=hello-pkg
fission env delete --name=java
Serverless » Dotnet
fission env create --name=dotnet --image=fission/dotnet-env
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/dotnet/helloworld.cs -o hello.cs
fission fn create --name=hello-cs --env=dotnet --code=hello.cs
fission fn test --name=hello-cs
fission ht create --name=get-hello-cs --method=GET --url=/api/hello/cs --function=hello-cs
curl http://ht.fission.k8s.local/fission-function/hello-cs
curl http://ht.fission.k8s.local/api/hello/cs
fission pkg delete --name=hello-cs-<uuid> -f
fission ht delete --name=get-hello-cs
fission fn delete --name=hello-cs
fission env delete --name=dotnet
Serverless » Python
fission env create --name=python --image=fission/python-env
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/python/hello.py -o hello.py
fission fn create --name=hello-py --env=python --code=hello.py
fission fn test --name=hello-py
fission ht create --name=get-hello-py --method=GET --url=/api/hello/py --function=hello-py
curl http://ht.fission.k8s.local/fission-function/hello-py
curl http://ht.fission.k8s.local/api/hello/py
fission pkg delete --name=hello-py-<uuid> -f
fission ht delete --name=get-hello-py
fission fn delete --name=hello-py
fission env delete --name=python
Serverless » Node.js
fission env create --name=nodejs --image=ghcr.io/fission/node-env
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/nodejs/hello.js -o hello.js
fission fn create --name=hello-js --env=nodejs --code=hello.js
fission fn test --name=hello-js
fission ht create --name=get-hello-js --method=GET --url=/api/hello/js --function=hello-js
curl http://ht.fission.k8s.local/fission-function/hello-js
curl http://ht.fission.k8s.local/api/hello/js
fission pkg delete --name=hello-js-<uuid> -f
fission ht delete --name=get-hello-js
fission fn delete --name=hello-js
fission env delete --name=nodejs
Specification
fission spec init
fission env create --name=node --image=fission/node-env --version=3 --poolsize=1 --spec
fission pkg create --name=hellojs --env=node --code=https://raw.githubusercontent.com/fission/fission/master/examples/nodejs/hello.js --spec
fission fn create --name=hellojs --env=node --pkg=hellojs --spec
fission ht create --name=hellojs --method=GET --url=/api/hello/js --function=hellojs --spec
fission spec apply
fission fn test --name=hellojs
curl http://ht.fission.k8s.local/fission-function/hello-js
curl http://ht.fission.k8s.local/api/hello/js
fission spec destroy
fission ht delete --name=hellojs
fission fn delete --name=hellojs
fission pkg delete --name=hellojs
fission env delete --name=node
Playground
helm -n fission install fission fission-charts/fission-all --version=v1.20.0
helm -n fission upgrade -i fission fission-charts/fission-all --version=v1.20.5
helm show values fission-charts/fission-all --version=v1.20.0|less
| |
| |
kubectl -n fission get configmap feature-config -o json|jq -r '.data."config.yaml"'|base64 -d;echo
kubectl -n fission get svc router -o=yaml|yq -r .status.loadBalancer.ingress[0].ip
kubectl -n fission get svc router -o=yaml|yq -r .spec.ports[0].port
kubectl -n fission get ing router -o=yaml|yq -r .spec.rules[0].host
kubectl -n fission logs -f svc/webhook-service -c webhook
kubectl -n fission logs -f svc/storagesvc -c storagesvc
kubectl -n fission logs -f svc/executor -c executor
kubectl -n fission logs -f svc/router -c router
| |
| |
kubectl config --kubeconfig=${HOME}/.kube/aws-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/dev-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/gcp-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/config view --flatten
| |
| |
kubectl -n fission delete all --all
kubectl -n fission delete ing --all
kubectl -n fission delete sts --all
|
kubectl -n fission delete svc --all
kubectl -n fission delete pvc --all
kubectl -n fission delete pv --all
|
| |
kubectl -n fission rollout history deploy buildermgr
kubectl -n fission rollout status deploy storagesvc
kubectl -n fission rollout restart deploy executor
|
kubectl -n fission logs -f svc/storagesvc -c storagesvc
kubectl -n fission logs -f svc/executor -c executor
kubectl -n fission logs -f svc/router -c router
|
References
| ||
| ||