#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Create a pod that reads and writes to the local mounted volume.

kind: Pod
apiVersion: v1
metadata:
  name: pod-with-volume
  labels:
    applicationId: "pod-with-volume"
    queue: "root.sandbox"
spec:
  schedulerName: yunikorn
  containers:
    - name: pod-with-volume
      image: alpine
      resources:
        requests:
          cpu: "100m"
          memory: "500M"
      # Mount the local volume in the container
      volumeMounts:
        - name: my-local-pd
          mountPath: "/var/tmp/mytest"
      # Write to a file inside our mounted path
      command: ["/bin/sh"]
      args: ["-c", "while true; do date >> /var/tmp/mytest/dates.txt; sleep 5; done"]
  # Add the local volume claim
  volumes:
    - name: my-local-pd
      persistentVolumeClaim:
        claimName: local-claim-1