Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add load balancer service annotations #913

Open
efossas opened this issue Feb 16, 2022 · 3 comments
Open

Add load balancer service annotations #913

efossas opened this issue Feb 16, 2022 · 3 comments

Comments

@efossas
Copy link

efossas commented Feb 16, 2022

TLDR; the annotations being on all services messes with the aws-load-balancer-controller. I only need them on the load balancer service. There is a workaround, but I would appreciate the feature.

From the docs, it appears it is only possible to add annotations to all resources, but not specific ones. I am currently just adding the annotations manually after deploying the ArangoDeployment CRD.

Another note (maybe better for another issue), but when i remove annotations from the CRD and re-apply, the annotations are not removed from the k8s resources. I had to find all resources and remove the annotations manually.

@ajanikow
Copy link
Collaborator

Hello!

If you want to achieve this in the current version you can disable external service in ArangoDeployment and create Service on your own (can be even in the same YAML file, selectors are constant - based on ArangoDeployment name).

We have in backlog customization for EA service, but it is not the highest priority right now (ETA 1.3/1.4)

Best Regards,
Adam.

@wyattwalter
Copy link

A quick note in case you're actually working on this :)

I tried the approach of just adding the annotations that I needed for an AWS load balancer to everything. That was problematic for me in practice because the load balancer kept getting created by AWS with a default configuration.

Reading through logs and a cursory look at the code suggested to me that the service was getting created, then another part of the reconciliation loop (or a different loop entirely) was adding annotations to all related objects in Kubernetes. This was problematic for usage on EKS because AWS won't change fundamental things on a load balancer like whether it's internal- or internet-facing after it has been created. Since there's a two-pass loop, though, AWS has already created the load balancer before the internal tags get added and the AWS controller will not destroy/re-create the load balancer.

@ajanikow
Copy link
Collaborator

Hello!

Starting from 1.2.16 we will provide "managed" type of service. In this scenario, the user will be able to create service on his own, while Operator will only manage selectors.

It will be a solution for cases like the above.

Best Regards,
Adam.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants