Skip to content

Instantly share code, notes, and snippets.

@louwersj
Created November 17, 2021 12:55
Show Gist options
  • Save louwersj/3e78d25e2b694febe88f4f7d8af00802 to your computer and use it in GitHub Desktop.
Save louwersj/3e78d25e2b694febe88f4f7d8af00802 to your computer and use it in GitHub Desktop.
Show Last applied config on service with kubectl in kubernets
from kubernetes import client, config
import json
def k8sGetServiceDetails(targetNameSpace):
v1Client = client.CoreV1Api()
servicesList = v1Client.list_namespaced_service(targetNameSpace)
for service in servicesList.items:
if service.metadata.annotations is not None:
servicePorts = ((json.loads(service.metadata.annotations["kubectl.kubernetes.io/last-applied-configuration"]))["spec"]["ports"])
serviceName = ((json.loads(service.metadata.annotations["kubectl.kubernetes.io/last-applied-configuration"]))["metadata"]["name"])
ServiceNameSpace = ((json.loads(service.metadata.annotations["kubectl.kubernetes.io/last-applied-configuration"]))["metadata"]["namespace"])
for ports in servicePorts:
print("namespace:", ServiceNameSpace, "service:", serviceName, "| source-port:", ports["port"], "| target-port:", ports["targetPort"])
if __name__ == '__main__':
config.load_kube_config()
v1 = client.CoreV1Api()
nameSpaceList = v1.list_namespace()
for nameSpace in nameSpaceList.items:
k8sGetServiceDetails(nameSpace.metadata.name)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment