Commit Graph
27 Commits
Author SHA1 Message Date
Matt Moore 222b0fc788 Allow ko to produce estargz layers. (#271)
* Allow ko to produce estargz layers.

This pulls in the latest google/go-containerregistry, which enables folks to set `GGCR_EXPERIMENT_ESTARGZ=1` to enable `ko` to start producing layers compatible with the estargz format, which enables the containerd estargz-snapshotter to lazy-load parts of images.

* Add README
2020-12-17 15:00:30 -08:00
Matt Moore 960e6a3f1c Update ggcr and use the new tarball.WithCompressCaching (#263)
This simplifies the logic for creating layers and relies on the new option instead of pre-gzipping (and gunzip being faster).  The net effect of this should be the elimination of an extra gunzip, but it should not materially impact the memory pressure because we were ALREADY caching the gzipped layers in-memory, we were just doing it on the caller side, which provided less benefit!
2020-12-13 18:14:27 -08:00
Matt Moore 79beb3b015 Refactor the publish.Namer, add --bare option for image naming (#234)
* Refactor the publish.Namer to produce the full repo name.

* Add --naked to have image publishing use ${KO_DOCKER_REPO}:tag

* Change flag name, add disclaimer
2020-11-03 13:47:36 -08:00
Matt Moore cde258294f Run the hello test on multiple architectures (#227) 2020-10-23 16:47:34 -07:00
Matt Moore d9cc0ca9ea Move the kind and integration tests to actions (#225) 2020-10-23 10:19:48 -07:00
Matt Moore (via Sockpuppet) b99d96f099 Format markdown
Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>
2020-10-15 01:42:20 +00:00
Matt Moore (via Sockpuppet) 2d9942c3b0 Update common github actions
Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>
2020-10-15 01:41:38 +00:00
Matt Moore dc30efcfd8 Format markdown (#217)
Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>
2020-10-05 18:38:43 -07:00
Matt Moore (via Sockpuppet) 0bdf5ee792 Format markdown
Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>
2020-09-30 01:29:56 +00:00
Matt Moore 61fbde832a Have kind.local test use --platform=all (#208)
Fix --platform=all with kind.local
2020-09-29 10:11:15 -07:00
Matt Moore d48767339f Fix base image resolution (#201) 2020-09-25 10:20:33 -07:00
Matt Moore 5af0bc138f Print more complete platform information. (#200)
Fixes: https://github.com/google/ko/issues/199
2020-09-25 08:51:18 -07:00
Matt Moore b3645fa096 Add a handful of files to trigger more analyses. (#197)
`.codecov.yaml` - Enable codecov.io coverage reports
`.golangci.yaml` - Enable the enumerated checks in golangci-lint
`boilerplate.*.txt` - Enable file header boilerplate checks for these extensions
2020-09-24 20:15:21 -07:00
Matt Moore bd3f1cb17b [Automated] Update actions (#194)
* Update common github actions

Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>

* Run gofmt
2020-09-24 19:00:36 -07:00
Matt Moore 985c449e0b Fix goimports (#196) 2020-09-24 18:39:46 -07:00
Matt Moore 8d9a4172cc upgrade to latest dependencies (#195)
Signed-off-by: Matt Moore (via Sockpuppet) <mattmoor@vmware.com>
2020-09-24 18:34:43 -07:00
Matt Moore 33e66aca49 Remove deprecated things. (#162)
Fixes: https://github.com/google/ko/issues/158
Fixes: https://github.com/google/ko/issues/160
2020-09-24 16:14:58 -07:00
Matt Moore 718587b3af Add hack/update-deps.sh (#193) 2020-09-24 15:56:25 -07:00
Matt Moore bec089d9c8 Fix k8s.io/cli-runtime "require" (#189)
The "require" is behind the version in "replace", and since cli-runtime references the package mentioned in the errors we are seeing, rule this out as a source!
2020-09-04 10:53:50 -07:00
Matt Moore 1e05e91f92 Pin k8s.io/api for good measure (#188) 2020-09-04 10:05:05 -07:00
Matt Moore 60e32d0655 Switch to go 1.14 in go.mod, test 1.15 (#187)
* Switch to go 1.14 in go.mod, test 1.15

* Fix the integration test semantics with go 1.14+
2020-09-04 09:31:01 -07:00
Matt Moore b7b0435ef0 Format markdown using prettier. (#185) 2020-09-04 07:36:05 -07:00
Matt Moore ab4ca8ec17 Fix the other publishers (#165) 2020-05-06 13:26:22 -07:00
Matt Moore ea2beac575 Fix -P with passing ko:// through. (#163)
Turns out I broke this.  Thanks to @bobcatfish for reporting the issue.

With this change:
```
ko resolve -Pf cmd/ko/test/test.yaml > /dev/null
2020/05/04 08:44:35 Using base gcr.io/distroless/static:nonroot for github.com/google/ko/cmd/ko/test
2020/05/04 08:44:36 Building github.com/google/ko/cmd/ko/test
2020/05/04 08:44:37 Publishing gcr.io/mattmoor-knative/github.com/google/ko/cmd/ko/test:latest
2020/05/04 08:44:39 Published gcr.io/mattmoor-knative/github.com/google/ko/cmd/ko/test@sha256:ee655510172b429dbce619fc69677621d71cb824cbbf2a21746d700127257ec4
```

I can cut v0.5.1 once this lands.
2020-05-04 09:06:55 -07:00
Matt Moore d45c527750 This adds the deprecation notices for ko:// and nonroot (#161)
* Add a deprecation notice when `defaultBaseImage` is not specified.

Related: https://github.com/google/ko/issues/160

* Add a deprecation notice when `ko://` is not specified.

Related: https://github.com/google/ko/issues/158

* Add a sample import path.
2020-05-03 18:42:51 -07:00
Matt Moore ff61ea330c Refactor how/where ko:// is handled. (#153)
This change more or less completely changes how `ko://` is handled internally to `ko`, but the user-facing changes should only be net-positive.  `ko://` was previously stripped at the highest level, and the build logic was unaware, which had some undesirable diagnostic/functional implications that are collectively addressed in this change.

With this change, the `ko://` prefix is preserved and passed to the build logic, which internally parses a new `reference` type (this was useful to have Go's type checker find all of the places that needed fixing).  The main functional differences are:
1. If a reference is prefixed with `ko://` we will now fail fast in `IsSupportedReference` regardless of whether `--strict` is passed.
2. If a reference is prefixed with `ko://` it will bypass the prefix check, which allows the use of `ko://github.com/another/repo` that references a vendored binary package.

For `2.` the absence of the module prefix causes the filtering logic Jon introduced to avoid the reference.  This was critical for efficiency when `ko://` isn't around because we feed every string in the yaml through it, but when the user has explicitly decorated things it's the perfect thing to be sensitive to.

Fixes: https://github.com/google/ko/issues/146
Fixes: https://github.com/google/ko/issues/152
2020-04-29 19:32:30 -07:00
Matt Moore f45bc13ded Viper keys are case insensitive. (#150)
* Viper keys are case insensitive.

This fixes an issue where import paths with uppercase (github.com/GoogleCloudPlatform 👀) were being canonicalized by Viper to all lowercase and the baseImageOverrides in `.ko.yaml` were failing to properly identify the base image.

I hit this in: https://github.com/tektoncd/pipeline/pull/2435 trying to opt some of the GCP images out of `:nonroot`.

This also adds some logging to a place where I see a lot of folks have issues with `ko` where we swallow an error.  I hit it experimenting with variants on the `ko publish` import path, and added the logging to debug.

* Drop the new log statement
2020-04-20 09:13:33 -07:00