Giter Club home page Giter Club logo

Comments (8)

danderson avatar danderson commented on June 15, 2024

Potential slight complication is that I'm using quay.io to host the container images, mostly because they supported better build triggering for multi-branch builds.

So (a) figure out if quay supports the correct version of the repository API, (b) we'll probably have to switch from "travis triggers quay.io build" to "travis does all the builds and pushes them". That loses us the nice "automated build" badge, but I don't think we have a choice?

I'll hack on this tonight. Since I'm the only one with access to the quay.io repository and the travis stuff, it makes sense for me to take this and iterate.

from metallb.

miekg avatar miekg commented on June 15, 2024

from metallb.

danderson avatar danderson commented on June 15, 2024

I think it would be nice to preserve automatic builds for all branches, so we have :latest, :latest-arm, ... That's why I want to try getting this into travis, because it's already aware of the branches, and the deploy stage is effectively a clean docker container with the code checked out... So it should be equivalent to a manual build.

I'll still add a fabric command to build+push manually, so that for development you can push to your own hub account and iterate from there.

from metallb.

xnaveira avatar xnaveira commented on June 15, 2024

I nice side effect of introducing the registry input variable in the fab push command is that now you can write ie fab push:registry=xnaveira and it gets pushed to your dockerhub account. I'll fix _set_image so it honors registry as well.

from metallb.

danderson avatar danderson commented on June 15, 2024
  • Create a single Dockerfile per metallb binary, replacing the current templated mess.
  • Add a fabric command to build images for metallb, that allows changing registry, tag, arch. So for example I can tell it to build quay.io/metallb/controller:latest-arm64, and it does the right thing.
  • Add a command that uses manifest-tool to push a "fat image" manifest, so we have true multi-arch images for releases.
  • Edit the minikube dev commands to build for the correct arch, but continue doing the same push magic for minikube.
  • Clean up the old dockerfiles, update documentation to reference the new world.

from metallb.

danderson avatar danderson commented on June 15, 2024

Almost there... Remaining items:

  • Make test-bgp-router buildable on !amd64. Plan for that is to embed GoBGP in the test-bgp-router binary, and skip installation of bird/quagga for !amd64. That way amd64 still tests against many routers, and !amd64 has at least 1 router to test with.
  • Update travis stuff to run make all-arch-images as the deploy script. May need to convert to a sudo: true environment for this, because we need to run docker and I don't think travis supports docker-in-docker.

Currently, make push on amd64 works, but deploying the stock metallb manifests from master is broken, because nothing has built a speaker container image on quay.io yet.

from metallb.

miekg avatar miekg commented on June 15, 2024

make push ARCH=arm REGISTRY=miek

works, did have to merge some stuff for that though.

from metallb.

danderson avatar danderson commented on June 15, 2024

Going to close this, make all-arch-images is capable of building and pushing multi-arch images.

Opening a new issue to re-enable CI/CD in this new world.

from metallb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.