github.com/oam-dev/kubevela@v1.9.11/charts/vela-core/templates/velaql/component-pod.yaml (about)

     1  apiVersion: v1
     2  data:
     3    template: |
     4        import (
     5          "vela/ql"
     6        )
     7  
     8        parameter: {
     9          appName:    string
    10          appNs:      string
    11          name?:      string
    12          cluster?:   string
    13          clusterNs?: string
    14        }
    15  
    16        result: ql.#CollectPods & {
    17          app: {
    18            name:      parameter.appName
    19            namespace: parameter.appNs
    20            filter: {
    21              if parameter.cluster != _|_ {
    22                cluster: parameter.cluster
    23              }
    24              if parameter.clusterNs != _|_ {
    25                clusterNamespace: parameter.clusterNs
    26              }
    27              if parameter.name != _|_ {
    28                components: [parameter.name]
    29              }
    30            }
    31          }
    32        }
    33  
    34        if result.err == _|_ {
    35          status: {
    36            podList: [ for pod in result.list if pod.object != _|_ {
    37              cluster:   pod.cluster
    38              workload:  pod.workload
    39              component: pod.component
    40              metadata: {
    41                name:         pod.object.metadata.name
    42                namespace:    pod.object.metadata.namespace
    43                creationTime: pod.object.metadata.creationTimestamp
    44                labels:       pod.object.metadata.labels
    45                version: {
    46                  if pod.publishVersion != _|_ {
    47                    publishVersion: pod.publishVersion
    48                  }
    49                  if pod.deployVersion != _|_ {
    50                    deployVersion: pod.deployVersion
    51                  }
    52                }
    53              }
    54              status: {
    55                phase: pod.object.status.phase
    56                // refer to https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
    57                if phase != "Pending" && phase != "Unknown" {
    58                  if pod.object.status.podIP != _|_ {
    59                    podIP: pod.object.status.podIP
    60                  }
    61                  if pod.object.status.hostIP != _|_ {
    62                    hostIP: pod.object.status.hostIP
    63                  }
    64                  if pod.object.spec.nodeName != _|_ {
    65                    nodeName: pod.object.spec.nodeName
    66                  }
    67                }
    68              }
    69            }]
    70          }
    71        }
    72  
    73        if result.err != _|_ {
    74          status: {
    75            error: result.err
    76          }
    77        }
    78  kind: ConfigMap
    79  metadata:
    80    name: component-pod-view
    81    namespace: {{ include "systemDefinitionNamespace" . }}