github.com/NVIDIA/aistore@v1.3.23-0.20240517131212-7df6609be51d/deploy/dev/k8s/kube_templates/aistarget_deployment.yml (about)

     1  apiVersion: v1
     2  kind: Pod
     3  metadata:
     4    name: ${POD_NAME}
     5    labels:
     6      app: ais
     7      type: aistarget
     8  spec:
     9    hostNetwork: true
    10    containers:
    11    - name: aisnode
    12      image: ${DOCKER_IMAGE}
    13      imagePullPolicy: Always
    14      livenessProbe:
    15        httpGet:
    16          path: /v1/health?readiness
    17          port: ${PORT}
    18          scheme: ${PROTOCOL}
    19        initialDelaySeconds: 20
    20        periodSeconds: 10
    21      readinessProbe:
    22        httpGet:
    23          path: /v1/health
    24          port: ${PORT}
    25          scheme: ${PROTOCOL}
    26        initialDelaySeconds: 20
    27        failureThreshold: 5
    28        periodSeconds: 10
    29      securityContext:
    30        # Required for hostport to operate, or implement a full pod security policy
    31        privileged: true
    32      env:
    33        - name: MY_NODE
    34          valueFrom:
    35            fieldRef:
    36              fieldPath: spec.nodeName
    37        - name: AIS_NODE_ROLE
    38          value: "target"
    39      volumeMounts:
    40       - name: aws-credentials
    41         mountPath: /root/.aws/
    42       - name: ais-persistent-fs
    43         mountPath: /usr/nvidia/data
    44       - name: ais-fs
    45         mountPath: /tmp/ais
    46       - name: ais-tls-certs
    47         mountPath: /var/certs
    48      ports:
    49        - containerPort: ${PORT}
    50          protocol: TCP
    51      command: ["bash","-c"]
    52      # TODO: fix the workaround of AIS_FS_PATHS
    53      args:
    54        - export PORT=${PORT} &&
    55          export PORT_INTRA_CONTROL=${PORT_INTRA_CONTROL} &&
    56          export PORT_INTRA_DATA=${PORT_INTRA_DATA} &&
    57          export AIS_FS_PATHS=${AIS_FS_PATHS} &&
    58          export AIS_PRIMARY_URL=${AIS_PRIMARY_URL} &&
    59          export HOSTNAME_LIST=${HOSTNAME_LIST} &&
    60          export TEST_FSPATH_COUNT=${TEST_FSPATH_COUNT} &&
    61          export AIS_BACKEND_PROVIDERS="${AIS_BACKEND_PROVIDERS}" &&
    62          export AIS_CONF_FILE=/etc/ais/ais.json &&
    63          export AIS_LOCAL_CONF_FILE=/etc/ais/ais_local.json &&
    64          export STATSD_CONF_FILE="/etc/ais/statsd.conf" &&
    65          export COLLECTD_CONF_FILE="/etc/ais/collectd.conf" &&
    66          export INSTANCE=${INSTANCE} &&
    67          export AIS_LOG_DIR=${AIS_LOG_DIR} &&
    68          export AIS_USE_HTTPS=${AIS_USE_HTTPS} &&
    69          export AIS_SKIP_VERIFY_CRT=${AIS_SKIP_VERIFY_CRT} &&
    70          export AIS_SERVER_CRT=${AIS_SERVER_CRT} &&
    71          export AIS_SERVER_KEY=${AIS_SERVER_KEY} &&
    72          source /etc/ais/aisnode_config.sh &&
    73          aisnode -config=/etc/ais/ais.json -local_config=/etc/ais/ais_local.json -role=target;
    74    volumes:
    75      - name: aws-credentials
    76        secret:
    77          secretName: aws-credentials
    78          optional: true
    79      - name: ais-persistent-fs
    80        hostPath:
    81          path: /tmp/ais
    82          type: Directory
    83      - name: ais-fs
    84        hostPath:
    85          path: /tmp/ais
    86          type: Directory
    87      - name: ais-tls-certs
    88        secret:
    89          secretName: ais-tls-certs
    90          optional: true