diff --git a/go.mod b/go.mod index 096c6f9..dc55fe2 100644 --- a/go.mod +++ b/go.mod @@ -3,33 +3,32 @@ module github.com/octohelm/crkit go 1.22.5 require ( - github.com/containerd/containerd v1.7.19 + github.com/containerd/containerd v1.7.20 github.com/distribution/distribution/v3 v3.0.0-beta.1 github.com/distribution/reference v0.6.0 github.com/go-courier/logr v0.3.0 github.com/gobwas/glob v0.2.3 - github.com/google/go-containerregistry v0.19.2 + github.com/google/go-containerregistry v0.20.1 github.com/innoai-tech/infra v0.0.0-20240628125259-5dad47544c26 - github.com/octohelm/courier v0.0.0-20240704050034-47f5b1ea1eb8 + github.com/octohelm/courier v0.0.0-20240723055937-13d07eef9d84 github.com/octohelm/gengo v0.0.0-20240622092313-cc61f99ecd84 github.com/octohelm/kubekit v0.0.0-20240508035712-15cb61729772 - github.com/octohelm/kubepkgspec v0.0.0-20240521102121-31a405691640 - github.com/octohelm/storage v0.0.0-20240705034943-8383756856ad - github.com/octohelm/x v0.0.0-20240622073357-3fcb5294a9e0 + github.com/octohelm/kubepkgspec v0.0.0-20240724075304-c43ad828ba05 + github.com/octohelm/storage v0.0.0-20240717063837-40e14509556f + github.com/octohelm/x v0.0.0-20240724060656-359813d685aa github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.1.0 github.com/pelletier/go-toml/v2 v2.2.2 github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.9.3 golang.org/x/sync v0.7.0 - k8s.io/api v0.30.2 - k8s.io/apimachinery v0.30.2 + k8s.io/api v0.30.3 + k8s.io/apimachinery v0.30.3 sigs.k8s.io/controller-runtime v0.18.4 ) require ( cuelang.org/go v0.9.2 // indirect - github.com/Microsoft/hcsshim v0.12.4 // indirect github.com/andybalholm/brotli v1.1.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect @@ -41,7 +40,7 @@ require ( github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/docker/cli v27.0.3+incompatible // indirect + github.com/docker/cli v27.1.1+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect @@ -89,7 +88,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/redis/go-redis/extra/rediscmd/v9 v9.5.3 // indirect github.com/redis/go-redis/extra/redisotel/v9 v9.5.3 // indirect - github.com/redis/go-redis/v9 v9.5.4 // indirect + github.com/redis/go-redis/v9 v9.6.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect @@ -115,7 +114,7 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.28.0 // indirect go.opentelemetry.io/otel/trace v1.28.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect - golang.org/x/exp v0.0.0-20240707233637-46b078467d37 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect @@ -125,15 +124,15 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.23.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240723171418-e6d459c13d2a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240723171418-e6d459c13d2a // indirect google.golang.org/grpc v1.65.0 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.30.2 // indirect - k8s.io/client-go v0.30.2 // indirect + k8s.io/apiextensions-apiserver v0.30.3 // indirect + k8s.io/client-go v0.30.3 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect diff --git a/go.sum b/go.sum index 4d945c2..18bdd78 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,6 @@ cuelabs.dev/go/oci/ociregistry v0.0.0-20240404174027-a39bec0462d2 h1:BnG6pr9TTr6 cuelabs.dev/go/oci/ociregistry v0.0.0-20240404174027-a39bec0462d2/go.mod h1:pK23AUVXuNzzTpfMCA06sxZGeVQ/75FdVtW249de9Uo= cuelang.org/go v0.9.2 h1:pfNiry2PdRBr02G/aKm5k2vhzmqbAOoaB4WurmEbWvs= cuelang.org/go v0.9.2/go.mod h1:qpAYsLOf7gTM1YdEg6cxh553uZ4q9ZDWlPbtZr9q1Wk= -github.com/Microsoft/hcsshim v0.12.4 h1:Ev7YUMHAHoWNm+aDSPzc5W9s6E2jyL1szpVDJeZ/Rr4= -github.com/Microsoft/hcsshim v0.12.4/go.mod h1:Iyl1WVpZzr+UkzjekHZbV8o5Z9ZkxNGx6CtY2Qg/JVQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -22,8 +20,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= -github.com/containerd/containerd v1.7.19 h1:/xQ4XRJ0tamDkdzrrBAUy/LE5nCcxFKdBm4EcPrSMEE= -github.com/containerd/containerd v1.7.19/go.mod h1:h4FtNYUUMB4Phr6v+xG89RYKj9XccvbNSCKjdufCrkc= +github.com/containerd/containerd v1.7.20 h1:Sl6jQYk3TRavaU83h66QMbI2Nqg9Jm6qzwX57Vsn1SQ= +github.com/containerd/containerd v1.7.20/go.mod h1:52GsS5CwquuqPuLncsXwG0t2CiUce+KsNHJZQJvAgR0= github.com/containerd/errdefs v0.1.0 h1:m0wCRBiu1WJT/Fr+iOoQHMQS/eP5myQ8lCv4Dz5ZURM= github.com/containerd/errdefs v0.1.0/go.mod h1:YgWiiHtLmSeBrvpw+UfPijzbLaB77mEG1WwJTDETIV0= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= @@ -43,8 +41,8 @@ github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfG github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v27.0.3+incompatible h1:usGs0/BoBW8MWxGeEtqPMkzOY56jZ6kYlSN5BLDioCQ= -github.com/docker/cli v27.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE= +github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= @@ -111,8 +109,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.19.2 h1:TannFKE1QSajsP6hPWb5oJNgKe1IKjHukIKDUmvsV6w= -github.com/google/go-containerregistry v0.19.2/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= +github.com/google/go-containerregistry v0.20.1 h1:eTgx9QNYugV4DN5mz4U8hiAGTi1ybXn0TPi4Smd8du0= +github.com/google/go-containerregistry v0.20.1/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -183,18 +181,18 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/octohelm/courier v0.0.0-20240704050034-47f5b1ea1eb8 h1:97s0wTDPpgEYM9IWeopdIJRogEznVLilMYrlf7ON5/g= -github.com/octohelm/courier v0.0.0-20240704050034-47f5b1ea1eb8/go.mod h1:kFyItZqYb0K5ga5G2pOZ3HfFmw4l4s8eSiWexeObNdw= +github.com/octohelm/courier v0.0.0-20240723055937-13d07eef9d84 h1:ez39VRQDySB/TGLI3P6Sa0jEN6vSoJK273EHdqZXyLA= +github.com/octohelm/courier v0.0.0-20240723055937-13d07eef9d84/go.mod h1:ZqnTloL9ZtrPltL2m816qzisKrMDoT8h99tCKVjOSqY= github.com/octohelm/gengo v0.0.0-20240622092313-cc61f99ecd84 h1:VH5E6nJ3UR60bOmXojgzu6mQPmuWzG0+dm2AIGnRxVo= github.com/octohelm/gengo v0.0.0-20240622092313-cc61f99ecd84/go.mod h1:bAzrvsK8CvH1QYU9zBVm9qIiiQ6rsxqDK5KDfCY1KDU= github.com/octohelm/kubekit v0.0.0-20240508035712-15cb61729772 h1:X+mCc0CTxFo0BMMVeGBEDudulp2fGiftUD9rJS9OmOQ= github.com/octohelm/kubekit v0.0.0-20240508035712-15cb61729772/go.mod h1:wbxe94x0pWeoE77qvcBDjvn7tnndvZ0pv2VeSz0UscA= -github.com/octohelm/kubepkgspec v0.0.0-20240521102121-31a405691640 h1:4zDMCG3UNPXeIVWc054Dpr2vy6IUVLuPXEptu3YqEHA= -github.com/octohelm/kubepkgspec v0.0.0-20240521102121-31a405691640/go.mod h1:3uGib69YOZGZYd8olCV3l/cHt0HkNhdJAyBfWjZxWsc= -github.com/octohelm/storage v0.0.0-20240705034943-8383756856ad h1:5ZCZ8biT6pZ4H09IDgzhsLamE7XhbiawkCGWL+SIaf0= -github.com/octohelm/storage v0.0.0-20240705034943-8383756856ad/go.mod h1:bylO2BMB6GAYcN48jQo3ir7ls8YvhUroaPGOSoI15WA= -github.com/octohelm/x v0.0.0-20240622073357-3fcb5294a9e0 h1:25JOHKNSWuU65Omf7Ob9VVPA6e7M+hWLAmzZL/ndYQY= -github.com/octohelm/x v0.0.0-20240622073357-3fcb5294a9e0/go.mod h1:H8L5swKf8wx4DfgGbOhnPMe+POcExkmQmUm3p7W1EF0= +github.com/octohelm/kubepkgspec v0.0.0-20240724075304-c43ad828ba05 h1:tPrgj8gqzhxSoZFwqCY3KxX8GRtqeFt3b5T06mYdXkc= +github.com/octohelm/kubepkgspec v0.0.0-20240724075304-c43ad828ba05/go.mod h1:zHFfaIlr95lc5MN76nNd2VRHzJ8IhFvsJ94/cNlpOuM= +github.com/octohelm/storage v0.0.0-20240717063837-40e14509556f h1:ymhBhpe1kdhY9q2Tqpb9vBZTjzOJWLYmL1+b2ATI5FQ= +github.com/octohelm/storage v0.0.0-20240717063837-40e14509556f/go.mod h1:icwtkaI4L1PB3wmuIbgqorEWMNdn98JF7YFbTdrWg+A= +github.com/octohelm/x v0.0.0-20240724060656-359813d685aa h1:1Xd/Ep0ZOsbcElxfmZauzMixm6MmWbXSprpBrNzngQg= +github.com/octohelm/x v0.0.0-20240724060656-359813d685aa/go.mod h1:H8L5swKf8wx4DfgGbOhnPMe+POcExkmQmUm3p7W1EF0= github.com/onsi/ginkgo/v2 v2.17.2 h1:7eMhcy3GimbsA3hEnVKdw/PQM9XN9krpKVXsZdph0/g= github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= @@ -235,8 +233,8 @@ github.com/redis/go-redis/extra/rediscmd/v9 v9.5.3 h1:1/BDligzCa40GTllkDnY3Y5DTH github.com/redis/go-redis/extra/rediscmd/v9 v9.5.3/go.mod h1:3dZmcLn3Qw6FLlWASn1g4y+YO9ycEFUOM+bhBmzLVKQ= github.com/redis/go-redis/extra/redisotel/v9 v9.5.3 h1:kuvuJL/+MZIEdvtb/kTBRiRgYaOmx1l+lYJyVdrRUOs= github.com/redis/go-redis/extra/redisotel/v9 v9.5.3/go.mod h1:7f/FMrf5RRRVHXgfk7CzSVzXHiWeuOQUu2bsVqWoa+g= -github.com/redis/go-redis/v9 v9.5.4 h1:vOFYDKKVgrI5u++QvnMT7DksSMYg7Aw/Np4vLJLKLwY= -github.com/redis/go-redis/v9 v9.5.4/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.6.0 h1:NLck+Rab3AOTHw21CGRpvQpgTrAU4sgdCswqGtlhGRA= +github.com/redis/go-redis/v9 v9.6.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= @@ -318,8 +316,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20240707233637-46b078467d37 h1:uLDX+AfeFCct3a2C7uIWBKMJIR3CJMhcgfrUAqjRK6w= -golang.org/x/exp v0.0.0-20240707233637-46b078467d37/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= @@ -372,10 +370,10 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d h1:kHjw/5UfflP/L5EbledDrcG4C2597RtymmGRZvHiCuY= -google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d/go.mod h1:mw8MG/Qz5wfgYr6VqVCiZcHe/GJEfI+oGGDCohaVgB0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d h1:JU0iKnSg02Gmb5ZdV8nYsKEKsP6o/FGVWTrw4i1DA9A= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto/googleapis/api v0.0.0-20240723171418-e6d459c13d2a h1:YIa/rzVqMEokBkPtydCkx1VLmv3An1Uw7w1P1m6EhOY= +google.golang.org/genproto/googleapis/api v0.0.0-20240723171418-e6d459c13d2a/go.mod h1:AHT0dDg3SoMOgZGnZk29b5xTbPHMoEC8qthmBLJCpys= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240723171418-e6d459c13d2a h1:hqK4+jJZXCU4pW7jsAdGOVFIfLHQeV7LaizZKnZ84HI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240723171418-e6d459c13d2a/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= @@ -395,14 +393,14 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI= -k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI= -k8s.io/apiextensions-apiserver v0.30.2 h1:l7Eue2t6QiLHErfn2vwK4KgF4NeDgjQkCXtEbOocKIE= -k8s.io/apiextensions-apiserver v0.30.2/go.mod h1:lsJFLYyK40iguuinsb3nt+Sj6CmodSI4ACDLep1rgjw= -k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= -k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50= -k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs= +k8s.io/api v0.30.3 h1:ImHwK9DCsPA9uoU3rVh4QHAHHK5dTSv1nxJUapx8hoQ= +k8s.io/api v0.30.3/go.mod h1:GPc8jlzoe5JG3pb0KJCSLX5oAFIW3/qNJITlDj8BH04= +k8s.io/apiextensions-apiserver v0.30.3 h1:oChu5li2vsZHx2IvnGP3ah8Nj3KyqG3kRSaKmijhB9U= +k8s.io/apiextensions-apiserver v0.30.3/go.mod h1:uhXxYDkMAvl6CJw4lrDN4CPbONkF3+XL9cacCT44kV4= +k8s.io/apimachinery v0.30.3 h1:q1laaWCmrszyQuSQCfNB8cFgCuDAoPszKY4ucAjDwHc= +k8s.io/apimachinery v0.30.3/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k= +k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc= diff --git a/pkg/kubepkg/packer.go b/pkg/kubepkg/packer.go index a621595..715a1d9 100644 --- a/pkg/kubepkg/packer.go +++ b/pkg/kubepkg/packer.go @@ -3,14 +3,12 @@ package kubepkg import ( "context" "fmt" - "github.com/octohelm/kubepkgspec/pkg/kubepkg" + "github.com/octohelm/kubepkgspec/pkg/object" "iter" "sort" "strings" "sync" - "github.com/pkg/errors" - "github.com/containerd/containerd/images" "github.com/google/go-containerregistry/pkg/name" v1 "github.com/google/go-containerregistry/pkg/v1" @@ -23,6 +21,7 @@ import ( kubepkgv1alpha1 "github.com/octohelm/kubepkgspec/pkg/apis/kubepkg/v1alpha1" "github.com/octohelm/kubepkgspec/pkg/workload" specv1 "github.com/opencontainers/image-spec/specs-go/v1" + "github.com/pkg/errors" ) const ( @@ -224,12 +223,11 @@ func (p *Packer) PackAsKubePkgImage(ctx context.Context, kpkg *kubepkgv1alpha1.K return nil, err } - manifests, err := kubepkg.Convert(kpkg) - if err != nil { - return nil, err - } - - workloadImages := workload.Images(manifests) + workloadImages := workload.Images(func(yield func(object.Object) bool) { + if !yield(kpkg) { + return + } + }) if len(p.Platforms) == 0 { for image := range workloadImages { diff --git a/pkg/kubepkg/packer_test.go b/pkg/kubepkg/packer_test.go index 6f45b8f..34fd9ad 100644 --- a/pkg/kubepkg/packer_test.go +++ b/pkg/kubepkg/packer_test.go @@ -1,11 +1,11 @@ package kubepkg import ( - _ "embed" - "context" + _ "embed" "encoding/json" "io" + "net/http/httptest" "os" "testing" @@ -20,20 +20,16 @@ import ( "github.com/octohelm/crkit/pkg/ocitar" kubepkgv1alpha1 "github.com/octohelm/kubepkgspec/pkg/apis/kubepkg/v1alpha1" testingx "github.com/octohelm/x/testing" - "net/http/httptest" ) //go:embed testdata/example.kubepkg.json var kubepkgExample []byte func Test(t *testing.T) { - kpkg := &kubepkgv1alpha1.KubePkg{} - _ = json.Unmarshal(kubepkgExample, kpkg) - imageIndex := mutate.AppendManifests( empty.Index, mutate.IndexAddendum{ - Add: must(random.Image(10, 3)), + Add: must(random.Image(10, 1)), Descriptor: v1.Descriptor{ Platform: &v1.Platform{ OS: "linux", @@ -42,7 +38,7 @@ func Test(t *testing.T) { }, }, mutate.IndexAddendum{ - Add: must(random.Image(10, 3)), + Add: must(random.Image(10, 1)), Descriptor: v1.Descriptor{ Platform: &v1.Platform{ OS: "linux", @@ -57,7 +53,7 @@ func Test(t *testing.T) { r, err := NewRegistry(s.URL) testingx.Expect(t, err, testingx.BeNil[error]()) - err = remote.Put( + err = remote.Push( r.Repo("docker.io/library/nginx").Tag("1.25.0-alpine"), imageIndex, ) @@ -74,6 +70,9 @@ func Test(t *testing.T) { c := cache.NewFilesystemCache("testdata/.tmp/cache") t.Run("with single arch", func(t *testing.T) { + kpkg := &kubepkgv1alpha1.KubePkg{} + _ = json.Unmarshal(kubepkgExample, kpkg) + p := &Packer{ Cache: c, CreatePuller: func(ref name.Reference, options ...remote.Option) (*remote.Puller, error) { @@ -94,6 +93,7 @@ func Test(t *testing.T) { i, err := p.PackAsKubePkgImage(ctx, kpkg) testingx.Expect(t, err, testingx.BeNil[error]()) + testingx.Expect(t, kpkg.Spec.Containers["web"].Image.Name, testingx.Be("docker.io/x/nginx")) layers, err := i.Layers() testingx.Expect(t, err, testingx.BeNil[error]()) @@ -167,24 +167,30 @@ func Test(t *testing.T) { testingx.Expect(t, len(layers), testingx.Be(2)) }) + filename := "testdata/.tmp/example.kubepkg.tar" + t.Run("should pack as index", func(t *testing.T) { + kpkg := &kubepkgv1alpha1.KubePkg{} + _ = json.Unmarshal(kubepkgExample, kpkg) + ctx := context.Background() idx, err := p.PackAsIndex(ctx, kpkg) testingx.Expect(t, err, testingx.BeNil[error]()) - err = writeAsOciTar("testdata/.tmp/example.kubepkg.tar", idx) + err = writeAsOciTar(filename, idx) testingx.Expect(t, err, testingx.BeNil[error]()) }) t.Run("should pack as index", func(t *testing.T) { + kpkg := &kubepkgv1alpha1.KubePkg{} + _ = json.Unmarshal(kubepkgExample, kpkg) + ctx := context.Background() idx, err := p.PackAsIndex(ctx, kpkg) testingx.Expect(t, err, testingx.BeNil[error]()) - filename := "testdata/.tmp/example.kubepkg.amd64.tar" - err = writeAsOciTar(filename, idx) testingx.Expect(t, err, testingx.BeNil[error]())