I am happy to announce I was able to build a working OpenServerlss from
sources!
Warning: still some issues pending, but we are close:
I built all the images and the runtimes from sources using the git rev as
tag:
git -C olaris-op rev-parse --short HEAD
# f57d7bb
The images are build and used by kind (those images does no exists in
public repos)
./ops ut fr image-list | grep openserverless
kind/apache/openserverless-devcontainer:0.1.0-incubating.2603111653
kind/registry.hub.docker.com/apache/openserverless-operator:f57d7bb
kind/registry.hub.docker.com/apache/openserverless-operator:f57d7bb
kind/registry.hub.docker.com/apache/openserverless-admin-api:f57d7bb
kind/registry.hub.docker.com/apache/openserverless-admin-api:f57d7bb
kind/registry.hub.docker.com/apache/openserverless-runtime-go:v1.22-f57d7bb
kind/registry.hub.docker.com/apache/openserverless-runtime-java:v8-f57d7bb
kind/
registry.hub.docker.com/apache/openserverless-runtime-nodejs:v21-f57d7bb
kind/registry.hub.docker.com/apache/openserverless-runtime-php:v8.3-f57d7bb
kind/
registry.hub.docker.com/apache/openserverless-runtime-python:v3.12-f57d7bb
kind/registry.hub.docker.com/apache/openserverless-streamer:f57d7bb
kind/registry.hub.docker.com/apache/openserverless-streamer:f57d7bb
This is the result:
```
$ kg po
NAME READY STATUS
RESTARTS AGE
controller-0 1/1 Running
0 9m
couchdb-0 1/1 Running
0 10m
couchdb-init-5xn6c 0/1 Completed
0 10m
cron-init-29677708-sj9kr 0/1 Completed
0 2m16s
cron-init-29677709-7km4w 0/1 Completed
0 76s
cron-init-29677710-vqlv2 0/1 Completed
0 16s
kubegres-controller-manager-544bb677d-4nrm5 2/2 Running
0 9m28s
nuvolaris-etcd-0 1/1 Running
0 8m36s
nuvolaris-milvus-standalone-56d5d55c65-vjmcp 1/1 Running
0 7m29s
nuvolaris-mongodb-0 1/1 Running
0 9m6s
nuvolaris-operator-0 1/1 Running
0 10m
nuvolaris-postgres-1-0 1/1 Running
0 9m24s
nuvolaris-static-0 1/1 Running
0 9m34s
preload-runtimes-wn6n9 0/5 ImagePullBackOff
0 10m
redis-0 1/1 Running
0 10m
registry-0 1/1 Running
0 10m
seaweedfs-0 1/1 Running
0 10m
wsk0-495-prewarm-python3 0/1 Terminating
0 3s
wsk0-496-prewarm-nodejs21 0/1 Terminating
0 3s
```
The operator uses the image:
kubectl -n nuvolaris get po nuvolaris-operator-0 -o yaml | grep image:
image: registry.hub.docker.com/apache/openserverless-operator:f57d7bb
image: registry.hub.docker.com/apache/openserverless-operator:f57d7bb
The operator works and rebuilds the system entirely. All the components are
in place and also there are the runtimes.
The preload fails but I guess it is because it expects to find images
publicly so we have to clean this part.
But hey! THis is a significant milestone. Now we have to remove all the
assumptions in the code using remote images.
This is the transcript of the full build I did creating a new Ubuntu 24.04
image and building from sources, I invite to try by yourslelf.
----
## prerequisites
sudo apt-get update
sudo apt-get -y install jq
sudo snap install go --classic
sudo snap install task --classic
sudo snap install kubectl --classic
curl -sL get.docker.com | sudo bash
sudo usermod -aG docker $USER
newgrp docker
docker ps
## collect sources
git clone https://github.com/sciabarracom/openserverless
--recurse-submodules
tar czvf openserverless-0.9.0.tar.gz --exclude=.git --exclude=.github
--exclude=*.tar.gz --exclude=*.zip openserverless
shasum sha256sum openserverless-0.9.0.tar.gz
# b9d6b7ad19ad733269c660ffad8a0178034abf5a openserverless-0.9.0.tar.gz
ls -l openserverless-0.9.0.tar.gz
# -rw-rw-r-- 1 msciab msciab 42628983 Jun 3 22:20
openserverless-0.9.0.tar.gz
## clean up docker
yes | docker buildx prune
docker ps -qa | xargs -r docker rm -f
docker images -qa | xargs -r docker rmi -f
## build
cd openserverless
time task build
#real 31m19.629s
#user 0m14.521s
#sys 0m11.623s
# check if images has been built with the current commit
git -C olaris-op rev-parse --short HEAD
# f57d7bb
grep f57d7bb olaris/opsroot.json
# olaris/opsroot.json: "operator": "
registry.hub.docker.com/apache/openserverless-operator:f57d7bb",
# olaris/opsroot.json: "streamer": "
registry.hub.docker.com/apache/openserverless-streamer:f57d7bb",
# olaris/opsroot.json: "systemapi": "
registry.hub.docker.com/apache/openserverless-admin-api:f57d7bb",
grep f57d7bb olaris/runtimes.json
# 17
./ops util freeze image-list
# kind/registry.hub.docker.com/apache/openserverless-operator:f57d7bb
# kind/registry.hub.docker.com/apache/openserverless-admin-api:f57d7bb
# kind/
registry.hub.docker.com/apache/openserverless-runtime-go:v1.22-f57d7bb
# kind/registry.hub.docker.com/apache/openserverless-runtime-java:v8-f57d7bb
# kind/
registry.hub.docker.com/apache/openserverless-runtime-nodejs:v21-f57d7bb
# kind/
registry.hub.docker.com/apache/openserverless-runtime-php:v8.3-f57d7bb
# kind/
registry.hub.docker.com/apache/openserverless-runtime-python:v3.12-f57d7bb
# kind/registry.hub.docker.com/apache/openserverless-streamer:f57d7bb
## install
export PATH=$PWD:$PATH
./ops setup mini
----
Michele Sciabarra | CEO
m: +44 747 984 8388
e: [email protected]
l: https://linkedin.com/in/msciab
Nuvolaris Inc | 1209 Orange Street, 19801Wilmington DE - US
www.nuvolaris.iolinkedin.com/in/msciab