Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
5f24777
📚 docs: edit typo
parham-membari-terradue Feb 20, 2025
b4683c8
📚 docs: adding docs for event driven installation
parham-membari-terradue Feb 20, 2025
1142bcc
🎉 feat: init machine-learning-process
parham-membari-terradue Feb 25, 2025
17f803a
✨ feat: adding pre-commit
parham-membari-terradue Feb 25, 2025
b96a8af
feat: add pystac_client to venv
parham-membari-terradue Feb 25, 2025
f638e4b
docs: edit docs
parham-membari-terradue Feb 25, 2025
4b8b9bc
docs: edit docs
parham-membari-terradue Feb 25, 2025
5eb3ccf
docs: edit docs
parham-membari-terradue Feb 25, 2025
4ec2de5
Merge branch 'ESAEOEPCA-235' into EAI-154
parham-membari-terradue Feb 25, 2025
837c44e
feat: init machine learning process
parham-membari-terradue Feb 26, 2025
51d7721
Merge pull request #2 from eoap/ESAEOEPCA-235
fabricebrito Feb 27, 2025
f2aecb1
adds config to dask gateway
fabricebrito Feb 28, 2025
12f3abe
Merge branch 'develop' of https://github.com/eoap/dev-platform-eoap i…
fabricebrito Feb 28, 2025
986e128
updates "how-to" config to support taskfiles
fabricebrito Mar 3, 2025
bcaaaaa
feat: update skaffold and init.sh
parham-membari-terradue Mar 3, 2025
69369b3
docs: add intructions
parham-membari-terradue Mar 3, 2025
4f4c434
feat: edit machine learning code server
parham-membari-terradue Mar 10, 2025
ed511db
chore: delete redundant charts
parham-membari-terradue Mar 10, 2025
a04fe3c
feat: edit mlflow artifactRoot
parham-membari-terradue Mar 10, 2025
ca88aec
feat: deployed code server without notebooks
parham-membari-terradue Mar 10, 2025
1702253
merge: merge updates
parham-membari-terradue Mar 11, 2025
6f095a3
adds dask-gateway and advanced tooling. updates how-to
fabricebrito Mar 11, 2025
a31e875
feat: remove the configmaps
parham-membari-terradue Mar 11, 2025
c0dee43
feat: change strategy
parham-membari-terradue Mar 11, 2025
7a49f99
fixes in mastering skaffold
fabricebrito Mar 11, 2025
8273874
how-to using ttl.sh
fabricebrito Mar 11, 2025
90e26fe
chore: must handle error for mlflow write
parham-membari-terradue Mar 11, 2025
00affb7
fix: mlflow artifact issue
parham-membari-terradue Mar 12, 2025
8163dfd
feat: add dynamic code-server service type
parham-membari-terradue Mar 12, 2025
d4d7728
feat: add cluster conf
parham-membari-terradue Mar 13, 2025
92c1100
feat: enable skaffold and update init
parham-membari-terradue Mar 14, 2025
a0fc2e5
feat: add kaniko secret
parham-membari-terradue Mar 14, 2025
ff24f7a
add kaniko
parham-membari-terradue Mar 14, 2025
97c5c60
feat: edit securityContext.privileged
parham-membari-terradue Mar 14, 2025
ef7f819
feat: update git repo
parham-membari-terradue Mar 24, 2025
ba8cc3e
chore: edit git repo
parham-membari-terradue Apr 6, 2025
3753a14
Merge branch 'EAI-154' of https://github.com/eoap/dev-platform-eoap i…
parham-membari-terradue Apr 6, 2025
df7c3dc
feat: edit yq installation
parham-membari-terradue Apr 6, 2025
0bb9f4a
feat: change repo reference
parham-membari-terradue Apr 8, 2025
ef09431
Merge branch 'develop' into EAI-154
fabricebrito Apr 8, 2025
5f3bad2
Merge pull request #7 from eoap/EAI-154
fabricebrito Apr 8, 2025
e7768c9
feat: remove redundant sa
parham-membari-terradue Apr 8, 2025
88e19b0
feat: specify mlflow's chart version
parham-membari-terradue Apr 8, 2025
bd32505
docs: improve docs
parham-membari-terradue Apr 8, 2025
eec794d
Use patches in the macos profile and remove the standard one
gfenoy Apr 11, 2025
de78200
feat: checkout to develop in init
parham-membari-terradue Apr 29, 2025
5c9de90
feat: update code server with tzdata
parham-membari-terradue May 12, 2025
da38015
updates requirements
fabricebrito May 12, 2025
8c82643
Merge branch 'develop' of https://github.com/eoap/dev-platform-eoap i…
fabricebrito May 12, 2025
99793c2
feat: edit coder docker reference
parham-membari-terradue May 13, 2025
105a2b6
feat: zoneinfo handeled
parham-membari-terradue May 13, 2025
ae40984
adds CI for building dask and how-to
fabricebrito May 20, 2025
ca18146
Merge branch 'develop' of https://github.com/eoap/dev-platform-eoap i…
fabricebrito May 20, 2025
e9b6bb5
fixes CI
fabricebrito May 20, 2025
3e6364d
fixes CI
fabricebrito May 20, 2025
92964c8
add advanced-tooling to CI
fabricebrito May 20, 2025
e376f09
adds codemeta.json to advanced-tooling
fabricebrito May 20, 2025
cc21d51
removes tooling from init.sh and adds tooling in dockerfile
fabricebrito May 20, 2025
12a3f55
adds application-package-patterns
fabricebrito Jun 10, 2025
a289d00
Merge branch 'main' into develop
fabricebrito Jun 20, 2025
fd9e49a
updates app-package-patterns config
fabricebrito Jun 20, 2025
b193cf8
Update ZOO-Project-DRU Helm chart to the latest released version
gfenoy Jun 23, 2025
66884c2
fixes and CI
fabricebrito Jul 3, 2025
cd8588a
dockerfile
fabricebrito Jul 3, 2025
6f1d589
adds coder container
fabricebrito Sep 17, 2025
0b95893
docker-coder - update
fabricebrito Sep 17, 2025
4bfbe84
updates container to python 3.12.11
fabricebrito Sep 17, 2025
42a0be9
fixes for updated zarr-cloud-format
fabricebrito Sep 17, 2025
c486248
adds graphviz to coder image
fabricebrito Sep 17, 2025
a867cd8
wip fixes on dask gateway
Oct 13, 2025
8b9b232
bump dask-gateway version
fabricebrito Oct 13, 2025
e3f62a5
Merge branch 'develop' into feature/patched-profile
gfenoy Nov 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: build
on:
push:
branches:
- main
- develop

