Helm/Fission: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 207: Line 207:
ls -lah ${HOME}/Documents/fission-playground/
ls -lah ${HOME}/Documents/fission-playground/
cd      ${HOME}/Documents/fission-playground/
cd      ${HOME}/Documents/fission-playground/
fission env list
fission fn  list
fission ht  list
fission pkg list
</syntaxhighlight>
</syntaxhighlight>


Line 212: Line 217:
----
----
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
fission env create --name go --image ghcr.io/fission/go-env --builder ghcr.io/fission/go-builder
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
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/go/hello-world/hello.go -o hello.go
fission function create --name hello-go --env go --src hello.go --entrypoint Handler
fission fn  create --name=hello-go --env go --src hello.go --entrypoint Handler
fission function test  --name hello-go
fission fn  test  --name=hello-go


fission function list
fission ht  create --name=get-hello-go --method=GET --url=/api/hello/go --function=hello-go
fission pkg list
curl http://fission.k8s.local/api/hello/go
fission env list


fission pkg delete --name hello-go-<uuid> -f
fission pkg delete --name=hello-go-<uuid> -f
fission function delete --name hello-go
fission ht  delete --name=get-hello-go
fission env delete --name go
fission fn  delete --name=hello-go
fission env delete --name=go
</syntaxhighlight>
</syntaxhighlight>


Line 230: Line 235:
----
----
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
fission environment create --name java --image ghcr.io/fission/jvm-env --builder ghcr.io/fission/jvm-builder --keeparchive --version 3
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
mkdir -p  src/main/java/io/fission
Line 237: Line 242:


zip java-src-pkg.zip -r src 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 package  create --name=hello-pkg  --env java --src java-src-pkg.zip
fission function create --name hello-java --env java --pkg hello-pkg --entrypoint io.fission.HelloWorld
fission fn  create --name=hello-java --env java --pkg hello-pkg --entrypoint io.fission.HelloWorld
fission function test  --name hello-java
fission fn  test  --name=hello-java


fission function delete --name hello-java
fission ht  create --name=get-hello-java --method=GET --url=/api/hello/java --function=hello-java
fission pkg delete --name hello-pkg
curl http://fission.k8s.local/api/hello/java
fission env delete --name 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
</syntaxhighlight>
</syntaxhighlight>


Line 249: Line 258:
----
----
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
fission env create --name python --image ghcr.io/fission/python-env
fission env create --name=python --image=ghcr.io/fission/python-env


curl -fsSL https://raw.githubusercontent.com/fission/examples/main/python/hello.py -o hello.py
curl -fsSL https://raw.githubusercontent.com/fission/examples/main/python/hello.py -o hello.py
fission function create --name hello-py --env python --code hello.py
fission fn  create --name=hello-py --env python --code hello.py
fission function test  --name 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://fission.k8s.local/api/hello/py


fission pkg list
fission pkg delete --name=hello-py-<uuid> -f
fission pkg delete --name hello-py-<uuid> -f
fission ht  delete --name=get-hello-py
fission function delete --name hello-py
fission fn  delete --name=hello-py
fission env delete --name python
fission env delete --name=python
</syntaxhighlight>
</syntaxhighlight>


Line 264: Line 276:
----
----
<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
fission fn  create --name hello-js --env nodejs --code hello.js
fission fn  create --name=hello-js --env=nodejs --code=hello.js
fission fn  test --name hello-js
fission fn  test   --name=hello-js


fission ht  create --method GET --url /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/hello-js
curl http://fission.k8s.local/api/hello/js


fission pkg list
fission pkg delete --name=hello-js-<uuid> -f
fission pkg delete --name hello-js-<uuid> -f
fission ht  delete --name=get-hello-js
fission fn  delete --name hello-js
fission fn  delete --name=hello-js
fission env delete --name nodejs
fission env delete --name=nodejs
</syntaxhighlight>
</syntaxhighlight>



Revision as of 18:46, 23 November 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: fission
  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: "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

Serverless

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://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://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 » Python


fission env create --name=python --image=ghcr.io/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://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://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

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 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