diff --git a/cmd/scw/testdata/test-all-usage-container-deploy-usage.golden b/cmd/scw/testdata/test-all-usage-container-deploy-usage.golden new file mode 100644 index 0000000000..73ba0060ff --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-container-deploy-usage.golden @@ -0,0 +1,24 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ +Automatically build and deploy a container. + +USAGE: + scw container deploy [arg=value ...] + +ARGS: + [name] Name of the application (defaults to build-source's directory name) + [dockerfile=Dockerfile] Path to the Dockerfile + [build-source=.] Path to the build context + [cache=true] Use cache when building the image + [port=8080] Port to expose + [namespace-id] Container Namespace ID to deploy to + [region=fr-par] Region to target. If none is passed will use default region from the config (fr-par | nl-ams | pl-waw | all) + +FLAGS: + -h, --help help for deploy + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-container-usage.golden b/cmd/scw/testdata/test-all-usage-container-usage.golden index c4572fda1f..d17dd4e318 100644 --- a/cmd/scw/testdata/test-all-usage-container-usage.golden +++ b/cmd/scw/testdata/test-all-usage-container-usage.golden @@ -12,6 +12,9 @@ AVAILABLE COMMANDS: namespace Namespace management commands token Token management commands +WORKFLOW COMMANDS: + deploy Deploy a container + FLAGS: -h, --help help for container diff --git a/docs/commands/container.md b/docs/commands/container.md index 5ba640418c..a1adcb117b 100644 --- a/docs/commands/container.md +++ b/docs/commands/container.md @@ -16,6 +16,7 @@ Containers API. - [Get a cron](#get-a-cron) - [List all your crons](#list-all-your-crons) - [Update an existing cron](#update-an-existing-cron) +- [Deploy a container](#deploy-a-container) - [Domain management commands](#domain-management-commands) - [Create a domain name binding](#create-a-domain-name-binding) - [Delete a domain name binding](#delete-a-domain-name-binding) @@ -329,6 +330,33 @@ scw container cron update [arg=value ...] +## Deploy a container + +Automatically build and deploy a container. + +Automatically build and deploy a container. + +**Usage:** + +``` +scw container deploy [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| name | | Name of the application (defaults to build-source's directory name) | +| dockerfile | Default: `Dockerfile` | Path to the Dockerfile | +| build-source | Default: `.` | Path to the build context | +| cache | Default: `true` | Use cache when building the image | +| port | Default: `8080` | Port to expose | +| namespace-id | | Container Namespace ID to deploy to | +| region | Default: `fr-par`
One of: `fr-par`, `nl-ams`, `pl-waw`, `all` | Region to target. If none is passed will use default region from the config | + + + ## Domain management commands Domain management commands. diff --git a/go.mod b/go.mod index d165d5249b..3c2e6350d8 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/chzyer/readline v1.5.1 github.com/containerd/console v1.0.3 github.com/dnaeon/go-vcr v1.2.0 + github.com/docker/docker v23.0.1+incompatible github.com/dustin/go-humanize v1.0.1 github.com/fatih/color v1.15.0 github.com/getsentry/raven-go v0.2.0 @@ -31,6 +32,8 @@ require ( ) require ( + cloud.google.com/go v0.57.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/alecthomas/colour v0.1.0 // indirect github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142 // indirect @@ -40,6 +43,8 @@ require ( github.com/containerd/typeurl v1.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-units v0.5.0 // indirect github.com/etdub/goparsetime v0.0.0-20160315173935-ea17b0ac3318 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -51,12 +56,18 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/klauspost/compress v1.15.12 // indirect + github.com/kr/text v0.2.0 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/moby/patternmatcher v0.5.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/sys/signal v0.7.0 // indirect + github.com/moby/term v0.0.0-20200312100748-672ec06f55cd // indirect github.com/morikuni/aec v1.0.0 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/opencontainers/image-spec v1.0.3-0.20220303224323-02efb9a75ee1 // indirect + github.com/opencontainers/runc v1.1.3 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect @@ -71,12 +82,14 @@ require ( go.opentelemetry.io/otel/trace v1.4.1 // indirect go.opentelemetry.io/proto/otlp v0.12.0 // indirect golang.org/x/crypto v0.2.0 // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/net v0.4.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/time v0.1.0 // indirect google.golang.org/genproto v0.0.0-20220706185917-7780775163c4 // indirect google.golang.org/grpc v1.50.1 // indirect google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect gopkg.in/yaml.v2 v2.4.0 // indirect + gotest.tools/v3 v3.4.0 // indirect ) diff --git a/go.sum b/go.sum index dfeb00a174..749dc493b2 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,31 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.57.0 h1:EpMNVUorLiZIELdMZbCYX/ByTFCdoYopYAGxaGVz9ms= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/hcsshim v0.9.6 h1:VwnDOgLeoi2du6dAznfmspNqTiwczvjv4K7NxuY9jsY= @@ -19,12 +43,17 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d h1:S2NE3iHSwP0XV47EEXL8mWmRdEfGscSJ+7EgePNgt0s= github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= +github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -47,7 +76,11 @@ github.com/containerd/stargz-snapshotter/estargz v0.13.0 h1:fD7AwuVV+B40p0d9qVkH github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -55,10 +88,14 @@ github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v23.0.0-rc.1+incompatible h1:Dmn88McWuHc7BSNN1s6RtfhMmt6ZPQAYUEf7FhqpiQI= +github.com/docker/docker v23.0.1+incompatible h1:vjgvJZxprTTE1A37nm+CLNAdwu6xZekyoiVlUZEINcY= +github.com/docker/docker v23.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -72,10 +109,14 @@ github.com/etdub/goparsetime v0.0.0-20160315173935-ea17b0ac3318 h1:iguwbR+9xsizl github.com/etdub/goparsetime v0.0.0-20160315173935-ea17b0ac3318/go.mod h1:O/QFFckzvu1KpS1AOuQGgi6ErznEF8nZZVNDDMXlDP4= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -84,6 +125,8 @@ github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= @@ -91,9 +134,17 @@ github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6x github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= @@ -107,19 +158,31 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= @@ -128,21 +191,28 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/in-toto/in-toto-golang v0.5.0 h1:hb8bgwr0M2hGdDsLjkJ3ZqJ8JFLL/tgYdAxF/XEFBbY= github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/karrick/tparse v2.4.2+incompatible h1:+cW306qKAzrASC5XieHkgN7/vPaGKIuK62Q7nI7DIRc= github.com/karrick/tparse v2.4.2+incompatible/go.mod h1:ASPA+vrIcN1uEW6BZg8vfWbzm69ODPSYZPU6qJyfdK0= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM= +github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kubernetes-client/go-base v0.0.0-20190205182333-3d0e39759d98 h1:ZMIkOkl/Bg5H4EJI7zbjVXAo4rV0QJOGz2U5A0xUmZU= github.com/kubernetes-client/go-base v0.0.0-20190205182333-3d0e39759d98/go.mod h1:HPlr4uJEfrxar3JUY9cmXs3oooPjTLO6nEaEAIt5LI8= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -165,18 +235,29 @@ github.com/moby/buildkit v0.11.4/go.mod h1:P5Qi041LvCfhkfYBHry+Rwoo3Wi6H971J2ggE github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI= github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd h1:aY7OQNf2XqY/JQ6qREWamhI/81os/agb2BAGpcx5yWI= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.3-0.20220303224323-02efb9a75ee1 h1:9iFHD5Kt9hkOfeawBNiEeEaV7bmC4/Z5wJp8E9BptMs= github.com/opencontainers/image-spec v1.0.3-0.20220303224323-02efb9a75ee1/go.mod h1:K/JAU0m27RFhDRX4PcFdIKntROP6y5Ed6O91aZYDQfs= github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/opencontainers/selinux v1.10.2 h1:NFy2xCsjn7+WspbfZkUd5zyVeisV7VFbPSP96+8/ha4= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/package-url/packageurl-go v0.1.1-0.20220428063043-89078438f170 h1:DiLBVp4DAcZlBVBEtJpNWZpZVq0AEeCY7Hqk8URVs4o= @@ -190,21 +271,27 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.15.0.20230323101524-c017498bf616 h1:7zcfy2f51uoLQyFzguQXa5rxDzyy8md6eWTuwFn3sis= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.15.0.20230323101524-c017498bf616/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/secure-systems-lab/go-securesystemslib v0.4.0 h1:b23VGrQhTA8cN2CbBw7/FulN9fTtqYUdS5+Oxzt+DUE= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shibumi/go-pathspec v1.3.0 h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh5dkI= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spdx/tools-golang v0.3.1-0.20230104082527-d6f58551be3f h1:9B623Cfs+mclYK6dsae7gLSwuIBHvlgmEup87qpqsAQ= github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -220,18 +307,26 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tonistiigi/fsutil v0.0.0-20230105215944-fb433841cbfa h1:XOFp/3aBXlqmOFAg3r6e0qQjPnK5I970LilqX+Is1W8= github.com/tonistiigi/fsutil v0.0.0-20230105215944-fb433841cbfa/go.mod h1:AvLEd1LEIl64G2Jpgwo7aVV5lGH0ePcKl0ygGIHNYl8= github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea h1:SXhTLE6pb6eld/v/cCndK0AMpt1wiVFb/YYmqB3/QG0= github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea/go.mod h1:WPnis/6cRcDZSUvVmezrxJPkiO87ThFYsoUiMwWNDJk= github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f h1:DLpt6B5oaaS8jyXHa9VA4rrZloBVPVXeCtrOsrFauxc= github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f/go.mod h1:ulncasL3N9uLrVann0m+CDlJKWsIAP34MPcOJF6VRvc= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 h1:n9b7AAdbQtQ0k9dm0Dm2/KUcUqtG8i2O15KzNaDze8c= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0/go.mod h1:LsankqVDx4W+RhZNA5uWarULII/MBhF5qwCYxTuyXjs= @@ -253,14 +348,40 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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/crypto v0.2.0 h1:BRXPfhNivWL5Yq0BGQ39a2sW6t44aODpfxkWjYdzewE= golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 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/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -269,35 +390,67 @@ golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -307,7 +460,9 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -316,39 +471,105 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20220706185917-7780775163c4 h1:7YDGQC/0sigNGzsEWyb9s72jTxlFdwVEYNJHbfQ+Dtg= google.golang.org/genproto v0.0.0-20220706185917-7780775163c4/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= @@ -373,8 +594,11 @@ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -385,6 +609,17 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 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 v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/internal/core/bootstrap.go b/internal/core/bootstrap.go index 78ca99b7b0..1038ac4f1e 100644 --- a/internal/core/bootstrap.go +++ b/internal/core/bootstrap.go @@ -139,7 +139,7 @@ func Bootstrap(config *BootstrapConfig) (exitCode int, result interface{}, err e httpClient := config.HTTPClient if httpClient == nil { httpClient = &http.Client{ - Transport: &retryableHTTPTransport{transport: http.DefaultTransport}, + Transport: &retryableHTTPTransport{transport: &SocketPassthroughTransport{}}, } } diff --git a/internal/core/socket_passthrough_transport.go b/internal/core/socket_passthrough_transport.go new file mode 100644 index 0000000000..a36ae37ff3 --- /dev/null +++ b/internal/core/socket_passthrough_transport.go @@ -0,0 +1,28 @@ +package core + +import ( + "context" + "fmt" + "net" + "net/http" +) + +var socketTransport = &http.Transport{} + +func init() { + socketTransport.DisableCompression = true + socketTransport.DialContext = func(_ context.Context, _, address string) (net.Conn, error) { + fmt.Println("Dialing", address) + return net.DialTimeout("unix", "/var/run/docker.sock", 32000000000) + } +} + +type SocketPassthroughTransport struct{} + +func (r *SocketPassthroughTransport) RoundTrip(request *http.Request) (*http.Response, error) { + if request.URL.Host == "/var/run/docker.sock" { + return socketTransport.RoundTrip(request) + } + + return http.DefaultTransport.RoundTrip(request) +} diff --git a/internal/core/testing.go b/internal/core/testing.go index 18f6280c09..b32150e9e9 100644 --- a/internal/core/testing.go +++ b/internal/core/testing.go @@ -225,7 +225,7 @@ func createTestClient(t *testing.T, testConfig *TestConfig, httpClient *http.Cli scw.WithDefaultProjectID("11111111-1111-1111-1111-111111111111"), scw.WithUserAgent("cli-e2e-test"), scw.WithHTTPClient(&http.Client{ - Transport: &retryableHTTPTransport{transport: http.DefaultTransport}, + Transport: &retryableHTTPTransport{transport: &SocketPassthroughTransport{}}, }), } @@ -699,7 +699,7 @@ func getHTTPRecoder(t *testing.T, update bool) (client *http.Client, cleanup fun } // Setup recorder and scw client - r, err := recorder.NewAsMode(getTestFilePath(t, ".cassette"), recorderMode, nil) + r, err := recorder.NewAsMode(getTestFilePath(t, ".cassette"), recorderMode, &SocketPassthroughTransport{}) if err != nil { return nil, nil, err } @@ -713,6 +713,14 @@ func getHTTPRecoder(t *testing.T, update bool) (client *http.Client, cleanup fun return nil }) + r.SetMatcher(func(r *http.Request, i cassette.Request) bool { + if r.URL.Host == "//./pipe/docker_engine" { + r.URL.Host = "/var/run/docker.sock" + } + + return cassette.DefaultMatcher(r, i) + }) + return &http.Client{Transport: &retryableHTTPTransport{transport: r}}, func() { assert.NoError(t, r.Stop()) // Make sure recorder is stopped once done with it }, nil diff --git a/internal/namespaces/container/v1beta1/custom.go b/internal/namespaces/container/v1beta1/custom.go index 301752419f..b420f01b37 100644 --- a/internal/namespaces/container/v1beta1/custom.go +++ b/internal/namespaces/container/v1beta1/custom.go @@ -15,5 +15,7 @@ func GetCommands() *core.Commands { cmds.MustFind("container", "container", "deploy").Override(containerContainerDeployBuilder) + cmds.Add(containerDeployCommand()) + return cmds } diff --git a/internal/namespaces/container/v1beta1/custom_deploy.go b/internal/namespaces/container/v1beta1/custom_deploy.go new file mode 100644 index 0000000000..411034951c --- /dev/null +++ b/internal/namespaces/container/v1beta1/custom_deploy.go @@ -0,0 +1,378 @@ +package container + +import ( + "context" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "io" + "path/filepath" + "reflect" + "time" + + dockertypes "github.com/docker/docker/api/types" + docker "github.com/docker/docker/client" + "github.com/docker/docker/pkg/archive" + "github.com/docker/docker/pkg/jsonmessage" + "github.com/fatih/color" + "github.com/scaleway/scaleway-cli/v2/internal/core" + "github.com/scaleway/scaleway-cli/v2/internal/namespaces/container/v1beta1/getorcreate" + "github.com/scaleway/scaleway-cli/v2/internal/tasks" + "github.com/scaleway/scaleway-cli/v2/internal/terminal" + container "github.com/scaleway/scaleway-sdk-go/api/container/v1beta1" + "github.com/scaleway/scaleway-sdk-go/api/registry/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +type containerDeployRequest struct { + Region scw.Region + + Name string + Dockerfile string + BuildSource string + Cache bool + + NamespaceID *string + Port uint32 +} + +func containerDeployCommand() *core.Command { + return &core.Command{ + Short: `Deploy a container`, + Long: `Automatically build and deploy a container.`, + Namespace: "container", + Resource: "deploy", + Groups: []string{"workflow"}, + ArgsType: reflect.TypeOf(containerDeployRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "name", + Short: "Name of the application (defaults to build-source's directory name)", + }, + { + Name: "dockerfile", + Short: "Path to the Dockerfile", + Default: core.DefaultValueSetter("Dockerfile"), + }, + { + Name: "build-source", + Short: "Path to the build context", + Default: core.DefaultValueSetter("."), + }, + { + Name: "cache", + Short: "Use cache when building the image", + Default: core.DefaultValueSetter("true"), + }, + { + Name: "port", + Short: "Port to expose", + Default: core.DefaultValueSetter("8080"), + }, + { + Name: "namespace-id", + Short: "Container Namespace ID to deploy to", + }, + core.RegionArgSpec(scw.RegionFrPar, scw.RegionNlAms, scw.RegionPlWaw, scw.Region(core.AllLocalities)), + }, + Run: containerDeployRun, + } +} + +func containerDeployRun(ctx context.Context, argsI interface{}) (i interface{}, e error) { + args := argsI.(*containerDeployRequest) + buildSource, err := filepath.Abs(args.BuildSource) + if err != nil { + return nil, err + } + args.BuildSource = buildSource + + if args.Name == "" { + args.Name = filepath.Base(args.BuildSource) + if args.Name == "." { + return nil, fmt.Errorf("unable to determine application name, please specify it with name=") + } + + args.Name = "app-" + args.Name + } + + client := core.ExtractClient(ctx) + api := container.NewAPI(client) + + actions := tasks.Begin() + + if args.NamespaceID != nil { + tasks.Add(actions, "Fetching namespace", DeployStepFetchNamespace) + } else { + tasks.Add(actions, "Creating namespace", DeployStepCreateNamespace) + } + + tasks.Add(actions, "Fetch or create image registry", DeployStepFetchOrCreateRegistry) + tasks.Add(actions, "Packing image", DeployStepPackImage) + tasks.Add(actions, "Building image", DeployStepBuildImage) + tasks.Add(actions, "Pushing image", DeployStepPushImage) + tasks.Add(actions, "Creating container", DeployStepCreateContainer) + tasks.Add(actions, "Deploying container", DeployStepDeployContainer) + + result, err := actions.Execute(ctx, &DeployStepData{ + Client: client, + API: api, + Args: args, + }) + if err != nil { + return nil, err + } + + container := result.(*DeployStepDeployContainerResponse).Container + return fmt.Sprintln(terminal.Style("Your application is now available at", color.FgGreen), terminal.Style("https://"+container.DomainName, color.FgGreen, color.Bold)), nil +} + +type DeployStepData struct { + Client *scw.Client + API *container.API + Args *containerDeployRequest +} + +type DeployStepCreateNamespaceResponse struct { + *DeployStepData + Namespace *container.Namespace +} + +func DeployStepFetchNamespace(t *tasks.Task, data *DeployStepData) (*DeployStepCreateNamespaceResponse, error) { + namespace, err := data.API.GetNamespace(&container.GetNamespaceRequest{ + Region: data.Args.Region, + NamespaceID: *data.Args.NamespaceID, + }, scw.WithContext(t.Ctx)) + if err != nil { + return nil, fmt.Errorf("could not fetch namespace: %w", err) + } + + return &DeployStepCreateNamespaceResponse{ + DeployStepData: data, + Namespace: namespace, + }, nil +} + +func DeployStepCreateNamespace(t *tasks.Task, data *DeployStepData) (*DeployStepCreateNamespaceResponse, error) { + namespace, err := getorcreate.Namespace(t.Ctx, data.API, data.Args.Region, data.Args.Name) + if err != nil { + return nil, err + } + + return &DeployStepCreateNamespaceResponse{ + DeployStepData: data, + Namespace: namespace, + }, nil +} + +type DeployStepFetchOrCreateResponse struct { + *DeployStepData + Namespace *container.Namespace + RegistryEndpoint string +} + +func DeployStepFetchOrCreateRegistry(t *tasks.Task, data *DeployStepCreateNamespaceResponse) (*DeployStepFetchOrCreateResponse, error) { + registryEndpoint := data.Namespace.RegistryEndpoint + if registryEndpoint == "" { + registryAPI := registry.NewAPI(data.Client) + registryNamespace, err := getorcreate.Registry(t.Ctx, registryAPI, data.Args.Region, data.Namespace.Name) + if err != nil { + return nil, err + } + + registryEndpoint = registryNamespace.Endpoint + } + + return &DeployStepFetchOrCreateResponse{ + DeployStepData: data.DeployStepData, + Namespace: data.Namespace, + RegistryEndpoint: registryEndpoint, + }, nil +} + +type DeployStepPackImageResponse struct { + *DeployStepData + Namespace *container.Namespace + RegistryEndpoint string + Tar io.Reader +} + +func DeployStepPackImage(_ *tasks.Task, data *DeployStepFetchOrCreateResponse) (*DeployStepPackImageResponse, error) { + tar, err := archive.TarWithOptions(data.Args.BuildSource, &archive.TarOptions{}) + if err != nil { + return nil, fmt.Errorf("could not create tar: %w", err) + } + + return &DeployStepPackImageResponse{ + DeployStepData: data.DeployStepData, + Namespace: data.Namespace, + RegistryEndpoint: data.RegistryEndpoint, + Tar: tar, + }, nil +} + +type DeployStepBuildImageResponse struct { + *DeployStepData + Namespace *container.Namespace + Tag string + DockerClient *docker.Client +} + +func DeployStepBuildImage(t *tasks.Task, data *DeployStepPackImageResponse) (*DeployStepBuildImageResponse, error) { + tag := data.RegistryEndpoint + "/" + data.Args.Name + ":latest" + + httpClient := core.ExtractHTTPClient(t.Ctx) + dockerClient, err := docker.NewClientWithOpts(docker.FromEnv, docker.WithAPIVersionNegotiation(), docker.WithHTTPClient(httpClient)) + if err != nil { + return nil, fmt.Errorf("could not connect to Docker: %w", err) + } + + imageBuildResponse, err := dockerClient.ImageBuild(t.Ctx, data.Tar, dockertypes.ImageBuildOptions{ + Dockerfile: data.Args.Dockerfile, + Tags: []string{tag}, + NoCache: !data.Args.Cache, + }) + if err != nil { + return nil, fmt.Errorf("could not build image: %w", errors.Unwrap(err)) + } + defer imageBuildResponse.Body.Close() + + err = jsonmessage.DisplayJSONMessagesStream(imageBuildResponse.Body, t.Logs, t.Logs.Fd(), true, nil) + if err != nil { + if jerr, ok := err.(*jsonmessage.JSONError); ok { + // If no error code is set, default to 1 + if jerr.Code == 0 { + jerr.Code = 1 + } + return nil, fmt.Errorf("docker build failed with error code %d: %s", jerr.Code, jerr.Message) + } + + return nil, err + } + + return &DeployStepBuildImageResponse{ + DeployStepData: data.DeployStepData, + Namespace: data.Namespace, + Tag: tag, + DockerClient: dockerClient, + }, nil +} + +type DeployStepPushImageResponse struct { + *DeployStepData + Namespace *container.Namespace + Tag string +} + +func DeployStepPushImage(t *tasks.Task, data *DeployStepBuildImageResponse) (*DeployStepPushImageResponse, error) { + accessKey, _ := data.Client.GetAccessKey() + secretKey, _ := data.Client.GetSecretKey() + authConfig := dockertypes.AuthConfig{ + ServerAddress: data.Namespace.RegistryEndpoint, + Username: accessKey, + Password: secretKey, + } + + encodedJSON, err := json.Marshal(authConfig) + if err != nil { + return nil, fmt.Errorf("could not marshal auth config: %w", err) + } + + authStr := base64.URLEncoding.EncodeToString(encodedJSON) + + imagePushResponse, err := data.DockerClient.ImagePush(t.Ctx, data.Tag, dockertypes.ImagePushOptions{ + RegistryAuth: authStr, + }) + if err != nil { + return nil, fmt.Errorf("could not push image: %w", err) + } + defer imagePushResponse.Close() + + err = jsonmessage.DisplayJSONMessagesStream(imagePushResponse, t.Logs, t.Logs.Fd(), true, nil) + if err != nil { + if jerr, ok := err.(*jsonmessage.JSONError); ok { + // If no error code is set, default to 1 + if jerr.Code == 0 { + jerr.Code = 1 + } + return nil, fmt.Errorf("docker build failed with error code %d: %s", jerr.Code, jerr.Message) + } + + return nil, err + } + + return &DeployStepPushImageResponse{ + DeployStepData: data.DeployStepData, + Namespace: data.Namespace, + Tag: data.Tag, + }, nil +} + +type DeployStepCreateContainerResponse struct { + *DeployStepData + Container *container.Container +} + +func DeployStepCreateContainer(t *tasks.Task, data *DeployStepPushImageResponse) (*DeployStepCreateContainerResponse, error) { + targetContainer, err := getorcreate.Container(t.Ctx, data.API, data.Args.Region, data.Namespace.ID, data.Args.Name) + if err != nil { + return nil, fmt.Errorf("could not get or create container: %w", err) + } + + _, err = data.API.UpdateContainer(&container.UpdateContainerRequest{ + Region: data.Args.Region, + ContainerID: targetContainer.ID, + RegistryImage: &data.Tag, + Port: scw.Uint32Ptr(data.Args.Port), + Redeploy: scw.BoolPtr(false), + }, scw.WithContext(t.Ctx)) + if err != nil { + return nil, fmt.Errorf("could not update container: %w", err) + } + + targetContainer, err = data.API.WaitForContainer(&container.WaitForContainerRequest{ + Region: data.Args.Region, + ContainerID: targetContainer.ID, + Timeout: scw.TimeDurationPtr(12*time.Minute + 30*time.Second), + RetryInterval: core.DefaultRetryInterval, + }, scw.WithContext(t.Ctx)) + if err != nil { + return nil, fmt.Errorf("failed to deploy container: %w", err) + } + + return &DeployStepCreateContainerResponse{ + DeployStepData: data.DeployStepData, + Container: targetContainer, + }, nil +} + +type DeployStepDeployContainerResponse struct { + *DeployStepData + Container *container.Container +} + +func DeployStepDeployContainer(t *tasks.Task, data *DeployStepCreateContainerResponse) (*DeployStepDeployContainerResponse, error) { + targetContainer, err := data.API.DeployContainer(&container.DeployContainerRequest{ + Region: data.Args.Region, + ContainerID: data.Container.ID, + }, scw.WithContext(t.Ctx)) + if err != nil { + return nil, fmt.Errorf("could not deploy container: %w", err) + } + + targetContainer, err = data.API.WaitForContainer(&container.WaitForContainerRequest{ + Region: data.Args.Region, + ContainerID: targetContainer.ID, + Timeout: scw.TimeDurationPtr(12*time.Minute + 30*time.Second), + RetryInterval: core.DefaultRetryInterval, + }, scw.WithContext(t.Ctx)) + if err != nil { + return nil, fmt.Errorf("failed to deploy container: %w", err) + } + + return &DeployStepDeployContainerResponse{ + DeployStepData: data.DeployStepData, + Container: targetContainer, + }, nil +} diff --git a/internal/namespaces/container/v1beta1/custom_deploy_test.go b/internal/namespaces/container/v1beta1/custom_deploy_test.go new file mode 100644 index 0000000000..8190b8fe84 --- /dev/null +++ b/internal/namespaces/container/v1beta1/custom_deploy_test.go @@ -0,0 +1,169 @@ +package container + +import ( + "fmt" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/scaleway/scaleway-cli/v2/internal/core" + registrycmds "github.com/scaleway/scaleway-cli/v2/internal/namespaces/registry/v1" + container "github.com/scaleway/scaleway-sdk-go/api/container/v1beta1" + registry "github.com/scaleway/scaleway-sdk-go/api/registry/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +var ( + indexHTML = strings.TrimSpace(` + + + +My container + + +

