odpi / egeria-samples

various samples that can be useful either for learning or as initial starting points for working with Egeria
Apache License 2.0
13 stars 8 forks source link

Add LoadBalancer or Port Forwarding support to helm charts #15

Closed planetf1 closed 3 years ago

planetf1 commented 5 years ago

Add LoadBalancer support to helm charts - this will allow the services deployed by this chart - for example egeria, gaian, ranger, postgres, ui, ldap etc to have their own, fixed, publically accessible IPs making it much easier to use by developers unfamilar with the details of kubernetes & in a way more aligned to a production environment.

Multiple instances of the same chart will not be possible once LoadBalancer configuration is added (due to port/name clashes). This will be investigated further in a future update.

Note: Load Balancer configuration can differ between k8s providers.

In the first step I will aim to cover LoadBalancing for IBM Cloud & IBM Cloud Private.

The external address for the load balancer will need to be provided

planetf1 commented 5 years ago

Conditional code to add an ingress service for IBMCloud has been coded.

This will map most of the egeria services to the provided public address/ip at the 'usual' ports, with the exception of the OMAG server running IGC proxy which is mapped to 8090.

Other options are possible such as mapping to different URL paths - indeed this is more 'normal'.

LoadBalancer was not used for IBMcloud as a) A single load balancer can only map a single backend service to a single IP (albeit multiple ports) b) A standard IKS deployment has only 5 free IP addresses (which ££ and more would be needed)

Note that ingress controller annotations are used which are cloud provider specific, so there is a new top level configuration parameter to specify the cloud service in use.

Finally.. awaiting support to debug a few issues with the configuration.

planetf1 commented 5 years ago

Main action here is debugging, and testing load balance/ingress configurations on different clouds

github-actions[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 20 days if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 20 days if no further activity occurs. Thank you for your contributions.

planetf1 commented 4 years ago

In openshift on IBMcloud (pn VPC gen2) , a load balancer can simply be created via:

kubectl expose deployment/lab-odpi-egeria-lab-jupyter --type=LoadBalancer --port=8888 --target-port=8888

A new load balancer with new IP is created in the VPC, and can be accessed externally.

This will vary noticeably by provider

This kind of material probably best belongs in the sample repo

planetf1 commented 3 years ago

the readme for the egeria-base chart now includes info on this, with some further info in the lab chart