paths:
# Only rebuild website when apps have changed
- '.github/**'
- 'advanced-tooling/**'
- 'dask-gateway/**'
- 'how-to/**'
- 'container/**'
jobs:


container-coder:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: build & push image
run: |
cd container/coder
version=$(cat codemeta.json | jq -r .version )
IMAGE_ID=ghcr.io/eoap/dev-platform-eoap/eoap-coder
docker build . --file Dockerfile.coder --tag eoap-coder
docker tag eoap-coder $IMAGE_ID:${version}
docker push $IMAGE_ID:${version}

container-build:

#needs: []

runs-on: ubuntu-latest

strategy:
matrix:
step: ["application-package-patterns", "advanced-tooling", "how-to"]

steps:
- uses: actions/checkout@v2
- run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: build & push image
run: |
version=$(cat ${{ matrix.step }}/codemeta.json | jq -r .version )
IMAGE_ID=ghcr.io/eoap/dev-platform-eoap/${{ matrix.step }}-coder
docker build ${{ matrix.step }} --file ${{ matrix.step }}/Dockerfile.coder --tag ${{ matrix.step }}
docker tag ${{ matrix.step }} $IMAGE_ID:${version}
docker push $IMAGE_ID:${version}

container-dask:

runs-on: ubuntu-latest

strategy:
matrix:
step: ["client", "coder", "worker"]

steps:
- uses: actions/checkout@v2
- run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: build & push image
run: |
version=$(cat dask-gateway/codemeta.json | jq -r .version )
IMAGE_ID=ghcr.io/eoap/dev-platform-eoap/dask-gateway-${{ matrix.step }}
docker build dask-gateway --file dask-gateway/Dockerfile.${{ matrix.step }} --tag eoap-dask-gateway-${{ matrix.step }}
docker tag eoap-dask-gateway-${{ matrix.step }} $IMAGE_ID:${version}
docker push $IMAGE_ID:${version}
35 changes: 35 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
hooks:
- id: check-added-large-files
- id: check-merge-conflict
- id: debug-statements
- id: detect-private-key
- id: no-commit-to-branch
args:
- --pattern=master|main
- id: requirements-txt-fixer

- repo: https://github.com/myint/autoflake
rev: v1.4
hooks:
- id: autoflake
args:
- --in-place
- --remove-unused-variables
- --remove-all-unused-imports
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
- id: flake8
args:
- --max-line-length=188
- --max-doc-length=190

