apiVersion: config.k8s.io/v1alpha1
kind: Krmfile
openAPI:
  definitions:
    io.k8s.cli.setters.DATASET_DIR:
      description: input dataset directory
      x-k8s-cli:
        setter:
          name: DATASET_DIR
          value: /datasets
          isSet: true
          required: true
          setBy: model-builder
    io.k8s.cli.setters.FS_ID:
      description: owner id of mounted volumes
      type: integer
      x-k8s-cli:
        setter:
          name: FS_ID
          value: "0"
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.substitutions.FS_ID_VALUE:
      x-k8s-cli:
        substitution:
          name: FS_ID_VALUE
          pattern: "${FS_ID}"
          values:
          - marker: ${FS_ID}
            ref: '#/definitions/io.k8s.cli.setters.FS_ID'
    io.k8s.cli.setters.GROUP_ID:
      description: process group id
      type: integer
      x-k8s-cli:
        setter:
          name: GROUP_ID
          value: "0"
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.substitutions.GROUP_ID_VALUE:
      x-k8s-cli:
        substitution:
          name: GROUP_ID_VALUE
          pattern: "${GROUP_ID}"
          values:
          - marker: ${GROUP_ID}
            ref: '#/definitions/io.k8s.cli.setters.GROUP_ID'
    io.k8s.cli.setters.GROUP_NAME:
      description: process group name
      x-k8s-cli:
        setter:
          name: GROUP_NAME
          value: root
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.substitutions.IMAGE:
      x-k8s-cli:
        substitution:
          name: IMAGE
          pattern: ${REGISTRY}/intel/image-recognition:${IMAGE_VERSION}-${MODEL_NAME}${IMAGE_SUFFIX}
          values:
          - marker: ${REGISTRY}
            ref: '#/definitions/io.k8s.cli.setters.REGISTRY'
          - marker: ${IMAGE_VERSION}
            ref: '#/definitions/io.k8s.cli.setters.IMAGE_VERSION'
          - marker: ${MODEL_NAME}
            ref: '#/definitions/io.k8s.cli.setters.MODEL_NAME'
          - marker: ${IMAGE_SUFFIX}
            ref: '#/definitions/io.k8s.cli.setters.IMAGE_SUFFIX'
    io.k8s.cli.setters.IMAGE_SUFFIX:
      description: appended to image name
      x-k8s-cli:
        setter:
          name: IMAGE_SUFFIX
          value: ""
          isSet: true
          setBy: model-builder
    io.k8s.cli.setters.IMAGE_VERSION:
      description: image version
      x-k8s-cli:
        setter:
          name: IMAGE_VERSION
          value: tf-latest
          isSet: true
          setBy: model-builder
    io.k8s.cli.setters.MODEL_DIR:
      description: container model directory
      x-k8s-cli:
        setter:
          name: MODEL_DIR
          value: /workspace/resnet50v1-5-fp32-training
          setBy: model-builder
    io.k8s.cli.setters.MODEL_NAME:
      description: name use-case
      x-k8s-cli:
        setter:
          name: MODEL_NAME
          value: resnet50v1-5-fp32-training
          isSet: true
          setBy: model-builder
    io.k8s.cli.substitutions.MODEL_SCRIPT:
      x-k8s-cli:
        substitution:
          name: MODEL_SCRIPT
          pattern: ${MODEL_DIR}/models/image_recognition/tensorflow/resnet50v1_5/training/mlperf_resnet/imagenet_main.py
          values:
          - marker: ${MODEL_DIR}
            ref: '#/definitions/io.k8s.cli.setters.MODEL_DIR'
    io.k8s.cli.setters.NFS_PATH:
      description: nfs path
      x-k8s-cli:
        setter:
          name: NFS_PATH
          value: /nfs
          isSet: true
          required: true
          setBy: model-builder
    io.k8s.cli.setters.NFS_SERVER:
      description: nfs server
      x-k8s-cli:
        setter:
          name: NFS_SERVER
          value: 0.0.0.0
          isSet: true
          required: true
          setBy: model-builder
    io.k8s.cli.setters.OUTPUT_DIR:
      description: output dir basename
      x-k8s-cli:
        setter:
          name: OUTPUT_DIR
          value: output
          isSet: true
          required: true
          setBy: model-builder
    io.k8s.cli.substitutions.OUTPUT_PATH:
      x-k8s-cli:
        substitution:
          name: OUTPUT_PATH
          pattern: ${NFS_PATH}/${USER_NAME}/${MODEL_NAME}/${OUTPUT_DIR}
          values:
          - marker: ${NFS_PATH}
            ref: '#/definitions/io.k8s.cli.setters.NFS_PATH'
          - marker: ${USER_NAME}
            ref: '#/definitions/io.k8s.cli.setters.USER_NAME'
          - marker: ${MODEL_NAME}
            ref: '#/definitions/io.k8s.cli.setters.MODEL_NAME'
          - marker: ${OUTPUT_DIR}
            ref: '#/definitions/io.k8s.cli.setters.OUTPUT_DIR'
    io.k8s.cli.setters.REGISTRY:
      description: image location
      x-k8s-cli:
        setter:
          name: REGISTRY
          value: docker.io
          isSet: true
          setBy: model-builder
    io.k8s.cli.setters.USER_ID:
      type: integer
      description: process owner id
      x-k8s-cli:
        setter:
          name: USER_ID
          value: "0"
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.substitutions.USER_ID_VALUE:
      x-k8s-cli:
        substitution:
          name: USER_ID_VALUE
          pattern: "${USER_ID}"
          values:
          - marker: ${USER_ID}
            ref: '#/definitions/io.k8s.cli.setters.USER_ID'
    io.k8s.cli.setters.USER_NAME:
      description: process owner name
      x-k8s-cli:
        setter:
          name: USER_NAME
          value: root
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.setters.WORKERS:
      description: number of workers
      type: integer
      x-k8s-cli:
        setter:
          name: WORKERS
          value: "2"
          isSet: true
          setBy: model-builder
