I am running PySpark inside minikube and works fine. I also added a config.yaml file when building the image so I can define oracle_url as follows:
oracle_url: "jdbc:oracle:thin:@50.140.197.230:1521:orasource"
I have created a service without selector called orasource_service.yaml as below:
apiVersion: v1
kind: Service
metadata:
name: orasource
spec:
ports:
- protocol: TCP
port: 1443
targetPort: 1521
And relative Endpoint object called orasource_endpoints.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: orasource
subsets:
- addresses:
- ip: 50.140.197.230
ports:
- port: 1521
Getting service IP
kubectl get svc orasource
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
orasource ClusterIP 10.101.173.254 <none> 1443/TCP 4h52m
and endpoints
kubectl get endpoints orasource
NAME ENDPOINTS AGE
orasource 50.140.197.230:1521 4h53m
So far so good so in my PySpark code I refer to oracle_url as below printed out from the code
jdbc:oracle:thin:@10.101.173.254:1443:orasource
However, I do not want to use IP address I want to use orasource as shown below
kubectl get svc orasource
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
orasource ClusterIP 10.101.173.254 <none> 1443/TCP 5h6m
So instead of CLUSTER-IP I want to use Name --> orasource. How can I achieve that in PySpark code?
Thanks