On Minikube

Run Kaniko locally on Minikube

brew install minikube
minikube start
#!/usr/bin/env bash

DOCKER_USERNAME=[DOCKER HUB USER NAME]
DOCKER_PASSWORD=[DOCKER HUB PASSWORD]

minikube ssh '
mkdir -p kaniko && cd kaniko
echo FROM ubuntu > dockerfile
echo ENTRYPOINT ''["/bin/bash", "-c", "echo hello"]'' >> dockerfile
cat dockerfile
'

DIR=`minikube ssh 'cd kaniko && pwd'`

cat <<EOF > volume.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: dockerfile
  labels:
    type: local
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  hostPath:
    path: $DIR
EOF

cat <<EOF > volume-claim.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: dockerfile-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 8Gi
  storageClassName: local-storage
EOF

cat <<EOF > pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: kaniko
spec:
  containers:
  - name: kaniko
    image: gcr.io/kaniko-project/executor:latest
    args: ["--dockerfile=/workspace/dockerfile",
            "--context=dir://workspace",
            "--destination=$DOCKER_USERNAME/testing"]
    volumeMounts:
      - name: kaniko-secret
        mountPath: /kaniko/.docker
      - name: dockerfile-storage
        mountPath: /workspace
  restartPolicy: Never
  volumes:
    - name: kaniko-secret
      secret:
        secretName: regcred
        items:
          - key: .dockerconfigjson
            path: config.json
    - name: dockerfile-storage
      persistentVolumeClaim:
        claimName: dockerfile-claim
EOF

kubectl create secret docker-registry regcred \
  --docker-server=https://index.docker.io/v1/  \
  --docker-username=$DOCKER_USERNAME \
  --docker-password=$DOCKER_PASSWORD \
  --docker-email=andycowan@gmail.com

kubectl create -f volume.yaml
kubectl create -f volume-claim.yaml
kubectl create -f pod.yaml 

sleep 10
kubectl logs kaniko
#!/usr/bin/env bash

kubectl delete -f pod.yaml
kubectl delete -f volume-claim.yaml
kubectl delete -f volume.yaml
kubectl delete secret regcred

rm *yaml