1
0
Fork 0

Minor Fixes; Multi-Arch.

This commit is contained in:
Joao Gilberto Magalhaes 2021-08-10 17:56:09 -05:00
parent af3529a373
commit 44f8d2756f
7 changed files with 65 additions and 11 deletions

View file

@ -1,9 +1,26 @@
language: python language: python
python:
- "3.7"
services:
- docker
jobs:
include:
- stage: test
if: (type IN (pull_request))
install: install:
- pip install -r requirements.txt - pip install -r requirements
script: script:
- pytest -s tests/ - pytest -s tests/
- stage: build docker
if: (branch = master) AND (NOT (type IN (pull_request)))
install:
- docker pull byjg/k8s-ci
script:
- docker run --privileged -v /tmp/z:/var/lib/containers -it --rm -v $PWD:/work -w /work -e DOCKER_USERNAME=$DOCKER_USERNAME -e DOCKER_PASSWORD=$DOCKER_PASSWORD -e DOCKER_REGISTRY=$DOCKER_REGISTRY byjg/k8s-ci /work/build-multiarch.sh
- stage: documentation
if: (branch = master) AND (NOT (type IN (pull_request)))
install: skip
script: "curl https://opensource.byjg.com/add-doc.sh | bash /dev/stdin devops docker-easy-haproxy"

View file

@ -12,7 +12,10 @@ RUN pip3 install --upgrade pip \
COPY templates /scripts/templates/ COPY templates /scripts/templates/
COPY easymapping /scripts/easymapping/ COPY easymapping /scripts/easymapping/
COPY tests/ /scripts/tests/
COPY assets / COPY assets /
RUN pytest -s tests/
CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf" ] CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf" ]

View file

@ -84,7 +84,7 @@ Important: easyhaproxy needs to be in the same network of the containers or othe
| com.byjg.easyhaproxy.host.[definition] | What is the host that the HAProxy will listen to. | somehost.com | | com.byjg.easyhaproxy.host.[definition] | What is the host that the HAProxy will listen to. | somehost.com |
| com.byjg.easyhaproxy.redirect.[definition] | (Optional) Host redirects from connections in the port defined above. | foo.com--https://bla.com,bar.com--https://bar.org | | com.byjg.easyhaproxy.redirect.[definition] | (Optional) Host redirects from connections in the port defined above. | foo.com--https://bla.com,bar.com--https://bar.org |
| com.byjg.easyhaproxy.sslcert.[definition] | (Optional) Cert PEM Base64 encoded. | | | com.byjg.easyhaproxy.sslcert.[definition] | (Optional) Cert PEM Base64 encoded. | |
| com.byjg.easyhaproxy.health-check.[definition] | (Optional) `ssl`, enable health check via SSL in `mode tcp` (Defaults to "empty") | | | com.byjg.easyhaproxy.health-check.[definition] | (Optional) `ssl`, enable health check via SSL in `mode tcp` (Defaults to "empty") | |
Note: if you are deploying a stack set labels at the `deploy` level: Note: if you are deploying a stack set labels at the `deploy` level:

33
build-multiarch.sh Executable file
View file

@ -0,0 +1,33 @@
#!/bin/bash
set -e
# Start k8s-ci before run this command
# docker run --privileged -v /tmp/z:/var/lib/containers -it --rm -v $PWD:/work -w /work byjg/k8s-ci
if [ -z "$DOCKER_USERNAME" ] || [ -z "$DOCKER_PASSWORD" ] || [ -z "$DOCKER_REGISTRY" ]
then
echo You need to setup \$DOCKER_USERNAME, \$DOCKER_PASSWORD and \$DOCKER_REGISTRY before run this command.
exit 1
fi
buildah login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD $DOCKER_REGISTRY
podman run --rm --events-backend=file --cgroup-manager=cgroupfs --privileged docker://multiarch/qemu-user-static --reset -p yes
VERSIONS="latest $TRAVIS_TAG"
for VERSION in $VERSIONS
do
DOCKERFILE=Dockerfile
buildah manifest create byjg/easy-haproxy:$VERSION
buildah bud --arch arm64 --os linux --iidfile /tmp/iid-arm64 -f $DOCKERFILE -t byjg/easy-haproxy:$VERSION-arm64 .
buildah bud --arch amd64 --os linux --iidfile /tmp/iid-amd64 -f $DOCKERFILE -t byjg/easy-haproxy:$VERSION-amd64 .
buildah manifest add byjg/easy-haproxy:$VERSION --arch arm64 --os linux --variant v8 $(cat /tmp/iid-arm64)
buildah manifest add byjg/easy-haproxy:$VERSION --arch amd64 --os linux --os=linux $(cat /tmp/iid-amd64)
buildah manifest push --all --format v2s2 byjg/easy-haproxy:$VERSION docker://byjg/easy-haproxy:$VERSION
done

View file

@ -1,3 +1,4 @@
pyyaml pyyaml
docker docker
jinja2 jinja2
pytest

View file

@ -1,5 +1,5 @@
{% if "ssl_cert" in o %} {% if "ssl_cert" in o %}
bind *:{{ o["port"] }} ssl crt {{ o["ssl_cert"] }} bind *:{{ o["port"] }} ssl crt {{ o["ssl_cert"] }}
{% elif "h2" in o and o["h2"] %} {% elif "h2" in o and o["h2"] %}
bind *:{{ o["port"] }} proto h2 bind *:{{ o["port"] }} proto h2
option http-use-htx option http-use-htx

View file

@ -60,8 +60,8 @@ backend srv_{{ host }}
http-request add-header X-Forwarded-Proto https if { ssl_fc } http-request add-header X-Forwarded-Proto https if { ssl_fc }
{% elif mode == "tcp" %} {% elif mode == "tcp" %}
option tcp-check option tcp-check
tcp-check connect{{ " ssl" if o["health-check"] == "ssl" }} tcp-check connect{{ " ssl" if o["health-check"] == "ssl" }}
{% endif %} {% endif %}
server srv {{ o["hosts"][k] }} check weight 1{{ " verify none" if o["health-check"] == "ssl" }} server srv {{ o["hosts"][k] }} check weight 1{{ " verify none" if o["health-check"] == "ssl" }}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}