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

Documentation for exposing Sidero services is light #1236

Open
hyperbolic2346 opened this issue Nov 3, 2023 · 1 comment
Open

Documentation for exposing Sidero services is light #1236

hyperbolic2346 opened this issue Nov 3, 2023 · 1 comment

Comments

@hyperbolic2346
Copy link

The documentation for exposing Sidero services is lacking when not using the default host networking. There is talk about using metallb, but no information on how to get Sidero to create loadbalancer services. There is also no information regarding export SIDERO_CONTROLLER_MANAGER_HOST_NETWORK=true and other options on the installing page. The Cluster API linked on that page has no mention of Sidero or environment variables.

Outstanding questions:

  • Do I edit the services with kubectl edit and change the type?
  • What other environment variables could be interesting when calling clusterctl
  • Is there a way for someone to edit the values used for SIDERO_CONTROLLER_MANAGER_API_ENDPOINT and SIDERO_CONTROLLER_MANAGER_SIDEROLINK_ENDPOINT? Are they stored in a configmap somewhere? There is no mention of these needing to match the upcoming load balanced IP addresses until after they are used.
@johanjk
Copy link

johanjk commented Nov 9, 2023

All clusterctl env variables are listed here here

Sidero itself is installed using a kustomization, it can be found here. It does not create LoadBalancer services.

Assuming you have metallb and externaldns correctly configured, you can either edit the services (as you suggested), or create additional services, leaving the internal sidero service alone.

eg. for the tftp service: (you would need similar for http and siderolink)

apiVersion: v1
kind: Service
metadata:
  name: sidero-tftp-metallb
  namespace: sidero-system
  annotations:
    metallb.universe.tf/loadBalancerIPs: <static_ip>
    metallb.universe.tf/allow-shared-ip: "<share_key>"
    external-dns.alpha.kubernetes.io/hostname: "<dnsname>"
spec:
  ports:
  - protocol: UDP
    port: 69
    targetPort: tftp
  selector:
    app: sidero
    cluster.x-k8s.io/provider: sidero
    cluster.x-k8s.io/v1alpha3: v1alpha3
    cluster.x-k8s.io/v1alpha4: v1alpha3
    cluster.x-k8s.io/v1beta1: v1alpha3
    control-plane: sidero-controller-manager
  type: LoadBalancer
  externalTrafficPolicy: Cluster

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

2 participants