Deployed with scw container deploy

+ + + `) + nginxDockerfile = strings.TrimSpace(` +FROM nginx:alpine +RUN apk add --no-cache curl git bash +COPY ./index.html /usr/share/nginx/html/index.html +EXPOSE 80 + `) +) + +func Test_Deploy(t *testing.T) { + appName := "cli-test-container-deploy" + path := t.TempDir() + + commands := GetCommands() + commands.Merge(registrycmds.GetCommands()) + + t.Run("Simple", core.Test(&core.TestConfig{ + Commands: commands, + BeforeFunc: core.BeforeFuncCombine( + func(ctx *core.BeforeFuncCtx) error { + // Create index.html + err := os.WriteFile(filepath.Join(path, "index.html"), []byte(indexHTML), 0600) + if err != nil { + return err + } + return nil + }, + func(ctx *core.BeforeFuncCtx) error { + // Create Dockerfile + err := os.WriteFile(filepath.Join(path, "Dockerfile"), []byte(nginxDockerfile), 0600) + if err != nil { + return err + } + return nil + }, + ), + Cmd: fmt.Sprintf("scw container deploy name=%s build-source=%s port=80", appName, path), + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: core.AfterFuncCombine( + testDeleteContainersNamespaceAfter(appName), + testDeleteRegistryAfter(appName), + ), + DisableParallel: true, + })) + + t.Run("App name deduced from path", core.Test(&core.TestConfig{ + Commands: commands, + BeforeFunc: core.BeforeFuncCombine( + func(ctx *core.BeforeFuncCtx) error { + // Create directory + err := os.Mkdir(filepath.Join(path, "cli-test-deploy-poney"), 0700) + if err != nil { + return err + } + return nil + }, + func(ctx *core.BeforeFuncCtx) error { + // Create index.html + err := os.WriteFile(filepath.Join(path, "cli-test-deploy-poney", "index.html"), []byte(indexHTML), 0600) + if err != nil { + return err + } + return nil + }, + func(ctx *core.BeforeFuncCtx) error { + // Create Dockerfile + err := os.WriteFile(filepath.Join(path, "cli-test-deploy-poney", "Dockerfile"), []byte(nginxDockerfile), 0600) + if err != nil { + return err + } + return nil + }, + ), + Cmd: fmt.Sprintf("scw container deploy build-source=%s/cli-test-deploy-poney port=80", path), + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + AfterFunc: core.AfterFuncCombine( + testDeleteContainersNamespaceAfter("app-cli-test-deploy-poney"), + testDeleteRegistryAfter("app-cli-test-deploy-poney"), + ), + DisableParallel: true, + })) +} + +func testDeleteContainersNamespaceAfter(appName string) func(*core.AfterFuncCtx) error { + return func(ctx *core.AfterFuncCtx) error { + api := container.NewAPI(ctx.Client) + + namespaces, err := api.ListNamespaces(&container.ListNamespacesRequest{ + Name: &appName, + }, scw.WithAllPages()) + if err != nil { + return err + } + + var namespaceID string + for _, namespace := range namespaces.Namespaces { + if namespace.Name == appName { + namespaceID = namespace.ID + break + } + } + + if namespaceID == "" { + return fmt.Errorf("namespace not found") + } + + return core.ExecAfterCmd(fmt.Sprintf("scw container namespace delete %s", namespaceID))(ctx) + } +} + +func testDeleteRegistryAfter(appName string) func(*core.AfterFuncCtx) error { + return func(ctx *core.AfterFuncCtx) error { + api := registry.NewAPI(ctx.Client) + + registries, err := api.ListNamespaces(®istry.ListNamespacesRequest{ + Name: &appName, + }, scw.WithAllPages()) + if err != nil { + return err + } + + var registryID string + for _, registry := range registries.Namespaces { + if registry.Name == appName { + registryID = registry.ID + break + } + } + + if registryID == "" { + return nil + } + + return core.ExecAfterCmd(fmt.Sprintf("scw registry namespace delete %s", registryID))(ctx) + } +} diff --git a/internal/namespaces/container/v1beta1/getorcreate/getorcreate.go b/internal/namespaces/container/v1beta1/getorcreate/getorcreate.go new file mode 100644 index 0000000000..5c92a370b3 --- /dev/null +++ b/internal/namespaces/container/v1beta1/getorcreate/getorcreate.go @@ -0,0 +1,113 @@ +package getorcreate + +import ( + "context" + + container "github.com/scaleway/scaleway-sdk-go/api/container/v1beta1" + "github.com/scaleway/scaleway-sdk-go/api/registry/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +func Namespace(ctx context.Context, api *container.API, region scw.Region, name string) (*container.Namespace, error) { + listNamespacesResponse, err := api.ListNamespaces(&container.ListNamespacesRequest{ + Region: region, + Name: &name, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + namespaces := listNamespacesResponse.Namespaces + + var matchingNamespace *container.Namespace + for _, namespace := range namespaces { + if namespace.Name == name { + matchingNamespace = namespace + break + } + } + + if matchingNamespace != nil { + return matchingNamespace, nil + } + + namespace, err := api.CreateNamespace(&container.CreateNamespaceRequest{ + Region: region, + Name: name, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + return namespace, nil +} + +func Container(ctx context.Context, api *container.API, region scw.Region, namespaceID string, name string) (*container.Container, error) { + listContainersResponse, err := api.ListContainers(&container.ListContainersRequest{ + Region: region, + NamespaceID: namespaceID, + Name: &name, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + containers := listContainersResponse.Containers + + var matchingContainer *container.Container + for _, container := range containers { + if container.Name == name { + matchingContainer = container + break + } + } + + if matchingContainer != nil { + return matchingContainer, nil + } + + container, err := api.CreateContainer(&container.CreateContainerRequest{ + Region: region, + NamespaceID: namespaceID, + Name: name, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + return container, nil +} + +func Registry(ctx context.Context, api *registry.API, region scw.Region, name string) (*registry.Namespace, error) { + listNamespacesResponse, err := api.ListNamespaces(®istry.ListNamespacesRequest{ + Region: region, + Name: &name, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + registries := listNamespacesResponse.Namespaces + + var matchingNamespace *registry.Namespace + for _, namespace := range registries { + if namespace.Name == name { + matchingNamespace = namespace + break + } + } + + if matchingNamespace != nil { + return matchingNamespace, nil + } + + namespace, err := api.CreateNamespace(®istry.CreateNamespaceRequest{ + Region: region, + Name: name, + }, scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + return namespace, nil +} diff --git a/internal/namespaces/container/v1beta1/testdata/test-deploy-app-name-deduced-from-path.cassette.yaml b/internal/namespaces/container/v1beta1/testdata/test-deploy-app-name-deduced-from-path.cassette.yaml new file mode 100644 index 0000000000..dc63b5774c --- /dev/null +++ b/internal/namespaces/container/v1beta1/testdata/test-deploy-app-name-deduced-from-path.cassette.yaml @@ -0,0 +1,1883 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces?name=app-cli-test-deploy-poney&order_by=created_at_asc + method: GET + response: + body: '{"namespaces":[], "total_count":0}' + headers: + Content-Length: + - "34" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5b62915f-4734-4ebc-aa9d-52b3f2ab971f + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"app-cli-test-deploy-poney","environment_variables":null,"project_id":"105bdce1-64c0-48ab-899d-868455867ecf","description":null,"secret_environment_variables":null}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces + method: POST + response: + body: '{"id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "name":"app-cli-test-deploy-poney", + "environment_variables":{}, "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"pending", "registry_namespace_id":"", + "error_message":null, "registry_endpoint":"", "description":"", "secret_environment_variables":[], + "region":"fr-par"}' + headers: + Content-Length: + - "386" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 75284dca-fbc2-4a5d-ab68-b16e17224b05 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces?name=app-cli-test-deploy-poney&order_by=created_at_asc + method: GET + response: + body: '{"namespaces":[], "total_count":0}' + headers: + Content-Length: + - "34" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - efb5fd1f-7808-4143-8cdc-a6f0793707e4 + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"app-cli-test-deploy-poney","description":"","project_id":"105bdce1-64c0-48ab-899d-868455867ecf","is_public":false}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces + method: POST + response: + body: '{"id":"f0aaa97a-7838-4fdf-8580-5fdf611a6f19", "name":"app-cli-test-deploy-poney", + "description":"", "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"ready", "status_message":"", + "endpoint":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney", "is_public":false, + "size":0, "created_at":"2023-03-23T13:21:16.489642991Z", "updated_at":"2023-03-23T13:21:16.489642991Z", + "image_count":0, "region":"fr-par"}' + headers: + Content-Length: + - "468" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 98884692-4cb4-49af-be7c-f9cdba356f20 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: {} + url: http://%2Fvar%2Frun%2Fdocker.sock/_ping + method: HEAD + response: + body: "" + headers: + Api-Version: + - "1.41" + Builder-Version: + - "2" + Cache-Control: + - no-cache, no-store, must-revalidate + Content-Type: + - text/plain; charset=utf-8 + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Docker-Experimental: + - "false" + Ostype: + - linux + Pragma: + - no-cache + Server: + - Docker/20.10.23 (linux) + status: 200 OK + code: 200 + duration: "" +- request: + body: "Dockerfile\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00100600\00000765\00000024\000000000163\014407051113\0011253\0 + 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ustar\000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00000000\00000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0FROM + nginx:alpine\nRUN apk add --no-cache curl git bash\nCOPY ./index.html /usr/share/nginx/html/index.html\nEXPOSE + 80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0index.html\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00100600\00000765\00000024\000000000204\014407051113\0011252\0 + 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ustar\000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00000000\00000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\n\nMy container\n\n\n

Deployed + with scw container deploy

\n\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + form: {} + headers: + Content-Type: + - application/x-tar + X-Registry-Config: + - bnVsbA== + url: http://%2Fvar%2Frun%2Fdocker.sock/v1.41/build?buildargs=null&cachefrom=null&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=null&memory=0&memswap=0&networkmode=&rm=0&shmsize=0&t=rg.fr-par.scw.cloud%2Fapp-cli-test-deploy-poney%2Fapp-cli-test-deploy-poney%3Alatest&target=&ulimits=null&version= + method: POST + response: + body: "{\"stream\":\"Step 1/4 : FROM nginx:alpine\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" + ---\\u003e 2bc7edbc3cf2\\n\"}\r\n{\"stream\":\"Step 2/4 : RUN apk add --no-cache + curl git bash\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" ---\\u003e Using + cache\\n\"}\r\n{\"stream\":\" ---\\u003e 5dc8f0ca0e1c\\n\"}\r\n{\"stream\":\"Step + 3/4 : COPY ./index.html /usr/share/nginx/html/index.html\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" + ---\\u003e Using cache\\n\"}\r\n{\"stream\":\" ---\\u003e 30cfedb49549\\n\"}\r\n{\"stream\":\"Step + 4/4 : EXPOSE 80\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" ---\\u003e Using + cache\\n\"}\r\n{\"stream\":\" ---\\u003e 337c24e2fe3d\\n\"}\r\n{\"aux\":{\"ID\":\"sha256:337c24e2fe3d7952e6b3c3f0f8b41bf89ae1de0146e9abad71197c3821678413\"}}\r\n{\"stream\":\"Successfully + built 337c24e2fe3d\\n\"}\r\n{\"stream\":\"Successfully tagged rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest\\n\"}\r\n" + headers: + Api-Version: + - "1.41" + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Docker-Experimental: + - "false" + Ostype: + - linux + Server: + - Docker/20.10.23 (linux) + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Content-Type: + - text/plain + X-Registry-Auth: + - eyJ1c2VybmFtZSI6IlNDVzAxTlRKVzk5MEE3UUs4NUQ3IiwicGFzc3dvcmQiOiJkY2M1YzI1NC1kOGQyLTQ3NmYtYmNkYi1iOTQ2N2Y1NTY1MzIifQ== + url: http://%2Fvar%2Frun%2Fdocker.sock/v1.41/images/rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney/push?tag=latest + method: POST + response: + body: "{\"status\":\"The push refers to repository [rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney]\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"26c27aac52a3\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"dac7b9db7b5b\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"042cd3f87f43\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"f1bee861c2ba\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"c4d67a5827ca\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"152a948bab3b\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"5e59460a18a3\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"d8a5a02a8c2d\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"7cd52847ad77\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"152a948bab3b\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"5e59460a18a3\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"d8a5a02a8c2d\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"7cd52847ad77\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"26c27aac52a3\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"c4d67a5827ca\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"dac7b9db7b5b\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"042cd3f87f43\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"f1bee861c2ba\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"152a948bab3b\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"7cd52847ad77\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"d8a5a02a8c2d\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"5e59460a18a3\"}\r\n{\"status\":\"latest: + digest: sha256:3cd36773cda1e44ff5124881217c06f546f0f92c744277152213efd39a24bc34 + size: 2199\"}\r\n{\"progressDetail\":{},\"aux\":{\"Tag\":\"latest\",\"Digest\":\"sha256:3cd36773cda1e44ff5124881217c06f546f0f92c744277152213efd39a24bc34\",\"Size\":2199}}\r\n" + headers: + Api-Version: + - "1.41" + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:16 GMT + Docker-Experimental: + - "false" + Ostype: + - linux + Server: + - Docker/20.10.23 (linux) + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers?name=app-cli-test-deploy-poney&namespace_id=097f0620-0ec5-4c8f-b472-b11fd6a7ec1f&order_by=created_at_asc + method: GET + response: + body: '{"containers":[], "total_count":0}' + headers: + Content-Length: + - "34" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:25 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - cd640bd6-7ffe-4e2f-881b-733e27c2a05c + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f","name":"app-cli-test-deploy-poney","environment_variables":null,"min_scale":null,"max_scale":null,"memory_limit":null,"timeout":null,"privacy":"unknown_privacy","description":null,"registry_image":null,"max_concurrency":null,"protocol":"unknown_protocol","port":null,"secret_environment_variables":null,"http_option":"unknown_http_option"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers + method: POST + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"created", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/funcscwappclitestdeployponelvzngnoz/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":8080, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "675" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:25 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 534a16da-e35a-4e42-bb85-d89f7d45681b + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"environment_variables":null,"min_scale":null,"max_scale":null,"memory_limit":null,"timeout":null,"redeploy":false,"privacy":"unknown_privacy","description":null,"registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest","max_concurrency":null,"protocol":"unknown_protocol","port":80,"secret_environment_variables":null,"http_option":"unknown_http_option"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: PATCH + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"created", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:26 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 143f0f2a-5760-4109-be6f-fc7aac5c2083 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"created", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:26 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 397048ed-71d1-4460-8ff3-2f356a1201cf + status: 200 OK + code: 200 + duration: "" +- request: + body: '{}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d/deploy + method: POST + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:26 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8b0bd0a6-346f-42a4-8e98-7476dd47d8cc + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:26 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - efa01f43-e46a-4c5c-a89d-ad3b5614a770 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:31 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 450117b0-3fd5-4135-aedd-163aed21f08c + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:36 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a13a58b0-e2f5-47e7-b4c1-d3c3080fdba1 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:41 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 1701e6cf-67df-4741-b744-9db487e0ab0c + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:46 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 60df8957-abcd-4c2d-b680-5a960efe4fda + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:51 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - b88bb368-b6ee-47df-bd24-0a110d10cdbd + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:56 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0ff2e115-2eb5-4ac6-a2e4-f55e422e2e79 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:01 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - d1156cae-7c6d-45a4-8d31-113e8e5c78eb + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:06 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 41935b4b-4d93-4071-a986-97b77086862c + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:11 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8f8dee56-1aac-4d84-9e82-fdf10621275f + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:16 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 4f451934-96b2-44d5-8224-064098d7da7b + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:22 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0f998cc0-24e3-4f52-ad71-875ccc2ee1cd + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:27 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a7957678-7633-4f48-a60b-f4f4d01005de + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:32 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 2a5de799-353c-493a-a878-15e242750f9c + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:37 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 654f68dd-7a1e-4e79-b282-e067bb1f7f30 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:42 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 691b1e2f-29c4-4cbb-b894-ced08d11595d + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:47 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 51e9cf11-6ada-4523-89db-b225b7e4d2df + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:52 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - acff84eb-034b-415d-a9a1-530abe0ad6b6 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:22:57 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - d0f44a46-ea4d-45f4-8e6a-4d56575e6908 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:02 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 68b629fe-f91f-4ab1-9d8a-c089594931f9 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:07 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - c00f71a0-26a4-4a19-b243-c8a93e61820d + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:12 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 9b18f5c2-8877-4e44-b0f8-4f1e467a642f + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:17 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a2e1b003-a64b-47f6-a06c-b51ef6f01dad + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:22 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 4b5844ac-a9c8-4ff8-abfe-5962a8689a36 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:27 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3ee9ee00-9eb5-4f6e-8878-017e49d25a76 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:32 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - e6116d83-8af5-466c-aaae-99f2695ef94d + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:37 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - dbd3d562-5ffd-4e8e-a065-a65ec22c23b8 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:43 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0ddedb58-ac04-4e99-a538-622b3fe962cb + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:48 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a6aab4c6-7f88-457c-b93e-56fb8e80b25b + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:53 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 94efba9e-c7d8-416c-ae07-6ce71e46507b + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:23:58 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 58c30cf2-6dff-43d8-80af-83569d3ebd2f + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:03 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 902687c2-2426-4c90-8c49-5305b38f6341 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:08 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 30fd82e7-21dc-4596-a6d4-5b82b371304b + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/61fda0c9-6fbf-4a0e-a607-75ed46ce960d + method: GET + response: + body: '{"id":"61fda0c9-6fbf-4a0e-a607-75ed46ce960d", "name":"app-cli-test-deploy-poney", + "namespace_id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "status":"ready", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney/app-cli-test-deploy-poney:latest", + "max_concurrency":50, "domain_name":"appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "661" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:13 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 888cba78-a609-420a-978c-5d93b3bdf4c4 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces?name=app-cli-test-deploy-poney&order_by=created_at_asc&page=1 + method: GET + response: + body: '{"namespaces":[{"id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "name":"app-cli-test-deploy-poney", + "environment_variables":{}, "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"ready", "registry_namespace_id":"693e37bf-4bba-4b48-a052-b16319588823", + "error_message":null, "registry_endpoint":"rg.fr-par.scw.cloud/funcscwappclitestdeployponelvzngnoz", + "description":"", "secret_environment_variables":[], "region":"fr-par"}], "total_count":1}' + headers: + Content-Length: + - "509" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:13 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - f922765b-b9df-4a40-a5c5-668d902ad7e9 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces/097f0620-0ec5-4c8f-b472-b11fd6a7ec1f + method: DELETE + response: + body: '{"id":"097f0620-0ec5-4c8f-b472-b11fd6a7ec1f", "name":"app-cli-test-deploy-poney", + "environment_variables":{}, "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"deleting", "registry_namespace_id":"693e37bf-4bba-4b48-a052-b16319588823", + "error_message":null, "registry_endpoint":"rg.fr-par.scw.cloud/funcscwappclitestdeployponelvzngnoz", + "description":"", "secret_environment_variables":[], "region":"fr-par"}' + headers: + Content-Length: + - "478" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:13 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3ee3b5e0-9559-4c15-affc-0aaa8032d3fc + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces?name=app-cli-test-deploy-poney&order_by=created_at_asc&page=1 + method: GET + response: + body: '{"namespaces":[{"id":"f0aaa97a-7838-4fdf-8580-5fdf611a6f19", "name":"app-cli-test-deploy-poney", + "description":"", "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"ready", "status_message":"", + "endpoint":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney", "is_public":false, + "size":20430837, "created_at":"2023-03-23T13:21:16.489643Z", "updated_at":"2023-03-23T13:21:35.224873Z", + "image_count":1, "region":"fr-par"}], "total_count":1}' + headers: + Content-Length: + - "503" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:13 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - b3a38659-6e63-4de1-9d7c-d1c49a8862cb + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces/f0aaa97a-7838-4fdf-8580-5fdf611a6f19 + method: DELETE + response: + body: '{"id":"f0aaa97a-7838-4fdf-8580-5fdf611a6f19", "name":"app-cli-test-deploy-poney", + "description":"", "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"deleting", "status_message":"", + "endpoint":"rg.fr-par.scw.cloud/app-cli-test-deploy-poney", "is_public":false, + "size":20430837, "created_at":"2023-03-23T13:21:16.489643Z", "updated_at":"2023-03-23T13:24:13.715567993Z", + "image_count":1, "region":"fr-par"}' + headers: + Content-Length: + - "475" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:24:13 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 0d259164-8217-4167-87ff-b1f97c0f5a87 + status: 200 OK + code: 200 + duration: "" diff --git a/internal/namespaces/container/v1beta1/testdata/test-deploy-app-name-deduced-from-path.golden b/internal/namespaces/container/v1beta1/testdata/test-deploy-app-name-deduced-from-path.golden new file mode 100644 index 0000000000..6e0ee17b2e --- /dev/null +++ b/internal/namespaces/container/v1beta1/testdata/test-deploy-app-name-deduced-from-path.golden @@ -0,0 +1,6 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +Your application is now available at https://appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud + +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +"Your application is now available at https://appclitestdeployponelvzngnoz-app-cli-test-deploy-poney.functions.fnc.fr-par.scw.cloud\n" diff --git a/internal/namespaces/container/v1beta1/testdata/test-deploy-simple.cassette.yaml b/internal/namespaces/container/v1beta1/testdata/test-deploy-simple.cassette.yaml new file mode 100644 index 0000000000..2fecdd5646 --- /dev/null +++ b/internal/namespaces/container/v1beta1/testdata/test-deploy-simple.cassette.yaml @@ -0,0 +1,743 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces?name=cli-test-container-deploy&order_by=created_at_asc + method: GET + response: + body: '{"namespaces":[], "total_count":0}' + headers: + Content-Length: + - "34" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:51 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 1c4760d6-abdb-41ad-8b62-faefe47ac95e + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"cli-test-container-deploy","environment_variables":null,"project_id":"105bdce1-64c0-48ab-899d-868455867ecf","description":null,"secret_environment_variables":null}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces + method: POST + response: + body: '{"id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "name":"cli-test-container-deploy", + "environment_variables":{}, "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"pending", "registry_namespace_id":"", + "error_message":null, "registry_endpoint":"", "description":"", "secret_environment_variables":[], + "region":"fr-par"}' + headers: + Content-Length: + - "386" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:52 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - ac7f24dd-12d7-4ecd-b02a-0bfc313f797a + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces?name=cli-test-container-deploy&order_by=created_at_asc + method: GET + response: + body: '{"namespaces":[], "total_count":0}' + headers: + Content-Length: + - "34" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:52 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - f9e75e7d-45b4-4dff-9bb2-5c7249e5dd7a + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"cli-test-container-deploy","description":"","project_id":"105bdce1-64c0-48ab-899d-868455867ecf","is_public":false}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces + method: POST + response: + body: '{"id":"d9e6636e-f859-4b8d-90bd-740ed64029b6", "name":"cli-test-container-deploy", + "description":"", "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"ready", "status_message":"", + "endpoint":"rg.fr-par.scw.cloud/cli-test-container-deploy", "is_public":false, + "size":0, "created_at":"2023-03-23T13:20:52.431469507Z", "updated_at":"2023-03-23T13:20:52.431469507Z", + "image_count":0, "region":"fr-par"}' + headers: + Content-Length: + - "468" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:52 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 72e7ac57-a54d-4898-9416-87f4ef1a7acb + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: {} + url: http://%2Fvar%2Frun%2Fdocker.sock/_ping + method: HEAD + response: + body: "" + headers: + Api-Version: + - "1.41" + Builder-Version: + - "2" + Cache-Control: + - no-cache, no-store, must-revalidate + Content-Type: + - text/plain; charset=utf-8 + Date: + - Thu, 23 Mar 2023 13:20:52 GMT + Docker-Experimental: + - "false" + Ostype: + - linux + Pragma: + - no-cache + Server: + - Docker/20.10.23 (linux) + status: 200 OK + code: 200 + duration: "" +- request: + body: "Dockerfile\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00100600\00000765\00000024\000000000163\014407051063\0011257\0 + 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ustar\000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00000000\00000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0FROM + nginx:alpine\nRUN apk add --no-cache curl git bash\nCOPY ./index.html /usr/share/nginx/html/index.html\nEXPOSE + 80\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0index.html\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00100600\00000765\00000024\000000000204\014407051063\0011256\0 + 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ustar\000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\00000000\00000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\n\nMy container\n\n\n

Deployed + with scw container deploy

\n\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + form: {} + headers: + Content-Type: + - application/x-tar + X-Registry-Config: + - bnVsbA== + url: http://%2Fvar%2Frun%2Fdocker.sock/v1.41/build?buildargs=null&cachefrom=null&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=null&memory=0&memswap=0&networkmode=&rm=0&shmsize=0&t=rg.fr-par.scw.cloud%2Fcli-test-container-deploy%2Fcli-test-container-deploy%3Alatest&target=&ulimits=null&version= + method: POST + response: + body: "{\"stream\":\"Step 1/4 : FROM nginx:alpine\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" + ---\\u003e 2bc7edbc3cf2\\n\"}\r\n{\"stream\":\"Step 2/4 : RUN apk add --no-cache + curl git bash\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" ---\\u003e Using + cache\\n\"}\r\n{\"stream\":\" ---\\u003e 5dc8f0ca0e1c\\n\"}\r\n{\"stream\":\"Step + 3/4 : COPY ./index.html /usr/share/nginx/html/index.html\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" + ---\\u003e Using cache\\n\"}\r\n{\"stream\":\" ---\\u003e 30cfedb49549\\n\"}\r\n{\"stream\":\"Step + 4/4 : EXPOSE 80\"}\r\n{\"stream\":\"\\n\"}\r\n{\"stream\":\" ---\\u003e Using + cache\\n\"}\r\n{\"stream\":\" ---\\u003e 337c24e2fe3d\\n\"}\r\n{\"aux\":{\"ID\":\"sha256:337c24e2fe3d7952e6b3c3f0f8b41bf89ae1de0146e9abad71197c3821678413\"}}\r\n{\"stream\":\"Successfully + built 337c24e2fe3d\\n\"}\r\n{\"stream\":\"Successfully tagged rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest\\n\"}\r\n" + headers: + Api-Version: + - "1.41" + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:52 GMT + Docker-Experimental: + - "false" + Ostype: + - linux + Server: + - Docker/20.10.23 (linux) + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Content-Type: + - text/plain + X-Registry-Auth: + - eyJ1c2VybmFtZSI6IlNDVzAxTlRKVzk5MEE3UUs4NUQ3IiwicGFzc3dvcmQiOiJkY2M1YzI1NC1kOGQyLTQ3NmYtYmNkYi1iOTQ2N2Y1NTY1MzIifQ== + url: http://%2Fvar%2Frun%2Fdocker.sock/v1.41/images/rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy/push?tag=latest + method: POST + response: + body: "{\"status\":\"The push refers to repository [rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy]\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"26c27aac52a3\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"dac7b9db7b5b\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"042cd3f87f43\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"f1bee861c2ba\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"c4d67a5827ca\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"152a948bab3b\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"5e59460a18a3\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"d8a5a02a8c2d\"}\r\n{\"status\":\"Preparing\",\"progressDetail\":{},\"id\":\"7cd52847ad77\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"152a948bab3b\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"5e59460a18a3\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"d8a5a02a8c2d\"}\r\n{\"status\":\"Waiting\",\"progressDetail\":{},\"id\":\"7cd52847ad77\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"dac7b9db7b5b\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"042cd3f87f43\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"c4d67a5827ca\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"f1bee861c2ba\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"26c27aac52a3\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"7cd52847ad77\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"d8a5a02a8c2d\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"152a948bab3b\"}\r\n{\"status\":\"Layer + already exists\",\"progressDetail\":{},\"id\":\"5e59460a18a3\"}\r\n{\"status\":\"latest: + digest: sha256:3cd36773cda1e44ff5124881217c06f546f0f92c744277152213efd39a24bc34 + size: 2199\"}\r\n{\"progressDetail\":{},\"aux\":{\"Tag\":\"latest\",\"Digest\":\"sha256:3cd36773cda1e44ff5124881217c06f546f0f92c744277152213efd39a24bc34\",\"Size\":2199}}\r\n" + headers: + Api-Version: + - "1.41" + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:52 GMT + Docker-Experimental: + - "false" + Ostype: + - linux + Server: + - Docker/20.10.23 (linux) + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers?name=cli-test-container-deploy&namespace_id=1feb7cb9-0a42-4a01-9e40-427e84575ec9&order_by=created_at_asc + method: GET + response: + body: '{"containers":[], "total_count":0}' + headers: + Content-Length: + - "34" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:59 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 68de119c-0f38-4d63-8488-8eda38ae69d0 + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9","name":"cli-test-container-deploy","environment_variables":null,"min_scale":null,"max_scale":null,"memory_limit":null,"timeout":null,"privacy":"unknown_privacy","description":null,"registry_image":null,"max_concurrency":null,"protocol":"unknown_protocol","port":null,"secret_environment_variables":null,"http_option":"unknown_http_option"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers + method: POST + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"created", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/funcscwclitestcontainerdepl1zxsqhse/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":8080, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "675" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:20:59 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 06d60dc5-fbef-485b-bc03-c27216312984 + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"environment_variables":null,"min_scale":null,"max_scale":null,"memory_limit":null,"timeout":null,"redeploy":false,"privacy":"unknown_privacy","description":null,"registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest","max_concurrency":null,"protocol":"unknown_protocol","port":80,"secret_environment_variables":null,"http_option":"unknown_http_option"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a + method: PATCH + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"created", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:00 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3268d6cc-6d46-4cdd-8cef-c92edf5e14fb + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a + method: GET + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"created", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:00 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - e2b48a93-73d1-4939-b84c-539223e6172c + status: 200 OK + code: 200 + duration: "" +- request: + body: '{}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a/deploy + method: POST + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:00 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 9a92060c-d018-4bcc-a20e-54d2c5d5a04b + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a + method: GET + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:00 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - f03314b9-3a36-4ec6-ada4-239ddbdbb572 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a + method: GET + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:05 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - df8f1442-2afc-4bb9-a0a0-ea7940feffe5 + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a + method: GET + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"pending", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "663" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:10 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 09107e28-2c27-4731-8489-f5a5309679db + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/containers/6f178890-a99d-424b-b2a0-1ceee4a52d9a + method: GET + response: + body: '{"id":"6f178890-a99d-424b-b2a0-1ceee4a52d9a", "name":"cli-test-container-deploy", + "namespace_id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "status":"ready", "environment_variables":{}, + "min_scale":0, "max_scale":5, "memory_limit":256, "cpu_limit":140, "timeout":"300s", + "error_message":null, "privacy":"public", "description":"", "registry_image":"rg.fr-par.scw.cloud/cli-test-container-deploy/cli-test-container-deploy:latest", + "max_concurrency":50, "domain_name":"clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud", + "protocol":"http1", "port":80, "secret_environment_variables":[], "http_option":"enabled", + "region":"fr-par"}' + headers: + Content-Length: + - "661" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:15 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 20b6e6b5-84b8-4a9b-ab1a-30a7b851a2ce + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces?name=cli-test-container-deploy&order_by=created_at_asc&page=1 + method: GET + response: + body: '{"namespaces":[{"id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "name":"cli-test-container-deploy", + "environment_variables":{}, "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"ready", "registry_namespace_id":"0776865c-896c-4f05-a358-e484a2e51bb0", + "error_message":null, "registry_endpoint":"rg.fr-par.scw.cloud/funcscwclitestcontainerdepl1zxsqhse", + "description":"", "secret_environment_variables":[], "region":"fr-par"}], "total_count":1}' + headers: + Content-Length: + - "509" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:15 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8ab5d44d-e659-4f7c-aa1b-e2bbc0d169ea + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1beta1/regions/fr-par/namespaces/1feb7cb9-0a42-4a01-9e40-427e84575ec9 + method: DELETE + response: + body: '{"id":"1feb7cb9-0a42-4a01-9e40-427e84575ec9", "name":"cli-test-container-deploy", + "environment_variables":{}, "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"deleting", "registry_namespace_id":"0776865c-896c-4f05-a358-e484a2e51bb0", + "error_message":null, "registry_endpoint":"rg.fr-par.scw.cloud/funcscwclitestcontainerdepl1zxsqhse", + "description":"", "secret_environment_variables":[], "region":"fr-par"}' + headers: + Content-Length: + - "478" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:15 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - e9a91f2d-1275-444c-9aa5-4610c6036fab + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces?name=cli-test-container-deploy&order_by=created_at_asc&page=1 + method: GET + response: + body: '{"namespaces":[{"id":"d9e6636e-f859-4b8d-90bd-740ed64029b6", "name":"cli-test-container-deploy", + "description":"", "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"ready", "status_message":"", + "endpoint":"rg.fr-par.scw.cloud/cli-test-container-deploy", "is_public":false, + "size":20430837, "created_at":"2023-03-23T13:20:52.431470Z", "updated_at":"2023-03-23T13:21:10.335455Z", + "image_count":1, "region":"fr-par"}], "total_count":1}' + headers: + Content-Length: + - "503" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:15 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 9f808a91-10f7-430c-8d99-9cdb8df7010d + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.20.2; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/registry/v1/regions/fr-par/namespaces/d9e6636e-f859-4b8d-90bd-740ed64029b6 + method: DELETE + response: + body: '{"id":"d9e6636e-f859-4b8d-90bd-740ed64029b6", "name":"cli-test-container-deploy", + "description":"", "organization_id":"105bdce1-64c0-48ab-899d-868455867ecf", + "project_id":"105bdce1-64c0-48ab-899d-868455867ecf", "status":"deleting", "status_message":"", + "endpoint":"rg.fr-par.scw.cloud/cli-test-container-deploy", "is_public":false, + "size":20430837, "created_at":"2023-03-23T13:20:52.431470Z", "updated_at":"2023-03-23T13:21:15.904624577Z", + "image_count":1, "region":"fr-par"}' + headers: + Content-Length: + - "475" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Thu, 23 Mar 2023 13:21:15 GMT + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - ca6a3d67-020c-4102-8837-d18652e11ede + status: 200 OK + code: 200 + duration: "" diff --git a/internal/namespaces/container/v1beta1/testdata/test-deploy-simple.golden b/internal/namespaces/container/v1beta1/testdata/test-deploy-simple.golden new file mode 100644 index 0000000000..13de511a72 --- /dev/null +++ b/internal/namespaces/container/v1beta1/testdata/test-deploy-simple.golden @@ -0,0 +1,6 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +Your application is now available at https://clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud + +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +"Your application is now available at https://clitestcontainerdepl1zxsqhse-cli-test-container-deploy.functions.fnc.fr-par.scw.cloud\n"