Helm/Fission: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
(Created page with "==References== {| | valign="top" | * Helm » Prometheus Stack * Helm » Cert Manager * [https://fission.io/docs/installation Helm » Fission] * Helm | valign="top" | | valign="top" | |- | colspan="3" | ---- |- | valign="top" | * [https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ K8s » Configure Service Accounts for Pods] * [https://spacelift.io/blog/restart-kubernetes-pods-with-kube...")
 
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
helm repo add fission-charts https://fission.github.io/fission-charts
helm repo update && helm repo list
kubectl config get-contexts
==Config==
{|
|valign="top" colspan="2"|
<syntaxhighlight lang="properties">
export KUBECONFIG="${HOME}/.kube/dev-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/gcp-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/config"
</syntaxhighlight>
|-
|colspan="2"|
----
|-
|valign='top'|
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|valign='top'|
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|-
|colspan="2"|
----
|-
|valign='top' colspan="2"|
<syntaxhighlight lang="bash">
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}"
</syntaxhighlight>
|-
|colspan="2"|
----
|-
|valign='top' colspan="2"|
<syntaxhighlight lang="json">
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
</syntaxhighlight>
|}
==Install==
{|
|valign="top"|
<syntaxhighlight lang="bash">
kubectl get ns|grep fission
kubectl delete ns  fission
</syntaxhighlight>
|valign="top"|
<syntaxhighlight lang="bash">
kubectl get ns|grep fission
kubectl create ns  fission
</syntaxhighlight>
|-
|colspan="2"|
----
|-
|valign='top' colspan="2"|
<syntaxhighlight lang="bash">
export FISSION_NAMESPACE="fission"
kubectl create -k "github.com/fission/fission/crds/v1?ref=v1.20.5"
</syntaxhighlight>
|-
|colspan="2"|
----
|-
|valign="top"|
<syntaxhighlight lang="yaml" highlight="8-14">
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
</syntaxhighlight>
|valign="top"|
<syntaxhighlight lang="yaml" highlight="8-14" line>
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
</syntaxhighlight>
|-
|colspan="2"|
----
|-
|valign='top' colspan="2"|
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|}
==Ingress==
<syntaxhighlight lang="yaml">
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
</syntaxhighlight>
==Uninstall==
<syntaxhighlight lang="bash">
helm uninstall -n fission  fission
kubectl delete namespace fission
</syntaxhighlight>
==Serverless==
<syntaxhighlight lang="bash">
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/
</syntaxhighlight>
===Serverless » Go===
----
<syntaxhighlight lang="bash">
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 function create --name hello-go --env go --src hello.go --entrypoint Handler
fission function test  --name hello-go
fission function list
fission pkg list
fission env list
fission pkg delete --name hello-go-<uuid> -f
fission function delete --name hello-go
fission env delete --name go
</syntaxhighlight>
===Serverless » Java===
----
<syntaxhighlight lang="bash">
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 function create --name hello-java --env java --pkg hello-pkg --entrypoint io.fission.HelloWorld
fission function test  --name hello-java
fission function delete --name hello-java
fission pkg delete --name hello-pkg
fission env delete --name java
</syntaxhighlight>
===Serverless » Python===
----
<syntaxhighlight lang="bash">
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 function create --name hello-py --env python --code hello.py
fission function test  --name hello-py
fission pkg list
fission pkg delete --name hello-py-<uuid> -f
fission function delete --name hello-py
fission env delete --name python
</syntaxhighlight>
===Serverless » Node.js===
----
<syntaxhighlight lang="bash">
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 --method GET --url /hello-js --function hello-js
curl http://fission.k8s.local/hello-js
fission pkg list
fission pkg delete --name hello-js-<uuid> -f
fission fn  delete --name hello-js
fission env delete --name nodejs
</syntaxhighlight>
==Playground==
{|
| colspan="2" |
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|-
| colspan="2" |
----
|-
| colspan="2" |
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|-
| colspan="2" |
----
|-
| colspan="2" |
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|-
| colspan="2" |
----
|-
| valign="top" |
<syntaxhighlight lang="bash">
kubectl -n fission delete all --all
kubectl -n fission delete ing --all
kubectl -n fission delete sts --all
</syntaxhighlight>
| valign="top" |
<syntaxhighlight lang="bash">
kubectl -n fission delete svc --all
kubectl -n fission delete pvc --all
kubectl -n fission delete pv  --all
</syntaxhighlight>
|-
| colspan="2" |
----
|-
| valign="top" |
<syntaxhighlight lang="bash">
kubectl -n fission rollout history deploy buildermgr
kubectl -n fission rollout status  deploy storagesvc
kubectl -n fission rollout restart deploy executor
</syntaxhighlight>
| valign="top" |
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
|}
==References==
==References==
{|
{|
Line 5: Line 357:
* [[Helm/Cert Manager|Helm » Cert Manager]]
* [[Helm/Cert Manager|Helm » Cert Manager]]
* [https://fission.io/docs/installation Helm » Fission]
* [https://fission.io/docs/installation Helm » Fission]
* [[Helm/MinIO|Helm » MinIO]]
* [[Helm]]
* [[Helm]]
| valign="top" |
| valign="top" |
|-
| colspan="3" |
----
|-
| valign="top" |
* [https://github.com/fission/examples/tree/main Fission » Examples » GitHub]
* [https://fission.io/examples/ Fission » Examples » Gallery]
* [https://fission.io/docs/architecture/ Fission » Architecture]
* [https://fission.io/docs/installation/ Fission » Install]
* [https://fission.io/docs/ Fission » Docs]
* [https://fission.io Fission]


| valign="top" |
| valign="top" |
Line 32: Line 401:
* [[K8s/Ingress|K8s » Ingress]]
* [[K8s/Ingress|K8s » Ingress]]
* [[K8s/Service|K8s » Service]]
* [[K8s/Service|K8s » Service]]
* [[MinIO]]
* [[CIDR]]
* [[CIDR]]
* [[UFW]]
* [[UFW]]
* [[Port]]


| valign="top" |
| valign="top" |


|}
|}

Latest revision as of 02:31, 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/

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 function create --name hello-go --env go --src hello.go --entrypoint Handler
fission function test   --name hello-go

fission function list
fission pkg list
fission env list

fission pkg delete --name hello-go-<uuid> -f
fission function 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 function create --name hello-java --env java --pkg hello-pkg --entrypoint io.fission.HelloWorld
fission function test   --name hello-java

fission function 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 function create --name hello-py --env python --code hello.py
fission function test   --name hello-py

fission pkg list
fission pkg delete --name hello-py-<uuid> -f
fission function 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 --method GET --url /hello-js --function hello-js
curl http://fission.k8s.local/hello-js

fission pkg list
fission pkg delete --name hello-js-<uuid> -f
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