apiVersion: config.k8s.io/v1alpha1
kind: Krmfile
openAPI:
  definitions:
    io.k8s.cli.setters.MODEL_NAME:
      description: name use-case
      x-k8s-cli:
        setter:
          name: MODEL_NAME
          value: wide-deep-large-ds-fp32-training
          isSet: true
          setBy: model-builder
    io.k8s.cli.setters.OUTPUT_DIR:
      description: output dir base name
      x-k8s-cli:
        setter:
          name: OUTPUT_DIR
          value: output
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.setters.CHECKPOINT_DIR:
      description: checkpoint dir base name
      x-k8s-cli:
        setter:
          name: CHECKPOINT_DIR
          value: checkpoints
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.setters.DATASET_DIR:
      description: input dataset directory
      x-k8s-cli:
        setter:
          name: DATASET_DIR
          value: /datasets
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.setters.USER_ID:
      description: process owner id
      type: integer
      x-k8s-cli:
        setter:
          name: USER_ID
          value: "0"
          isSet: true
          setBy: model-builder
          required: true
    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.setters.FS_ID:
      description: filesystem id
      type: integer
      x-k8s-cli:
        setter:
          name: FS_ID
          value: "0"
          isSet: true
          setBy: model-builder
          required: true
    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.substitutions.IMAGE:
      x-k8s-cli:
        substitution:
          name: IMAGE
          pattern: ${REGISTRY}/intel/recommendation:${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_VERSION:
      description: image version
      x-k8s-cli:
        setter:
          name: IMAGE_VERSION
          value: tf-latest
          isSet: true
          setBy: model-builder
    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.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.MODEL_DIR:
      description: container model directory
      x-k8s-cli:
        setter:
          name: MODEL_DIR
          value: /workspace/wide-deep-large-ds-fp32-training
          setBy: model-builder
    io.k8s.cli.setters.MODEL_SCRIPT:
      description: model script name
      x-k8s-cli:
        setter:
          name: MODEL_SCRIPT
          value: fp32_training.sh
          isSet: true
          setBy: model-builder
    io.k8s.cli.setters.NFS_PATH:
      description: nfs path
      x-k8s-cli:
        setter:
          name: NFS_PATH
          value: /nfs
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.setters.NFS_SERVER:
      description: nfs server
      x-k8s-cli:
        setter:
          name: NFS_SERVER
          value: 0.0.0.0
          isSet: true
          setBy: model-builder
          required: true
    io.k8s.cli.substitutions.COMMAND:
      x-k8s-cli:
        substitution:
          name: COMMAND
          pattern: ${MODEL_DIR}/quickstart/${MODEL_SCRIPT}
          values:
          - marker: ${MODEL_DIR}
            ref: '#/definitions/io.k8s.cli.setters.MODEL_DIR'
          - marker: ${MODEL_SCRIPT}
            ref: '#/definitions/io.k8s.cli.setters.MODEL_SCRIPT'
    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.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.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.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.substitutions.CHECKPOINT_PATH:
      x-k8s-cli:
        substitution:
          name: CHECKPOINT_PATH
          pattern: ${NFS_PATH}/${USER_NAME}/${MODEL_NAME}/${CHECKPOINT_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: ${CHECKPOINT_DIR}
            ref: '#/definitions/io.k8s.cli.setters.CHECKPOINT_DIR'
