Skip to content

Commit de38ac4

Browse files
authored
Merge pull request #266 from mhkarimi1383/ipv6-support
✨ Internal Server IPv6 Support
2 parents 0161ee3 + fd3e5c7 commit de38ac4

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

poetry.lock

Lines changed: 14 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ dnspython = "^2.8.0"
2323
tldextract = "^5.3.0"
2424
humanize = "^4.14.0"
2525
setproctitle = "^1.3.7"
26+
ipaddress = "^1.0.23"
2627

2728
[tool.poetry.scripts]
2829
rawfile = "rawfile.rawfile:cli"

rawfile/rawfile.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from orchestrator.k8s import node_ip_mapping
2121
from utils.volume_manager import manager as volume_manager
2222
from setproctitle import setproctitle
23+
import ipaddress
2324
import os
2425

2526

@@ -103,8 +104,12 @@ def csi_driver(driver_config: CSIDriverCmd):
103104
internal_pb2_grpc.add_InternalServicer_to_server(
104105
InternalServicer(), internal_server
105106
)
107+
internal_ip_str = driver_config.internal_ip
108+
internal_ip = ipaddress.ip_address(internal_ip_str) # type: ignore
109+
if internal_ip.version == 6:
110+
internal_ip_str = f"[{internal_ip_str}]"
106111
internal_server.add_insecure_port(
107-
f"{driver_config.internal_ip}:{driver_config.internal_port}"
112+
f"{internal_ip_str}:{driver_config.internal_port}"
108113
)
109114

110115
# NOTE: Controller methods are exposed on node plugin too because we are using distributed-snapshotting

rawfile/rawfile_servicer.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import ipaddress
12
from pathlib import Path
23
import time
34

@@ -300,9 +301,14 @@ def ControllerExpandVolume(self, request, context):
300301
node_name = volume_to_node(volume_id)
301302
size = request.capacity_range.required_bytes
302303

303-
node_ip = node_ip_mapping.get_node_ip(node_name)
304+
node_ip_str = node_ip_mapping.get_node_ip(node_name)
304305
metadata = [(SIGNATURE_METADATA, config.csi_driver.internal_signature)]
305-
channel = grpc.insecure_channel(f"{node_ip}:{config.csi_driver.internal_port}")
306+
node_ip = ipaddress.ip_address(node_ip_str)
307+
if node_ip.version == 6:
308+
node_ip_str = f"[{node_ip_str}]"
309+
channel = grpc.insecure_channel(
310+
f"{node_ip_str}:{config.csi_driver.internal_port}"
311+
)
306312
stub = internal_pb2_grpc.InternalStub(channel)
307313
response = stub.ExpandRawFile(
308314
internal_pb2.ExpandRawFileRequest(volume_id=volume_id, new_size=size),

0 commit comments

Comments
 (0)