You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Nicolas JEUDY 0301192fca [FIX] resolv conflict for web repos (PR merged) 7 months ago
.drone.d/update-pre-build.d fix: reuse same connection 3 years ago
odoo [FIX] resolv conflict for web repos (PR merged) 7 months ago
.copier-answers.yml Update 16.0 version 1 year ago
.drone.yml fix drone.yml to be like base 3 years ago
.editorconfig [NEW] initial commit 4 years ago
.eslintrc.yml [NEW] initial commit 4 years ago
.flake8 Update 16.0 version 1 year ago
.gitignore Update 16.0 version 1 year ago
.isort.cfg Update 16.0 version 1 year ago
.pre-commit-config.yaml Update 16.0 version 1 year ago
.prettierrc.yml [NEW] initial commit 4 years ago
.pylintrc Update 16.0 version 1 year ago
.pylintrc-mandatory [NEW] initial commit 4 years ago
.python-version Initial V16.0 commit 2 years ago
LICENSE [NEW] initial commit 4 years ago
README.md [UPD] copier update 3 years ago
common.yaml Update 16.0 version 1 year ago
devel.yaml Update 16.0 version 1 year ago
prod.yaml Update 16.0 version 1 year ago
setup-devel.yaml Update 16.0 version 1 year ago
tasks.py Update 16.0 version 1 year ago
test.yaml Update 16.0 version 1 year ago

README.md

Doodba deployment Last template update Odoo AGPL-3.0-or-later license pre-commit

Read the docs.

Myceliandre freezing

There are a number of floating target that needs to be replaced to ensure as much as possible a rebuildable fixed target image.

How do we freeze

The fixing process will be conducted by an external script that will go through all moving targets to replace them with a fixed version.

The fixing process could have involved running a docker build, and using the resulting image to fix and freeze things by modifying files in odoo_base.

But, because some cleaning processes (removing of .git dir) are conducted, we choose to do part of it before (inspecting git sources, and fixing repos.yaml before hand). Other part of this process still are more simply done on the resulting image built by pip or apt because the full version dep graph is more easily queryiable on a resulting installation that buildable by inference.

What is freezed

This modify files everywhere and this will be pushed as a commit automatically with a tag -. The corresponding image should be easily found in docker.0k.io repository with same tag.

When possible, the version will also be saved locally.

original docker base

Check if FROM is local (from docker.0k.io), otherwise we need to tag it and push it to docker.0k.io.

tecnativa/doodba:12.0-onbuild

once caught, execute a docker pull MOVING_REF, then tag and push on docker.0k.io, modify file in odoodba

full git-aggregators

track any refs that are branches. If repository has a branch, is not cloned in gittea, then clone it, create tag with current global tag (-), replace source URL, target in yaml file by tag. Keep in comments the actual original source and original targets.

Needs to be checked on the checked image, on the repositories.

Pip package

A pip freeze need to be run to get all versions, and for easy diff, output a file that would be:

package1==version
...


## Unspecified deps
packageA==version

apt packages

Same here

## gives all packages installed and their version
dpkg-query -l | grep ^ii | awk '{print $2 "\t" $3}'


We need to produce a meaningfull report of differences between versions

The best would be to be able to use git diff.

Additional possibility for committing a new release

we could flatten git history, and docker resulting incremental image (diffing exports of docker files).

Process

freezing a completely new version

bin/freeze

That will be run on gitea automatically and pushed as a tagged version.

But this is also doable from the dev computer.

Making modification

git co master # (unfreezed version)

OR git clone -b BRANCH release/candidate/YYYMMDD-HHMMSS

Make modif, commit. Gitea will automatically create a new:

  • release/candidate/YYYMMDD-HHMMSS branch

Checking possible updates (optional)

Identify locked entries, and go fetch update, allow to update.

Updating

Ask to update one of the links

Troubleshooting

docker run -ti \
    --env PLUGIN_SSH_KNOWN_HOSTS="$(ssh-keyscan -H -p 10022 git.0k.io 2>/dev/null)" \
    --env PLUGIN_SSH_PRIVATE_KEY="$(cat ~/.ssh/ssh_myceliandre_mirror)" \
    --env PLUGIN_DOCKER_CONFIG_JSON='{"auths": {"docker.0k.io": {"auth": "bWlycm9yOkh1bnZNSlpJMW9ra3VoSWs="}}}' \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /home/vaab/dev/docker/odoo_base:/tmp/odoo_base \
    -w /tmp/odoo_base \
    -v /home/vaab/dev/sh/0k-docker/src/bin/dupd:/usr/local/bin/dupd \
    docker.0k.io/0k-mirror-freezer /bin/bash