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

Consistently implement an interface to provide a Virtual IP resource to be consumed across all networking resources #1116

Open
balpert89 opened this issue Sep 6, 2024 · 0 comments
Labels
api-change enhancement New feature or request

Comments

@balpert89
Copy link
Contributor

balpert89 commented Sep 6, 2024

Summary

A NetworkInterface exposes the possibility to configure either a predefined Virtual IPresource or have it ephemerally managed by a template configuration (see https://github.com/ironcore-dev/ironcore/blob/main/api/networking/v1alpha1/networkinterface_types.go#L50-L56).

Other Networking resources such as Loadbalancers or NATGateways do not expose such an interface and therefore it is not possible to attach a predefined Virtual IP to said resources. Here we request to introduce the same contract consistently across relevant Networking resources.

Basic example

This example shows the configuration for a NATGateway to define an ephemerally managed Virtual IP. This definition is the same as omitting the configuration altogether as a NATGateway always has a public IP address allocated. The difference here is that claiming this public IP address is done by creating and claiming a Virtual IP resource.

apiVersion: networking.ironcore.dev/v1alpha1
kind: NATGateway
metadata:
  name: nat-gw
spec:
  ipFamily: IPv4
  networkRef:
    name: network
  portsPerNetworkInterface: 1024
  type: Public
  virtualIP:
    ephemeral:
      virtualIPTemplate:
        metadata:
          creationTimestamp: null
        spec:
          ipFamily: IPv4
          type: Public

The next example shows the configuration of a predefined Virtual IP resource named vip:

apiVersion: networking.ironcore.dev/v1alpha1
kind: NATGateway
metadata:
  name: nat-gw
spec:
  ipFamily: IPv4
  networkRef:
    name: network
  portsPerNetworkInterface: 1024
  type: Public
  virtualIP:
    virtualIPRef:
      name: vip

Motivation

Very strict configuration for e.g. VPN setups with well-defined IP addresses require the possibility to configure an exact prefix for Networking resources.

@balpert89 balpert89 added enhancement New feature or request api-change labels Sep 6, 2024
@ushabelgur ushabelgur added this to Core Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-change enhancement New feature or request
Projects
Status: No status
Development

No branches or pull requests

1 participant