abra assumes cluster --listen-ip is always public routable #317
Closed
opened 2022-04-29 15:15:28 +00:00 by Ghost
·
5 comments
Labels
Clear labels
abra
awaiting-feedback
backups
bug
build
ci/cd
community organising
contributing
coopcloud.tech
design
documentation
duplicate
enhancement
fedi
fedi-infra
finance
funding
good first issue
help wanted
installer
legal
performance
proposal
question
security
test
wontfix
Everything to do with abra
Ping/pong on comms
Something is not working
Go build related issues
Getting the robots into the mix
Opening this thing up
Contributors stuff
Our main website
Design thinking required
Let's write things together
This issue or pull request already exists
New feature
Democratic decision making
Money things
Anything related to grant funding
Easy start with development
Need some help
Installation related issues
Performance related
Large change which requires feedback & decisin making
More information is needed
Securing our shit
Unit or integration test suite
This won't be fixed
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
BornDeleuze
Brooke
carla
cas (Cassowary)
coopcloud
cyrnel
decentral1se (d1)
dede
devydave
fauno (fauno)
iexos
jade (Jade Ambrose)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
moosemower
moritz
notplants
oxaliq (sorrel)
p4u1
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
renovate-bot (Comrade Renovate Bot)
ripclap
simon
sixsmith (Sixsmith)
stevensting
trav (Trav Fryer)
val (val (he/him))
yksflip
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: toolshed/organising#317
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
i have an interesting use-case in that my environment is mixed metal/vps mesh model over wireguard or nebula.
when a cluster is spun up, the
--listen-addrand--advertise-addrare set ondocker swarm initso that the rest of the nodes in the proposed mesh are able to communicate on the encrypted mesh network, which is then utilised via overlay proxy network in docker.to dive deeper, swarm nodes listen on private network ie:
100.64.0.0/10which are non-routable via public internet.during a standar
abra app new traefikand followingabra app config traefik.mydomain.coman error message is noted:app domain traefik.mydomain.com does not appear to resolve to app server 100.65.100.10?i would propose being able to optionally pass an arg that allows operator to specify the public routed ip address thus dismissing the advertise and listen address on the swarm cluster itself.
note: this is a unique use-case since many operators from my observation run in public-routed cidr blocks on vps/paas vendors.
if there is interest in this, i likely can work on a feature spike of it.
Hey @mutefall, that's an interesting one alright!
Hmmmmm 🤔 that seems like a bug that
abra app config ...is failing with domain name resolution 😱 Was this not an output instead fromabra app deploy ...? Btw I was also curious ifdeploy --no-domain-checkswas a work-around for now?Sounds legit! Probably an arg on the
abra server addthen? I guess it comes down to some threading / re-working of the logic in574d556bb9/cli/server/add.go (L330-L333)@decentral1se let me give it a test with the
--no-domain-checkstoday and report back. i've been a way for a bit and just now catching up :-)@decentral1se i apologise for the latency, have been busy with daytime activities.
i did try deployment with
--no-domain-checksand it appears to be a workaround.i'm curious if it would make sense to add a
boolarg to EnsureDomainsResolveIPv4 function. which could be calledupstreamwhich would take into account those running upstream load balancers for on-premise situations which would then take theyourapp.domain.comdeployment and compare the ipv4 addr from the upstream load balancer to ensure parity with thea recordper also upon adding a server, we could introduce a similar optional arg but
stringtype to declare theipv4addr up the upstream load balancer which would then satisfy the the ability for thednspackage to do its work properly.No worries @mutefall, thanks for making time for it again! Glad you have that work-around for working around 🙂
Your proposal makes sense but i think the bit where it falls down is the additional arg on
server add.abrais basically stateless when it comes to the DNS logic, it just does some resolving and sees what it finds. So, where do we store the "remember this is the upstream load balancer and use that IP" forabrato look up later on when doing deployments?I'm a bit cautious to add a command-line flag to the interface that potentially isn't being used by a wide audience (niche use case). Of course, it's hard to say that this is really niche since a lot of folks use load balancers!
There was talk of doing a config file in coop-cloud/organising#303, maybe this is one for that? We could use the config file as a staging area for experimental options.
So, you have some option in the config file (have a proposal for how it can look?) and then when deploying, if
abrasees that option in the config file, it does something else at deploy time.@decentral1se
nothing like lack of sleep to think too shallow.
this looks to be a better approach. since i can workaround with the original suggestion i will close this and focus energy on #303