- repo: https://github.com/psf/black
rev: 22.3.0
hooks:
- id: black
args:
- --line-length=140
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ cd mastering-app-package
skaffold dev
```

Wait for the deployment to stablize (1-2 minutes) and the open your browser on the link printed, usually http://127.0.0.1:8000.
Wait for the deployment to stablize (1-2 minutes) and then open your browser on the link printed, usually http://127.0.0.1:8000.

The typical output is:

Expand Down
156 changes: 156 additions & 0 deletions advanced-tooling/Dockerfile.coder
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
FROM docker.io/library/python:3.10.12@sha256:bac3a0e0d16125977e351c861e2f4b12ecafeaa6f72431dc970d0b9155103232

RUN \
apt-get update && \
apt-get install -y \
build-essential \
curl \
gcc \
vim \
tree \
file

RUN \
echo "**** install node repo ****" && \
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
echo 'deb https://deb.nodesource.com/node_14.x jammy main' \
> /etc/apt/sources.list.d/nodesource.list && \
echo "**** install build dependencies ****" && \
apt-get update && \
apt-get install -y \
nodejs && \
apt remove yq jq -y

RUN \
echo "**** install runtime dependencies ****" && \
apt-get install -y \
git \
libatomic1 \
nano \
net-tools \
sudo \
podman \
wget \
python3 \
python3-pip

RUN \
echo "**** install code-server ****" && \
if [ -z ${CODE_RELEASE+x} ]; then \
CODE_RELEASE=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest \
| awk '/tag_name/{print $4;exit}' FS='[""]' | sed 's|^v||'); \
fi && \
mkdir -p /app/code-server && \
curl -o \
/tmp/code-server.tar.gz -L \
"https://github.com/coder/code-server/releases/download/v${CODE_RELEASE}/code-server-${CODE_RELEASE}-linux-amd64.tar.gz" && \
tar xf /tmp/code-server.tar.gz -C \
/app/code-server --strip-components=1 && \
echo "**** patch 4.0.2 ****" && \
if [ "${CODE_RELEASE}" = "4.0.2" ] && [ "$(uname -m)" != "x86_64" ]; then \
cd /app/code-server && \
npm i --production @node-rs/argon2; \
fi && \
echo "**** clean up ****" && \
apt-get purge --auto-remove -y \
build-essential \
nodejs && \
apt-get clean && \
rm -rf \
/config/* \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/* \
/etc/apt/sources.list.d/nodesource.list

ENV USER=jovyan \
UID=1001 \
GID=100 \
HOME=/workspace \
PATH=/opt/conda/bin:/app/code-server/bin/:$PATH:/app/code-server/


# RUN \
# echo "**** install conda ****" && \
# wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh -O miniconda.sh -q && \
# sh miniconda.sh -b -p /opt/conda && \
# conda install -n base -c conda-forge mamba && \
# conda config --system --append channels conda-forge && \
# conda config --system --append channels terradue && \
# conda config --system --append channels eoepca && \
# conda config --system --append channels r && \
# conda config --system --set auto_update_conda false && \
# conda config --system --set show_channel_urls true && \
# conda config --system --set channel_priority "flexible"


# RUN \
# mamba install -n base cwltool cwl-wrapper==0.12.2 nodejs && \
# mamba clean -a

RUN \
echo "**** install yq, aws cli ****" && \
VERSION="v4.12.2" && \
BINARY="yq_linux_amd64" && \
wget --quiet https://github.com/mikefarah/yq/releases/download/${VERSION}/${BINARY}.tar.gz -O - |\
tar xz && mv ${BINARY} /usr/bin/yq && \
pip install awscli && \
pip install awscli-plugin-endpoint

RUN \
echo "**** install jupyter-hub native proxy ****" && \
pip install jhsingle-native-proxy>=0.0.9 && \
echo "**** install bash kernel ****" && \
pip install bash_kernel && \
python -m bash_kernel.install

RUN \
echo "**** adds user jovyan ****" && \
useradd -m -s /bin/bash -N -u $UID $USER

COPY entrypoint.sh /opt/entrypoint.sh

RUN chmod +x /opt/entrypoint.sh

# RUN chown -R jovyan:100 /opt/conda

# RUN \
# echo "**** required by cwltool docker pull even if running with --podman ****" && \
# ln -s /usr/bin/podman /usr/bin/docker

ENTRYPOINT ["/opt/entrypoint.sh"]

EXPOSE 8888

RUN echo "**** install kubectl ****" && \
curl -s -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" && \
chmod +x kubectl && \
mkdir -p /workspace/.venv/bin && \
mv ./kubectl /usr/local/bin/kubectl


RUN curl -s -L https://github.com/pypa/hatch/releases/latest/download/hatch-x86_64-unknown-linux-gnu.tar.gz | tar -xzvf - -C /usr/local/bin/ && \
chmod +x /usr/local/bin/hatch

RUN curl -s -L https://github.com/go-task/task/releases/download/v3.41.0/task_linux_amd64.tar.gz | tar -xzvf - -C /usr/local/bin/ && \
chmod +x /usr/local/bin/task

RUN curl -s -L https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 > /usr/local/bin/skaffold && \
chmod +x /usr/local/bin/skaffold

RUN pip3 install tomlq && tomlq --version

RUN rm -f /usr/bin/yq && \
rm -f /usr/local/bin/yq && \
curl -s -LO https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64.tar.gz && \
tar -xvf yq_linux_amd64.tar.gz && \
mv yq_linux_amd64 /usr/local/bin/yq && \
cp -v /usr/local/bin/yq /usr/bin/yq && \
chmod +x /usr/bin/yq /usr/local/bin/yq

RUN curl -s -L https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64 > /usr/bin/jq && \
chmod +x /usr/bin/jq

RUN pip install --upgrade uv

USER jovyan
3 changes: 3 additions & 0 deletions advanced-tooling/codemeta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"version": "0.1.0"
}
37 changes: 37 additions & 0 deletions advanced-tooling/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/bash

collect_port=0
port="8888"
delim='='

for var in "$@"
do
echo "$var"

if [ "$collect_port" == "1" ]; then
echo "Collecting external port $var"
port=$var
collect_port=0
fi

splitarg=${var%%$delim*}

if [ "$splitarg" == "--port" ]; then
if [ ${#splitarg} == ${#var} ]; then
collect_port=1
else
port=${var#*$delim}
echo "Setting external port $port"
fi
fi
done

destport=$((port + 1))

echo "Using internal port $destport"

if [ -z "$CODE_SERVER_WS" ]; then
CODE_SERVER_WS="/workspace"
fi

jhsingle-native-proxy --port $port --destport $destport code-server {--}auth none {--}bind-addr 0.0.0.0:$destport {--}user-data-dir /workspace $CODE_SERVER_WS
24 changes: 3 additions & 21 deletions advanced-tooling/files/init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,9 @@ echo '{"workbench.colorTheme": "Visual Studio Dark"}' > /workspace/User/settings

python -m venv /workspace/.venv
source /workspace/.venv/bin/activate
/workspace/.venv/bin/python -m pip install --no-cache-dir tomlq calrissian
# /workspace/.venv/bin/python -m ipykernel install --user --name mastering_env --display-name "Python (Mastering Application Package)"

echo "**** install kubectl ****"
curl -s -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
mkdir -p /workspace/.venv/bin
mv ./kubectl /workspace/.venv/bin/kubectl


curl -s -L https://github.com/pypa/hatch/releases/latest/download/hatch-x86_64-unknown-linux-gnu.tar.gz | tar -xzvf - -C /workspace/.venv/bin/
chmod +x /workspace/.venv/bin/hatch
curl -s -L https://github.com/go-task/task/releases/download/v3.41.0/task_linux_amd64.tar.gz | tar -xzvf - -C /workspace/.venv/bin/
chmod +x /workspace/.venv/bin/task

curl -s -L https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 > /workspace/.venv/bin/skaffold
chmod +x /workspace/.venv/bin/skaffold

curl -s -LO https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64.tar.gz
tar -xvf yq_linux_amd64.tar.gz
mv yq_linux_amd64 /workspace/.venv/bin/yq
/workspace/.venv/bin/pip install --upgrade uv
/workspace/.venv/bin/python -m uv pip install --no-cache-dir tomlq calrissian
/workspace/.venv/bin/python -m ipykernel install --user --name advanced_tooling --display-name "Python (Application Package Patterns)"

export AWS_DEFAULT_REGION="us-east-1"

Expand Down
19 changes: 16 additions & 3 deletions advanced-tooling/skaffold.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,18 @@ apiVersion: skaffold/v4beta9
kind: Config
metadata:
name: eoap-advanced-tooling


build:
tagPolicy:
envTemplate:
template: 2h

artifacts:
- image: ttl.sh/eoap-advanced-tooling-coder
context: .
docker:
dockerfile: Dockerfile.coder

deploy:
helm:
releases:
Expand All @@ -11,17 +22,19 @@ deploy:
namespace: eoap-advanced-tooling
createNamespace: true
setValues:
coder.coderImage: eoepca/pde-code-server:1.0.0
coder.coderImage: ttl.sh/eoap-advanced-tooling-coder:2h
coder.workspace: advanced-tooling
coderstorageClassName: standard
coder.storageClassName: standard #openebs-kernel-nfs-scw
coder.workspaceStorage: 10Gi
coderResources.limits.cpu: '2'
coderResources.limits.memory: '6442450944'
coderResources.requests.cpu: '1'
coderResources.requests.memory: '4294967296'
coder.securityContext.privileged: false
calrissian.enabled: true
calrissian.storageClassName: standard #openebs-kernel-nfs-scw
skaffold.enabled: true
kaniko.enabled: true

setFiles: {
initScript: ./files/init.sh,
Expand Down
Loading