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

Reply via email to