Compare commits

...

7 Commits

Author SHA1 Message Date
9b69908890 tweaks 2024-04-08 12:53:07 -03:00
c9678a7244 whatever 2023-07-18 10:40:02 -03:00
2be86e238f Fix readme 2022-12-14 10:29:28 -03:00
a50214f468 Do not start this automatically 2022-07-21 18:27:22 -03:00
8b890ba35f 2 cpus 2022-07-20 09:34:58 -03:00
5163598319 Use pass for secret management 2022-07-19 05:49:10 -03:00
881b698966 working state 2022-07-16 16:57:11 -03:00
5 changed files with 69 additions and 0 deletions

View File

@@ -1,9 +1,13 @@
# WHAT?
Automate creating a [Faasd](https://github.com/openfaas/faasd/) image. Automate creating a [Faasd](https://github.com/openfaas/faasd/) image.
Goal is to run this image via Goal is to run this image via
[ignite](https://github.com/weaveworks/ignite) which runs it in a [ignite](https://github.com/weaveworks/ignite) which runs it in a
[firecracker](https://firecracker-microvm.github.io) microvm. [firecracker](https://firecracker-microvm.github.io) microvm.
# WHY?
I need to do this because I need to run Faasd in the same machine as I need to do this because I need to run Faasd in the same machine as
dockerized services and according to its documentation that shouldn't dockerized services and according to its documentation that shouldn't
be done because both use incompatible versions of underlying dependencies. be done because both use incompatible versions of underlying dependencies.
@@ -11,3 +15,17 @@ be done because both use incompatible versions of underlying dependencies.
Also in this way resource usage of Faasd and all "lambdas" in it is capped Also in this way resource usage of Faasd and all "lambdas" in it is capped
by the VM resources, and the rest of the system is sort-of-protected by the VM resources, and the rest of the system is sort-of-protected
by the VM sandbox. by the VM sandbox.
# HOW?
Assuming you have ignite and faas-cli installed:
* replace `id_rsa.pub` with yours
* run build.sh
You will end up with:
* A running ubuntu-based VM with faasd installed and running
* Ssh enabled and accessible via that key
* The faasd port exposed as localhost:8082
* Your account logged into faasd
* The figlet function installed and working

39
build.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/bin/sh -x
# Create and configure a VM with faasd in it
set -e
NAME=faas
waitport() {
while ! nc -z $1 $2 ; do sleep 1 ; done
}
sudo ignite create weaveworks/ignite-ubuntu \
--cpus 2 \
--memory 1GB \
--size 10GB \
--ssh=id_rsa.pub \
-p 8082:8081 \
--name $NAME
sudo ignite vm start $NAME
IP=$(sudo ignite vm ls | grep faas | cut -f9 -d\ )
waitport $IP 22
ssh -o "StrictHostKeyChecking no" root@$IP mkdir -p /var/lib/faasd/secrets
ssh root@$IP "echo $(pass faas.ralsina.me) > /var/lib/faasd/secrets/basic-auth-password"
scp setup.sh root@$IP:
ssh root@$IP sh setup.sh
# Login
export OPENFAAS_URL=http://localhost:8082
ssh root@$IP cat /var/lib/faasd/secrets/basic-auth-password | faas-cli login --password-stdin
# Setup test function
faas-cli store deploy figlet
pass iol-user | faas-cli secret create iol-user
pass iol-pass | faas-cli secret create iol-pass
pass iol-api-secret | faas-cli secret create iol-api-secret
echo 'Success!' | faas-cli invoke figlet

0
down Normal file
View File

1
id_rsa.pub Normal file
View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCiU1I8w5Uc7OFBYRpUHHepel78QHchU8Sw8FdXMiDAhZ1e8Kr3W4zk8JUQzXYYGbzvgLgRpcNzPSar3X0FV5YBdYXgstJEfjGuadA1ZooH1epIMhjrcmJHchLk19QdenNahWpngg58Hn9ysKhXrXnR4ppppyzIO3sSNBETSk2z2lD+sqVH1sWKCJCEo8wcAat7nA7oY//N57qe2c/KQ+RcKnWYIZZU5943NkGfFn+WmEygeRZPUbZjFR3w+WYiFD9Vn2Xp8BLzeCfId7B0wtLvEo8VIcTvi+GaQur9Pdu/SPUvyRkkllIXspwORlx7gd5tV5JzqzYwXrD4A9BABO0ny4Akae4gpUz2SWnH8EDI1BiQFBhk++7XgmC/E+caSN5qVISF/RMemiVBumSeifiG1OcZettk3/O6O6349nxUMHBZ8TVjk2Vl/u9N2eTGLc3puS0ixXmJqr4pSouoqQIH5sJFeLY71/bjLFz33VWqRg/++CcVcQySUpASlS5386c= ralsina@pinky

11
setup.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh -x
set -e
apt update
apt upgrade -y
apt install -y git
apt clean -y
rm -rf faasd
git clone https://github.com/openfaas/faasd --depth 1
cd faasd
./hack/install.sh