Giter Club home page Giter Club logo

knctl's Introduction

knctl's People

Contributors

cppforlife avatar drnic avatar ipolyzos avatar markfisher avatar maximilien avatar navarasu avatar philippthun avatar rprakashg avatar trisberg avatar zchee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

knctl's Issues

"knctl build create" fails with "Error: assigned building pod: pods "..." not found"

When we call

knctl build create -b test-build \
--service-account dockerhub-service-account \
--image index.docker.io/bndlhub/test-build \
--template buildpack \
--template-env "PACK_APP_ZIP=archive.war" \
-d=$(pwd)

we immediately get the error:

Name  test-build

[2019-03-06T14:23:22+01:00] Uploading source code...

[2019-03-06T14:23:22+01:00] Finished uploading source code...

Error: Getting assigned building pod: pods "test-build-pod-8b35f1" not found

We've inserted a 10 seconds sleep in pkg/knctl/build/cluster_builder_source.go here:

func (s ClusterBuilderSource) Upload(ui ui.UI, cancelCh chan struct{}) error { // TODO cancel
        ui.PrintLinef("[%s] Uploading source code...", time.Now().Format(time.RFC3339))

        defer func() {
                ui.PrintLinef("[%s] Finished uploading source code...", time.Now().Format(time.RFC3339))
        }()

        build, err := s.waiter.WaitForClusterBuilderPodAssignment(cancelCh)
        if err != nil {
                return fmt.Errorf("Waiting for build to be assigned a pod: %s", err)
        }
        ui.PrintLinef("waiting 10 seconds ...")
        time.Sleep(10 * time.Second)
        if build.Status.Cluster == nil {
                return fmt.Errorf("Expected build to have cluster configuration assigned")
        }
        ....

This fixed the issue. With the patched version there is no error and the java-buildpack started working as expected.
It seems that one of the K8s API calls is asynchronous and must be waited for before continuing. Can you check if there are other such occurrences?

deploy from git failed

$ knctl deploy \
    --service simple-app \
    --git-url https://github.com/cppforlife/simple-app \
    --git-revision master \
    --service-account serv-acct1 \
    --image index.docker.io/drnic/simple-app-git --env SIMPLE_MSG=123

Name  simple-app

Waiting for new revision to be created...

Tagging new revision 'simple-app-00001' as 'latest'

Tagging new revision 'simple-app-00001' as 'previous'

Watching build logs...
...
build-step-build-and-push | INFO[0187] RUN CGO_ENABLED=0 GOOS=linux go build -v -o app
build-step-build-and-push | INFO[0187] cmd: /bin/sh
build-step-build-and-push | INFO[0187] args: [-c CGO_ENABLED=0 GOOS=linux go build -v -o app]
build-step-build-and-push | net
build-step-build-and-push | vendor/golang_org/x/net/lex/httplex
build-step-build-and-push | vendor/golang_org/x/net/proxy
build-step-build-and-push | crypto/x509
build-step-build-and-push | net/textproto
build-step-build-and-push | crypto/tls
build-step-build-and-push | net/http/httptrace
build-step-build-and-push | net/http
build-step-build-and-push | github.com/mchmarny/simple-app
build-step-build-and-push | INFO[0191] Taking snapshot of full filesystem...
build-step-build-and-push | INFO[0195] Storing source image from stage 0 at path /kaniko/stages/0
build-step-build-and-push | INFO[0346] trying to extract to /kaniko/0
build-step-build-and-push | INFO[0346] Extracting layer 0
build-step-build-and-push | INFO[0369] Extracting layer 1
build-step-build-and-push | error building image: UNAUTHORIZED: "authentication required"

The error below looks to be build step \"build-step-build-and-push\" exited with code 1 (image: \"docker-pullable://gcr.io/kaniko-project/executor@sha256:3922b5a70f94f14f7d4cdbe37e08c37a2949b81d71e8a66116c5daf4f77b83d3\"); for logs run: kubectl -n deploy-from-git logs simple-app-00001-q4xnr -c build-step-build-and-push}]

Ideas when/why this might occur? Should I raise this against knative/build?

$ kubectl logs -n knative-build -f build-webhook-fb6484576-b7j6w
...
{"level":"info","logger":"webhook","caller":"webhook/build.go:102","msg":"NEW Build is\n&{TypeMeta:{Kind:Build APIVersion:build.knative.dev/v1alpha1} ObjectMeta:{Name:simple-app-00001 GenerateName: Namespace:deploy-from-git SelfLink:/apis/build.knative.dev/v1alpha1/namespaces/deploy-from-git/builds/simple-app-00001 UID:e492c2df-c485-11e8-ab30-72f974b80679 ResourceVersion:12930 Generation:1 CreationTimestamp:2018-09-30 07:53:17 +0000 UTC DeletionTimestamp:<nil> DeletionGracePeriodSeconds:<nil> Labels:map[] Annotations:map[] OwnerReferences:[{APIVersion:serving.knative.dev/v1alpha1 Kind:Configuration Name:simple-app UID:e4892a20-c485-11e8-ab30-72f974b80679 Controller:0xc0004000a6 BlockOwnerDeletion:0xc0004000a5}] Initializers:nil Finalizers:[] ClusterName:} Spec:{Generation:1 Source:0xc00041ee60 Steps:[{Name:build-and-push Image:gcr.io/kaniko-project/executor Command:[] Args:[--dockerfile=/workspace/Dockerfile --destination=index.docker.io/drnic/simple-app-git] WorkingDir: Ports:[] EnvFrom:[] Env:[] Resources:{Limits:map[] Requests:map[]} VolumeMounts:[] VolumeDevices:[] LivenessProbe:nil ReadinessProbe:nil Lifecycle:nil TerminationMessagePath: TerminationMessagePolicy: ImagePullPolicy: SecurityContext:nil Stdin:false StdinOnce:false TTY:false}] Volumes:[] ServiceAccountName:serv-acct1 Template:<nil>} Status:{Builder:Cluster Cluster:0xc00041ef80 Google:<nil> StartTime:2018-09-30 07:53:18 +0000 UTC CompletionTime:2018-09-30 08:09:09 +0000 UTC StepStates:[{Waiting:nil Running:nil Terminated:&ContainerStateTerminated{ExitCode:0,Signal:0,Reason:Completed,Message:,StartedAt:2018-09-30 08:02:34 +0000 UTC,FinishedAt:2018-09-30 08:02:34 +0000 UTC,ContainerID:docker://aec49f4074c64d11d11e0af725d5f26976abaca18a317e1f7365c5eecf96fa98,}} {Waiting:nil Running:nil Terminated:&ContainerStateTerminated{ExitCode:0,Signal:0,Reason:Completed,Message:,StartedAt:2018-09-30 08:02:42 +0000 UTC,FinishedAt:2018-09-30 08:02:44 +0000 UTC,ContainerID:docker://ca849df422f77fd6a044b5f43727e0d6a17214067a1f248a1695e6c8f1f6b939,}} {Waiting:nil Running:nil Terminated:&ContainerStateTerminated{ExitCode:1,Signal:0,Reason:Error,Message:,StartedAt:2018-09-30 08:02:58 +0000 UTC,FinishedAt:2018-09-30 08:09:08 +0000 UTC,ContainerID:docker://3ca6483e3822ef9d197c3a18023f91efc1677b38493f6428552fe5a9dcb065ca,}}] Conditions:[{Type:Succeeded Status:False Reason: Message:build step \"build-step-build-and-push\" exited with code 1 (image: \"docker-pullable://gcr.io/kaniko-project/executor@sha256:3922b5a70f94f14f7d4cdbe37e08c37a2949b81d71e8a66116c5daf4f77b83d3\"); for logs run: kubectl -n deploy-from-git logs simple-app-00001-q4xnr -c build-step-build-and-push}]}}","build.knative.dev/kind":"build.knative.dev/v1alpha1, Kind=Build","build.knative.dev/namespace":"deploy-from-git","build.knative.dev/name":"simple-app-00001","build.knative.dev/operation":"UPDATE","build.knative.dev/resource":"{build.knative.dev v1alpha1 builds}","build.knative.dev/subresource":"","build.knative.dev/userinfo":"{system:serviceaccount:knative-build:build-controller ecd45b47-c47c-11e8-ab30-72f974b80679 [system:serviceaccounts system:serviceaccounts:knative-build system:authenticated] map[]}"}

show error message when service account is missing (hence revision will not be created)

knctl got stuck waiting for new revision because service account did not exist, hence Configuration wasnt updated, hence Revision will never be created.

$ knctl service show -s simple-app2
Service 'simple-app2'

Name             simple-app2
Domain           simple-app2.default.example.com
Internal Domain  simple-app2.default.svc.cluster.local
Annotations      -
Age              2m

Service 'simple-app2' conditions

Type                 Status  Age  Reason           Message
ConfigurationsReady  False   2m   RevisionFailed   Revision creation failed with message: "Internal error occurred: admission
                                                   webhook \"webhook.build.knative.dev\" denied the request: mutation failed:
                                                   serviceaccounts \"serv-acct1\" not found".
Ready                False   1s   RevisionMissing  Configuration "simple-app2" does not have any ready Revision.
RoutesReady          False   2m   RevisionMissing  Configuration "simple-app2" does not have any ready Revision.

Pods conditions

Pod  Type  Status  Age  Reason  Message

Succeeded

Issue during build on the latest Go client for Kubernetes

On attemp to build knctl I have issues with the go-client for kubernetes i.e

$ dep ensure
$ hack/build.sh                                                                                                         git:(master|✚5… 
   + go fmt ./cmd/... ./pkg/... ./test/...
   + go build ./cmd/...
   # github.com/ipolyzos/knctl/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure
   vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go:246:4: cannot use expiresIn (type string) as type json.Number in field value
   vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go:247:4: cannot use expiresOn (type string) as type json.Number in field value
   vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go:248:4: cannot use expiresOn (type string) as type json.Number in field value
   vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go:265:23: cannot use token.token.ExpiresIn (type json.Number) as type string in assignment
   vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go:266:23: cannot use token.token.ExpiresOn (type json.Number) as type string in assignment

The issue seems to be caused on the Azure Active Directory plugin for client authentication part.

knctl build create - blocks/never exits with standalone Knative Build

I tried installing Knative Build without Knative Serving/Istio, and knctl build create blocks at the end. From the kail -n knative-build logs, I think it might be blocking because no deploying is waiting for it:

{"level":"error","logger":"controller","caller":"cluster/builder.go:278","msg":"Saw \"default/2-lgrln\" update, but nothing was watching for it!"

Reproduction steps at https://starkandwayne.com/blog/p/4884e933-6a0a-43a5-b794-2afaa140c8bc/

knctl deploy -p path/to/app.war

Currently knctl deploy -d path/to/folder only supports a folder of raw source files. In cloud foundry, cf push -p supports both a folder and single file. The following demo should work (as it is common for Java/java-buildpack to consume a pre-built .war file)

git clone https://github.com/cloudfoundry-samples/spring-music
cd spring-music
./gradlew clean assemble
knctl deploy -s spring-music --path build/libs/spring-music-1.0.jar ...

Misleading error message when using deploy

Hi,
we tried to deploy a Java application via:

knctl deploy -s  cf-sample-app  --service-account docker-service-account     --image DOCKERIMAGE --namespace test --template buildpack -d=. 

Similar like #20 there was no error message and it hanged.

[...]
Tagging older revision 'cf-sample-app-00011' as 'previous'

Annotating new revision 'cf-sample-app-00012'

Looking at the revision we saw following error message:

buildtemplates.build.knative.dev "buildpack" not found

It turned out that we missed a ENV var to specify the jar/war path.
When using knctl build we saw a meaningful error message.

build-step-build | None of the buildpacks detected a compatible application

[new user ux] Nice message if knative not installed

Currently if a user targets a cluster without knative, or they've forgotten to install knative, we give an obscure message about resources:

$ knctl deploy \
      --namespace helloworld \
      --service hello \
      --image gcr.io/knative-samples/helloworld-go \
      --env TARGET=Rev1

Error: the server could not find the requested resource (get revisions.serving.knative.dev)

Perhaps instead we could indicate they are either targeting the wrong kubernetes cluster or Run "knctl install" to install Knative into your cluster

knctl deploy command fails when using image from AWS ECR registry

Hello All,

I had build an image of a sample application from github [https://github.com/cppforlife/simple-app] with knctl command.

Image is successfully build and I had stored this image of AWS ECR.

Now when I try to deploy the image on EKS cluster, it gets fails with below messages:

root@jenkins-5749546fc5-xq82z:/# knctl deploy --service deploy --image 631963551282.dkr.ecr.us-east-2.amazonaws.com/nginx:latest
Name deploy
Waiting for new revision to be created...
Tagging new revision 'deploy-00001' as 'latest'
Tagging new revision 'deploy-00001' as 'previous'
Annotating new revision 'deploy-00001'
Waiting for new revision 'deploy-00001' to be ready for up to 5m0s (logs below)...
Revision 'deploy-00001' did not became ready ----->>>>> ISSUE
Continuing to watch logs for 5s before exiting

Succeeded
root@jenkins-5749546fc5-xq82z:/#

Can you help me on this?

Support for setting alternate Dockerfile

I've got a project with more than a single Dockerfile, and where the Dockerfile is not in the root dir for the project. I normally handle this with things like:

docker build -f docker/Dockerfile.foo .

I notice you guys have hard coded the Dockerfile. Would you be open to a PR that makes that configurable through a command line flag?

Rename to `kntl`?

Since knative is pronounced Kay-native, the pronunciation of knctl is a bit confusing (Kun-control? Kay An Control?).

If we rename it to kntl, the pronounciation is straight forward.

Happy to send a PR if there's agreement.

`$knctl install` fails on istio install

$knctl install
[...]
kubernetesenv.config.istio.io "handler" created
rule.config.istio.io "kubeattrgenrulerule" created
rule.config.istio.io "tcpkubeattrgenrulerule" created
kubernetes.config.istio.io "attributes" created
destinationrule.networking.istio.io "istio-policy" created
destinationrule.networking.istio.io "istio-telemetry" created
Error from server (Timeout): error when creating "STDIN": Timeout: request did not complete within allowed duration

Error: Installing Istio: exit status 1

knctl deploy --env parameter can't contain comma-separated value

We are trying to deploy a Java application like this:

knctl deploy ... --env JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

It seems that the env value is truncated after the first comma:

ERROR: JDWP invalid option: -agentlib:jdwp=transport=dt_socket

We've tried different quoting variations (single quotes around value, double quotes etc.), but without success. Can you please check?

Thanks a lot for your support!

"knctl deploy --wait"

Possible for knctl deploy to have a --wait flag or block the command by default until the initial pod is running?

race to stream logs and pod stopping

=== RUN   TestBuildFailed
==> Delete previous build with the same name if exists
Running 'knctl delete build -b test-build-failed-service-name'...
Running 'kubectl delete secret test-build-failed-service-name-docker-secret'...
Running 'kubectl delete serviceaccount test-build-failed-service-name-service-account'...
==> Add service account with Docker push secret
Running 'knctl -redacted-'...
Running 'knctl create service-account -a test-build-failed-service-name-service-account -s test-build-failed-service-name-docker-secret'...
==> Run build and see it fail
Running 'knctl build -b test-build-failed-service-name --git-url invalid-git-url --git-revision invalid-git-revision -i docker.io/dkalinin/simple-app:latest --service-account test-build-failed-service-name-service-account'...
Running 'knctl delete build -b test-build-failed-service-name'...
Running 'kubectl delete secret test-build-failed-service-name-docker-secret'...
Running 'kubectl delete serviceaccount test-build-failed-service-name-service-account'...
--- FAIL: TestBuildFailed (8.07s)
	build_test.go:164: Expected to see error in the log, but was: test-build-failed-service-name	

https://wings.pivotal.io/teams/dmitriy/pipelines/knctl/jobs/e2e-tests/builds/57

configure probes

consider how to configure probes when deploying

livenessProbe:
  httpGet:
    path: /
    port: http
readinessProbe:
  httpGet:
    path: /
    port: http

knctl vs "Sample API Usage" documentation

Hey @cppforlife !

Quick question, I found this doc with a lot of CLI examples, from my Google-fu, these are simple "usage examples" and obviously don't reflect on something that's already created.

With regards to the examples here: https://github.com/knative/serving/blob/master/docs/spec/normative_examples.md#3-managed-release-of-a-new-revision---config-change-only

I'm assuming that'll reflect the development of knctl? I'd like to start contributing and I'm just curious if the above documentation is reflective of the "ROADMAP" of knctl and what it should look like.

Build may or may not have completed (state 'Unknown') error

--- FAIL: TestDeployBuildTemplate
	knctl.go:89: Failed to successfully execute 'knctl deploy -s test-d-b-p-i-b-t-service-name -d /tmp/build/a94a8fe5/gopath/src/github.com/cppforlife/knctl/test/e2e/assets/simple-app-without-dockerfile --template test-d-b-p-i-b-t-build-tpl --template-env GOPACKAGENAME=main -i docker.io/dkalinin/test-push:latest --service-account test-d-b-p-i-b-t-service-name-service-account -e SIMPLE_MSG_WITHOUT_DOCKERFILE=TestDeployBuild_ContentV2 -n 29f14e5953b97e4b1a6af7ca8f5fc750': Execution error: stdout: 'test-d-b-p-i-b-t-service-name	
		
		build | -----> Go Buildpack version 1.8.25
		build | -----> Installing godep 80
		build |        Download [https://buildpacks.cloudfoundry.org/dependencies/godep/godep-v80-linux-x64.tgz]
		build | -----> Installing glide 0.13.1
		build |        Download [https://buildpacks.cloudfoundry.org/dependencies/glide/glide-v0.13.1-linux-x64.tgz]
		build | -----> Installing dep 0.4.1
		build |        Download [https://buildpacks.cloudfoundry.org/dependencies/dep/dep-v0.4.1-linux-x64.tgz]
		build | -----> Installing go 1.8.7
		build |        Download [https://buildpacks.cloudfoundry.org/dependencies/go/go1.8.7.linux-amd64-9bdda6e7.tar.gz]
		build | -----> Fetching any unsaved dependencies (dep ensure)
		build |        **WARNING** Installing package '.' (default)
		build | -----> Running: go install -tags cloudfoundry -buildmode pie .
		build | 2018/08/20 23:57:35 mounted blob: sha256:6be38da025345ffb57d1ddfcdc5a2bc052be5b9491825f648b49913d51e41acb
		build | 2018/08/20 23:57:35 mounted blob: sha256:a5733e6358eec8957e81b1eb93d48ef94d649d65c69a6b1ac49f616a34a74ac1
		build | 2018/08/20 23:57:35 mounted blob: sha256:1124eb40dd68654b8ca8f5d9ec7e439988a4be752a58c8f4e06d60ab1589abdb
		build | 2018/08/20 23:57:35 mounted blob: sha256:21324a9f04e76c93078f3a782e3198d2dded46e4ec77958ddd64f701aecb69c0
		build | 2018/08/20 23:57:36 pushed blob sha256:0725a67aae98cd9a30e988f9b923f3187c8bdeaf7839ef893118cd5a14cce390
		build | 2018/08/20 23:57:36 pushed blob sha256:e8a2fb8e5b4ffdb1c08c65f939e5e3e4879be22b5d2d11faf70979ef1c4060a2
		build | 2018/08/20 23:57:36 index.docker.io/dkalinin/test-push:latest: digest: sha256:91e96f79aa05f61e6310e64bf673835a1e765d3f7db189bc11870208012413f7 size: 1082
		build | Nothing to push
		
		' stderr: 'Error: Build may or may not have completed (state 'Unknown')
		' error: 'exit status 1'

Vanishing headers

$ knctl route list
Routes in namespace 'default'

Name         Domain                                                              Traffic                   Annotations  Conditions  Age
fib-knative  fib-knative.default.mycluster3.us-south.containers.appdomain.cloud  50% -> fib-knative-00003  -            3 OK / 3    10m
                                                                                 50% -> fib-knative-00002

1 routes

Succeeded

$ knctl route list | more
fib-knative     fib-knative.default.mycluster3.us-south.containers.appdomain.cloud      50% -> fib-knative-00003        -       3 OK / 3        10
m
                                                                                        50% -> fib-knative-00002

$ knctl route list > a
$ cat a
fib-knative     fib-knative.default.mycluster3.us-south.containers.appdomain.cloud      50% -> fib-knative-00003        -       3 OK / 3        10
m
                                                                                        50% -> fib-knative-00002

Why are headers removed when the output is to a pipe or a file? This makes it really hard for me when I need to wrap the command with other tooling, or even just save the output. The output should not change based on where the output is going. If people want something w/o headers then let them ask for it via a flag.

Yes there's a --tty but I shouldn't have to do that to get the commands "normal" output to remain unchanged just because I'm sending it to a file.

If deploy fails, cannot deploy again

$ knctl deploy \
    --service show-me-secrets \
    --directory=$PWD \
    --service-account build \
    --image ${DOCKER_IMAGE:?required} \
    --template buildpack
Name  show-me-secrets

Waiting for new revision to be created...
^C
$ knctl deploy \
    --service show-me-secrets \
    --directory=$PWD \
    --service-account build \
    --image ${DOCKER_IMAGE:?required} \
    --template buildpack
Error: Retried 11 times: Updating service: Operation cannot be fulfilled on services.serving.knative.dev "show-me-secrets": the object has been modified; please apply your changes to the latest version and try again

Fail fast if missing cluster role cluster-admin

The installation of istio/knative requires that the user has cluster-admin. For example:

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole=cluster-admin \
  --user=$(gcloud config get-value core/account)

If the user forgets to do this on a new cluster then the installation of knative/istio will fail in an ugly manner that's non-obvious for the problem/solution, e.g.:

Error from server (Forbidden): error when creating "STDIN": clusterroles.rbac.authorization.k8s.io "istio-cleanup-secrets-istio-system" is forbidden: attempt to grant extra privileges: [PolicyRule{APIGroups:[""], Resources:["secrets"], Verbs:["list"]} PolicyRule{APIGroups:[""], Resources:["secrets"], Verbs:["delete"]}] user=&{[email protected]  [system:authenticated] map[user-assertion.cloud.google.com:[AGKDXmoggBmpMptAdRwhdyxNXeD3RzeCKsJiMudSQFlhJvIKDykS8cwaLyO/oCltgwLKYPjYcytVxlo2Fof5zL9UX+A3rz32/OlT5KgWUxkNdnt8uMEo9PsgSRb/TGUFVv7L1RmzAYnf6Md3qZ2nUH2IoD9FoFnz/CMAKM0Hy5ICLNxPLs/thL2dj9pfyx1o91vf+Y2b4uzeySMO2er9QlZQ/N/T5pOj5gfzDViVmO2I]]} ownerrules=[PolicyRule{APIGroups:["authorization.k8s.io"], Resources:["selfsubjectaccessreviews" "selfsubjectrulesreviews"], Verbs:["create"]} PolicyRule{NonResourceURLs:["/api" "/api/*" "/apis" "/apis/*" "/healthz" "/openapi" "/openapi/*" "/swagger-2.0.0.pb-v1" "/swagger.json" "/swaggerapi" "/swaggerapi/*" "/version" "/version/"], Verbs:["get"]}] ruleResolutionErrors=[]

Could knctl install check first that the current user has cluster role cluster-admin?

authentication required error during build (super rare)

looks like there is a rare failure of UNAUTHORIZED: \"authentication required\"

--- FAIL: TestBuildSuccess (464.15s)
	knctl.go:89: Failed to successfully execute 'knctl build -b test-build-success-service-name --git-url https://github.com/cppforlife/simple-app --git-revision master -i docker.io/dkalinin/simple-app:latest --service-account test-build-success-service-name-service-account -n 97d4b013f720647449890fab7b3db11a': Execution error: stdout: 'test-build-success-service-name	
		
		build | time="2018-08-23T16:33:18Z" level=info msg="appending to multi args docker.io/dkalinin/simple-app:latest"
		build | time="2018-08-23T16:33:18Z" level=info msg="Downloading base image golang:1.10.1"
		build | ERROR: logging before flag.Parse: E0823 16:33:18.680863       1 metadata.go:142] while reading 'google-dockercfg' metadata: http status code: 404 while fetching url http://metadata.google.internal./computeMetadata/v1/instance/attributes/google-dockercfg
		build | ERROR: logging before flag.Parse: E0823 16:33:18.684088       1 metadata.go:159] while reading 'google-dockercfg-url' metadata: http status code: 404 while fetching url http://metadata.google.internal./computeMetadata/v1/instance/attributes/google-dockercfg-url
		build | time="2018-08-23T16:33:19Z" level=info msg="Mounted directories: [/kaniko /var/run /proc /dev /dev/pts /sys /sys/fs/cgroup /sys/fs/cgroup/systemd /sys/fs/cgroup/net_cls,net_prio /sys/fs/cgroup/hugetlb /sys/fs/cgroup/devices /sys/fs/cgroup/pids /sys/fs/cgroup/cpuset /sys/fs/cgroup/perf_event /sys/fs/cgroup/freezer /sys/fs/cgroup/blkio /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/rdma /sys/fs/cgroup/memory /dev/mqueue /workspace /builder/home /dev/termination-log /etc/resolv.conf /etc/hostname /etc/hosts /dev/shm /var/run/secrets/kubernetes.io/serviceaccount /proc/bus /proc/fs /proc/irq /proc/sys /proc/sysrq-trigger /proc/kcore /proc/timer_list /sys/firmware]"
		build | time="2018-08-23T16:33:19Z" level=info msg="Unpacking layer: 6"
		build | time="2018-08-23T16:33:19Z" level=info msg="Unpacking layer: 5"
		build | time="2018-08-23T16:33:26Z" level=info msg="Unpacking layer: 4"
		build | time="2018-08-23T16:33:27Z" level=info msg="Not adding /tmp because it was added by a prior layer"
		build | time="2018-08-23T16:33:27Z" level=info msg="Not adding /usr because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Unpacking layer: 3"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /etc because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /etc/alternatives because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /etc/ld.so.cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /tmp because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /usr because it was added by a prior layer"
		build | time="2018-08-23T16:33:30Z" level=info msg="Not adding /usr/bin because it was added by a prior layer"
		build | time="2018-08-23T16:33:31Z" level=info msg="Not adding /usr/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/local because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/bug because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/doc because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/lintian because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/lintian/overrides because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/bg because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/bg/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ca because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ca/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/cs because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/cs/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/da because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/da/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/de because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/de/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/es because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/es/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/fr because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/fr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/gl because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/gl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/he because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/he/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/id because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/id/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/it because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/it/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ja because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ja/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ko because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ko/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ms because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ms/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/nl because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/nl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/pl because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/pl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/pt_BR because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/pt_BR/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ro because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ro/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ru because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/ru/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/sk because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/sk/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/sr because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/sr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/sv because it was added by a prior layer"
		build | time="2018-08-23T16:33:33Z" level=info msg="Not adding /usr/share/locale/sv/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/tr because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/tr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/uk because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/uk/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/vi because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/vi/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/zh_CN because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/zh_CN/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/zh_TW because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/locale/zh_TW/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/man because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/man/man1 because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/man/man3 because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/share/perl5 because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/apt/archives because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/apt/archives/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/apt/archives/partial because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/debconf because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/debconf/config.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/debconf/passwords.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/debconf/templates.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/ldconfig because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/cache/ldconfig/aux-cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/apt/extended_states because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/apt/lists because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/alternatives because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/info because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/status because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/status-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/triggers because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/triggers/File because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/triggers/Lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/lib/dpkg/updates because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log/alternatives.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log/apt/eipp.log.xz because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log/apt/history.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log/apt/term.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /var/log/dpkg.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Unpacking layer: 2"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /etc because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /etc/alternatives because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /etc/ld.so.cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /tmp because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/bin because it was added by a prior layer"
		build | time="2018-08-23T16:33:34Z" level=info msg="Not adding /usr/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/lib/systemd because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/lib/systemd/user because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/sbin because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/doc because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/lintian because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/lintian/overrides because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man1 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man3 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man8 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt/archives because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt/archives/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt/archives/partial because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/config.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/passwords.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/templates.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/ldconfig because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/ldconfig/aux-cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/apt/extended_states because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/apt/lists because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/alternatives because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/info because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/status because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/status-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/triggers because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/triggers/Lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/updates because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/alternatives.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt/eipp.log.xz because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt/history.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt/term.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/dpkg.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Unpacking layer: 1"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /etc because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /etc/ld.so.cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /tmp because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/bin because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/local because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/sbin because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/doc because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/info because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/lintian because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/lintian/overrides because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/be because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/be/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/bg because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/bg/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ca because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ca/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/cs because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/cs/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/da because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/da/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/de because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/de/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/el because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/el/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/en_GB because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/en_GB/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/eo because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/eo/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/es because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/es/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/fi because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/fi/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/fr because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/fr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ga because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ga/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/gl because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/gl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/he because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/he/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/hr because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/hr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/hu because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/hu/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/id because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/id/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/it because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/it/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ja because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ja/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/lt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/lt/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ms because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ms/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/nb because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/nb/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/nl because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/nl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/pl because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/pl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/pt_BR because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/pt_BR/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ro because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ro/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ru because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/ru/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/sk because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/sk/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/sr because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/sr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/sv because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/sv/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/tr because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/tr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/uk because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/uk/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/vi because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/vi/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/zh_CN because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/zh_CN/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/zh_TW because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/locale/zh_TW/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man1 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man5 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man7 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /usr/share/man/man8 because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt/archives because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt/archives/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/apt/archives/partial because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/config.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/config.dat-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/passwords.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/templates.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/debconf/templates.dat-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/ldconfig because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/cache/ldconfig/aux-cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/apt/extended_states because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/apt/lists because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/info because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/status because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/status-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/triggers because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/triggers/Lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/lib/dpkg/updates because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt/eipp.log.xz because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt/history.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/apt/term.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Not adding /var/log/dpkg.log because it was added by a prior layer"
		build | time="2018-08-23T16:33:35Z" level=info msg="Unpacking layer: 0"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /bin because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /dev because it is whitelisted"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/.pwd.lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/alternatives because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/dpkg because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/dpkg/dpkg.cfg.d because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/group because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/group- because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/gshadow because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/hostname because it is whitelisted"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/init.d because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/ld.so.cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/rcS.d because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /etc/resolv.conf because it is whitelisted"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /proc because it is whitelisted"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /root because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /sbin because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /sys because it is whitelisted"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /tmp because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/bin because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/include because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/gcc because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/gcc/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/gcc/x86_64-linux-gnu/6 because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/mime because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/mime/packages because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/python2.7 because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/python2.7/dist-packages because it was added by a prior layer"
		build | time="2018-08-23T16:33:36Z" level=info msg="Not adding /usr/lib/x86_64-linux-gnu because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/lib/x86_64-linux-gnu/perl because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/local because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/local/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/local/share because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/sbin because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share/bash-completion because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share/bash-completion/completions because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share/bug because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share/doc because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share/doc/gcc-6-base because it was added by a prior layer"
		build | time="2018-08-23T16:33:37Z" level=info msg="Not adding /usr/share/doc/perl because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/doc-base because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/dpkg because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/info because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/lintian because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/lintian/overrides because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ar because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ar/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ast because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ast/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/be because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/be/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/bg because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/bg/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/bs because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/bs/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ca because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ca/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/cs because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/cs/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/da because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/da/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/de because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/de/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/el because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/el/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/en@boldquot because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/en@boldquot/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/en@quot because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/en@quot/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/en_GB because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/en_GB/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/eo because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/eo/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/es because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/es/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/et because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/et/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/eu because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/eu/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/fa because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/fa/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/fi because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/fi/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/fr because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/fr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ga because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ga/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/gl because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/gl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/he because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/he/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/hr because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/hr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/hu because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/hu/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/id because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/id/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/it because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/it/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ja because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ja/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ko because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ko/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/lt because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/lt/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ms because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ms/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/nb because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/nb/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/nl because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/nl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/pl because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/pl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/pt because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/pt/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/pt_BR because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/pt_BR/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ro because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ro/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ru because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/ru/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/si because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/si/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sk because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sk/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sl because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sl/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sr because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sv because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/sv/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/tr because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/tr/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/uk because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/uk/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/vi because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/vi/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/zh_CN because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/zh_CN/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/zh_TW because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/locale/zh_TW/LC_MESSAGES because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/man because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/man/de because it was added by a prior layer"
		build | time="2018-08-23T16:33:38Z" level=info msg="Not adding /usr/share/man/de/man1 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/man/man1 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/man/man3 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/man/man5 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/man/man7 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/man/man8 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/menu because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/perl5 because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/perl5/Debian because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /usr/share/pixmaps because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/debconf because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/debconf/config.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/debconf/config.dat-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/debconf/passwords.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/debconf/templates.dat because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/debconf/templates.dat-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/cache/ldconfig because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/apt/extended_states because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/apt/lists because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/alternatives because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/info because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/status because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/status-old because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/triggers because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/triggers/Lock because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/triggers/Unincorp because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/lib/dpkg/updates because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/log because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/log/apt because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/log/apt/eipp.log.xz because it was added by a prior layer"
		build | time="2018-08-23T16:33:39Z" level=info msg="Not adding /var/run because it is whitelisted"
		build | time="2018-08-23T16:33:39Z" level=info msg="Taking snapshot of full filesystem..."
		build | time="2018-08-23T16:37:13Z" level=info msg="Executing 0 build triggers"
		build | time="2018-08-23T16:37:13Z" level=info msg="cmd: workdir"
		build | time="2018-08-23T16:37:13Z" level=info msg="Changed working directory to /go/src/github.com/mchmarny/simple-app/"
		build | time="2018-08-23T16:37:13Z" level=info msg="cmd: copy [.]"
		build | time="2018-08-23T16:37:13Z" level=info msg="dest: ."
		build | time="2018-08-23T16:37:13Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app"
		build | time="2018-08-23T16:37:13Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git"
		build | time="2018-08-23T16:37:13Z" level=info msg="Copying file /workspace/.git/FETCH_HEAD to /go/src/github.com/mchmarny/simple-app/.git/FETCH_HEAD"
		build | time="2018-08-23T16:37:13Z" level=info msg="Copying file /workspace/.git/HEAD to /go/src/github.com/mchmarny/simple-app/.git/HEAD"
		build | time="2018-08-23T16:37:13Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/branches"
		build | time="2018-08-23T16:37:13Z" level=info msg="Copying file /workspace/.git/config to /go/src/github.com/mchmarny/simple-app/.git/config"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/description to /go/src/github.com/mchmarny/simple-app/.git/description"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/hooks"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/applypatch-msg.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/applypatch-msg.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/commit-msg.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/commit-msg.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/fsmonitor-watchman.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/fsmonitor-watchman.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/post-update.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/post-update.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/pre-applypatch.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/pre-applypatch.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/pre-commit.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/pre-commit.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/pre-push.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/pre-push.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/pre-rebase.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/pre-rebase.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/pre-receive.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/pre-receive.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/prepare-commit-msg.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/prepare-commit-msg.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/hooks/update.sample to /go/src/github.com/mchmarny/simple-app/.git/hooks/update.sample"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/index to /go/src/github.com/mchmarny/simple-app/.git/index"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/info"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/info/exclude to /go/src/github.com/mchmarny/simple-app/.git/info/exclude"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/logs"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/logs/HEAD to /go/src/github.com/mchmarny/simple-app/.git/logs/HEAD"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/logs/refs"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/logs/refs/heads"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/logs/refs/heads/master to /go/src/github.com/mchmarny/simple-app/.git/logs/refs/heads/master"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/logs/refs/remotes"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/logs/refs/remotes/origin"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/logs/refs/remotes/origin/master to /go/src/github.com/mchmarny/simple-app/.git/logs/refs/remotes/origin/master"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/0d"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/0d/e78f0655b36a17f6fc6bb0a7e8a32fc4a16c92 to /go/src/github.com/mchmarny/simple-app/.git/objects/0d/e78f0655b36a17f6fc6bb0a7e8a32fc4a16c92"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/26"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/26/1eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 to /go/src/github.com/mchmarny/simple-app/.git/objects/26/1eeb9e9f8b2b4b0d119366dda99c6fd7d35c64"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/65"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/65/4abf5a9753d879cc5b8c7dc604c403ee1dec41 to /go/src/github.com/mchmarny/simple-app/.git/objects/65/4abf5a9753d879cc5b8c7dc604c403ee1dec41"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/88"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/88/5b49694c94e641311f700ed8fc8f52a11c2055 to /go/src/github.com/mchmarny/simple-app/.git/objects/88/5b49694c94e641311f700ed8fc8f52a11c2055"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/b0"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/b0/e5f9537b768baf7a4b8bab9aa01e5e5cd2d6ba to /go/src/github.com/mchmarny/simple-app/.git/objects/b0/e5f9537b768baf7a4b8bab9aa01e5e5cd2d6ba"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/b1"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/b1/74d7b230cc93aac872917eb24081ad630da2dd to /go/src/github.com/mchmarny/simple-app/.git/objects/b1/74d7b230cc93aac872917eb24081ad630da2dd"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/f1"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/objects/f1/c181ec9c5c921245027c6b452ecfc1d3626364 to /go/src/github.com/mchmarny/simple-app/.git/objects/f1/c181ec9c5c921245027c6b452ecfc1d3626364"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/info"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/objects/pack"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/refs"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/refs/heads"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/refs/heads/master to /go/src/github.com/mchmarny/simple-app/.git/refs/heads/master"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/refs/remotes"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/refs/remotes/origin"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/refs/remotes/origin/master to /go/src/github.com/mchmarny/simple-app/.git/refs/remotes/origin/master"
		build | time="2018-08-23T16:37:14Z" level=info msg="Creating directory /go/src/github.com/mchmarny/simple-app/.git/refs/tags"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.git/shallow to /go/src/github.com/mchmarny/simple-app/.git/shallow"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/.gitignore to /go/src/github.com/mchmarny/simple-app/.gitignore"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/Dockerfile to /go/src/github.com/mchmarny/simple-app/Dockerfile"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/LICENSE to /go/src/github.com/mchmarny/simple-app/LICENSE"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/README.md to /go/src/github.com/mchmarny/simple-app/README.md"
		build | time="2018-08-23T16:37:14Z" level=info msg="Copying file /workspace/app.go to /go/src/github.com/mchmarny/simple-app/app.go"
		build | time="2018-08-23T16:37:14Z" level=info msg="cmd: /bin/sh"
		build | time="2018-08-23T16:37:14Z" level=info msg="args: [-c CGO_ENABLED=0 GOOS=linux go build -v -o app]"
		build | net
		build | vendor/golang_org/x/net/lex/httplex
		build | crypto/x509
		build | vendor/golang_org/x/net/proxy
		build | net/textproto
		build | crypto/tls
		build | net/http/httptrace
		build | net/http
		build | github.com/mchmarny/simple-app
		build | time="2018-08-23T16:37:22Z" level=info msg="Taking snapshot of full filesystem..."
		build | time="2018-08-23T16:40:50Z" level=info msg="Storing source image from stage 0 at path /kaniko/stages/0"
		build | time="2018-08-23T16:40:50Z" level=error msg="UNAUTHORIZED: \"authentication required\""
		
		' stderr: 'Error: Build failed
		' error: 'exit status 1'

https://wings.pivotal.io/teams/dmitriy/pipelines/knctl/jobs/e2e-tests/builds/162

don't require namespace to be labelled for injection

namespaces no longer need to be labelled for Istio injection, so to make kubectl work with newer Knative versions we should remove this check

Error: Expected namespace 'default' to have label 'istio-injection'

configure volumes with secrets/config-maps

container:
  volumeMounts:
  - name: db-credentials
    mountPath: "/secrets/db-credentials"
    readOnly: true
volumes:
- name: db-credentials
  secret:
    secretName: db-secret
knctl deploy --vol-secret db-credentials=db-secret:/secrets/db-credentials
knctl deploy --vol-secret db-credentials=db-secret:/secrets/db-credentials:ro
knctl deploy --vol-secret db-credentials:/secrets/db-credentials

Improvements to the management of registry secrets

Several commands are likely to repeated time and time again by users of knctl and could be flattened into a single (or possibly two commands). Specifically the commands I expect to use over and over again are:

Current State

Create Docker Hub secret for pushing images

$ knctl basic-auth-secret create -s docker-reg1 --docker-hub -u <your-username> -p <your-password>

If necessary, create Docker Hub secret for pulling images

$ knctl basic-auth-secret create -s docker-reg2 --docker-hub -u <your-username> -p <your-password> --for-pulling

Create service account that references above credentials

$ knctl service-account create -a serv-acct1 -s git1 -s docker-reg1 [-s docker-reg2]

Proposed Improvement

A potential alternative could be something like.

$ knctl save-registry-secrets <your-username> <your-password> --docker-hub

This would store creds locally and once you have a knative cluster targeted run the following singe command (limit one set of credentials per registry for now)

$knctl configure-build-registry --docker-hub

Creates all the necessary secrets in Knative to execute the build commands. You could also automatically configure the build registry when you use knctl to deploy knative.

knctl uninstall don't delete mutatingwebhookconfiguration

First, thank you, Dmitriy for amazing toolset!

Please find issue description:

#kn install
...
Waiting for Knative to start...

Succeeded

#k get mutatingwebhookconfiguration
NAME AGE
istio-sidecar-injector 59s
webhook.build.knative.dev 20s
webhook.serving.knative.dev 13s

#kn uninstall
Uninstalling Knative Build
Waiting for namespace 'knative-build' to be deleted...
Uninstalling Knative Serving
Waiting for namespace 'knative-serving' to be deleted...
Uninstalling Knative Monitoring
Waiting for namespace 'knative-monitoring' to be deleted...
Uninstalling Istio
Waiting for namespace 'istio-system' to be deleted...

Succeeded

#k get mutatingwebhookconfiguration
NAME AGE
istio-sidecar-injector 7m

#k run nginx --image nginx
deployment.apps "nginx" created

#k get deployment nginx
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
nginx 1 0 0 0 8s

#k describe rs nginx-65899c769f
...
Events:
Type Reason Age From Message


Warning FailedCreate 16s (x14 over 58s) replicaset-controller Error creating: Internal error occurred: failed calling admission webhook "sidecar-injector.istio.io": Post https://istio-sidecar-injector.istio-system.svc:443/inject?timeout=30s: service "istio-sidecar-injector" not found

#k delete mutatingwebhookconfiguration --all
mutatingwebhookconfiguration.admissionregistration.k8s.io "istio-sidecar-injector" deleted

#k run nginx --image nginx
deployment.apps "nginx" created

#k get deployment nginx
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
nginx 1 1 1 1 10s

Add autoscaling flags

Would it be possible to add the ability to change the basic autoscaling parameters i.e. containerConcurrency, minScale & maxScale when using the knctl deploy command?

Currently we're deploying an app (which is very easy thanks to knctl!) but changing the autoscaling parameters is a pain. At the moment we do kubectl apply for the below code however this doesn't always seem to get applied (has worked twice out of 8 separate occasions) / can't be re-deployed new using knctl - says it is deploying with no other messages and never actual deploys, think the issue might be to do with kubectl apply command not switching the flags latest and previous.

kind: Service
metadata:
  name: test
  namespace: development
spec:
  runLatest:
    configuration:
      revisionTemplate:
        metadata:
          annotations:
            # Maximum number of pods
            autoscaling.knative.dev/maxScale: "90"
            # Minimum number of pods
            autoscaling.knative.dev/minScale: "0"
        spec:
          containerConcurrency: 5
          container:
            image: gcr.io/project/app-name
            env:
            - name: NODE_ENV
              value: development

I'm relatively new to Kubernetes & Knative but it seems like everything else is very easy and this seems a natural progression but it is more than possible that I've missed something RE changing the autoscaling parameters so please do close the issue if you think this is irrelevant!

Really appreciate the fab work that has been done!!

Proposal: only use build-templates

Currently knctl install does not install any build templates, and both knctl deploy and knctl build create do not use them by default (without --template flag). Instead, they manually construct build steps that mirror an existing template https://github.com/knative/build-templates/tree/master/kaniko

Perhaps we move towards knctl install preinstalling some/all the known build template CRDs, and knctl deploy always using one, e.g. --template kaniko by default.

This would make it easier to explain what the default behavior is - it would show up in knctl deploy --help as the default value for --template flag.

This topic ("what are the default steps?") came up in the comments of one of my blog posts https://starkandwayne.com/blog/build-docker-images-inside-kubernetes-with-knative-build/#comment-4189493232

No Windows binaries in the release

The GitHub releases page lists binaries for Linux and Darwin but not Windows. Are there any known issues with Windows support preventing this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.