Comments (8)
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.
from metallb.
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.
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.
- 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.
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 asudo: 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.
make push ARCH=arm REGISTRY=miek
works, did have to merge some stuff for that though.
from metallb.
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)
- Execive amount of events from metallb-speaker HOT 4
- L2 Advertisement Only Works Temporarily HOT 10
- Missing speaker monitor service label for proper metric labeling
- Setup redirect from metallb.universe.tf to metallb.io
- Deprecate the metallb.universe.tf annotations and start handling metallb.io HOT 2
- move the go module vanity url to metallb.io
- Operator installation documentation clarity
- Enable MetalLB to run alongside KubeVIP HOT 1
- Inquiry on Maturity and Potential Immature Aspects of the FRR-k8s Project HOT 1
- Services having the same "allow-shared-ip" value are not updated when one of them is updated HOT 3
- Replace github.com/pkg/errors to https://pkg.go.dev/errors
- Support Multiple IPs per Service from the Same Pool for Enhanced DNS-Level Redundancy HOT 1
- Correct the ginkgo binary version
- Metallb Kind cluster setup windows machine HOT 1
- Can not reach nginx from ouside cluster and only inside cluster HOT 7
- Bug: Unnecessary permissions in charts
- Run e2e against up to date versions of kube
- Remove the need for `metallb.universe.tf/allow-shared-ip` annotation HOT 3
- Documentation uses (outdated) wrong serviceAccount for OpenShift HOT 2
- Add support for BGP on link-local addresses HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metallb.