-
Notifications
You must be signed in to change notification settings - Fork 38
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
Issue 430: Exposing Segmentstore Service on single IP #431
Conversation
Signed-off-by: prabhaker24 <[email protected]>
…ega/pravega-operator into expose-pravega-on-single-IP
…into expose-pravega-on-single-IP
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
…into expose-pravega-on-single-IP
Signed-off-by: prabhaker24 <[email protected]>
Codecov Report
@@ Coverage Diff @@
## master #431 +/- ##
==========================================
+ Coverage 76.11% 76.16% +0.05%
==========================================
Files 14 14
Lines 3320 3327 +7
==========================================
+ Hits 2527 2534 +7
Misses 705 705
Partials 88 88
Continue to review full report at Codecov.
|
Signed-off-by: prabhaker24 <[email protected]>
Signed-off-by: prabhaker24 <[email protected]>
@@ -491,6 +487,15 @@ func MakeSegmentStoreExternalServices(p *api.PravegaCluster) []*corev1.Service { | |||
}, | |||
}, | |||
} | |||
if strings.EqualFold(p.Spec.Pravega.SegmentStoreExternalTrafficPolicy, "cluster") == true { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change "cluster" to "Cluster" to be consistent with k8s documentation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM -- couple comments
README.md
Outdated
@@ -143,6 +143,8 @@ http://<pravega-name>-pravega-controller.<namespace>:10080/ | |||
|
|||
Check out the [external access documentation](doc/external-access.md) if your clients need to connect to Pravega from outside Kubernetes. | |||
|
|||
Check out the [exposing Segmentstore service on single I/P address ](https://github.com/pravega/pravega-operator/blob/4aa88641c3d5a1d5afbb2b9e628846639fd13290/doc/external-access.md#exposing-segmentstore-service-on-single-ip-address-and-different-ports) if your clients need to connect to Pravega Segment store on the same I/P address from outside Kubernetes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't IP address
the standard way of writing it? (rather than I/P
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@@ -33,6 +33,10 @@ spec: | |||
{{- if .Values.externalAccess.enabled }} | |||
controllerServiceAccountName: {{ .Values.serviceAccount.name }} | |||
segmentStoreServiceAccountName: {{ .Values.serviceAccount.name }} | |||
{{- if .Values.segmentStore.service.segmentStoreLoadBalancerIP }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is that conditional needed at all? If we remove the conditional and .Values.segmentStore.service.segmentStoreLoadBalancerIP
is null / not set, then it's just going to set it as below:
segmentStoreLoadBalancerIP: null`
Which is the same as not setting it (thus, we don't need that conditional)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried doing that but I am getting this error spec.pravega.segmentStoreLoadBalancerIP in body must be of type string: "null"
so I have kept the condition for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM other than the minor changes
doc/external-access.md
Outdated
|
||
By default, Services do not share an IP address, for providing same IP address to all the services we need to set the following configurations while creating the External Service: | ||
|
||
1) Provide annotation key as metallb.universe.tf/allow-shared-ip for all the services. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also the annotation could be highlighted like metallb.universe.tf/allow-shared-ip
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
Signed-off-by: prabhaker24 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Change log description
Exposing Segmentstore Service on single IP address and Different ports
Purpose of the change
fixes #430
What the code does
Currently, Segment store pods are exposed using external IP address which is given by Service, Each pod has its own service which has a unique IP address which can be used to communicate to the Segment store, after this change we can expose segment store services on the same I/P address and different port
How to verify it
the manifest
and after deploying pravega we should see that all the Segment Store services should be having same LoadBalancerIP and a different port.
I have verified both Scenarios work