From bc90e7cf011d6964fcf8f1cd094d18fe09569aaa Mon Sep 17 00:00:00 2001 From: Son Bui Date: Tue, 12 Sep 2023 17:12:20 +0800 Subject: [PATCH 001/154] chore: remove support armv6h for aur package #4224 Signed-off-by: Son Bui --- .github/aur/flux-go/.SRCINFO.template | 1 - .github/aur/flux-go/PKGBUILD.template | 4 ++-- .github/aur/flux-scm/.SRCINFO.template | 1 - .github/aur/flux-scm/PKGBUILD.template | 4 ++-- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/aur/flux-go/.SRCINFO.template b/.github/aur/flux-go/.SRCINFO.template index d41a9e34..134f969c 100644 --- a/.github/aur/flux-go/.SRCINFO.template +++ b/.github/aur/flux-go/.SRCINFO.template @@ -4,7 +4,6 @@ pkgbase = flux-go pkgrel = ${PKGREL} url = https://fluxcd.io/ arch = x86_64 - arch = armv6h arch = armv7h arch = aarch64 license = APACHE diff --git a/.github/aur/flux-go/PKGBUILD.template b/.github/aur/flux-go/PKGBUILD.template index 05372e13..6125498a 100644 --- a/.github/aur/flux-go/PKGBUILD.template +++ b/.github/aur/flux-go/PKGBUILD.template @@ -8,7 +8,7 @@ _srcname=flux _srcver=${VERSION} pkgdesc="Open and extensible continuous delivery solution for Kubernetes" url="https://fluxcd.io/" -arch=("x86_64" "armv6h" "armv7h" "aarch64") +arch=("x86_64" "armv7h" "aarch64") license=("APACHE") provides=("flux-bin") conflicts=("flux-bin") @@ -41,7 +41,7 @@ check() { aarch64) export ENVTEST_ARCH=arm64 ;; - armv6h|armv7h) + armv7h) export ENVTEST_ARCH=arm ;; esac diff --git a/.github/aur/flux-scm/.SRCINFO.template b/.github/aur/flux-scm/.SRCINFO.template index 343c7ce2..6237e672 100644 --- a/.github/aur/flux-scm/.SRCINFO.template +++ b/.github/aur/flux-scm/.SRCINFO.template @@ -4,7 +4,6 @@ pkgbase = flux-scm pkgrel = ${PKGREL} url = https://fluxcd.io/ arch = x86_64 - arch = armv6h arch = armv7h arch = aarch64 license = APACHE diff --git a/.github/aur/flux-scm/PKGBUILD.template b/.github/aur/flux-scm/PKGBUILD.template index 6e213ac2..dc091714 100644 --- a/.github/aur/flux-scm/PKGBUILD.template +++ b/.github/aur/flux-scm/PKGBUILD.template @@ -7,7 +7,7 @@ pkgrel=${PKGREL} _srcname=flux pkgdesc="Open and extensible continuous delivery solution for Kubernetes" url="https://fluxcd.io/" -arch=("x86_64" "armv6h" "armv7h" "aarch64") +arch=("x86_64" "armv7h" "aarch64") license=("APACHE") provides=("flux-bin") conflicts=("flux-bin") @@ -42,7 +42,7 @@ check() { aarch64) export ENVTEST_ARCH=arm64 ;; - armv6h|armv7h) + armv7h) export ENVTEST_ARCH=arm ;; esac From c721474e0bcbe21d7161bb62dd380908578f575b Mon Sep 17 00:00:00 2001 From: Max Jonas Werner Date: Wed, 13 Sep 2023 17:47:07 +0200 Subject: [PATCH 002/154] Upgrade github.com/fluxcd/pkg/{git,git/gogit} This allows us to get rid of the replace directive consuming the filepath-securejoin fork. Signed-off-by: Max Jonas Werner --- go.mod | 29 ++++++-------- go.sum | 57 +++++++++++++-------------- tests/azure/go.mod | 24 ++++++------ tests/azure/go.sum | 55 +++++++++++++------------- tests/integration/go.mod | 33 ++++++++-------- tests/integration/go.sum | 85 +++++++++++++++++++++------------------- 6 files changed, 142 insertions(+), 141 deletions(-) diff --git a/go.mod b/go.mod index b14bffba..baca76a6 100644 --- a/go.mod +++ b/go.mod @@ -2,16 +2,13 @@ module github.com/fluxcd/flux2/v2 go 1.20 -// Replace for Go 1.20+ Windows compatibility. -replace github.com/cyphar/filepath-securejoin => github.com/pjbgf/filepath-securejoin v0.0.0-20230821001828-0ca74e6d4bf8 - // Fix CVE-2022-28948. replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Masterminds/semver/v3 v3.2.1 - github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 - github.com/cyphar/filepath-securejoin v0.2.3 + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 + github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/go-git-providers v0.18.0 github.com/fluxcd/helm-controller/api v0.36.0 @@ -21,8 +18,8 @@ require ( github.com/fluxcd/notification-controller/api v1.1.0 github.com/fluxcd/pkg/apis/event v0.5.2 github.com/fluxcd/pkg/apis/meta v1.1.2 - github.com/fluxcd/pkg/git v0.13.0 - github.com/fluxcd/pkg/git/gogit v0.13.0 + github.com/fluxcd/pkg/git v0.14.0 + github.com/fluxcd/pkg/git/gogit v0.14.0 github.com/fluxcd/pkg/kustomize v1.3.4 github.com/fluxcd/pkg/oci v0.31.0 github.com/fluxcd/pkg/runtime v0.42.0 @@ -32,7 +29,7 @@ require ( github.com/fluxcd/pkg/tar v0.2.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.1.0 - github.com/go-git/go-git/v5 v5.8.1 + github.com/go-git/go-git/v5 v5.9.0 github.com/go-logr/logr v1.2.4 github.com/gonvenience/bunt v1.3.5 github.com/gonvenience/ytbx v1.4.4 @@ -49,8 +46,8 @@ require ( github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/theckman/yacspin v0.13.12 - golang.org/x/crypto v0.12.0 - golang.org/x/term v0.11.0 + golang.org/x/crypto v0.13.0 + golang.org/x/term v0.12.0 k8s.io/api v0.27.4 k8s.io/apiextensions-apiserver v0.27.4 k8s.io/apimachinery v0.27.4 @@ -117,7 +114,7 @@ require ( github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.4.1 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.1 // indirect github.com/go-openapi/swag v0.22.3 // indirect @@ -193,14 +190,14 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xlab/treeprint v1.1.0 // indirect go.starlark.net v0.0.0-20221028183056-acb66ad56dd2 // indirect - golang.org/x/mod v0.11.0 // indirect - golang.org/x/net v0.14.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.15.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.30.0 // indirect diff --git a/go.sum b/go.sum index 86adc693..086255ea 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= -github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -93,6 +93,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHH 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/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/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= @@ -116,7 +118,7 @@ github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNE github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= -github.com/elazarl/goproxy v0.0.0-20230731152917-f99041a5c027 h1:1L0aalTpPz7YlMxETKpmQoWMBkeiuorElZIXoNmgiPE= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= @@ -160,10 +162,10 @@ github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0 github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= github.com/fluxcd/pkg/apis/meta v1.1.2 h1:Unjo7hxadtB2dvGpeFqZZUdsjpRA08YYSBb7dF2WIAM= github.com/fluxcd/pkg/apis/meta v1.1.2/go.mod h1:BHQyRHCskGMEDf6kDGbgQ+cyiNpUHbLsCOsaMYM2maI= -github.com/fluxcd/pkg/git v0.13.0 h1:GcJfldYqw6ELf0vbTCV+iFZgSpK6HZBKx3yAvn1Dqfg= -github.com/fluxcd/pkg/git v0.13.0/go.mod h1:rKB1puk7sbC4AYF1oZDBrkvu3cr0aibkd4I5yNbxSQg= -github.com/fluxcd/pkg/git/gogit v0.13.0 h1:XCwfiB5qbz08djUgo0TII09zibH97Hn56v098pkFpns= -github.com/fluxcd/pkg/git/gogit v0.13.0/go.mod h1:V3g+UyIDSAOysg5KCpHhS+HXBUmNmmbNlVruWkpCJgY= +github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= +github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= +github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= +github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= github.com/fluxcd/pkg/kustomize v1.3.4 h1:+XA4umfhkFqrNYQp3ZmKSJy4i3LWjbgoi6H4PllkkkA= github.com/fluxcd/pkg/kustomize v1.3.4/go.mod h1:nsbsNGe6nQY6DGYYPowFGQlhxFRcaRFvbwqhCbwAQuE= @@ -191,11 +193,11 @@ github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxI github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= -github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= -github.com/go-git/go-git/v5 v5.8.1 h1:Zo79E4p7TRk0xoRgMq0RShiTHGKcKI4+DI6BfJc/Q+A= -github.com/go-git/go-git/v5 v5.8.1/go.mod h1:FHFuoD6yGz5OSKEBK+aWN9Oah0q54Jxl0abmj6GnqAo= +github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= +github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -211,7 +213,7 @@ github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/ github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -393,7 +395,6 @@ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= @@ -410,8 +411,6 @@ github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+v github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= -github.com/pjbgf/filepath-securejoin v0.0.0-20230821001828-0ca74e6d4bf8 h1:nqjCeQ2TVnccihhBoVBd0p+70hCFT4yqJKhfc8l1D50= -github.com/pjbgf/filepath-securejoin v0.0.0-20230821001828-0ca74e6d4bf8/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= @@ -512,8 +511,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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= @@ -522,8 +521,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -545,8 +544,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= @@ -592,16 +591,16 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/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= @@ -611,8 +610,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -625,8 +624,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= 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= diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 5069b494..47e67124 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -14,10 +14,10 @@ require ( github.com/fluxcd/notification-controller/api v1.1.0 github.com/fluxcd/pkg/apis/event v0.5.2 github.com/fluxcd/pkg/apis/meta v1.1.2 - github.com/fluxcd/pkg/git v0.13.0 - github.com/fluxcd/pkg/git/gogit v0.13.0 + github.com/fluxcd/pkg/git v0.14.0 + github.com/fluxcd/pkg/git/gogit v0.14.0 github.com/fluxcd/source-controller/api v1.1.0 - github.com/go-git/go-git/v5 v5.8.1 + github.com/go-git/go-git/v5 v5.9.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 @@ -46,7 +46,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/cloudflare/circl v1.3.3 // indirect @@ -61,7 +61,7 @@ require ( github.com/fluxcd/pkg/ssh v0.8.2 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.4.1 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.1 // indirect @@ -97,15 +97,15 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.uber.org/atomic v1.10.0 // indirect - golang.org/x/crypto v0.12.0 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.12.0 // indirect + golang.org/x/crypto v0.13.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.15.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.11.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/term v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.9.3 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.30.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 612c2150..4c9912b1 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -39,8 +39,8 @@ github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= -github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= @@ -72,7 +72,7 @@ github.com/devigned/tab v0.1.1 h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20230731152917-f99041a5c027 h1:1L0aalTpPz7YlMxETKpmQoWMBkeiuorElZIXoNmgiPE= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= @@ -105,10 +105,10 @@ github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0 github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= github.com/fluxcd/pkg/apis/meta v1.1.2 h1:Unjo7hxadtB2dvGpeFqZZUdsjpRA08YYSBb7dF2WIAM= github.com/fluxcd/pkg/apis/meta v1.1.2/go.mod h1:BHQyRHCskGMEDf6kDGbgQ+cyiNpUHbLsCOsaMYM2maI= -github.com/fluxcd/pkg/git v0.13.0 h1:GcJfldYqw6ELf0vbTCV+iFZgSpK6HZBKx3yAvn1Dqfg= -github.com/fluxcd/pkg/git v0.13.0/go.mod h1:rKB1puk7sbC4AYF1oZDBrkvu3cr0aibkd4I5yNbxSQg= -github.com/fluxcd/pkg/git/gogit v0.13.0 h1:XCwfiB5qbz08djUgo0TII09zibH97Hn56v098pkFpns= -github.com/fluxcd/pkg/git/gogit v0.13.0/go.mod h1:V3g+UyIDSAOysg5KCpHhS+HXBUmNmmbNlVruWkpCJgY= +github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= +github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= +github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= +github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= @@ -122,11 +122,11 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= -github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= -github.com/go-git/go-git/v5 v5.8.1 h1:Zo79E4p7TRk0xoRgMq0RShiTHGKcKI4+DI6BfJc/Q+A= -github.com/go-git/go-git/v5 v5.8.1/go.mod h1:FHFuoD6yGz5OSKEBK+aWN9Oah0q54Jxl0abmj6GnqAo= +github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= +github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -138,7 +138,7 @@ github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= @@ -243,7 +243,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= @@ -314,8 +313,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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= @@ -324,8 +323,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -347,8 +346,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= @@ -361,7 +360,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= 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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -381,15 +380,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/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= @@ -399,8 +398,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -413,8 +412,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= -golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= 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= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 0c553c98..b3001b08 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -12,16 +12,16 @@ require ( github.com/fluxcd/notification-controller/api v1.0.0-rc.4 github.com/fluxcd/pkg/apis/event v0.5.1 github.com/fluxcd/pkg/apis/meta v1.1.1 - github.com/fluxcd/pkg/git v0.12.2 - github.com/fluxcd/pkg/git/gogit v0.12.0 + github.com/fluxcd/pkg/git v0.14.0 + github.com/fluxcd/pkg/git/gogit v0.14.0 github.com/fluxcd/pkg/runtime v0.39.0 github.com/fluxcd/source-controller/api v1.0.0-rc.5 github.com/fluxcd/test-infra/tftestenv v0.0.0-20230531151340-931581bd0a3e - github.com/go-git/go-git/v5 v5.7.0 + github.com/go-git/go-git/v5 v5.9.0 github.com/google/go-containerregistry v0.14.0 github.com/hashicorp/terraform-json v0.16.0 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 - github.com/onsi/gomega v1.27.8 + github.com/onsi/gomega v1.27.10 github.com/whilp/git-urls v1.0.0 google.golang.org/grpc v1.55.0 k8s.io/api v0.27.3 @@ -35,6 +35,7 @@ require ( cloud.google.com/go/compute v1.19.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.0.1 // indirect + dario.cat/mergo v1.0.0 // indirect github.com/Azure/azure-amqp-common-go/v4 v4.2.0 // indirect github.com/Azure/azure-sdk-for-go v65.0.0+incompatible // indirect github.com/Azure/go-amqp v1.0.0 // indirect @@ -48,7 +49,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/cloudflare/circl v1.3.3 // indirect @@ -65,10 +66,10 @@ require ( github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.1.0 // indirect - github.com/fluxcd/pkg/ssh v0.7.4 // indirect + github.com/fluxcd/pkg/ssh v0.8.2 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.4.1 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.1 // indirect @@ -109,22 +110,22 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect - github.com/skeema/knownhosts v1.1.1 // indirect + github.com/skeema/knownhosts v1.2.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vbatts/tar-split v0.11.2 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.9.0 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.10.0 // indirect + golang.org/x/crypto v0.13.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.15.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sync v0.2.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/sync v0.3.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/term v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.9.1 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/api v0.124.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 02472dfa..a41cda11 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -11,6 +11,8 @@ cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBa cloud.google.com/go/kms v1.10.2 h1:8UePKEypK3SQ6g+4mn/s/VgE5L7XOh+FwGGRUqvY3Hw= cloud.google.com/go/pubsub v1.31.0 h1:aXdyyJz90kA+bor9+6+xHAciMD5mj8v15WqFZ5E0sek= cloud.google.com/go/pubsub v1.31.0/go.mod h1:dYmJ3K97NCQ/e4OwZ20rD4Ym3Bu8Gu9m/aJdWQjdcks= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= github.com/Azure/azure-amqp-common-go/v4 v4.2.0 h1:q/jLx1KJ8xeI8XGfkOWMN9XrXzAfVTkyvCxPvHCjd2I= github.com/Azure/azure-amqp-common-go/v4 v4.2.0/go.mod h1:GD3m/WPPma+621UaU6KNjKEo5Hl09z86viKwQjTpV0Q= @@ -55,8 +57,8 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= -github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903 h1:ZK3C5DtzV2nVAQTx5S5jQvMeDqWtD1By5mOoyY/xJek= -github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= @@ -71,14 +73,13 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkY github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= @@ -109,7 +110,7 @@ github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bc github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 h1:RIB4cRk+lBqKK3Oy0r2gRX4ui7tuhiZq2SuTtTCi0/0= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= @@ -145,15 +146,15 @@ github.com/fluxcd/pkg/apis/kustomize v1.1.0 h1:Fbv4dCB57r2+fiusozN7at8r7upTz58Z4 github.com/fluxcd/pkg/apis/kustomize v1.1.0/go.mod h1:CAe9Mjf9KVoTm1V4wpvq/FGXFDSnpBwfww/IG7mw3gM= github.com/fluxcd/pkg/apis/meta v1.1.1 h1:sLAKLbEu7rRzJ+Mytffu3NcpfdbOBTa6hcpOQzFWm+M= github.com/fluxcd/pkg/apis/meta v1.1.1/go.mod h1:soCfzjFWbm1mqybDcOywWKTCEYlH3skpoNGTboVk234= -github.com/fluxcd/pkg/git v0.12.2 h1:96xH3hy3WfwiD0DioyJZcGapYT3lmPc2s7jU5UM8buw= -github.com/fluxcd/pkg/git v0.12.2/go.mod h1:9TG4fEfGCF1XHLt9Xs7X2YOmkmWOiwfjH9tdGIQs8/8= -github.com/fluxcd/pkg/git/gogit v0.12.0 h1:0mCwQND0WpCVZYHLWcXJxRvKVcyWxH4JjMQFMaea8Q4= -github.com/fluxcd/pkg/git/gogit v0.12.0/go.mod h1:Kn+GfYfZBBIaXmQj39cQvrDxT/6y8leQxXZ5/B+YYTQ= -github.com/fluxcd/pkg/gittestserver v0.8.4 h1:rA/QUZnfH77ZZG+5xfMqjgEHJdzeeE6Nn1o8cops/bU= +github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= +github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= +github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= +github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= +github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= github.com/fluxcd/pkg/runtime v0.39.0 h1:vgmzYS+DT0w8ikX9MqGsOdmMagoiKys2RMGdl/EDbgc= github.com/fluxcd/pkg/runtime v0.39.0/go.mod h1:0A/0kZv/MPciAj5AoSEDKVeqUFEF6371q7o+zk6l81g= -github.com/fluxcd/pkg/ssh v0.7.4 h1:8GYneCKH2dxrHQBalcDgOCC2NtqD0JO91FlWgvnzrfo= -github.com/fluxcd/pkg/ssh v0.7.4/go.mod h1:9Syc8nVJaZEToPTU4E99j0jZ99w39oZtov+uiNX17sc= +github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= +github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.0.0-rc.5 h1:muoGOb/VitVEIOh877Ledi9AvibbyevPqvuH5byWU6g= @@ -171,13 +172,13 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66D github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= -github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= -github.com/go-git/go-git/v5 v5.7.0 h1:t9AudWVLmqzlo+4bqdf7GY+46SUuRsx59SboFxkq2aE= -github.com/go-git/go-git/v5 v5.7.0/go.mod h1:coJHKEOk5kUClpsNlXrUvPrDxY3w3gjHvhcZd8Fodw8= +github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= +github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -189,7 +190,7 @@ github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= @@ -321,9 +322,9 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo/v2 v2.9.7 h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss= -github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= -github.com/onsi/gomega v1.27.8/go.mod h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= 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.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= @@ -342,7 +343,7 @@ github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUo github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= @@ -353,8 +354,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.7.0/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/skeema/knownhosts v1.1.1 h1:MTk78x9FPgDFVFkDLTrsnnfCJl7g1C/nnKvePgrIngE= -github.com/skeema/knownhosts v1.1.1/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= +github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= +github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -408,10 +409,11 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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= @@ -421,8 +423,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -441,11 +443,12 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= @@ -458,8 +461,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -479,23 +482,24 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/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= @@ -503,11 +507,12 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -520,8 +525,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= 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= From 1fc463c065d083934398fbdc3948912fa696ba4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 01:02:23 +0000 Subject: [PATCH 003/154] build(deps): bump the ci group with 4 updates Bumps the ci group with 4 updates: [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [docker/login-action](https://github.com/docker/login-action) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action). Updates `docker/setup-qemu-action` from 2.2.0 to 3.0.0 - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/2b82ce82d56a2a04d2637cd93a637ae1b359c0a7...68827325e0b33c7199eb31dd4e31fbe9023e06e3) Updates `docker/setup-buildx-action` from 2.10.0 to 3.0.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/885d1462b80bc1c1c7f0b00334ad271f09369c55...f95db51fddba0c2d1ec667646a06c2ce06100226) Updates `docker/login-action` from 2.2.0 to 3.0.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/465a07811f14bebb1938fbed4728c6a1ff8901fc...343f7c4344506bcbf9b4de18042ae17996df046d) Updates `goreleaser/goreleaser-action` from 4.6.0 to 5.0.0 - [Release notes](https://github.com/goreleaser/goreleaser-action/releases) - [Commits](https://github.com/goreleaser/goreleaser-action/compare/5fdedb94abba051217030cc86d4523cf3f02243d...7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: goreleaser/goreleaser-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/e2e-gcp.yaml | 6 +++--- .github/workflows/release.yaml | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index 89b919c3..601adc1c 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -54,11 +54,11 @@ jobs: - name: Setup gcloud uses: google-github-actions/setup-gcloud@e30db14379863a8c79331b04a9969f4c1e225e0b # v1.1.1 - name: Setup QEMU - uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2.2.0 + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Setup Docker Buildx - uses: docker/setup-buildx-action@885d1462b80bc1c1c7f0b00334ad271f09369c55 # v2.10.0 + uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Log into us-central1-docker.pkg.dev - uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: registry: us-central1-docker.pkg.dev username: oauth2accesstoken diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index aa96fa0c..a066b6db 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -29,10 +29,10 @@ jobs: go-version: 1.20.x cache: false - name: Setup QEMU - uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2.2.0 + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Setup Docker Buildx id: buildx - uses: docker/setup-buildx-action@885d1462b80bc1c1c7f0b00334ad271f09369c55 # v2.10.0 + uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft uses: anchore/sbom-action/download-syft@78fc58e266e87a38d4194b2137a3d4e9bcaf7ca1 # v0.14.3 - name: Setup Cosign @@ -40,13 +40,13 @@ jobs: - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Login to GitHub Container Registry - uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: registry: ghcr.io username: fluxcdbot password: ${{ secrets.GHCR_TOKEN }} - name: Login to Docker Hub - uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: username: fluxcdbot password: ${{ secrets.DOCKER_FLUXCD_PASSWORD }} @@ -79,7 +79,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run GoReleaser id: run-goreleaser - uses: goreleaser/goreleaser-action@5fdedb94abba051217030cc86d4523cf3f02243d # v4.6.0 + uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0 with: version: latest args: release --release-notes=output/notes.md --skip-validate @@ -121,13 +121,13 @@ jobs: VERSION=$(flux version --client | awk '{ print $NF }') echo "version=${VERSION}" >> $GITHUB_OUTPUT - name: Login to GHCR - uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: registry: ghcr.io username: fluxcdbot password: ${{ secrets.GHCR_TOKEN }} - name: Login to DockerHub - uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: username: fluxcdbot password: ${{ secrets.DOCKER_FLUXCD_PASSWORD }} From 1654791feb75057a73dcd80383f16db3c432b966 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Fri, 8 Sep 2023 17:37:23 +0100 Subject: [PATCH 004/154] update description of kubeconfig flags Signed-off-by: Somtochi Onyekwere --- cmd/flux/main.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmd/flux/main.go b/cmd/flux/main.go index 9485110c..1226a347 100644 --- a/cmd/flux/main.go +++ b/cmd/flux/main.go @@ -151,6 +151,11 @@ func init() { apiServer := "" kubeconfigArgs.APIServer = &apiServer rootCmd.PersistentFlags().StringVar(kubeconfigArgs.APIServer, "server", *kubeconfigArgs.APIServer, "The address and port of the Kubernetes API server") + // Update the description for kubeconfig TLS flags so that user's don't mistake it for a Flux specific flag + rootCmd.Flag("insecure-skip-tls-verify").Usage = "If true, the Kubernetes API server's certificate will not be checked for validity. This will make your HTTPS connections insecure" + rootCmd.Flag("client-certificate").Usage = "Path to a client certificate file for TLS authentication to the Kubernetes API server" + rootCmd.Flag("certificate-authority").Usage = "Path to a cert file for the certificate authority to authenticate the Kubernetes API server" + rootCmd.Flag("client-key").Usage = "Path to a client key file for TLS authentication to the Kubernetes API server" kubeclientOptions.BindFlags(rootCmd.PersistentFlags()) From 0c47d738a9d73f4c355e42faf42f3477ae9bb453 Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Mon, 18 Sep 2023 15:11:52 +0000 Subject: [PATCH 005/154] Update toolkit components - helm-controller to v0.36.1 https://github.com/fluxcd/helm-controller/blob/v0.36.1/CHANGELOG.md - source-controller to v1.1.1 https://github.com/fluxcd/source-controller/blob/v1.1.1/CHANGELOG.md - image-automation-controller to v0.36.1 https://github.com/fluxcd/image-automation-controller/blob/v0.36.1/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 6 +++--- go.sum | 12 ++++++------ manifests/bases/helm-controller/kustomization.yaml | 4 ++-- .../image-automation-controller/kustomization.yaml | 4 ++-- manifests/bases/source-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index baca76a6..fcc6ae61 100644 --- a/go.mod +++ b/go.mod @@ -11,8 +11,8 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/go-git-providers v0.18.0 - github.com/fluxcd/helm-controller/api v0.36.0 - github.com/fluxcd/image-automation-controller/api v0.36.0 + github.com/fluxcd/helm-controller/api v0.36.1 + github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.30.0 github.com/fluxcd/kustomize-controller/api v1.1.0 github.com/fluxcd/notification-controller/api v1.1.0 @@ -28,7 +28,7 @@ require ( github.com/fluxcd/pkg/ssh v0.8.2 github.com/fluxcd/pkg/tar v0.2.0 github.com/fluxcd/pkg/version v0.2.2 - github.com/fluxcd/source-controller/api v1.1.0 + github.com/fluxcd/source-controller/api v1.1.1 github.com/go-git/go-git/v5 v5.9.0 github.com/go-logr/logr v1.2.4 github.com/gonvenience/bunt v1.3.5 diff --git a/go.sum b/go.sum index 086255ea..c16b1593 100644 --- a/go.sum +++ b/go.sum @@ -144,10 +144,10 @@ github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.18.0 h1:4Whs6GzQdx3d7UTeIahRmzUrTZKhucySC53pwdXFV7Y= github.com/fluxcd/go-git-providers v0.18.0/go.mod h1:++kUR1LegtRWU30bdPb9FuRUH/6+DgoHSbwOkZ5NiKo= -github.com/fluxcd/helm-controller/api v0.36.0 h1:V48f/9W2Pv3LETREaCs7jkLh1LRI6J51kKY2UzUZjvQ= -github.com/fluxcd/helm-controller/api v0.36.0/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= -github.com/fluxcd/image-automation-controller/api v0.36.0 h1:Y1uzJ+K3ov5jhbUH+7+X3hfpgXIdgUO9VR7REoHUAxs= -github.com/fluxcd/image-automation-controller/api v0.36.0/go.mod h1:eZRv70cGQAxOpiqf1mZYDPgCZOmWNoGH0/PDgU60lDM= +github.com/fluxcd/helm-controller/api v0.36.1 h1:v1Y8x7fCyWg5n0hkGJabwOKcBN6yuFKLMCELe7LEgxs= +github.com/fluxcd/helm-controller/api v0.36.1/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= +github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= +github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= github.com/fluxcd/kustomize-controller/api v1.1.0 h1:FrFdRdlPczXTolOMt/HsY6rf1tWEYBoF2uJOISx8fpg= @@ -183,8 +183,8 @@ github.com/fluxcd/pkg/tar v0.2.0 h1:HEUHgONQYsJGeZZ4x6h5nQU9Aox1I4T3bOp1faWTqf8= github.com/fluxcd/pkg/tar v0.2.0/go.mod h1:w0/TOC7kwBJhnSJn7TCABkc/I7ib1f2Yz6vOsbLBnhw= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.0 h1:JPtt9WTTqVNdJfPpea8q7fUWF/00kDihxbhISzcb0WE= -github.com/fluxcd/source-controller/api v1.1.0/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.1.1 h1:0KQTEnLxBRrovISc5JeovTfyTjhh4vwodNnYyD6XD/Q= +github.com/fluxcd/source-controller/api v1.1.1/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= diff --git a/manifests/bases/helm-controller/kustomization.yaml b/manifests/bases/helm-controller/kustomization.yaml index 099d7204..2037bdfe 100644 --- a/manifests/bases/helm-controller/kustomization.yaml +++ b/manifests/bases/helm-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.0/helm-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.0/helm-controller.deployment.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.36.1/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.36.1/helm-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/image-automation-controller/kustomization.yaml b/manifests/bases/image-automation-controller/kustomization.yaml index 0e4a3ed8..f6beff59 100644 --- a/manifests/bases/image-automation-controller/kustomization.yaml +++ b/manifests/bases/image-automation-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.0/image-automation-controller.crds.yaml -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.0/image-automation-controller.deployment.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.crds.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/source-controller/kustomization.yaml b/manifests/bases/source-controller/kustomization.yaml index e71a6682..67d4566a 100644 --- a/manifests/bases/source-controller/kustomization.yaml +++ b/manifests/bases/source-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.1.0/source-controller.crds.yaml -- https://github.com/fluxcd/source-controller/releases/download/v1.1.0/source-controller.deployment.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.1.1/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.1.1/source-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index 01e95e4c..feaa2d60 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -1,9 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.1.0/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.1.1/source-controller.crds.yaml - https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.0/kustomize-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.0/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.36.1/helm-controller.crds.yaml - https://github.com/fluxcd/notification-controller/releases/download/v1.1.0/notification-controller.crds.yaml - https://github.com/fluxcd/image-reflector-controller/releases/download/v0.30.0/image-reflector-controller.crds.yaml -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.0/image-automation-controller.crds.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.crds.yaml From 1cba3e447606180a19c8873103d150a625efe506 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Tue, 19 Sep 2023 11:10:22 +0200 Subject: [PATCH 006/154] tests/azure: update controller dependencies - github.com/fluxcd/helm-controller/api to v0.36.1 - github.com/fluxcd/image-automation-controller/api to v0.36.1 - github.com/fluxcd/source-controller/api to v1.1.1 Signed-off-by: Hidde Beydals --- tests/azure/go.mod | 6 +++--- tests/azure/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 47e67124..24320579 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -7,8 +7,8 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 - github.com/fluxcd/helm-controller/api v0.36.0 - github.com/fluxcd/image-automation-controller/api v0.36.0 + github.com/fluxcd/helm-controller/api v0.36.1 + github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.30.0 github.com/fluxcd/kustomize-controller/api v1.1.0 github.com/fluxcd/notification-controller/api v1.1.0 @@ -16,7 +16,7 @@ require ( github.com/fluxcd/pkg/apis/meta v1.1.2 github.com/fluxcd/pkg/git v0.14.0 github.com/fluxcd/pkg/git/gogit v0.14.0 - github.com/fluxcd/source-controller/api v1.1.0 + github.com/fluxcd/source-controller/api v1.1.1 github.com/go-git/go-git/v5 v5.9.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 4c9912b1..05cbdbe7 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -87,10 +87,10 @@ github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJ github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.36.0 h1:V48f/9W2Pv3LETREaCs7jkLh1LRI6J51kKY2UzUZjvQ= -github.com/fluxcd/helm-controller/api v0.36.0/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= -github.com/fluxcd/image-automation-controller/api v0.36.0 h1:Y1uzJ+K3ov5jhbUH+7+X3hfpgXIdgUO9VR7REoHUAxs= -github.com/fluxcd/image-automation-controller/api v0.36.0/go.mod h1:eZRv70cGQAxOpiqf1mZYDPgCZOmWNoGH0/PDgU60lDM= +github.com/fluxcd/helm-controller/api v0.36.1 h1:v1Y8x7fCyWg5n0hkGJabwOKcBN6yuFKLMCELe7LEgxs= +github.com/fluxcd/helm-controller/api v0.36.1/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= +github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= +github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= github.com/fluxcd/kustomize-controller/api v1.1.0 h1:FrFdRdlPczXTolOMt/HsY6rf1tWEYBoF2uJOISx8fpg= @@ -114,8 +114,8 @@ github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.0 h1:JPtt9WTTqVNdJfPpea8q7fUWF/00kDihxbhISzcb0WE= -github.com/fluxcd/source-controller/api v1.1.0/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.1.1 h1:0KQTEnLxBRrovISc5JeovTfyTjhh4vwodNnYyD6XD/Q= +github.com/fluxcd/source-controller/api v1.1.1/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= From f9e7190a04b75354bf038ad36b47a41ee36f2f4c Mon Sep 17 00:00:00 2001 From: Son Bui Date: Mon, 11 Sep 2023 11:24:23 +0800 Subject: [PATCH 007/154] Improve AUR package templates - remove armv6h #4224 - unique source name #4224 - improve pkgver/_srcver #4224 - fix source name in .SRCINFO Signed-off-by: Son Bui --- .github/aur/flux-bin/.SRCINFO.template | 9 +++------ .github/aur/flux-bin/PKGBUILD.template | 14 ++++---------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/.github/aur/flux-bin/.SRCINFO.template b/.github/aur/flux-bin/.SRCINFO.template index b75d3e62..d09772f6 100644 --- a/.github/aur/flux-bin/.SRCINFO.template +++ b/.github/aur/flux-bin/.SRCINFO.template @@ -4,19 +4,16 @@ pkgbase = flux-bin pkgrel = ${PKGREL} url = https://fluxcd.io/ arch = x86_64 - arch = armv6h arch = armv7h arch = aarch64 license = APACHE optdepends = bash-completion: auto-completion for flux in Bash optdepends = zsh-completions: auto-completion for flux in ZSH - source_x86_64 = flux-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_amd64.tar.gz + source_x86_64 = flux-bin-${PKGVER}_linux_amd64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_amd64.tar.gz sha256sums_x86_64 = ${SHA256SUM_AMD64} - source_armv6h = flux-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm.tar.gz - sha256sums_armv6h = ${SHA256SUM_ARM} - source_armv7h = flux-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm.tar.gz + source_armv7h = flux-bin-${PKGVER}_linux_arm.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm.tar.gz sha256sums_armv7h = ${SHA256SUM_ARM} - source_aarch64 = flux-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm64.tar.gz + source_aarch64 = flux-bin-${PKGVER}_linux_arm64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm64.tar.gz sha256sums_aarch64 = ${SHA256SUM_ARM64} pkgname = flux-bin diff --git a/.github/aur/flux-bin/PKGBUILD.template b/.github/aur/flux-bin/PKGBUILD.template index c390bd51..f011e1f9 100644 --- a/.github/aur/flux-bin/PKGBUILD.template +++ b/.github/aur/flux-bin/PKGBUILD.template @@ -8,28 +8,22 @@ _srcname=flux _srcver=${VERSION} pkgdesc="Open and extensible continuous delivery solution for Kubernetes" url="https://fluxcd.io/" -arch=("x86_64" "armv6h" "armv7h" "aarch64") +arch=("x86_64" "armv7h" "aarch64") license=("APACHE") optdepends=('bash-completion: auto-completion for flux in Bash' 'zsh-completions: auto-completion for flux in ZSH') source_x86_64=( - "${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_amd64.tar.gz" -) -source_armv6h=( - "${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm.tar.gz" + "${pkgname}-${pkgver}_linux_amd64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_amd64.tar.gz" ) source_armv7h=( - "${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm.tar.gz" + "${pkgname}-${pkgver}_linux_arm.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm.tar.gz" ) source_aarch64=( - "${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm64.tar.gz" + "${pkgname}-${pkgver}_linux_arm64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm64.tar.gz" ) sha256sums_x86_64=( ${SHA256SUM_AMD64} ) -sha256sums_armv6h=( - ${SHA256SUM_ARM} -) sha256sums_armv7h=( ${SHA256SUM_ARM} ) From 524a729f5de2886c909ecff50ec31401135da0a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 00:39:21 +0000 Subject: [PATCH 008/154] build(deps): bump the ci group with 1 update Bumps the ci group with 1 update: [actions/checkout](https://github.com/actions/checkout). - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/3df4ab11eba7bda6032a0b82a6bb43b11571feac...8ade135a41bc03ea155e62e844d188df1ea18608) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/action.yaml | 2 +- .github/workflows/backport.yaml | 2 +- .github/workflows/e2e-arm64.yaml | 2 +- .github/workflows/e2e-azure.yaml | 4 ++-- .github/workflows/e2e-bootstrap.yaml | 2 +- .github/workflows/e2e-gcp.yaml | 2 +- .github/workflows/e2e.yaml | 2 +- .github/workflows/ossf.yaml | 2 +- .github/workflows/release.yaml | 4 ++-- .github/workflows/scan.yaml | 6 +++--- .github/workflows/sync-labels.yaml | 2 +- .github/workflows/update.yaml | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index e1b53c48..b6a7c32c 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -24,6 +24,6 @@ jobs: name: action on ${{ matrix.version }} steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup flux uses: ./action diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index b3d38869..8e990c9d 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -13,7 +13,7 @@ jobs: if: github.event.pull_request.state == 'closed' && github.event.pull_request.merged && (github.event_name != 'labeled' || startsWith('backport:', github.event.label.name)) steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index d309c7d6..ba4a871e 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -21,7 +21,7 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index c1916609..4621eefe 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -30,7 +30,7 @@ jobs: if: false && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: @@ -75,7 +75,7 @@ jobs: if: false && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: CheckoutD - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e-bootstrap.yaml b/.github/workflows/e2e-bootstrap.yaml index 2ccb4408..379be360 100644 --- a/.github/workflows/e2e-bootstrap.yaml +++ b/.github/workflows/e2e-bootstrap.yaml @@ -17,7 +17,7 @@ jobs: if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index 601adc1c..d881677c 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -29,7 +29,7 @@ jobs: if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 7c7a99ab..59094080 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -21,7 +21,7 @@ jobs: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index bec8827b..1fca3716 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -19,7 +19,7 @@ jobs: actions: read contents: read steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Run analysis uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a066b6db..095cb5d6 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,7 +20,7 @@ jobs: packages: write # needed for ghcr access steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Unshallow run: git fetch --prune --unshallow - name: Setup Go @@ -110,7 +110,7 @@ jobs: id-token: write packages: write steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Setup Flux CLI diff --git a/.github/workflows/scan.yaml b/.github/workflows/scan.yaml index a8f29dbd..8a84ad5c 100644 --- a/.github/workflows/scan.yaml +++ b/.github/workflows/scan.yaml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest if: github.actor != 'dependabot[bot]' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Run FOSSA scan and upload build data uses: fossa-contrib/fossa-action@6728dc6fe9a068c648d080c33829ffbe56565023 # v2.0.0 with: @@ -31,7 +31,7 @@ jobs: security-events: write if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Setup Go @@ -64,7 +64,7 @@ jobs: if: github.actor != 'dependabot[bot]' steps: - name: Checkout repository - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/sync-labels.yaml b/.github/workflows/sync-labels.yaml index 17144468..63969548 100644 --- a/.github/workflows/sync-labels.yaml +++ b/.github/workflows/sync-labels.yaml @@ -17,7 +17,7 @@ jobs: permissions: issues: write steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: EndBug/label-sync@da00f2c11fdb78e4fae44adac2fdd713778ea3e8 # v2.3.2 with: # Configuration file diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 1b3ab231..3dcbcb6d 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -18,7 +18,7 @@ jobs: pull-requests: write steps: - name: Check out code - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: From 630ca340dd6aac95fa8d66fc262ceafb1905768f Mon Sep 17 00:00:00 2001 From: Matheus Pimenta Date: Wed, 27 Sep 2023 12:21:28 +0100 Subject: [PATCH 009/154] Add badge for SLSA Level 3 Signed-off-by: Matheus Pimenta --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e92e1587..5641b7be 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fluxcd/flux2/badge)](https://api.securityscorecards.dev/projects/github.com/fluxcd/flux2) [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Ffluxcd%2Fflux2.svg?type=shield)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Ffluxcd%2Fflux2?ref=badge_shield) [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/flux2)](https://artifacthub.io/packages/helm/fluxcd-community/flux2) +[![SLSA 3](https://slsa.dev/images/gh-badge-level3.svg)](https://fluxcd.io/flux/security/slsa-assessment) Flux is a tool for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories and OCI artifacts), From cf78e029aa6a3710672a3c7bec798c452b5dcd95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 00:47:36 +0000 Subject: [PATCH 010/154] build(deps): bump the ci group with 1 update Bumps the ci group with 1 update: [ossf/scorecard-action](https://github.com/ossf/scorecard-action). - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](https://github.com/ossf/scorecard-action/compare/08b4669551908b1024bb425080c797723083c031...483ef80eb98fb506c348f7d62e28055e49fe2398) --- updated-dependencies: - dependency-name: ossf/scorecard-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/ossf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index 1fca3716..02ae21bd 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Run analysis - uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0 + uses: ossf/scorecard-action@483ef80eb98fb506c348f7d62e28055e49fe2398 # v2.3.0 with: results_file: results.sarif results_format: sarif From 084fb6318daeef5302b84e8df085e37df37e63ce Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Wed, 11 Oct 2023 14:02:03 +0000 Subject: [PATCH 011/154] Update toolkit components - helm-controller to v0.36.2 https://github.com/fluxcd/helm-controller/blob/v0.36.2/CHANGELOG.md - kustomize-controller to v1.1.1 https://github.com/fluxcd/kustomize-controller/blob/v1.1.1/CHANGELOG.md - source-controller to v1.1.2 https://github.com/fluxcd/source-controller/blob/v1.1.2/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 6 +++--- go.sum | 12 ++++++------ manifests/bases/helm-controller/kustomization.yaml | 4 ++-- .../bases/kustomize-controller/kustomization.yaml | 4 ++-- manifests/bases/source-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index fcc6ae61..83c799c1 100644 --- a/go.mod +++ b/go.mod @@ -11,10 +11,10 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/go-git-providers v0.18.0 - github.com/fluxcd/helm-controller/api v0.36.1 + github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.30.0 - github.com/fluxcd/kustomize-controller/api v1.1.0 + github.com/fluxcd/kustomize-controller/api v1.1.1 github.com/fluxcd/notification-controller/api v1.1.0 github.com/fluxcd/pkg/apis/event v0.5.2 github.com/fluxcd/pkg/apis/meta v1.1.2 @@ -28,7 +28,7 @@ require ( github.com/fluxcd/pkg/ssh v0.8.2 github.com/fluxcd/pkg/tar v0.2.0 github.com/fluxcd/pkg/version v0.2.2 - github.com/fluxcd/source-controller/api v1.1.1 + github.com/fluxcd/source-controller/api v1.1.2 github.com/go-git/go-git/v5 v5.9.0 github.com/go-logr/logr v1.2.4 github.com/gonvenience/bunt v1.3.5 diff --git a/go.sum b/go.sum index c16b1593..bc3db0bf 100644 --- a/go.sum +++ b/go.sum @@ -144,14 +144,14 @@ github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.18.0 h1:4Whs6GzQdx3d7UTeIahRmzUrTZKhucySC53pwdXFV7Y= github.com/fluxcd/go-git-providers v0.18.0/go.mod h1:++kUR1LegtRWU30bdPb9FuRUH/6+DgoHSbwOkZ5NiKo= -github.com/fluxcd/helm-controller/api v0.36.1 h1:v1Y8x7fCyWg5n0hkGJabwOKcBN6yuFKLMCELe7LEgxs= -github.com/fluxcd/helm-controller/api v0.36.1/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= +github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= +github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= -github.com/fluxcd/kustomize-controller/api v1.1.0 h1:FrFdRdlPczXTolOMt/HsY6rf1tWEYBoF2uJOISx8fpg= -github.com/fluxcd/kustomize-controller/api v1.1.0/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= +github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= +github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDXLnijUddlHeRfciALwQw= github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= @@ -183,8 +183,8 @@ github.com/fluxcd/pkg/tar v0.2.0 h1:HEUHgONQYsJGeZZ4x6h5nQU9Aox1I4T3bOp1faWTqf8= github.com/fluxcd/pkg/tar v0.2.0/go.mod h1:w0/TOC7kwBJhnSJn7TCABkc/I7ib1f2Yz6vOsbLBnhw= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.1 h1:0KQTEnLxBRrovISc5JeovTfyTjhh4vwodNnYyD6XD/Q= -github.com/fluxcd/source-controller/api v1.1.1/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= +github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= diff --git a/manifests/bases/helm-controller/kustomization.yaml b/manifests/bases/helm-controller/kustomization.yaml index 2037bdfe..a55c9340 100644 --- a/manifests/bases/helm-controller/kustomization.yaml +++ b/manifests/bases/helm-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.1/helm-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.1/helm-controller.deployment.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/kustomize-controller/kustomization.yaml b/manifests/bases/kustomize-controller/kustomization.yaml index d831b6bd..cef82f1e 100644 --- a/manifests/bases/kustomize-controller/kustomization.yaml +++ b/manifests/bases/kustomize-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.0/kustomize-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.0/kustomize-controller.deployment.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/source-controller/kustomization.yaml b/manifests/bases/source-controller/kustomization.yaml index 67d4566a..7b3d3fec 100644 --- a/manifests/bases/source-controller/kustomization.yaml +++ b/manifests/bases/source-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.1.1/source-controller.crds.yaml -- https://github.com/fluxcd/source-controller/releases/download/v1.1.1/source-controller.deployment.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.1.2/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.1.2/source-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index feaa2d60..920f6fec 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -1,9 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.1.1/source-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.0/kustomize-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.1/helm-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.1.2/source-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.crds.yaml - https://github.com/fluxcd/notification-controller/releases/download/v1.1.0/notification-controller.crds.yaml - https://github.com/fluxcd/image-reflector-controller/releases/download/v0.30.0/image-reflector-controller.crds.yaml - https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.crds.yaml From 8f7ed74913a6690655431a45d48c07dd81cfc3d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Oct 2023 23:12:22 +0000 Subject: [PATCH 012/154] build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.15.0 to 0.17.0. - [Commits](https://github.com/golang/net/compare/v0.15.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 83c799c1..6464671d 100644 --- a/go.mod +++ b/go.mod @@ -46,8 +46,8 @@ require ( github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/theckman/yacspin v0.13.12 - golang.org/x/crypto v0.13.0 - golang.org/x/term v0.12.0 + golang.org/x/crypto v0.14.0 + golang.org/x/term v0.13.0 k8s.io/api v0.27.4 k8s.io/apiextensions-apiserver v0.27.4 k8s.io/apimachinery v0.27.4 @@ -191,10 +191,10 @@ require ( github.com/xlab/treeprint v1.1.0 // indirect go.starlark.net v0.0.0-20221028183056-acb66ad56dd2 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.15.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.12.0 // indirect + golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.13.0 // indirect diff --git a/go.sum b/go.sum index bc3db0bf..22ed4426 100644 --- a/go.sum +++ b/go.sum @@ -511,8 +511,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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= @@ -544,8 +544,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= @@ -591,16 +591,16 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/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= From 42372d9ef6e09bf246c9133ccda25df892a700c2 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Thu, 12 Oct 2023 09:43:46 +0300 Subject: [PATCH 013/154] e2e: Update Go dependencies Signed-off-by: Stefan Prodan --- tests/azure/go.mod | 14 +++---- tests/azure/go.sum | 28 ++++++------- tests/integration/go.mod | 42 ++++++++++---------- tests/integration/go.sum | 85 ++++++++++++++++++++-------------------- 4 files changed, 84 insertions(+), 85 deletions(-) diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 24320579..298cc7c3 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -7,16 +7,16 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 - github.com/fluxcd/helm-controller/api v0.36.1 + github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.30.0 - github.com/fluxcd/kustomize-controller/api v1.1.0 + github.com/fluxcd/kustomize-controller/api v1.1.1 github.com/fluxcd/notification-controller/api v1.1.0 github.com/fluxcd/pkg/apis/event v0.5.2 github.com/fluxcd/pkg/apis/meta v1.1.2 github.com/fluxcd/pkg/git v0.14.0 github.com/fluxcd/pkg/git/gogit v0.14.0 - github.com/fluxcd/source-controller/api v1.1.1 + github.com/fluxcd/source-controller/api v1.1.2 github.com/go-git/go-git/v5 v5.9.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 @@ -97,12 +97,12 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.uber.org/atomic v1.10.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.15.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.12.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.13.0 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 05cbdbe7..2aff25b1 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -87,14 +87,14 @@ github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJ github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.36.1 h1:v1Y8x7fCyWg5n0hkGJabwOKcBN6yuFKLMCELe7LEgxs= -github.com/fluxcd/helm-controller/api v0.36.1/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= +github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= +github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= -github.com/fluxcd/kustomize-controller/api v1.1.0 h1:FrFdRdlPczXTolOMt/HsY6rf1tWEYBoF2uJOISx8fpg= -github.com/fluxcd/kustomize-controller/api v1.1.0/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= +github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= +github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDXLnijUddlHeRfciALwQw= github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= @@ -114,8 +114,8 @@ github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.1 h1:0KQTEnLxBRrovISc5JeovTfyTjhh4vwodNnYyD6XD/Q= -github.com/fluxcd/source-controller/api v1.1.1/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= +github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -313,8 +313,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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= @@ -346,8 +346,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= @@ -380,15 +380,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/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= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index b3001b08..d6ee1e36 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -1,22 +1,22 @@ module github.com/fluxcd/flux2/tests/integration -go 1.18 +go 1.20 require ( cloud.google.com/go/pubsub v1.31.0 github.com/Azure/azure-event-hubs-go/v3 v3.6.0 - github.com/fluxcd/helm-controller/api v0.34.1 - github.com/fluxcd/image-automation-controller/api v0.34.1 - github.com/fluxcd/image-reflector-controller/api v0.28.0 - github.com/fluxcd/kustomize-controller/api v1.0.0-rc.4 - github.com/fluxcd/notification-controller/api v1.0.0-rc.4 - github.com/fluxcd/pkg/apis/event v0.5.1 - github.com/fluxcd/pkg/apis/meta v1.1.1 + github.com/fluxcd/helm-controller/api v0.36.2 + github.com/fluxcd/image-automation-controller/api v0.36.1 + github.com/fluxcd/image-reflector-controller/api v0.30.0 + github.com/fluxcd/kustomize-controller/api v1.1.1 + github.com/fluxcd/notification-controller/api v1.1.0 + github.com/fluxcd/pkg/apis/event v0.5.2 + github.com/fluxcd/pkg/apis/meta v1.1.2 github.com/fluxcd/pkg/git v0.14.0 github.com/fluxcd/pkg/git/gogit v0.14.0 - github.com/fluxcd/pkg/runtime v0.39.0 - github.com/fluxcd/source-controller/api v1.0.0-rc.5 - github.com/fluxcd/test-infra/tftestenv v0.0.0-20230531151340-931581bd0a3e + github.com/fluxcd/pkg/runtime v0.42.0 + github.com/fluxcd/source-controller/api v1.1.2 + github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 github.com/go-git/go-git/v5 v5.9.0 github.com/google/go-containerregistry v0.14.0 github.com/hashicorp/terraform-json v0.16.0 @@ -24,10 +24,10 @@ require ( github.com/onsi/gomega v1.27.10 github.com/whilp/git-urls v1.0.0 google.golang.org/grpc v1.55.0 - k8s.io/api v0.27.3 - k8s.io/apimachinery v0.27.3 - k8s.io/client-go v0.27.3 - sigs.k8s.io/controller-runtime v0.15.0 + k8s.io/api v0.27.4 + k8s.io/apimachinery v0.27.4 + k8s.io/client-go v0.27.4 + sigs.k8s.io/controller-runtime v0.15.1 ) require ( @@ -65,7 +65,7 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.1.0 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect github.com/fluxcd/pkg/ssh v0.8.2 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect @@ -116,13 +116,13 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.15.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.12.0 // indirect - golang.org/x/term v0.12.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.13.0 // indirect @@ -134,7 +134,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.27.3 // indirect + k8s.io/apiextensions-apiserver v0.27.4 // indirect k8s.io/klog/v2 v2.100.1 // indirect k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index a41cda11..8fd1ce79 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -128,39 +128,39 @@ github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.34.1 h1:oL6GG7weRIqkTlTFRoTY3DJpxqKpAFEoDDsYoxQCa8g= -github.com/fluxcd/helm-controller/api v0.34.1/go.mod h1:1v1UqS5jOgWdMDzvJBgdcY40RminDUO6A0by4IkHd5s= -github.com/fluxcd/image-automation-controller/api v0.34.1 h1:Y2RFhmltELcSGm3lsGgmRcJCBf0SdGlH/PwCxewk4w0= -github.com/fluxcd/image-automation-controller/api v0.34.1/go.mod h1:vRJscxpWXuDMmBj8vlFM3pgpVHqh5hf65RVnCaOnSGo= -github.com/fluxcd/image-reflector-controller/api v0.28.0 h1:2a1UxPU1RHTxl+5YFFB0KuOCHrR3hL0B7fvAPJo2UXY= -github.com/fluxcd/image-reflector-controller/api v0.28.0/go.mod h1:bY28TT8Jv/pvdF/m+c64QCEiCY2BShMe22l1zRDYm4s= -github.com/fluxcd/kustomize-controller/api v1.0.0-rc.4 h1:e5dO5HaFISFNzhfi4zuPniE545vVnEi3VnSBcbxcZqU= -github.com/fluxcd/kustomize-controller/api v1.0.0-rc.4/go.mod h1:UTJu1JMr+rkabWkUWMNiOeFeDu+4ZKfJIK+oqEwOjzc= -github.com/fluxcd/notification-controller/api v1.0.0-rc.4 h1:bDqIirpscGUY0+1u+RKvTEmX43iiZ2xeQLz27FoJJD8= -github.com/fluxcd/notification-controller/api v1.0.0-rc.4/go.mod h1:XL5h5/x46e41rtNc8mwxTKX4kAtgTNuzJS0PV2c0iIQ= +github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= +github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= +github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= +github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= +github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= +github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= +github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= +github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= +github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDXLnijUddlHeRfciALwQw= +github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.5.1 h1:UrEmKwTK/lt42gMZunl8BQBMzjf8PSqGbWDs/GB839c= -github.com/fluxcd/pkg/apis/event v0.5.1/go.mod h1:GzBAzS8bq7751wvNkaSnr3kuwFVuWTPL20D77UgSNJQ= -github.com/fluxcd/pkg/apis/kustomize v1.1.0 h1:Fbv4dCB57r2+fiusozN7at8r7upTz58Z4wWw1njHPyU= -github.com/fluxcd/pkg/apis/kustomize v1.1.0/go.mod h1:CAe9Mjf9KVoTm1V4wpvq/FGXFDSnpBwfww/IG7mw3gM= -github.com/fluxcd/pkg/apis/meta v1.1.1 h1:sLAKLbEu7rRzJ+Mytffu3NcpfdbOBTa6hcpOQzFWm+M= -github.com/fluxcd/pkg/apis/meta v1.1.1/go.mod h1:soCfzjFWbm1mqybDcOywWKTCEYlH3skpoNGTboVk234= +github.com/fluxcd/pkg/apis/event v0.5.2 h1:WtnCOeWglf7wR3dpyiWxb1JtYkw1G5OXcERb1QopFpA= +github.com/fluxcd/pkg/apis/event v0.5.2/go.mod h1:5l6SSxVTkqrXrYjgEqAajOOHkl4x0TPocAuSdu+3AEs= +github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0cuDQY2HYwM= +github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= +github.com/fluxcd/pkg/apis/meta v1.1.2 h1:Unjo7hxadtB2dvGpeFqZZUdsjpRA08YYSBb7dF2WIAM= +github.com/fluxcd/pkg/apis/meta v1.1.2/go.mod h1:BHQyRHCskGMEDf6kDGbgQ+cyiNpUHbLsCOsaMYM2maI= github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/runtime v0.39.0 h1:vgmzYS+DT0w8ikX9MqGsOdmMagoiKys2RMGdl/EDbgc= -github.com/fluxcd/pkg/runtime v0.39.0/go.mod h1:0A/0kZv/MPciAj5AoSEDKVeqUFEF6371q7o+zk6l81g= +github.com/fluxcd/pkg/runtime v0.42.0 h1:a5DQ/f90YjoHBmiXZUpnp4bDSLORjInbmqP7K11L4uY= +github.com/fluxcd/pkg/runtime v0.42.0/go.mod h1:p6A3xWVV8cKLLQW0N90GehKgGMMmbNYv+OSJ/0qB0vg= github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.0.0-rc.5 h1:muoGOb/VitVEIOh877Ledi9AvibbyevPqvuH5byWU6g= -github.com/fluxcd/source-controller/api v1.0.0-rc.5/go.mod h1:W6tNXr3mRPhdc5+Jke9OZnuk/3THNzGzRJVhAtLfzss= -github.com/fluxcd/test-infra/tftestenv v0.0.0-20230531151340-931581bd0a3e h1:71jXb0t9pQAGleqRklVtdW38nXVTZ/KqeLSENnBldNk= -github.com/fluxcd/test-infra/tftestenv v0.0.0-20230531151340-931581bd0a3e/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= +github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= +github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 h1:w9UGknpfAGbiObQALZiuWYGeriAU1wKCFTmI2tj/96M= +github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -394,9 +394,8 @@ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -412,8 +411,8 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 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= @@ -447,8 +446,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= @@ -490,16 +489,16 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/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= @@ -594,22 +593,22 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.27.3 h1:yR6oQXXnUEBWEWcvPWS0jQL575KoAboQPfJAuKNrw5Y= -k8s.io/api v0.27.3/go.mod h1:C4BNvZnQOF7JA/0Xed2S+aUyJSfTGkGFxLXz9MnpIpg= -k8s.io/apiextensions-apiserver v0.27.3 h1:xAwC1iYabi+TDfpRhxh4Eapl14Hs2OftM2DN5MpgKX4= -k8s.io/apiextensions-apiserver v0.27.3/go.mod h1:BH3wJ5NsB9XE1w+R6SSVpKmYNyIiyIz9xAmBl8Mb+84= -k8s.io/apimachinery v0.27.3 h1:Ubye8oBufD04l9QnNtW05idcOe9Z3GQN8+7PqmuVcUM= -k8s.io/apimachinery v0.27.3/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/client-go v0.27.3 h1:7dnEGHZEJld3lYwxvLl7WoehK6lAq7GvgjxpA3nv1E8= -k8s.io/client-go v0.27.3/go.mod h1:2MBEKuTo6V1lbKy3z1euEGnhPfGZLKTS9tiJ2xodM48= +k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= +k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= +k8s.io/apiextensions-apiserver v0.27.4 h1:ie1yZG4nY/wvFMIR2hXBeSVq+HfNzib60FjnBYtPGSs= +k8s.io/apiextensions-apiserver v0.27.4/go.mod h1:KHZaDr5H9IbGEnSskEUp/DsdXe1hMQ7uzpQcYUFt2bM= +k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= +k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= +k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.15.0 h1:ML+5Adt3qZnMSYxZ7gAverBLNPSMQEibtzAgp0UPojU= -sigs.k8s.io/controller-runtime v0.15.0/go.mod h1:7ngYvp1MLT+9GeZ+6lH3LOlcHkp/+tzA/fmHa4iq9kk= +sigs.k8s.io/controller-runtime v0.15.1 h1:9UvgKD4ZJGcj24vefUFgZFP3xej/3igL9BsOUTb/+4c= +sigs.k8s.io/controller-runtime v0.15.1/go.mod h1:7ngYvp1MLT+9GeZ+6lH3LOlcHkp/+tzA/fmHa4iq9kk= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= From 08cb3858ed23894169ccf192b6301d3e2249c035 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Thu, 12 Oct 2023 10:26:30 +0100 Subject: [PATCH 014/154] Update go-git-providers to v0.19.1 Signed-off-by: Somtochi Onyekwere --- go.mod | 12 ++++++------ go.sum | 29 ++++++++++++++--------------- pkg/bootstrap/bootstrap_provider.go | 5 +++++ 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 6464671d..773679b3 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 - github.com/fluxcd/go-git-providers v0.18.0 + github.com/fluxcd/go-git-providers v0.19.1 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.30.0 @@ -41,7 +41,7 @@ require ( github.com/manifoldco/promptui v0.9.0 github.com/mattn/go-shellwords v1.0.12 github.com/olekukonko/tablewriter v0.0.5 - github.com/onsi/gomega v1.27.10 + github.com/onsi/gomega v1.28.0 github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 @@ -129,7 +129,7 @@ require ( github.com/gonvenience/wrap v1.1.2 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/gnostic v0.6.9 // indirect - github.com/google/go-github/v52 v52.0.0 // indirect + github.com/google/go-github/v55 v55.0.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect @@ -186,13 +186,13 @@ require ( github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/vbatts/tar-split v0.11.3 // indirect github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect - github.com/xanzy/go-gitlab v0.83.0 // indirect + github.com/xanzy/go-gitlab v0.93.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xlab/treeprint v1.1.0 // indirect go.starlark.net v0.0.0-20221028183056-acb66ad56dd2 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/oauth2 v0.13.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect @@ -200,7 +200,7 @@ require ( golang.org/x/tools v0.13.0 // indirect gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 22ed4426..a837e7a1 100644 --- a/go.sum +++ b/go.sum @@ -60,7 +60,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 h1:CQBFElb0LS8RojMJlxRSo/HXipvT github.com/aws/aws-sdk-go-v2/service/sts v1.21.5/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -142,8 +141,8 @@ github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBd github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/go-git-providers v0.18.0 h1:4Whs6GzQdx3d7UTeIahRmzUrTZKhucySC53pwdXFV7Y= -github.com/fluxcd/go-git-providers v0.18.0/go.mod h1:++kUR1LegtRWU30bdPb9FuRUH/6+DgoHSbwOkZ5NiKo= +github.com/fluxcd/go-git-providers v0.19.1 h1:LXRFpHdPCmO+Uegw2MvAU3KiEHn1PRV2c//ii/HhpeY= +github.com/fluxcd/go-git-providers v0.19.1/go.mod h1:eN0JpfkQqS/6yJ1I6DW3z1XLCC2JZK+55Ues+0Ur3Ds= github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= @@ -270,8 +269,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.16.1 h1:rUEt426sR6nyrL3gt+18ibRcvYpKYdpsa5ZW7MA08dQ= github.com/google/go-containerregistry v0.16.1/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= -github.com/google/go-github/v52 v52.0.0 h1:uyGWOY+jMQ8GVGSX8dkSwCzlehU3WfdxQ7GweO/JP7M= -github.com/google/go-github/v52 v52.0.0/go.mod h1:WJV6VEEUPuMo5pXqqa2ZCZEdbQqua4zAk2MZTIo+m+4= +github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg= +github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -399,9 +398,9 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/ginkgo/v2 v2.12.0 h1:UIVDowFPwpg6yMUpPjGkYvf06K3RAiJXUhCxEwQVHRI= +github.com/onsi/gomega v1.28.0 h1:i2rg/p9n/UqIDAMFUJ6qIUUMcsqOuUHgbpbu235Vr1c= +github.com/onsi/gomega v1.28.0/go.mod h1:A1H2JE76sI14WIP57LMKj7FVfCHx3g3BcZVjJG8bjX8= 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.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= @@ -485,8 +484,8 @@ github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RV github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 h1:JwtAtbp7r/7QSyGz8mKUbYJBg2+6Cd7OjM8o/GNOcVo= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74/go.mod h1:RmMWU37GKR2s6pgrIEB4ixgpVCt/cf7dnJv3fuH1J1c= -github.com/xanzy/go-gitlab v0.83.0 h1:37p0MpTPNbsTMKX/JnmJtY8Ch1sFiJzVF342+RvZEGw= -github.com/xanzy/go-gitlab v0.83.0/go.mod h1:5ryv+MnpZStBH8I/77HuQBsMbBGANtVpLWC15qOjWAw= +github.com/xanzy/go-gitlab v0.93.1 h1:f7J33cw/P9b/8paIOoH0F3H+TFrswvWHs6yUgoTp9LY= +github.com/xanzy/go-gitlab v0.93.1/go.mod h1:5ryv+MnpZStBH8I/77HuQBsMbBGANtVpLWC15qOjWAw= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -502,7 +501,7 @@ go.starlark.net v0.0.0-20221028183056-acb66ad56dd2 h1:5/KzhcSqd4UgY51l17r7C5g/Ji go.starlark.net v0.0.0-20221028183056-acb66ad56dd2/go.mod h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -548,8 +547,8 @@ golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= 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= @@ -660,8 +659,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/bootstrap/bootstrap_provider.go b/pkg/bootstrap/bootstrap_provider.go index d736f2f7..265ab0c1 100644 --- a/pkg/bootstrap/bootstrap_provider.go +++ b/pkg/bootstrap/bootstrap_provider.go @@ -423,6 +423,11 @@ func (b *GitProviderBootstrapper) reconcileUserRepository(ctx context.Context) ( // branch correctly. Resort to Create until this has been resolved. repo, err = b.provider.UserRepositories().Create(ctx, repoRef, repoInfo) if err != nil { + var userErr *gitprovider.ErrIncorrectUser + if errors.As(err, &userErr) { + // return a better error message when the wrong owner is set + err = fmt.Errorf("the specified owner '%s' doesn't match the identity associated with the given token", b.owner) + } return nil, fmt.Errorf("failed to create new Git repository %q: %w", repoRef.String(), err) } b.logger.Successf("repository %q created", repoRef.String()) From a51ede681f7f9e9d99249ff7cf0c021458f30d85 Mon Sep 17 00:00:00 2001 From: Gergely Brautigam <182850+Skarlso@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:57:50 +0200 Subject: [PATCH 015/154] fix: only wait for changeset if the result is not empty Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com> --- internal/utils/apply.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/utils/apply.go b/internal/utils/apply.go index c910fce3..52bf67b8 100644 --- a/internal/utils/apply.go +++ b/internal/utils/apply.go @@ -76,8 +76,10 @@ func Apply(ctx context.Context, rcg genericclioptions.RESTClientGetter, opts *ru changeSet.Append(cs.Entries) } - if err := waitForSet(rcg, opts, changeSet); err != nil { - return "", err + if len(changeSet.Entries) > 0 { + if err := waitForSet(rcg, opts, changeSet); err != nil { + return "", err + } } if len(stageTwo) > 0 { From e9d4b42b12bfcd20fe0749e56dc6daeef56f7965 Mon Sep 17 00:00:00 2001 From: Ilya Dmitrichenko Date: Wed, 27 Sep 2023 11:10:26 +0100 Subject: [PATCH 016/154] Upgrade github.com/fluxcd/pkg/oci Signed-off-by: Ilya Dmitrichenko --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 773679b3..6dd1e45d 100644 --- a/go.mod +++ b/go.mod @@ -21,12 +21,12 @@ require ( github.com/fluxcd/pkg/git v0.14.0 github.com/fluxcd/pkg/git/gogit v0.14.0 github.com/fluxcd/pkg/kustomize v1.3.4 - github.com/fluxcd/pkg/oci v0.31.0 + github.com/fluxcd/pkg/oci v0.32.0 github.com/fluxcd/pkg/runtime v0.42.0 github.com/fluxcd/pkg/sourceignore v0.3.5 github.com/fluxcd/pkg/ssa v0.32.0 github.com/fluxcd/pkg/ssh v0.8.2 - github.com/fluxcd/pkg/tar v0.2.0 + github.com/fluxcd/pkg/tar v0.3.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.1.2 github.com/go-git/go-git/v5 v5.9.0 diff --git a/go.sum b/go.sum index a837e7a1..ee19e2d6 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,8 @@ github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0U github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= github.com/fluxcd/pkg/kustomize v1.3.4 h1:+XA4umfhkFqrNYQp3ZmKSJy4i3LWjbgoi6H4PllkkkA= github.com/fluxcd/pkg/kustomize v1.3.4/go.mod h1:nsbsNGe6nQY6DGYYPowFGQlhxFRcaRFvbwqhCbwAQuE= -github.com/fluxcd/pkg/oci v0.31.0 h1:Zpp65vcFJKRfeltuswKztJh2OrB86X3VrA1LU/VjspQ= -github.com/fluxcd/pkg/oci v0.31.0/go.mod h1:UL7nzm7p3fk5X0ZTsHl3qBhRy/NtuGqFSangXvPKUNw= +github.com/fluxcd/pkg/oci v0.32.0 h1:bszRg0pzdfQ0iHLTvjMkDJysc+rlw2TS4c0uCl2MYDQ= +github.com/fluxcd/pkg/oci v0.32.0/go.mod h1:SqbTfdbxNDfrKkZuNtlBKQj9M7E5Hpw0UuxukS48ApA= github.com/fluxcd/pkg/runtime v0.42.0 h1:a5DQ/f90YjoHBmiXZUpnp4bDSLORjInbmqP7K11L4uY= github.com/fluxcd/pkg/runtime v0.42.0/go.mod h1:p6A3xWVV8cKLLQW0N90GehKgGMMmbNYv+OSJ/0qB0vg= github.com/fluxcd/pkg/sourceignore v0.3.5 h1:omcHTH5X5tlPr9w1b9T7WuJTOP+o/KdVdarYb4kgkCU= @@ -178,8 +178,8 @@ github.com/fluxcd/pkg/ssa v0.32.0 h1:RBqs9DNrbJkFHjpfsiKilyean7gwqWFspSBTLOaBIHs github.com/fluxcd/pkg/ssa v0.32.0/go.mod h1:+Kf5euYAbvgJX645bo+IL7V/NlH0X7kGgFTr1W++I3c= github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= -github.com/fluxcd/pkg/tar v0.2.0 h1:HEUHgONQYsJGeZZ4x6h5nQU9Aox1I4T3bOp1faWTqf8= -github.com/fluxcd/pkg/tar v0.2.0/go.mod h1:w0/TOC7kwBJhnSJn7TCABkc/I7ib1f2Yz6vOsbLBnhw= +github.com/fluxcd/pkg/tar v0.3.0 h1:gIdCIIuvV5aH193c1qYZeC6gpJOmw1p2OzhAvaUHNFI= +github.com/fluxcd/pkg/tar v0.3.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= From b46e298b4d8d109bf606137c0c23fcb7750491b3 Mon Sep 17 00:00:00 2001 From: Ilya Dmitrichenko Date: Wed, 27 Sep 2023 11:12:45 +0100 Subject: [PATCH 017/154] Print artifact source and revision only when available Signed-off-by: Ilya Dmitrichenko --- cmd/flux/pull_artifact.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/flux/pull_artifact.go b/cmd/flux/pull_artifact.go index d61f6dcb..114368bd 100644 --- a/cmd/flux/pull_artifact.go +++ b/cmd/flux/pull_artifact.go @@ -111,8 +111,12 @@ func pullArtifactCmdRun(cmd *cobra.Command, args []string) error { return err } - logger.Successf("source %s", meta.Source) - logger.Successf("revision %s", meta.Revision) + if meta.Source != "" { + logger.Successf("source %s", meta.Source) + } + if meta.Revision != "" { + logger.Successf("revision %s", meta.Revision) + } logger.Successf("digest %s", meta.Digest) logger.Successf("artifact content extracted to %s", pullArtifactArgs.output) From 840e717b7249bca49a4cfc57feeb9ed7bb8563f8 Mon Sep 17 00:00:00 2001 From: Matheus Pimenta Date: Sun, 15 Oct 2023 01:25:34 +0100 Subject: [PATCH 018/154] Add CLI flag for OCIRepo verify secret Signed-off-by: Matheus Pimenta --- cmd/flux/create_source_oci.go | 37 ++++++++---- cmd/flux/create_source_oci_test.go | 10 ++++ .../oci/export_with_verify_secret.golden | 15 +++++ internal/flags/source_oci_verify_provider.go | 58 +++++++++++++++++++ .../flags/source_oci_verify_provider_test.go | 48 +++++++++++++++ 5 files changed, 158 insertions(+), 10 deletions(-) create mode 100644 cmd/flux/testdata/oci/export_with_verify_secret.golden create mode 100644 internal/flags/source_oci_verify_provider.go create mode 100644 internal/flags/source_oci_verify_provider_test.go diff --git a/cmd/flux/create_source_oci.go b/cmd/flux/create_source_oci.go index 5d6a5f95..388ab18c 100644 --- a/cmd/flux/create_source_oci.go +++ b/cmd/flux/create_source_oci.go @@ -51,16 +51,18 @@ var createSourceOCIRepositoryCmd = &cobra.Command{ } type sourceOCIRepositoryFlags struct { - url string - tag string - semver string - digest string - secretRef string - serviceAccount string - certSecretRef string - ignorePaths []string - provider flags.SourceOCIProvider - insecure bool + url string + tag string + semver string + digest string + secretRef string + serviceAccount string + certSecretRef string + verifyProvider flags.SourceOCIVerifyProvider + verifySecretRef string + ignorePaths []string + provider flags.SourceOCIProvider + insecure bool } var sourceOCIRepositoryArgs = newSourceOCIFlags() @@ -80,6 +82,8 @@ func init() { createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.secretRef, "secret-ref", "", "the name of the Kubernetes image pull secret (type 'kubernetes.io/dockerconfigjson')") createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.serviceAccount, "service-account", "", "the name of the Kubernetes service account that refers to an image pull secret") createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.certSecretRef, "cert-ref", "", "the name of a secret to use for TLS certificates") + createSourceOCIRepositoryCmd.Flags().Var(&sourceOCIRepositoryArgs.verifyProvider, "verify-provider", sourceOCIRepositoryArgs.verifyProvider.Description()) + createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.verifySecretRef, "verify-secret-ref", "", "the name of a secret to use for signature verification") createSourceOCIRepositoryCmd.Flags().StringSliceVar(&sourceOCIRepositoryArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore resources (can specify multiple paths with commas: path1,path2)") createSourceOCIRepositoryCmd.Flags().BoolVar(&sourceOCIRepositoryArgs.insecure, "insecure", false, "for when connecting to a non-TLS registries over plain HTTP") @@ -156,6 +160,19 @@ func createSourceOCIRepositoryCmdRun(cmd *cobra.Command, args []string) error { } } + if provider := sourceOCIRepositoryArgs.verifyProvider.String(); provider != "" { + repository.Spec.Verify = &sourcev1.OCIRepositoryVerification{ + Provider: provider, + } + if secretName := sourceOCIRepositoryArgs.verifySecretRef; secretName != "" { + repository.Spec.Verify.SecretRef = &meta.LocalObjectReference{ + Name: secretName, + } + } + } else if sourceOCIRepositoryArgs.verifySecretRef != "" { + return fmt.Errorf("a verification provider must be specified when a secret is specified") + } + if createArgs.export { return printExport(exportOCIRepository(repository)) } diff --git a/cmd/flux/create_source_oci_test.go b/cmd/flux/create_source_oci_test.go index 8972b813..743632a6 100644 --- a/cmd/flux/create_source_oci_test.go +++ b/cmd/flux/create_source_oci_test.go @@ -36,6 +36,11 @@ func TestCreateSourceOCI(t *testing.T) { args: "create source oci podinfo", assertFunc: assertError("url is required"), }, + { + name: "verify provider not specified", + args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-secret-ref=cosign-pub", + assertFunc: assertError("a verification provider must be specified when a secret is specified"), + }, { name: "export manifest", args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --interval 10m --export", @@ -46,6 +51,11 @@ func TestCreateSourceOCI(t *testing.T) { args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --interval 10m --secret-ref=creds --export", assertFunc: assertGoldenFile("./testdata/oci/export_with_secret.golden"), }, + { + name: "export manifest with verify secret", + args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --interval 10m --verify-provider=cosign --verify-secret-ref=cosign-pub --export", + assertFunc: assertGoldenFile("./testdata/oci/export_with_verify_secret.golden"), + }, } for _, tt := range tests { diff --git a/cmd/flux/testdata/oci/export_with_verify_secret.golden b/cmd/flux/testdata/oci/export_with_verify_secret.golden new file mode 100644 index 00000000..d7e94aad --- /dev/null +++ b/cmd/flux/testdata/oci/export_with_verify_secret.golden @@ -0,0 +1,15 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: OCIRepository +metadata: + name: podinfo + namespace: flux-system +spec: + interval: 10m0s + ref: + tag: 6.3.5 + url: oci://ghcr.io/stefanprodan/manifests/podinfo + verify: + provider: cosign + secretRef: + name: cosign-pub diff --git a/internal/flags/source_oci_verify_provider.go b/internal/flags/source_oci_verify_provider.go new file mode 100644 index 00000000..acd57a9d --- /dev/null +++ b/internal/flags/source_oci_verify_provider.go @@ -0,0 +1,58 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package flags + +import ( + "fmt" + "strings" + + "github.com/fluxcd/flux2/v2/internal/utils" +) + +var supportedSourceOCIVerifyProviders = []string{ + "cosign", +} + +type SourceOCIVerifyProvider string + +func (p *SourceOCIVerifyProvider) String() string { + return string(*p) +} + +func (p *SourceOCIVerifyProvider) Set(str string) error { + if strings.TrimSpace(str) == "" { + return fmt.Errorf("no source OCI verify provider given, please specify %s", + p.Description()) + } + if !utils.ContainsItemString(supportedSourceOCIVerifyProviders, str) { + return fmt.Errorf("source OCI verify provider '%s' is not supported, must be one of: %v", + str, strings.Join(supportedSourceOCIVerifyProviders, ", ")) + } + *p = SourceOCIVerifyProvider(str) + return nil +} + +func (p *SourceOCIVerifyProvider) Type() string { + return "sourceOCIVerifyProvider" +} + +func (p *SourceOCIVerifyProvider) Description() string { + return fmt.Sprintf( + "the OCI verify provider name to use for signature verification, available options are: (%s)", + strings.Join(supportedSourceOCIVerifyProviders, ", "), + ) +} diff --git a/internal/flags/source_oci_verify_provider_test.go b/internal/flags/source_oci_verify_provider_test.go new file mode 100644 index 00000000..e8966521 --- /dev/null +++ b/internal/flags/source_oci_verify_provider_test.go @@ -0,0 +1,48 @@ +//go:build !e2e +// +build !e2e + +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package flags + +import ( + "testing" +) + +func TestSourceOCIVerifyProvider_Set(t *testing.T) { + tests := []struct { + name string + str string + expect string + expectErr bool + }{ + {"supported", "cosign", "cosign", false}, + {"unsupported", "unsupported", "", true}, + {"empty", "", "", true}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + var s SourceOCIVerifyProvider + if err := s.Set(tt.str); (err != nil) != tt.expectErr { + t.Errorf("Set() error = %v, expectErr %v", err, tt.expectErr) + } + if str := s.String(); str != tt.expect { + t.Errorf("Set() = %v, expect %v", str, tt.expect) + } + }) + } +} From 16d352b15b2057bba0b470f4882b3452cd82241c Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:01:35 +0200 Subject: [PATCH 019/154] misc: address `strings.Title` deprecation Signed-off-by: Hidde Beydals --- cmd/flux/get_alert.go | 6 ++++-- cmd/flux/get_helmrelease.go | 8 +++++--- cmd/flux/get_image_repository.go | 5 +++-- cmd/flux/get_image_update.go | 6 ++++-- cmd/flux/get_kustomization.go | 5 +++-- cmd/flux/get_receiver.go | 6 ++++-- cmd/flux/get_source_bucket.go | 5 +++-- cmd/flux/get_source_chart.go | 5 +++-- cmd/flux/get_source_git.go | 5 +++-- cmd/flux/get_source_helm.go | 5 +++-- cmd/flux/get_source_oci.go | 5 +++-- go.mod | 2 +- 12 files changed, 39 insertions(+), 24 deletions(-) diff --git a/cmd/flux/get_alert.go b/cmd/flux/get_alert.go index 9137e90e..9ea6c682 100644 --- a/cmd/flux/get_alert.go +++ b/cmd/flux/get_alert.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" @@ -77,7 +78,8 @@ func init() { func (s alertListAdapter) summariseItem(i int, includeNamespace bool, includeKind bool) []string { item := s.Items[i] status, msg := statusAndMessage(item.Status.Conditions) - return append(nameColumns(&item, includeNamespace, includeKind), strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + return append(nameColumns(&item, includeNamespace, includeKind), + cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (s alertListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_helmrelease.go b/cmd/flux/get_helmrelease.go index fd709d29..d6462ddd 100644 --- a/cmd/flux/get_helmrelease.go +++ b/cmd/flux/get_helmrelease.go @@ -19,11 +19,13 @@ package main import ( "fmt" "strconv" - "strings" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" + + helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" ) var getHelmReleaseCmd = &cobra.Command{ @@ -75,7 +77,7 @@ func (a helmReleaseListAdapter) summariseItem(i int, includeNamespace bool, incl revision := item.Status.LastAppliedRevision status, msg := statusAndMessage(item.Status.Conditions) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a helmReleaseListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_image_repository.go b/cmd/flux/get_image_repository.go index 0f6f95a6..e160de8d 100644 --- a/cmd/flux/get_image_repository.go +++ b/cmd/flux/get_image_repository.go @@ -19,10 +19,11 @@ package main import ( "fmt" "strconv" - "strings" "time" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" @@ -82,7 +83,7 @@ func (s imageRepositoryListAdapter) summariseItem(i int, includeNamespace bool, lastScan = item.Status.LastScanResult.ScanTime.Time.Format(time.RFC3339) } return append(nameColumns(&item, includeNamespace, includeKind), - lastScan, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + lastScan, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (s imageRepositoryListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_image_update.go b/cmd/flux/get_image_update.go index 833be4ab..62399626 100644 --- a/cmd/flux/get_image_update.go +++ b/cmd/flux/get_image_update.go @@ -19,10 +19,11 @@ package main import ( "fmt" "strconv" - "strings" "time" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" @@ -81,7 +82,8 @@ func (s imageUpdateAutomationListAdapter) summariseItem(i int, includeNamespace if item.Status.LastAutomationRunTime != nil { lastRun = item.Status.LastAutomationRunTime.Time.Format(time.RFC3339) } - return append(nameColumns(&item, includeNamespace, includeKind), lastRun, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + return append(nameColumns(&item, includeNamespace, includeKind), lastRun, + cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (s imageUpdateAutomationListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_kustomization.go b/cmd/flux/get_kustomization.go index 517aa375..a95ec655 100644 --- a/cmd/flux/get_kustomization.go +++ b/cmd/flux/get_kustomization.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" @@ -83,7 +84,7 @@ func (a kustomizationListAdapter) summariseItem(i int, includeNamespace bool, in revision = utils.TruncateHex(revision) msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a kustomizationListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_receiver.go b/cmd/flux/get_receiver.go index a72d0765..43f8f5a4 100644 --- a/cmd/flux/get_receiver.go +++ b/cmd/flux/get_receiver.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" notificationv1 "github.com/fluxcd/notification-controller/api/v1" @@ -74,7 +75,8 @@ func init() { func (s receiverListAdapter) summariseItem(i int, includeNamespace bool, includeKind bool) []string { item := s.Items[i] status, msg := statusAndMessage(item.Status.Conditions) - return append(nameColumns(&item, includeNamespace, includeKind), strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + return append(nameColumns(&item, includeNamespace, includeKind), + cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (s receiverListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_source_bucket.go b/cmd/flux/get_source_bucket.go index b21ee223..b7355fdb 100644 --- a/cmd/flux/get_source_bucket.go +++ b/cmd/flux/get_source_bucket.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -85,7 +86,7 @@ func (a *bucketListAdapter) summariseItem(i int, includeNamespace bool, includeK revision = utils.TruncateHex(revision) msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a bucketListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_source_chart.go b/cmd/flux/get_source_chart.go index e83839cb..b82bdd78 100644 --- a/cmd/flux/get_source_chart.go +++ b/cmd/flux/get_source_chart.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -86,7 +87,7 @@ func (a *helmChartListAdapter) summariseItem(i int, includeNamespace bool, inclu // Message may still contain reference of e.g. commit chart was build from msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a helmChartListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_source_git.go b/cmd/flux/get_source_git.go index 3c71da1c..78476de5 100644 --- a/cmd/flux/get_source_git.go +++ b/cmd/flux/get_source_git.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" sourcev1 "github.com/fluxcd/source-controller/api/v1" @@ -85,7 +86,7 @@ func (a *gitRepositoryListAdapter) summariseItem(i int, includeNamespace bool, i revision = utils.TruncateHex(revision) msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a gitRepositoryListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_source_helm.go b/cmd/flux/get_source_helm.go index 28315eb7..173a1880 100644 --- a/cmd/flux/get_source_helm.go +++ b/cmd/flux/get_source_helm.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -85,7 +86,7 @@ func (a *helmRepositoryListAdapter) summariseItem(i int, includeNamespace bool, revision = utils.TruncateHex(revision) msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a helmRepositoryListAdapter) headers(includeNamespace bool) []string { diff --git a/cmd/flux/get_source_oci.go b/cmd/flux/get_source_oci.go index 36f93fc9..e5bbe409 100644 --- a/cmd/flux/get_source_oci.go +++ b/cmd/flux/get_source_oci.go @@ -19,9 +19,10 @@ package main import ( "fmt" "strconv" - "strings" "github.com/spf13/cobra" + "golang.org/x/text/cases" + "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -85,7 +86,7 @@ func (a *ociRepositoryListAdapter) summariseItem(i int, includeNamespace bool, i revision = utils.TruncateHex(revision) msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), - revision, strings.Title(strconv.FormatBool(item.Spec.Suspend)), status, msg) + revision, cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } func (a ociRepositoryListAdapter) headers(includeNamespace bool) []string { diff --git a/go.mod b/go.mod index 6dd1e45d..7875f9fe 100644 --- a/go.mod +++ b/go.mod @@ -48,6 +48,7 @@ require ( github.com/theckman/yacspin v0.13.12 golang.org/x/crypto v0.14.0 golang.org/x/term v0.13.0 + golang.org/x/text v0.13.0 k8s.io/api v0.27.4 k8s.io/apiextensions-apiserver v0.27.4 k8s.io/apimachinery v0.27.4 @@ -195,7 +196,6 @@ require ( golang.org/x/oauth2 v0.13.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.13.0 // indirect gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect From b67a46371b39cc1c6e8e714b405318660b5a7dbe Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:03:20 +0200 Subject: [PATCH 020/154] misc: handle undhandled error Signed-off-by: Hidde Beydals --- cmd/flux/main_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/flux/main_test.go b/cmd/flux/main_test.go index 37398309..cdddf054 100644 --- a/cmd/flux/main_test.go +++ b/cmd/flux/main_test.go @@ -203,6 +203,9 @@ func NewTestEnvKubeManager(testClusterMode TestClusterMode) (*testEnvKubeManager useExistingCluster := true config, err := clientcmd.BuildConfigFromFlags("", testKubeConfig) + if err != nil { + return nil, err + } testEnv := &envtest.Environment{ UseExistingCluster: &useExistingCluster, Config: config, From 3c495861a144880c230e5e87088ea22fdd8042d1 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:04:18 +0200 Subject: [PATCH 021/154] misc: address unnecessary use of `fmt.Sprintf` Signed-off-by: Hidde Beydals --- internal/flags/safe_relative_path.go | 2 +- pkg/bootstrap/bootstrap_plain_git.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/flags/safe_relative_path.go b/internal/flags/safe_relative_path.go index dfd3b9ea..a58086e5 100644 --- a/internal/flags/safe_relative_path.go +++ b/internal/flags/safe_relative_path.go @@ -54,5 +54,5 @@ func (p *SafeRelativePath) Type() string { } func (p *SafeRelativePath) Description() string { - return fmt.Sprintf("secure relative path") + return "secure relative path" } diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index e3f7bcd9..cde38961 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -325,7 +325,7 @@ func (b *PlainGitBootstrapper) ReconcileSyncConfig(ctx context.Context, options return fmt.Errorf("failed to generate OpenPGP entity: %w", err) } } - commitMsg := fmt.Sprintf("Add Flux sync manifests") + commitMsg := "Add Flux sync manifests" if b.commitMessageAppendix != "" { commitMsg = commitMsg + "\n\n" + b.commitMessageAppendix } From a2a3b4f00fb0352d4eef91baef99eada390cf9b9 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:09:37 +0200 Subject: [PATCH 022/154] misc: use raw string for regex to avoid double esc Signed-off-by: Hidde Beydals --- cmd/flux/create.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/flux/create.go b/cmd/flux/create.go index d5e4fbcb..2368b771 100644 --- a/cmd/flux/create.go +++ b/cmd/flux/create.go @@ -165,6 +165,6 @@ func parseLabels() (map[string]string, error) { } func validateObjectName(name string) bool { - r := regexp.MustCompile("^[a-z0-9]([a-z0-9\\-]){0,61}[a-z0-9]$") + r := regexp.MustCompile(`^[a-z0-9]([a-z0-9\-]){0,61}[a-z0-9]$`) return r.MatchString(name) } From 43c2359705a101d9cf8e438ed5189f17c70e3284 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:10:43 +0200 Subject: [PATCH 023/154] misc: address double import Signed-off-by: Hidde Beydals --- cmd/flux/push_artifact.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cmd/flux/push_artifact.go b/cmd/flux/push_artifact.go index 3ebd3fbe..605dfed7 100644 --- a/cmd/flux/push_artifact.go +++ b/cmd/flux/push_artifact.go @@ -28,7 +28,6 @@ import ( "github.com/google/go-containerregistry/pkg/crane" "github.com/google/go-containerregistry/pkg/logs" "github.com/google/go-containerregistry/pkg/name" - reg "github.com/google/go-containerregistry/pkg/name" "github.com/google/go-containerregistry/pkg/v1/remote" "github.com/google/go-containerregistry/pkg/v1/remote/transport" "github.com/spf13/cobra" @@ -266,12 +265,12 @@ func pushArtifactCmdRun(cmd *cobra.Command, args []string) error { return fmt.Errorf("pushing artifact failed: %w", err) } - digest, err := reg.NewDigest(digestURL) + digest, err := name.NewDigest(digestURL) if err != nil { return fmt.Errorf("artifact digest parsing failed: %w", err) } - tag, err := reg.NewTag(url) + tag, err := name.NewTag(url) if err != nil { return fmt.Errorf("artifact tag parsing failed: %w", err) } From 3278a0782f7dafaf229390a78888c7488a2caf90 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:12:36 +0200 Subject: [PATCH 024/154] misc: simplify row append Signed-off-by: Hidde Beydals --- pkg/printers/table_printer.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/printers/table_printer.go b/pkg/printers/table_printer.go index 716166ab..7f4f331e 100644 --- a/pkg/printers/table_printer.go +++ b/pkg/printers/table_printer.go @@ -23,7 +23,7 @@ import ( "github.com/olekukonko/tablewriter" ) -// TablePrinter is a printer that prints Flux cmd outputs. +// TablePrinter is a printer that prints Flux cmd outputs. func TablePrinter(header []string) PrinterFunc { return func(w io.Writer, args ...interface{}) error { var rows [][]string @@ -35,9 +35,7 @@ func TablePrinter(header []string) PrinterFunc { if !ok { return fmt.Errorf("unsupported type %T", v) } - for i := range s { - rows = append(rows, s[i]) - } + rows = append(rows, s...) } default: return fmt.Errorf("unsupported type %T", arg) From 5b22207c98f9f21f86c959d9d0adaaa6db53d8ae Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:14:45 +0200 Subject: [PATCH 025/154] misc: address `kustomize/api/filesys` deprecation Signed-off-by: Hidde Beydals --- pkg/manifestgen/kustomization/options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/manifestgen/kustomization/options.go b/pkg/manifestgen/kustomization/options.go index c8cf0955..fbb7b981 100644 --- a/pkg/manifestgen/kustomization/options.go +++ b/pkg/manifestgen/kustomization/options.go @@ -16,7 +16,7 @@ limitations under the License. package kustomization -import "sigs.k8s.io/kustomize/api/filesys" +import "sigs.k8s.io/kustomize/kyaml/filesys" type Options struct { FileSystem filesys.FileSystem From ce3e264c7db5983cf602a040540a56ee9e62e312 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:15:49 +0200 Subject: [PATCH 026/154] misc: unconditional `strings.TrimPrefix` Signed-off-by: Hidde Beydals --- pkg/bootstrap/bootstrap_plain_git.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index cde38961..da341d6a 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -465,9 +465,7 @@ func getOpenPgpEntity(keyRing openpgp.EntityList, passphrase, keyID string) (*op var entity *openpgp.Entity if keyID != "" { - if strings.HasPrefix(keyID, "0x") { - keyID = strings.TrimPrefix(keyID, "0x") - } + keyID = strings.TrimPrefix(keyID, "0x") if len(keyID) != 16 { return nil, fmt.Errorf("invalid GPG key id length; expected %d, got %d", 16, len(keyID)) } From 22134b123362208cff06c0c19c1706a77d431289 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:25:38 +0200 Subject: [PATCH 027/154] misc: use `errors.As` instead of type checking Signed-off-by: Hidde Beydals --- internal/build/build.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/build/build.go b/internal/build/build.go index f05ce123..201cc83b 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -539,10 +539,8 @@ func maskDockerconfigjsonSopsData(dataMap map[string]string, encode bool) error func maskBase64EncryptedSopsData(dataMap map[string]string, mask string) error { for k, v := range dataMap { data, err := base64.StdEncoding.DecodeString(v) - if err != nil { - if _, ok := err.(base64.CorruptInputError); ok { - return err - } + if corruptErr := base64.CorruptInputError(0); errors.As(err, &corruptErr) { + return corruptErr } if bytes.Contains(data, []byte("sops")) && bytes.Contains(data, []byte("ENC[")) { From 3fdb292381f7dc1407d176374a1adc2ab8927a58 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:44:54 +0200 Subject: [PATCH 028/154] misc: address `wait.PollImmediate` deprecation Signed-off-by: Hidde Beydals --- cmd/flux/create.go | 4 ++-- cmd/flux/create_alert.go | 9 ++++----- cmd/flux/create_alertprovider.go | 9 ++++----- cmd/flux/create_helmrelease.go | 9 ++++----- cmd/flux/create_kustomization.go | 9 ++++----- cmd/flux/create_receiver.go | 9 ++++----- cmd/flux/create_source_bucket.go | 9 ++++----- cmd/flux/create_source_git.go | 9 ++++----- cmd/flux/create_source_helm.go | 9 ++++----- cmd/flux/create_source_oci.go | 9 ++++----- cmd/flux/reconcile.go | 18 ++++++++---------- cmd/flux/reconcile_alertprovider.go | 4 ++-- cmd/flux/reconcile_receiver.go | 4 ++-- cmd/flux/reconcile_with_source.go | 4 ++-- cmd/flux/resume.go | 4 ++-- cmd/flux/status.go | 5 ++--- pkg/bootstrap/bootstrap.go | 7 +++---- pkg/bootstrap/bootstrap_plain_git.go | 5 ++--- 18 files changed, 61 insertions(+), 75 deletions(-) diff --git a/cmd/flux/create.go b/cmd/flux/create.go index 2368b771..795d9367 100644 --- a/cmd/flux/create.go +++ b/cmd/flux/create.go @@ -131,8 +131,8 @@ func (names apiType) upsertAndWait(object upsertWaitable, mutate func() error) e } logger.Waitingf("waiting for %s reconciliation", names.kind) - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isReady(ctx, kubeClient, namespacedName, object)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isReady(kubeClient, namespacedName, object)); err != nil { return err } logger.Successf("%s reconciliation completed", names.kind) diff --git a/cmd/flux/create_alert.go b/cmd/flux/create_alert.go index a980c1fa..0f50bf02 100644 --- a/cmd/flux/create_alert.go +++ b/cmd/flux/create_alert.go @@ -132,8 +132,8 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for Alert reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isAlertReady(ctx, kubeClient, namespacedName, &alert)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isAlertReady(kubeClient, namespacedName, &alert)); err != nil { return err } logger.Successf("Alert %s is ready", name) @@ -171,9 +171,8 @@ func upsertAlert(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isAlertReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, alert *notificationv1b2.Alert) wait.ConditionFunc { - return func() (bool, error) { +func isAlertReady(kubeClient client.Client, namespacedName types.NamespacedName, alert *notificationv1b2.Alert) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, alert) if err != nil { return false, err diff --git a/cmd/flux/create_alertprovider.go b/cmd/flux/create_alertprovider.go index cef69baf..8523d1c5 100644 --- a/cmd/flux/create_alertprovider.go +++ b/cmd/flux/create_alertprovider.go @@ -127,8 +127,8 @@ func createAlertProviderCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for Provider reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isAlertProviderReady(ctx, kubeClient, namespacedName, &provider)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isAlertProviderReady(kubeClient, namespacedName, &provider)); err != nil { return err } @@ -168,9 +168,8 @@ func upsertAlertProvider(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isAlertProviderReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, provider *notificationv1.Provider) wait.ConditionFunc { - return func() (bool, error) { +func isAlertProviderReady(kubeClient client.Client, namespacedName types.NamespacedName, provider *notificationv1.Provider) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, provider) if err != nil { return false, err diff --git a/cmd/flux/create_helmrelease.go b/cmd/flux/create_helmrelease.go index 3721c1e7..b6ef92b3 100644 --- a/cmd/flux/create_helmrelease.go +++ b/cmd/flux/create_helmrelease.go @@ -303,8 +303,8 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for HelmRelease reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isHelmReleaseReady(ctx, kubeClient, namespacedName, &helmRelease)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isHelmReleaseReady(kubeClient, namespacedName, &helmRelease)); err != nil { return err } logger.Successf("HelmRelease %s is ready", name) @@ -344,9 +344,8 @@ func upsertHelmRelease(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isHelmReleaseReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, helmRelease *helmv2.HelmRelease) wait.ConditionFunc { - return func() (bool, error) { +func isHelmReleaseReady(kubeClient client.Client, namespacedName types.NamespacedName, helmRelease *helmv2.HelmRelease) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, helmRelease) if err != nil { return false, err diff --git a/cmd/flux/create_kustomization.go b/cmd/flux/create_kustomization.go index fea9d836..eb2f8fc1 100644 --- a/cmd/flux/create_kustomization.go +++ b/cmd/flux/create_kustomization.go @@ -263,8 +263,8 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for Kustomization reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isKustomizationReady(ctx, kubeClient, namespacedName, &kustomization)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isKustomizationReady(kubeClient, namespacedName, &kustomization)); err != nil { return err } logger.Successf("Kustomization %s is ready", name) @@ -304,9 +304,8 @@ func upsertKustomization(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isKustomizationReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, kustomization *kustomizev1.Kustomization) wait.ConditionFunc { - return func() (bool, error) { +func isKustomizationReady(kubeClient client.Client, namespacedName types.NamespacedName, kustomization *kustomizev1.Kustomization) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, kustomization) if err != nil { return false, err diff --git a/cmd/flux/create_receiver.go b/cmd/flux/create_receiver.go index 5597dae2..045ff771 100644 --- a/cmd/flux/create_receiver.go +++ b/cmd/flux/create_receiver.go @@ -139,8 +139,8 @@ func createReceiverCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for Receiver reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isReceiverReady(ctx, kubeClient, namespacedName, &receiver)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isReceiverReady(kubeClient, namespacedName, &receiver)); err != nil { return err } logger.Successf("Receiver %s is ready", name) @@ -180,9 +180,8 @@ func upsertReceiver(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isReceiverReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, receiver *notificationv1.Receiver) wait.ConditionFunc { - return func() (bool, error) { +func isReceiverReady(kubeClient client.Client, namespacedName types.NamespacedName, receiver *notificationv1.Receiver) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, receiver) if err != nil { return false, err diff --git a/cmd/flux/create_source_bucket.go b/cmd/flux/create_source_bucket.go index 68ef8f3e..ebb6a834 100644 --- a/cmd/flux/create_source_bucket.go +++ b/cmd/flux/create_source_bucket.go @@ -204,8 +204,8 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for Bucket source reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isBucketReady(ctx, kubeClient, namespacedName, bucket)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isBucketReady(kubeClient, namespacedName, bucket)); err != nil { return err } logger.Successf("Bucket source reconciliation completed") @@ -248,9 +248,8 @@ func upsertBucket(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isBucketReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, bucket *sourcev1.Bucket) wait.ConditionFunc { - return func() (bool, error) { +func isBucketReady(kubeClient client.Client, namespacedName types.NamespacedName, bucket *sourcev1.Bucket) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, bucket) if err != nil { return false, err diff --git a/cmd/flux/create_source_git.go b/cmd/flux/create_source_git.go index 2c6cc59a..8c0d031d 100644 --- a/cmd/flux/create_source_git.go +++ b/cmd/flux/create_source_git.go @@ -325,8 +325,8 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for GitRepository source reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isGitRepositoryReady(ctx, kubeClient, namespacedName, &gitRepository)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isGitRepositoryReady(kubeClient, namespacedName, &gitRepository)); err != nil { return err } logger.Successf("GitRepository source reconciliation completed") @@ -369,9 +369,8 @@ func upsertGitRepository(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isGitRepositoryReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, gitRepository *sourcev1.GitRepository) wait.ConditionFunc { - return func() (bool, error) { +func isGitRepositoryReady(kubeClient client.Client, namespacedName types.NamespacedName, gitRepository *sourcev1.GitRepository) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, gitRepository) if err != nil { return false, err diff --git a/cmd/flux/create_source_helm.go b/cmd/flux/create_source_helm.go index e7fa876b..ea82fa8a 100644 --- a/cmd/flux/create_source_helm.go +++ b/cmd/flux/create_source_helm.go @@ -231,8 +231,8 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for HelmRepository source reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isHelmRepositoryReady(ctx, kubeClient, namespacedName, helmRepository)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isHelmRepositoryReady(kubeClient, namespacedName, helmRepository)); err != nil { return err } logger.Successf("HelmRepository source reconciliation completed") @@ -280,9 +280,8 @@ func upsertHelmRepository(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isHelmRepositoryReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, helmRepository *sourcev1.HelmRepository) wait.ConditionFunc { - return func() (bool, error) { +func isHelmRepositoryReady(kubeClient client.Client, namespacedName types.NamespacedName, helmRepository *sourcev1.HelmRepository) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, helmRepository) if err != nil { return false, err diff --git a/cmd/flux/create_source_oci.go b/cmd/flux/create_source_oci.go index 388ab18c..30fc4d8d 100644 --- a/cmd/flux/create_source_oci.go +++ b/cmd/flux/create_source_oci.go @@ -192,8 +192,8 @@ func createSourceOCIRepositoryCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for OCIRepository reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isOCIRepositoryReady(ctx, kubeClient, namespacedName, repository)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isOCIRepositoryReady(kubeClient, namespacedName, repository)); err != nil { return err } logger.Successf("OCIRepository reconciliation completed") @@ -236,9 +236,8 @@ func upsertOCIRepository(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isOCIRepositoryReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, ociRepository *sourcev1.OCIRepository) wait.ConditionFunc { - return func() (bool, error) { +func isOCIRepositoryReady(kubeClient client.Client, namespacedName types.NamespacedName, ociRepository *sourcev1.OCIRepository) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, ociRepository) if err != nil { return false, err diff --git a/cmd/flux/reconcile.go b/cmd/flux/reconcile.go index 56f5f271..08b47a2a 100644 --- a/cmd/flux/reconcile.go +++ b/cmd/flux/reconcile.go @@ -113,8 +113,8 @@ func (reconcile reconcileCommand) run(cmd *cobra.Command, args []string) error { logger.Successf("%s annotated", reconcile.kind) if reconcile.kind == notificationv1b2.AlertKind || reconcile.kind == notificationv1.ReceiverKind { - if err = wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isReconcileReady(ctx, kubeClient, namespacedName, reconcile.object)); err != nil { + if err = wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isReconcileReady(kubeClient, namespacedName, reconcile.object)); err != nil { return err } @@ -124,8 +124,8 @@ func (reconcile reconcileCommand) run(cmd *cobra.Command, args []string) error { lastHandledReconcileAt := reconcile.object.lastHandledReconcileRequest() logger.Waitingf("waiting for %s reconciliation", reconcile.kind) - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - reconciliationHandled(ctx, kubeClient, namespacedName, reconcile.object, lastHandledReconcileAt)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + reconciliationHandled(kubeClient, namespacedName, reconcile.object, lastHandledReconcileAt)); err != nil { return err } readyCond := apimeta.FindStatusCondition(reconcilableConditions(reconcile.object), meta.ReadyCondition) @@ -140,9 +140,8 @@ func (reconcile reconcileCommand) run(cmd *cobra.Command, args []string) error { return nil } -func reconciliationHandled(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, obj reconcilable, lastHandledReconcileAt string) wait.ConditionFunc { - return func() (bool, error) { +func reconciliationHandled(kubeClient client.Client, namespacedName types.NamespacedName, obj reconcilable, lastHandledReconcileAt string) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, obj.asClientObject()) if err != nil { return false, err @@ -176,9 +175,8 @@ func requestReconciliation(ctx context.Context, kubeClient client.Client, }) } -func isReconcileReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, obj reconcilable) wait.ConditionFunc { - return func() (bool, error) { +func isReconcileReady(kubeClient client.Client, namespacedName types.NamespacedName, obj reconcilable) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, obj.asClientObject()) if err != nil { return false, err diff --git a/cmd/flux/reconcile_alertprovider.go b/cmd/flux/reconcile_alertprovider.go index becf980f..4f6ce136 100644 --- a/cmd/flux/reconcile_alertprovider.go +++ b/cmd/flux/reconcile_alertprovider.go @@ -84,8 +84,8 @@ func reconcileAlertProviderCmdRun(cmd *cobra.Command, args []string) error { logger.Successf("Provider annotated") logger.Waitingf("waiting for reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isAlertProviderReady(ctx, kubeClient, namespacedName, &alertProvider)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isAlertProviderReady(kubeClient, namespacedName, &alertProvider)); err != nil { return err } logger.Successf("Provider reconciliation completed") diff --git a/cmd/flux/reconcile_receiver.go b/cmd/flux/reconcile_receiver.go index 8a04ea7a..a16946a7 100644 --- a/cmd/flux/reconcile_receiver.go +++ b/cmd/flux/reconcile_receiver.go @@ -88,8 +88,8 @@ func reconcileReceiverCmdRun(cmd *cobra.Command, args []string) error { logger.Successf("Receiver annotated") logger.Waitingf("waiting for Receiver reconciliation") - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isReceiverReady(ctx, kubeClient, namespacedName, &receiver)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isReceiverReady(kubeClient, namespacedName, &receiver)); err != nil { return err } diff --git a/cmd/flux/reconcile_with_source.go b/cmd/flux/reconcile_with_source.go index d0c3ae78..ac0a6f15 100644 --- a/cmd/flux/reconcile_with_source.go +++ b/cmd/flux/reconcile_with_source.go @@ -82,8 +82,8 @@ func (reconcile reconcileWithSourceCommand) run(cmd *cobra.Command, args []strin logger.Successf("%s annotated", reconcile.kind) logger.Waitingf("waiting for %s reconciliation", reconcile.kind) - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - reconciliationHandled(ctx, kubeClient, namespacedName, reconcile.object, lastHandledReconcileAt)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + reconciliationHandled(kubeClient, namespacedName, reconcile.object, lastHandledReconcileAt)); err != nil { return err } diff --git a/cmd/flux/resume.go b/cmd/flux/resume.go index bc27c4eb..d62895ca 100644 --- a/cmd/flux/resume.go +++ b/cmd/flux/resume.go @@ -212,8 +212,8 @@ func (resume resumeCommand) reconcile(ctx context.Context, res resumable) reconc logger.Waitingf("waiting for %s reconciliation", resume.kind) - if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout, - isReady(ctx, resume.client, namespacedName, res)); err != nil { + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, + isReady(resume.client, namespacedName, res)); err != nil { return reconcileResponse{ resumable: res, err: err, diff --git a/cmd/flux/status.go b/cmd/flux/status.go index e6c4b5fc..6fb41565 100644 --- a/cmd/flux/status.go +++ b/cmd/flux/status.go @@ -56,9 +56,8 @@ func statusableConditions(object statusable) []metav1.Condition { return []metav1.Condition{} } -func isReady(ctx context.Context, kubeClient client.Client, - namespacedName types.NamespacedName, object statusable) wait.ConditionFunc { - return func() (bool, error) { +func isReady(kubeClient client.Client, namespacedName types.NamespacedName, object statusable) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { err := kubeClient.Get(ctx, namespacedName, object.asClientObject()) if err != nil { return false, err diff --git a/pkg/bootstrap/bootstrap.go b/pkg/bootstrap/bootstrap.go index 5d10b724..1111f6e9 100644 --- a/pkg/bootstrap/bootstrap.go +++ b/pkg/bootstrap/bootstrap.go @@ -20,6 +20,7 @@ import ( "context" "errors" "fmt" + "k8s.io/apimachinery/pkg/util/wait" "strings" "time" @@ -172,10 +173,8 @@ func kustomizationPathDiffers(ctx context.Context, kube client.Client, objKey cl return k.Spec.Path, nil } -func kustomizationReconciled(ctx context.Context, kube client.Client, objKey client.ObjectKey, - kustomization *kustomizev1.Kustomization, expectRevision string) func() (bool, error) { - - return func() (bool, error) { +func kustomizationReconciled(kube client.Client, objKey client.ObjectKey, kustomization *kustomizev1.Kustomization, expectRevision string) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { if err := kube.Get(ctx, objKey, kustomization); err != nil { return false, err } diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index da341d6a..ba5a7f58 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -401,9 +401,8 @@ func (b *PlainGitBootstrapper) ReportKustomizationHealth(ctx context.Context, op expectRevision := fmt.Sprintf("%s@%s", options.Branch, git.Hash(head).Digest()) var k kustomizev1.Kustomization - if err := wait.PollImmediate(pollInterval, timeout, kustomizationReconciled( - ctx, b.kube, objKey, &k, expectRevision), - ); err != nil { + if err := wait.PollUntilContextTimeout(ctx, pollInterval, timeout, true, + kustomizationReconciled(b.kube, objKey, &k, expectRevision)); err != nil { b.logger.Failuref(err.Error()) return err } From f5d3283cff38e64ee1d71df37dda1daf188e6707 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:48:08 +0200 Subject: [PATCH 029/154] misc: remove unused bits of code Signed-off-by: Hidde Beydals --- cmd/flux/create_image_policy.go | 14 ++++++-------- cmd/flux/export_secret.go | 1 - cmd/flux/main_test.go | 2 -- cmd/flux/reconcile_image_updateauto.go | 4 ---- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/cmd/flux/create_image_policy.go b/cmd/flux/create_image_policy.go index 116a2152..db287ed2 100644 --- a/cmd/flux/create_image_policy.go +++ b/cmd/flux/create_image_policy.go @@ -54,13 +54,12 @@ the status of the object.`), RunE: createImagePolicyRun} type imagePolicyFlags struct { - imageRef string - semver string - alpha string - numeric string - filterRegex string - filterExtract string - filterNumerical string + imageRef string + semver string + alpha string + numeric string + filterRegex string + filterExtract string } var imagePolicyArgs = imagePolicyFlags{} @@ -183,7 +182,6 @@ func validateExtractStr(template string, capNames []string) error { name, num, rest, ok := extract(template) if !ok { // Malformed extract string, assume user didn't want this - template = template[1:] return fmt.Errorf("--filter-extract is malformed") } template = rest diff --git a/cmd/flux/export_secret.go b/cmd/flux/export_secret.go index 4a87e233..76d6ec56 100644 --- a/cmd/flux/export_secret.go +++ b/cmd/flux/export_secret.go @@ -46,7 +46,6 @@ type exportableWithSecretList interface { } type exportWithSecretCommand struct { - apiType object exportableWithSecret list exportableWithSecretList } diff --git a/cmd/flux/main_test.go b/cmd/flux/main_test.go index cdddf054..b97397ff 100644 --- a/cmd/flux/main_test.go +++ b/cmd/flux/main_test.go @@ -340,8 +340,6 @@ type cmdTestCase struct { // Tests use assertFunc to assert on an output, success or failure. This // can be a function defined by the test or existing function above. assert assertFunc - // Filename that contains yaml objects to load into Kubernetes - objectFile string } func (cmd *cmdTestCase) runTestCmd(t *testing.T) { diff --git a/cmd/flux/reconcile_image_updateauto.go b/cmd/flux/reconcile_image_updateauto.go index 8fba13cc..2db4a1c0 100644 --- a/cmd/flux/reconcile_image_updateauto.go +++ b/cmd/flux/reconcile_image_updateauto.go @@ -43,10 +43,6 @@ func init() { reconcileImageCmd.AddCommand(reconcileImageUpdateCmd) } -func (obj imageUpdateAutomationAdapter) suspended() bool { - return obj.ImageUpdateAutomation.Spec.Suspend -} - func (obj imageUpdateAutomationAdapter) lastHandledReconcileRequest() string { return obj.Status.GetLastHandledReconcileRequest() } From e3f6f0f8b3236bc6557be4d005e1fef84ad31721 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:51:20 +0200 Subject: [PATCH 030/154] misc: `sinceSeconds` -> `sinceDuration` Signed-off-by: Hidde Beydals --- cmd/flux/logs.go | 12 ++++++------ cmd/flux/logs_e2e_test.go | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/flux/logs.go b/cmd/flux/logs.go index 84d68acb..0931b1c9 100644 --- a/cmd/flux/logs.go +++ b/cmd/flux/logs.go @@ -74,7 +74,7 @@ type logsFlags struct { fluxNamespace string allNamespaces bool sinceTime string - sinceSeconds time.Duration + sinceDuration time.Duration } var logsArgs = logsFlags{ @@ -91,7 +91,7 @@ func init() { logsCmd.Flags().Int64VarP(&logsArgs.tail, "tail", "", logsArgs.tail, "lines of recent log file to display") logsCmd.Flags().StringVarP(&logsArgs.fluxNamespace, "flux-namespace", "", rootArgs.defaults.Namespace, "the namespace where the Flux components are running") logsCmd.Flags().BoolVarP(&logsArgs.allNamespaces, "all-namespaces", "A", false, "displays logs for objects across all namespaces") - logsCmd.Flags().DurationVar(&logsArgs.sinceSeconds, "since", logsArgs.sinceSeconds, "Only return logs newer than a relative duration like 5s, 2m, or 3h. Defaults to all logs. Only one of since-time / since may be used.") + logsCmd.Flags().DurationVar(&logsArgs.sinceDuration, "since", logsArgs.sinceDuration, "Only return logs newer than a relative duration like 5s, 2m, or 3h. Defaults to all logs. Only one of since-time / since may be used.") logsCmd.Flags().StringVar(&logsArgs.sinceTime, "since-time", logsArgs.sinceTime, "Only return logs after a specific date (RFC3339). Defaults to all logs. Only one of since-time / since may be used.") rootCmd.AddCommand(logsCmd) } @@ -129,8 +129,8 @@ func logsCmdRun(cmd *cobra.Command, args []string) error { logOpts.TailLines = &logsArgs.tail } - if len(logsArgs.sinceTime) > 0 && logsArgs.sinceSeconds != 0 { - return fmt.Errorf("at most one of `sinceTime` or `sinceSeconds` may be specified") + if len(logsArgs.sinceTime) > 0 && logsArgs.sinceDuration != 0 { + return fmt.Errorf("at most one of `sinceTime` or `sinceDuration` may be specified") } if len(logsArgs.sinceTime) > 0 { @@ -141,9 +141,9 @@ func logsCmdRun(cmd *cobra.Command, args []string) error { logOpts.SinceTime = &t } - if logsArgs.sinceSeconds != 0 { + if logsArgs.sinceDuration != 0 { // round up to the nearest second - sec := int64(logsArgs.sinceSeconds.Round(time.Second).Seconds()) + sec := int64(logsArgs.sinceDuration.Round(time.Second).Seconds()) logOpts.SinceSeconds = &sec } diff --git a/cmd/flux/logs_e2e_test.go b/cmd/flux/logs_e2e_test.go index 65a2d76e..46c1c11e 100644 --- a/cmd/flux/logs_e2e_test.go +++ b/cmd/flux/logs_e2e_test.go @@ -82,7 +82,7 @@ func TestLogsSinceTimeInvalid(t *testing.T) { func TestLogsSinceOnlyOneAllowed(t *testing.T) { cmd := cmdTestCase{ args: "logs --since=2m --since-time=2021-08-06T14:26:25.546Z", - assert: assertError("at most one of `sinceTime` or `sinceSeconds` may be specified"), + assert: assertError("at most one of `sinceTime` or `sinceDuration` may be specified"), } cmd.runTestCmd(t) } From ba1180ad4d2dd52d112c81ce582a5761f125e18b Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 10:56:45 +0200 Subject: [PATCH 031/154] misc: fix hypothetical implicit memory aliasing Signed-off-by: Hidde Beydals --- pkg/uninstall/uninstall.go | 60 +++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/pkg/uninstall/uninstall.go b/pkg/uninstall/uninstall.go index 3293cc9c..744cb04e 100644 --- a/pkg/uninstall/uninstall.go +++ b/pkg/uninstall/uninstall.go @@ -48,7 +48,8 @@ func Components(ctx context.Context, logger log.Logger, kubeClient client.Client { var list appsv1.DeploymentList if err := kubeClient.List(ctx, &list, client.InNamespace(namespace), selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("Deployment/%s/%s deletion failed: %s", r.Namespace, r.Name, err.Error()) aggregateErr = append(aggregateErr, err) @@ -61,7 +62,8 @@ func Components(ctx context.Context, logger log.Logger, kubeClient client.Client { var list corev1.ServiceList if err := kubeClient.List(ctx, &list, client.InNamespace(namespace), selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("Service/%s/%s deletion failed: %s", r.Namespace, r.Name, err.Error()) aggregateErr = append(aggregateErr, err) @@ -74,7 +76,8 @@ func Components(ctx context.Context, logger log.Logger, kubeClient client.Client { var list networkingv1.NetworkPolicyList if err := kubeClient.List(ctx, &list, client.InNamespace(namespace), selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("NetworkPolicy/%s/%s deletion failed: %s", r.Namespace, r.Name, err.Error()) aggregateErr = append(aggregateErr, err) @@ -87,7 +90,8 @@ func Components(ctx context.Context, logger log.Logger, kubeClient client.Client { var list corev1.ServiceAccountList if err := kubeClient.List(ctx, &list, client.InNamespace(namespace), selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("ServiceAccount/%s/%s deletion failed: %s", r.Namespace, r.Name, err.Error()) aggregateErr = append(aggregateErr, err) @@ -100,7 +104,8 @@ func Components(ctx context.Context, logger log.Logger, kubeClient client.Client { var list rbacv1.ClusterRoleList if err := kubeClient.List(ctx, &list, selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("ClusterRole/%s deletion failed: %s", r.Name, err.Error()) aggregateErr = append(aggregateErr, err) @@ -113,7 +118,8 @@ func Components(ctx context.Context, logger log.Logger, kubeClient client.Client { var list rbacv1.ClusterRoleBindingList if err := kubeClient.List(ctx, &list, selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("ClusterRoleBinding/%s deletion failed: %s", r.Name, err.Error()) aggregateErr = append(aggregateErr, err) @@ -134,7 +140,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list sourcev1.GitRepositoryList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -148,7 +155,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list sourcev1b2.OCIRepositoryList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -162,7 +170,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list sourcev1b2.HelmRepositoryList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -176,7 +185,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list sourcev1b2.HelmChartList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -190,7 +200,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list sourcev1b2.BucketList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -204,7 +215,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list kustomizev1.KustomizationList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -218,7 +230,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list helmv2.HelmReleaseList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -232,7 +245,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list notificationv1b2.AlertList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -246,7 +260,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list notificationv1b2.ProviderList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -260,7 +275,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list notificationv1.ReceiverList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -274,7 +290,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list imagev1.ImagePolicyList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -288,7 +305,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list imagev1.ImageRepositoryList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -302,7 +320,8 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client { var list autov1.ImageUpdateAutomationList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] r.Finalizers = []string{} if err := kubeClient.Update(ctx, &r, opts); err != nil { logger.Failuref("%s/%s/%s removing finalizers failed: %s", r.Kind, r.Namespace, r.Name, err.Error()) @@ -324,7 +343,8 @@ func CustomResourceDefinitions(ctx context.Context, logger log.Logger, kubeClien { var list apiextensionsv1.CustomResourceDefinitionList if err := kubeClient.List(ctx, &list, selector); err == nil { - for _, r := range list.Items { + for i := range list.Items { + r := list.Items[i] if err := kubeClient.Delete(ctx, &r, opts); err != nil { logger.Failuref("CustomResourceDefinition/%s deletion failed: %s", r.Name, err.Error()) aggregateErr = append(aggregateErr, err) From f137263fe9353a911aa6558df196461944a8335d Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 13 Oct 2023 11:11:30 +0200 Subject: [PATCH 032/154] misc: clean up immediately and avoid delayed defer Signed-off-by: Hidde Beydals --- internal/build/diff.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/build/diff.go b/internal/build/diff.go index c316df9f..0dd0d9a4 100644 --- a/internal/build/diff.go +++ b/internal/build/diff.go @@ -116,13 +116,14 @@ func (b *Builder) Diff() (string, bool, error) { if err != nil { return "", createdOrDrifted, err } - defer cleanupDir(tmpDir) err = diff(liveFile, mergedFile, &output) if err != nil { + cleanupDir(tmpDir) return "", createdOrDrifted, err } + cleanupDir(tmpDir) createdOrDrifted = true } From 025fe9ced1f2f38b410ab4b7a0555c20f7086f73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 00:19:31 +0000 Subject: [PATCH 033/154] build(deps): bump the ci group with 1 update Bumps the ci group with 1 update: [actions/checkout](https://github.com/actions/checkout). - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/8ade135a41bc03ea155e62e844d188df1ea18608...b4ffde65f46336ab88eb53be808477a3936bae11) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/action.yaml | 2 +- .github/workflows/backport.yaml | 2 +- .github/workflows/e2e-arm64.yaml | 2 +- .github/workflows/e2e-azure.yaml | 4 ++-- .github/workflows/e2e-bootstrap.yaml | 2 +- .github/workflows/e2e-gcp.yaml | 2 +- .github/workflows/e2e.yaml | 2 +- .github/workflows/ossf.yaml | 2 +- .github/workflows/release.yaml | 4 ++-- .github/workflows/scan.yaml | 6 +++--- .github/workflows/sync-labels.yaml | 2 +- .github/workflows/update.yaml | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/action.yaml b/.github/workflows/action.yaml index b6a7c32c..e14dc34b 100644 --- a/.github/workflows/action.yaml +++ b/.github/workflows/action.yaml @@ -24,6 +24,6 @@ jobs: name: action on ${{ matrix.version }} steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup flux uses: ./action diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index 8e990c9d..682f21b2 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -13,7 +13,7 @@ jobs: if: github.event.pull_request.state == 'closed' && github.event.pull_request.merged && (github.event_name != 'labeled' || startsWith('backport:', github.event.label.name)) steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index ba4a871e..b9aa1aa4 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -21,7 +21,7 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 4621eefe..05b03611 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -30,7 +30,7 @@ jobs: if: false && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: @@ -75,7 +75,7 @@ jobs: if: false && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: CheckoutD - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e-bootstrap.yaml b/.github/workflows/e2e-bootstrap.yaml index 379be360..908741a2 100644 --- a/.github/workflows/e2e-bootstrap.yaml +++ b/.github/workflows/e2e-bootstrap.yaml @@ -17,7 +17,7 @@ jobs: if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index d881677c..c9170e5e 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -29,7 +29,7 @@ jobs: if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 59094080..3fbbb70b 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -21,7 +21,7 @@ jobs: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index 02ae21bd..7915ce3f 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -19,7 +19,7 @@ jobs: actions: read contents: read steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Run analysis uses: ossf/scorecard-action@483ef80eb98fb506c348f7d62e28055e49fe2398 # v2.3.0 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 095cb5d6..6408e582 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,7 +20,7 @@ jobs: packages: write # needed for ghcr access steps: - name: Checkout - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Unshallow run: git fetch --prune --unshallow - name: Setup Go @@ -110,7 +110,7 @@ jobs: id-token: write packages: write steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Setup Flux CLI diff --git a/.github/workflows/scan.yaml b/.github/workflows/scan.yaml index 8a84ad5c..3de3abc6 100644 --- a/.github/workflows/scan.yaml +++ b/.github/workflows/scan.yaml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest if: github.actor != 'dependabot[bot]' steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Run FOSSA scan and upload build data uses: fossa-contrib/fossa-action@6728dc6fe9a068c648d080c33829ffbe56565023 # v2.0.0 with: @@ -31,7 +31,7 @@ jobs: security-events: write if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Setup Go @@ -64,7 +64,7 @@ jobs: if: github.actor != 'dependabot[bot]' steps: - name: Checkout repository - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/sync-labels.yaml b/.github/workflows/sync-labels.yaml index 63969548..e112ee5f 100644 --- a/.github/workflows/sync-labels.yaml +++ b/.github/workflows/sync-labels.yaml @@ -17,7 +17,7 @@ jobs: permissions: issues: write steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - uses: EndBug/label-sync@da00f2c11fdb78e4fae44adac2fdd713778ea3e8 # v2.3.2 with: # Configuration file diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 3dcbcb6d..0618d372 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -18,7 +18,7 @@ jobs: pull-requests: write steps: - name: Check out code - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: From 0eba9662e61e9ed7130bb056ad6def921d883844 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Thu, 19 Oct 2023 14:07:28 +0100 Subject: [PATCH 034/154] prevent flux install from overriding bootrapped cluster Signed-off-by: Somtochi Onyekwere --- cmd/flux/cluster_info.go | 87 ++++ cmd/flux/cluster_info_test.go | 132 ++++++ cmd/flux/install.go | 14 + .../cluster_info/gitrepositories.yaml | 424 ++++++++++++++++++ 4 files changed, 657 insertions(+) create mode 100644 cmd/flux/cluster_info.go create mode 100644 cmd/flux/cluster_info_test.go create mode 100644 cmd/flux/testdata/cluster_info/gitrepositories.yaml diff --git a/cmd/flux/cluster_info.go b/cmd/flux/cluster_info.go new file mode 100644 index 00000000..0a1f59bf --- /dev/null +++ b/cmd/flux/cluster_info.go @@ -0,0 +1,87 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "context" + "fmt" + + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" + + kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" + sourcev1 "github.com/fluxcd/source-controller/api/v1" +) + +// bootstrapLabels are labels put on a resource by kustomize-controller. These labels on the CRD indicates +// that flux has been bootstrapped. +var bootstrapLabels = []string{ + fmt.Sprintf("%s/name", kustomizev1.GroupVersion.Group), + fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group), +} + +// fluxClusterInfo contains information about an existing flux installation on a cluster. +type fluxClusterInfo struct { + // bootstrapped indicates that Flux was installed using the `flux bootstrap` command. + bootstrapped bool + // managedBy is the name of the tool being used to manage the installation of Flux. + managedBy string + // version is the Flux version number in semver format. + version string +} + +// getFluxClusterInfo returns information on the Flux installation running on the cluster. +// If the information cannot be retrieved, the boolean return value will be false. +// If an error occurred, the returned error will be non-nil. +// +// This function retrieves the GitRepository CRD from the cluster and checks it +// for a set of labels used to determine the Flux version and how Flux was installed. +func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, bool, error) { + var info fluxClusterInfo + crdMetadata := &metav1.PartialObjectMetadata{ + TypeMeta: metav1.TypeMeta{ + APIVersion: apiextensionsv1.SchemeGroupVersion.String(), + Kind: "CustomResourceDefinition", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("gitrepositories.%s", sourcev1.GroupVersion.Group), + }, + } + if err := c.Get(ctx, client.ObjectKeyFromObject(crdMetadata), crdMetadata); err != nil { + if errors.IsNotFound(err) { + return info, false, nil + } + return info, false, err + } + + info.version = crdMetadata.Labels["app.kubernetes.io/version"] + + var present bool + for _, l := range bootstrapLabels { + _, present = crdMetadata.Labels[l] + } + if present { + info.bootstrapped = true + } + + if manager, ok := crdMetadata.Labels["app.kubernetes.io/managed-by"]; ok { + info.managedBy = manager + } + return info, true, nil +} diff --git a/cmd/flux/cluster_info_test.go b/cmd/flux/cluster_info_test.go new file mode 100644 index 00000000..bce39be9 --- /dev/null +++ b/cmd/flux/cluster_info_test.go @@ -0,0 +1,132 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "context" + "fmt" + "os" + "testing" + + . "github.com/onsi/gomega" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client/fake" + + kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" + "github.com/fluxcd/pkg/ssa" +) + +func Test_getFluxClusterInfo(t *testing.T) { + g := NewWithT(t) + f, err := os.Open("./testdata/cluster_info/gitrepositories.yaml") + g.Expect(err).To(BeNil()) + + objs, err := ssa.ReadObjects(f) + g.Expect(err).To(Not(HaveOccurred())) + gitrepo := objs[0] + + tests := []struct { + name string + labels map[string]string + wantErr bool + wantBool bool + wantInfo fluxClusterInfo + }{ + { + name: "no git repository CRD present", + wantBool: false, + }, + { + name: "CRD with kustomize-controller labels", + labels: map[string]string{ + fmt.Sprintf("%s/name", kustomizev1.GroupVersion.Group): "flux-system", + fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group): "flux-system", + "app.kubernetes.io/version": "v2.1.0", + }, + wantBool: true, + wantInfo: fluxClusterInfo{ + version: "v2.1.0", + bootstrapped: true, + }, + }, + { + name: "CRD with kustomize-controller labels and managed-by label", + labels: map[string]string{ + fmt.Sprintf("%s/name", kustomizev1.GroupVersion.Group): "flux-system", + fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group): "flux-system", + "app.kubernetes.io/version": "v2.1.0", + "app.kubernetes.io/managed-by": "flux", + }, + wantBool: true, + wantInfo: fluxClusterInfo{ + version: "v2.1.0", + bootstrapped: true, + managedBy: "flux", + }, + }, + { + name: "CRD with only managed-by label", + labels: map[string]string{ + "app.kubernetes.io/version": "v2.1.0", + "app.kubernetes.io/managed-by": "helm", + }, + wantBool: true, + wantInfo: fluxClusterInfo{ + version: "v2.1.0", + managedBy: "helm", + }, + }, + { + name: "CRD with no labels", + labels: map[string]string{}, + wantBool: true, + }, + { + name: "CRD with only version label", + labels: map[string]string{ + "app.kubernetes.io/version": "v2.1.0", + }, + wantBool: true, + wantInfo: fluxClusterInfo{ + version: "v2.1.0", + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + g := NewWithT(t) + newscheme := runtime.NewScheme() + apiextensionsv1.AddToScheme(newscheme) + builder := fake.NewClientBuilder().WithScheme(newscheme) + if tt.labels != nil { + gitrepo.SetLabels(tt.labels) + builder = builder.WithRuntimeObjects(gitrepo) + } + + client := builder.Build() + info, present, err := getFluxClusterInfo(context.Background(), client) + if tt.wantErr { + g.Expect(err).To(HaveOccurred()) + } + + g.Expect(present).To(Equal(tt.wantBool)) + g.Expect(info).To(BeEquivalentTo(tt.wantInfo)) + }) + } +} diff --git a/cmd/flux/install.go b/cmd/flux/install.go index 53712021..6580c0e4 100644 --- a/cmd/flux/install.go +++ b/cmd/flux/install.go @@ -183,6 +183,20 @@ func installCmdRun(cmd *cobra.Command, args []string) error { logger.Successf("manifests build completed") logger.Actionf("installing components in %s namespace", *kubeconfigArgs.Namespace) + kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) + if err != nil { + return err + } + + info, installed, err := getFluxClusterInfo(ctx, kubeClient) + if err != nil { + return fmt.Errorf("cluster info unavailable: %w", err) + } + + if installed && info.bootstrapped { + return fmt.Errorf("this cluster has already been bootstrapped with Flux %s! Please use 'flux bootstrap' to upgrade", info.version) + } + applyOutput, err := utils.Apply(ctx, kubeconfigArgs, kubeclientOptions, tmpDir, filepath.Join(tmpDir, manifest.Path)) if err != nil { return fmt.Errorf("install failed: %w", err) diff --git a/cmd/flux/testdata/cluster_info/gitrepositories.yaml b/cmd/flux/testdata/cluster_info/gitrepositories.yaml new file mode 100644 index 00000000..3e4ba5c7 --- /dev/null +++ b/cmd/flux/testdata/cluster_info/gitrepositories.yaml @@ -0,0 +1,424 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.12.0 + name: gitrepositories.source.toolkit.fluxcd.io +spec: + group: source.toolkit.fluxcd.io + names: + kind: GitRepository + listKind: GitRepositoryList + plural: gitrepositories + shortNames: + - gitrepo + singular: gitrepository + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.url + name: URL + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .status.conditions[?(@.type=="Ready")].status + name: Ready + type: string + - jsonPath: .status.conditions[?(@.type=="Ready")].message + name: Status + type: string + name: v1 + schema: + openAPIV3Schema: + description: GitRepository is the Schema for the gitrepositories API. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: GitRepositorySpec specifies the required configuration to + produce an Artifact for a Git repository. + properties: + ignore: + description: Ignore overrides the set of excluded patterns in the + .sourceignore format (which is the same as .gitignore). If not provided, + a default will be used, consult the documentation for your version + to find out what those are. + type: string + include: + description: Include specifies a list of GitRepository resources which + Artifacts should be included in the Artifact produced for this GitRepository. + items: + description: GitRepositoryInclude specifies a local reference to + a GitRepository which Artifact (sub-)contents must be included, + and where they should be placed. + properties: + fromPath: + description: FromPath specifies the path to copy contents from, + defaults to the root of the Artifact. + type: string + repository: + description: GitRepositoryRef specifies the GitRepository which + Artifact contents must be included. + properties: + name: + description: Name of the referent. + type: string + required: + - name + type: object + toPath: + description: ToPath specifies the path to copy contents to, + defaults to the name of the GitRepositoryRef. + type: string + required: + - repository + type: object + type: array + interval: + description: Interval at which the GitRepository URL is checked for + updates. This interval is approximate and may be subject to jitter + to ensure efficient use of resources. + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ + type: string + proxySecretRef: + description: ProxySecretRef specifies the Secret containing the proxy + configuration to use while communicating with the Git server. + properties: + name: + description: Name of the referent. + type: string + required: + - name + type: object + recurseSubmodules: + description: RecurseSubmodules enables the initialization of all submodules + within the GitRepository as cloned from the URL, using their default + settings. + type: boolean + ref: + description: Reference specifies the Git reference to resolve and + monitor for changes, defaults to the 'master' branch. + properties: + branch: + description: Branch to check out, defaults to 'master' if no other + field is defined. + type: string + commit: + description: "Commit SHA to check out, takes precedence over all + reference fields. \n This can be combined with Branch to shallow + clone the branch, in which the commit is expected to exist." + type: string + name: + description: "Name of the reference to check out; takes precedence + over Branch, Tag and SemVer. \n It must be a valid Git reference: + https://git-scm.com/docs/git-check-ref-format#_description Examples: + \"refs/heads/main\", \"refs/tags/v0.1.0\", \"refs/pull/420/head\", + \"refs/merge-requests/1/head\"" + type: string + semver: + description: SemVer tag expression to check out, takes precedence + over Tag. + type: string + tag: + description: Tag to check out, takes precedence over Branch. + type: string + type: object + secretRef: + description: SecretRef specifies the Secret containing authentication + credentials for the GitRepository. For HTTPS repositories the Secret + must contain 'username' and 'password' fields for basic auth or + 'bearerToken' field for token auth. For SSH repositories the Secret + must contain 'identity' and 'known_hosts' fields. + properties: + name: + description: Name of the referent. + type: string + required: + - name + type: object + suspend: + description: Suspend tells the controller to suspend the reconciliation + of this GitRepository. + type: boolean + timeout: + default: 60s + description: Timeout for Git operations like cloning, defaults to + 60s. + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$ + type: string + url: + description: URL specifies the Git repository URL, it can be an HTTP/S + or SSH address. + pattern: ^(http|https|ssh)://.*$ + type: string + verify: + description: Verification specifies the configuration to verify the + Git commit signature(s). + properties: + mode: + default: HEAD + description: "Mode specifies which Git object(s) should be verified. + \n The variants \"head\" and \"HEAD\" both imply the same thing, + i.e. verify the commit that the HEAD of the Git repository points + to. The variant \"head\" solely exists to ensure backwards compatibility." + enum: + - head + - HEAD + - Tag + - TagAndHEAD + type: string + secretRef: + description: SecretRef specifies the Secret containing the public + keys of trusted Git authors. + properties: + name: + description: Name of the referent. + type: string + required: + - name + type: object + required: + - secretRef + type: object + required: + - interval + - url + type: object + status: + default: + observedGeneration: -1 + description: GitRepositoryStatus records the observed state of a Git repository. + properties: + artifact: + description: Artifact represents the last successful GitRepository + reconciliation. + properties: + digest: + description: Digest is the digest of the file in the form of ':'. + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ + type: string + lastUpdateTime: + description: LastUpdateTime is the timestamp corresponding to + the last update of the Artifact. + format: date-time + type: string + metadata: + additionalProperties: + type: string + description: Metadata holds upstream information such as OCI annotations. + type: object + path: + description: Path is the relative file path of the Artifact. It + can be used to locate the file in the root of the Artifact storage + on the local file system of the controller managing the Source. + type: string + revision: + description: Revision is a human-readable identifier traceable + in the origin source system. It can be a Git commit SHA, Git + tag, a Helm chart version, etc. + type: string + size: + description: Size is the number of bytes in the file. + format: int64 + type: integer + url: + description: URL is the HTTP address of the Artifact as exposed + by the controller managing the Source. It can be used to retrieve + the Artifact for consumption, e.g. by another controller applying + the Artifact contents. + type: string + required: + - lastUpdateTime + - path + - revision + - url + type: object + conditions: + description: Conditions holds the conditions for the GitRepository. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: lastTransitionTime is the last time the condition + transitioned from one status to another. This should be when + the underlying condition changed. If that is not known, then + using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + includedArtifacts: + description: IncludedArtifacts contains a list of the last successfully + included Artifacts as instructed by GitRepositorySpec.Include. + items: + description: Artifact represents the output of a Source reconciliation. + properties: + digest: + description: Digest is the digest of the file in the form of + ':'. + pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$ + type: string + lastUpdateTime: + description: LastUpdateTime is the timestamp corresponding to + the last update of the Artifact. + format: date-time + type: string + metadata: + additionalProperties: + type: string + description: Metadata holds upstream information such as OCI + annotations. + type: object + path: + description: Path is the relative file path of the Artifact. + It can be used to locate the file in the root of the Artifact + storage on the local file system of the controller managing + the Source. + type: string + revision: + description: Revision is a human-readable identifier traceable + in the origin source system. It can be a Git commit SHA, Git + tag, a Helm chart version, etc. + type: string + size: + description: Size is the number of bytes in the file. + format: int64 + type: integer + url: + description: URL is the HTTP address of the Artifact as exposed + by the controller managing the Source. It can be used to retrieve + the Artifact for consumption, e.g. by another controller applying + the Artifact contents. + type: string + required: + - lastUpdateTime + - path + - revision + - url + type: object + type: array + lastHandledReconcileAt: + description: LastHandledReconcileAt holds the value of the most recent + reconcile request value, so a change of the annotation value can + be detected. + type: string + observedGeneration: + description: ObservedGeneration is the last observed generation of + the GitRepository object. + format: int64 + type: integer + observedIgnore: + description: ObservedIgnore is the observed exclusion patterns used + for constructing the source artifact. + type: string + observedInclude: + description: ObservedInclude is the observed list of GitRepository + resources used to produce the current Artifact. + items: + description: GitRepositoryInclude specifies a local reference to + a GitRepository which Artifact (sub-)contents must be included, + and where they should be placed. + properties: + fromPath: + description: FromPath specifies the path to copy contents from, + defaults to the root of the Artifact. + type: string + repository: + description: GitRepositoryRef specifies the GitRepository which + Artifact contents must be included. + properties: + name: + description: Name of the referent. + type: string + required: + - name + type: object + toPath: + description: ToPath specifies the path to copy contents to, + defaults to the name of the GitRepositoryRef. + type: string + required: + - repository + type: object + type: array + observedRecurseSubmodules: + description: ObservedRecurseSubmodules is the observed resource submodules + configuration used to produce the current Artifact. + type: boolean + sourceVerificationMode: + description: SourceVerificationMode is the last used verification + mode indicating which Git object(s) have been verified. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} From 920fea7d1b70862c8937cf56fbc130dfa9028f5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 22:41:32 +0000 Subject: [PATCH 035/154] build(deps): bump google.golang.org/grpc in /tests/integration Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.55.0 to 1.56.3. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.55.0...v1.56.3) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- tests/integration/go.mod | 4 ++-- tests/integration/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/integration/go.mod b/tests/integration/go.mod index d6ee1e36..a5a0223c 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -23,7 +23,7 @@ require ( github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/onsi/gomega v1.27.10 github.com/whilp/git-urls v1.0.0 - google.golang.org/grpc v1.55.0 + google.golang.org/grpc v1.56.3 k8s.io/api v0.27.4 k8s.io/apimachinery v0.27.4 k8s.io/client-go v0.27.4 @@ -32,7 +32,7 @@ require ( require ( cloud.google.com/go v0.110.2 // indirect - cloud.google.com/go/compute v1.19.0 // indirect + cloud.google.com/go/compute v1.19.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.0.1 // indirect dario.cat/mergo v1.0.0 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 8fd1ce79..48b25343 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.110.2 h1:sdFPBr6xG9/wkBbfhmUz/JmZC7X6LavQgcrVINrKiVA= cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= -cloud.google.com/go/compute v1.19.0 h1:+9zda3WGgW1ZSTlVppLCYFIr48Pa35q1uG2N1itbCEQ= -cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/iam v1.0.1 h1:lyeCAU6jpnVNrE9zGQkTl3WgNgK/X+uWwaw0kynZJMU= @@ -553,8 +553,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From cbce9b5e26c609779d6b52b19f0d3a36737325bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 00:09:02 +0000 Subject: [PATCH 036/154] build(deps): bump the ci group with 2 updates Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [ossf/scorecard-action](https://github.com/ossf/scorecard-action). Updates `korthout/backport-action` from 1.4.0 to 2.0.0 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/bd68141f079bd036e45ea8149bc9d174d5a04703...408fae11ed190c2f91bf15d15af01b8f8b45709b) Updates `ossf/scorecard-action` from 2.3.0 to 2.3.1 - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](https://github.com/ossf/scorecard-action/compare/483ef80eb98fb506c348f7d62e28055e49fe2398...0864cf19026789058feabb7e87baa5f140aac736) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: ossf/scorecard-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/backport.yaml | 2 +- .github/workflows/ossf.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index 682f21b2..02032cb1 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -17,7 +17,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs - uses: korthout/backport-action@bd68141f079bd036e45ea8149bc9d174d5a04703 # v1.4.0 + uses: korthout/backport-action@408fae11ed190c2f91bf15d15af01b8f8b45709b # v2.0.0 # xref: https://github.com/korthout/backport-action#inputs with: # Use token to allow workflows to be triggered for the created PR diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index 7915ce3f..1b343b7a 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Run analysis - uses: ossf/scorecard-action@483ef80eb98fb506c348f7d62e28055e49fe2398 # v2.3.0 + uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 with: results_file: results.sarif results_format: sarif From 80810bdc0fb058e5579b438b8e1589f99560b0ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 15:44:06 +0000 Subject: [PATCH 037/154] build(deps): bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 24.0.0+incompatible to 24.0.7+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v24.0.0...v24.0.7) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7875f9fe..b7bd0017 100644 --- a/go.mod +++ b/go.mod @@ -97,7 +97,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v24.0.0+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v24.0.0+incompatible // indirect + github.com/docker/docker v24.0.7+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect github.com/docker/go-metrics v0.0.1 // indirect diff --git a/go.sum b/go.sum index ee19e2d6..8f7fcefc 100644 --- a/go.sum +++ b/go.sum @@ -104,8 +104,8 @@ github.com/docker/cli v24.0.0+incompatible h1:0+1VshNwBQzQAx9lOl+OYCTCEAD8fKs/qe github.com/docker/cli v24.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v24.0.0+incompatible h1:z4bf8HvONXX9Tde5lGBMQ7yCJgNahmJumdrStZAbeY4= -github.com/docker/docker v24.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= From 7771107e4df287d8c2dc3a82083ba4e8e23b5b95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:12:00 +0000 Subject: [PATCH 038/154] build(deps): bump github.com/docker/docker in /tests/integration Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.3+incompatible to 24.0.7+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v23.0.3...v24.0.7) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/integration/go.mod | 2 +- tests/integration/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/go.mod b/tests/integration/go.mod index a5a0223c..ee7a3dfe 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -59,7 +59,7 @@ require ( github.com/devigned/tab v0.1.1 // indirect github.com/docker/cli v23.0.1+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v23.0.3+incompatible // indirect + github.com/docker/docker v24.0.7+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/emicklei/go-restful/v3 v3.10.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 48b25343..d27f0bea 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -105,8 +105,8 @@ github.com/docker/cli v23.0.1+incompatible h1:LRyWITpGzl2C9e9uGxzisptnxAn1zfZKXy github.com/docker/cli v23.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= -github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= From 2f15ad972b2aadc850fe296ad4bd41def271aba1 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Tue, 24 Oct 2023 11:42:12 +0100 Subject: [PATCH 039/154] confirm before overriding installation by another manager Signed-off-by: Somtochi Onyekwere --- cmd/flux/bootstrap.go | 31 +++++++++++++++++++++++ cmd/flux/bootstrap_bitbucket_server.go | 7 ++++++ cmd/flux/bootstrap_git.go | 7 ++++++ cmd/flux/bootstrap_github.go | 7 ++++++ cmd/flux/bootstrap_gitlab.go | 7 ++++++ cmd/flux/cluster_info.go | 35 ++++++++++++++++++++------ cmd/flux/cluster_info_test.go | 18 ++++++------- cmd/flux/install.go | 27 +++++++++++++++++--- 8 files changed, 117 insertions(+), 22 deletions(-) diff --git a/cmd/flux/bootstrap.go b/cmd/flux/bootstrap.go index 2441551d..de02154a 100644 --- a/cmd/flux/bootstrap.go +++ b/cmd/flux/bootstrap.go @@ -17,11 +17,15 @@ limitations under the License. package main import ( + "context" "crypto/elliptic" "fmt" "strings" + "github.com/manifoldco/promptui" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + "sigs.k8s.io/controller-runtime/pkg/client" "github.com/fluxcd/flux2/v2/internal/flags" "github.com/fluxcd/flux2/v2/internal/utils" @@ -72,6 +76,8 @@ type bootstrapFlags struct { gpgPassphrase string gpgKeyID string + force bool + commitMessageAppendix string } @@ -129,6 +135,7 @@ func init() { bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.commitMessageAppendix, "commit-message-appendix", "", "string to add to the commit messages, e.g. '[ci skip]'") + bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.force, "force", false, "override existing Flux installation if it's managed by a diffrent tool such as Helm") bootstrapCmd.PersistentFlags().MarkHidden("manifests") rootCmd.AddCommand(bootstrapCmd) @@ -188,3 +195,27 @@ func mapTeamSlice(s []string, defaultPermission string) map[string]string { return m } + +// confirmBootstrap gets a confirmation for running bootstrap over an existing Flux installation. +// It returns a nil error if Flux is not installed or the user confirms overriding an existing installation +func confirmBootstrap(ctx context.Context, kubeClient client.Client) error { + installed := true + info, err := getFluxClusterInfo(ctx, kubeClient) + if err != nil { + if !errors.IsNotFound(err) { + return fmt.Errorf("cluster info unavailable: %w", err) + } + installed = false + } + + if installed { + err = confirmFluxInstallOverride(info) + if err != nil { + if err == promptui.ErrAbort { + return fmt.Errorf("bootstrap cancelled") + } + return err + } + } + return nil +} diff --git a/cmd/flux/bootstrap_bitbucket_server.go b/cmd/flux/bootstrap_bitbucket_server.go index 40eccca8..3648f0d2 100644 --- a/cmd/flux/bootstrap_bitbucket_server.go +++ b/cmd/flux/bootstrap_bitbucket_server.go @@ -124,6 +124,13 @@ func bootstrapBServerCmdRun(cmd *cobra.Command, args []string) error { return err } + if !bootstrapArgs.force { + err = confirmBootstrap(ctx, kubeClient) + if err != nil { + return err + } + } + // Manifest base if ver, err := getVersion(bootstrapArgs.version); err != nil { return err diff --git a/cmd/flux/bootstrap_git.go b/cmd/flux/bootstrap_git.go index bd9dc80a..eb66b0ad 100644 --- a/cmd/flux/bootstrap_git.go +++ b/cmd/flux/bootstrap_git.go @@ -146,6 +146,13 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error { return err } + if !bootstrapArgs.force { + err = confirmBootstrap(ctx, kubeClient) + if err != nil { + return err + } + } + // Manifest base if ver, err := getVersion(bootstrapArgs.version); err != nil { return err diff --git a/cmd/flux/bootstrap_github.go b/cmd/flux/bootstrap_github.go index 8c7c214e..c2860d05 100644 --- a/cmd/flux/bootstrap_github.go +++ b/cmd/flux/bootstrap_github.go @@ -128,6 +128,13 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error { return err } + if !bootstrapArgs.force { + err = confirmBootstrap(ctx, kubeClient) + if err != nil { + return err + } + } + // Manifest base if ver, err := getVersion(bootstrapArgs.version); err != nil { return err diff --git a/cmd/flux/bootstrap_gitlab.go b/cmd/flux/bootstrap_gitlab.go index 6bb111c3..90e6e968 100644 --- a/cmd/flux/bootstrap_gitlab.go +++ b/cmd/flux/bootstrap_gitlab.go @@ -145,6 +145,13 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error { return err } + if !bootstrapArgs.force { + err = confirmBootstrap(ctx, kubeClient) + if err != nil { + return err + } + } + // Manifest base if ver, err := getVersion(bootstrapArgs.version); err != nil { return err diff --git a/cmd/flux/cluster_info.go b/cmd/flux/cluster_info.go index 0a1f59bf..0640a025 100644 --- a/cmd/flux/cluster_info.go +++ b/cmd/flux/cluster_info.go @@ -20,8 +20,8 @@ import ( "context" "fmt" + "github.com/manifoldco/promptui" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/client" @@ -47,12 +47,13 @@ type fluxClusterInfo struct { } // getFluxClusterInfo returns information on the Flux installation running on the cluster. -// If the information cannot be retrieved, the boolean return value will be false. // If an error occurred, the returned error will be non-nil. // // This function retrieves the GitRepository CRD from the cluster and checks it // for a set of labels used to determine the Flux version and how Flux was installed. -func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, bool, error) { +// It returns the NotFound error from the underlying library if it was unable to find +// the GitRepository CRD and this can be used to check if Flux is installed. +func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, error) { var info fluxClusterInfo crdMetadata := &metav1.PartialObjectMetadata{ TypeMeta: metav1.TypeMeta{ @@ -64,10 +65,7 @@ func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, }, } if err := c.Get(ctx, client.ObjectKeyFromObject(crdMetadata), crdMetadata); err != nil { - if errors.IsNotFound(err) { - return info, false, nil - } - return info, false, err + return info, err } info.version = crdMetadata.Labels["app.kubernetes.io/version"] @@ -80,8 +78,29 @@ func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, info.bootstrapped = true } + // the `app.kubernetes.io` label is not set by flux but might be set by other + // tools used to install Flux e.g Helm. if manager, ok := crdMetadata.Labels["app.kubernetes.io/managed-by"]; ok { info.managedBy = manager } - return info, true, nil + return info, nil +} + +// confirmFluxInstallOverride displays a prompt to the user so that they can confirm before overriding +// a Flux installation. It returns nil if the installation should continue, +// promptui.ErrAbort if the user doesn't confirm, or an error encountered. +func confirmFluxInstallOverride(info fluxClusterInfo) error { + // no need to display prompt if installation is managed by Flux + if info.managedBy == "" || info.managedBy == "flux" { + return nil + } + + display := fmt.Sprintf("Flux %s has been installed on this cluster with %s!", info.version, info.managedBy) + fmt.Fprintln(rootCmd.ErrOrStderr(), display) + prompt := promptui.Prompt{ + Label: fmt.Sprintf("Are you sure you want to override the %s installation? Y/N", info.managedBy), + IsConfirm: true, + } + _, err := prompt.Run() + return err } diff --git a/cmd/flux/cluster_info_test.go b/cmd/flux/cluster_info_test.go index bce39be9..550ab165 100644 --- a/cmd/flux/cluster_info_test.go +++ b/cmd/flux/cluster_info_test.go @@ -24,6 +24,7 @@ import ( . "github.com/onsi/gomega" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client/fake" @@ -44,12 +45,11 @@ func Test_getFluxClusterInfo(t *testing.T) { name string labels map[string]string wantErr bool - wantBool bool wantInfo fluxClusterInfo }{ { - name: "no git repository CRD present", - wantBool: false, + name: "no git repository CRD present", + wantErr: true, }, { name: "CRD with kustomize-controller labels", @@ -58,7 +58,6 @@ func Test_getFluxClusterInfo(t *testing.T) { fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group): "flux-system", "app.kubernetes.io/version": "v2.1.0", }, - wantBool: true, wantInfo: fluxClusterInfo{ version: "v2.1.0", bootstrapped: true, @@ -72,7 +71,6 @@ func Test_getFluxClusterInfo(t *testing.T) { "app.kubernetes.io/version": "v2.1.0", "app.kubernetes.io/managed-by": "flux", }, - wantBool: true, wantInfo: fluxClusterInfo{ version: "v2.1.0", bootstrapped: true, @@ -85,7 +83,6 @@ func Test_getFluxClusterInfo(t *testing.T) { "app.kubernetes.io/version": "v2.1.0", "app.kubernetes.io/managed-by": "helm", }, - wantBool: true, wantInfo: fluxClusterInfo{ version: "v2.1.0", managedBy: "helm", @@ -94,14 +91,13 @@ func Test_getFluxClusterInfo(t *testing.T) { { name: "CRD with no labels", labels: map[string]string{}, - wantBool: true, + wantInfo: fluxClusterInfo{}, }, { name: "CRD with only version label", labels: map[string]string{ "app.kubernetes.io/version": "v2.1.0", }, - wantBool: true, wantInfo: fluxClusterInfo{ version: "v2.1.0", }, @@ -120,12 +116,14 @@ func Test_getFluxClusterInfo(t *testing.T) { } client := builder.Build() - info, present, err := getFluxClusterInfo(context.Background(), client) + info, err := getFluxClusterInfo(context.Background(), client) if tt.wantErr { g.Expect(err).To(HaveOccurred()) + g.Expect(errors.IsNotFound(err)).To(BeTrue()) + } else { + g.Expect(err).To(Not(HaveOccurred())) } - g.Expect(present).To(Equal(tt.wantBool)) g.Expect(info).To(BeEquivalentTo(tt.wantInfo)) }) } diff --git a/cmd/flux/install.go b/cmd/flux/install.go index 6580c0e4..795cc1aa 100644 --- a/cmd/flux/install.go +++ b/cmd/flux/install.go @@ -23,7 +23,9 @@ import ( "path/filepath" "time" + "github.com/manifoldco/promptui" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" "github.com/fluxcd/flux2/v2/internal/flags" "github.com/fluxcd/flux2/v2/internal/utils" @@ -72,6 +74,7 @@ type installFlags struct { tokenAuth bool clusterDomain string tolerationKeys []string + force bool } var installArgs = NewInstallFlags() @@ -98,6 +101,7 @@ func init() { installCmd.Flags().StringVar(&installArgs.clusterDomain, "cluster-domain", rootArgs.defaults.ClusterDomain, "internal cluster domain") installCmd.Flags().StringSliceVar(&installArgs.tolerationKeys, "toleration-keys", nil, "list of toleration keys used to schedule the components pods onto nodes with matching taints") + installCmd.Flags().BoolVar(&installArgs.force, "force", false, "override existing Flux installation if it's managed by a diffrent tool such as Helm") installCmd.Flags().MarkHidden("manifests") rootCmd.AddCommand(installCmd) @@ -188,13 +192,28 @@ func installCmdRun(cmd *cobra.Command, args []string) error { return err } - info, installed, err := getFluxClusterInfo(ctx, kubeClient) + installed := true + info, err := getFluxClusterInfo(ctx, kubeClient) if err != nil { - return fmt.Errorf("cluster info unavailable: %w", err) + if !errors.IsNotFound(err) { + return fmt.Errorf("cluster info unavailable: %w", err) + } + installed = false + } + + if info.bootstrapped { + return fmt.Errorf("this cluster has already been bootstrapped with Flux %s! Please use 'flux bootstrap' to upgrade", + info.version) } - if installed && info.bootstrapped { - return fmt.Errorf("this cluster has already been bootstrapped with Flux %s! Please use 'flux bootstrap' to upgrade", info.version) + if installed && !installArgs.force { + err := confirmFluxInstallOverride(info) + if err != nil { + if err == promptui.ErrAbort { + return fmt.Errorf("installation cancelled") + } + return err + } } applyOutput, err := utils.Apply(ctx, kubeconfigArgs, kubeclientOptions, tmpDir, filepath.Join(tmpDir, manifest.Path)) From 9cd4a7215fe4dd01c467d68e7a8f34030abf2f29 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Tue, 31 Oct 2023 14:37:32 +0100 Subject: [PATCH 040/154] Display better uninstall prompt if flux is managed by a different tool Signed-off-by: Somtochi Onyekwere --- cmd/flux/cluster_info.go | 6 +++++- cmd/flux/uninstall.go | 30 +++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/cmd/flux/cluster_info.go b/cmd/flux/cluster_info.go index 0640a025..daf122ee 100644 --- a/cmd/flux/cluster_info.go +++ b/cmd/flux/cluster_info.go @@ -91,7 +91,7 @@ func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, // promptui.ErrAbort if the user doesn't confirm, or an error encountered. func confirmFluxInstallOverride(info fluxClusterInfo) error { // no need to display prompt if installation is managed by Flux - if info.managedBy == "" || info.managedBy == "flux" { + if installManagedByFlux(info.managedBy) { return nil } @@ -104,3 +104,7 @@ func confirmFluxInstallOverride(info fluxClusterInfo) error { _, err := prompt.Run() return err } + +func installManagedByFlux(manager string) bool { + return manager == "" || manager == "flux" +} diff --git a/cmd/flux/uninstall.go b/cmd/flux/uninstall.go index bee7ad48..0128a833 100644 --- a/cmd/flux/uninstall.go +++ b/cmd/flux/uninstall.go @@ -22,6 +22,7 @@ import ( "github.com/manifoldco/promptui" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" "github.com/fluxcd/flux2/v2/internal/utils" "github.com/fluxcd/flux2/v2/pkg/uninstall" @@ -59,9 +60,28 @@ func init() { } func uninstallCmdRun(cmd *cobra.Command, args []string) error { + ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) + defer cancel() + + kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) + if err != nil { + return err + } + if !uninstallArgs.dryRun && !uninstallArgs.silent { + info, err := getFluxClusterInfo(ctx, kubeClient) + if err != nil { + if !errors.IsNotFound(err) { + return fmt.Errorf("cluster info unavailable: %w", err) + } + } + + promptLabel := "Are you sure you want to delete Flux and its custom resource definitions" + if !installManagedByFlux(info.managedBy) { + promptLabel = fmt.Sprintf("Flux is managed by %s! Are you sure you want to delete Flux and its CRDs using Flux CLI", info.managedBy) + } prompt := promptui.Prompt{ - Label: "Are you sure you want to delete Flux and its custom resource definitions", + Label: promptLabel, IsConfirm: true, } if _, err := prompt.Run(); err != nil { @@ -69,14 +89,6 @@ func uninstallCmdRun(cmd *cobra.Command, args []string) error { } } - ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) - defer cancel() - - kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) - if err != nil { - return err - } - logger.Actionf("deleting components in %s namespace", *kubeconfigArgs.Namespace) uninstall.Components(ctx, logger, kubeClient, *kubeconfigArgs.Namespace, uninstallArgs.dryRun) From dcbca6b1bf4f1a7f230ed315b0caadfa3960d99b Mon Sep 17 00:00:00 2001 From: Jabar Asadi Date: Wed, 1 Nov 2023 15:46:17 +0100 Subject: [PATCH 041/154] feat: add gitea bootstrapper Signed-off-by: Jabar Asadi --- cmd/flux/bootstrap_gitea.go | 275 +++++++++++++++++++++++++++++ go.mod | 4 + go.sum | 10 ++ pkg/bootstrap/provider/factory.go | 12 ++ pkg/bootstrap/provider/provider.go | 1 + 5 files changed, 302 insertions(+) create mode 100644 cmd/flux/bootstrap_gitea.go diff --git a/cmd/flux/bootstrap_gitea.go b/cmd/flux/bootstrap_gitea.go new file mode 100644 index 00000000..37d53c92 --- /dev/null +++ b/cmd/flux/bootstrap_gitea.go @@ -0,0 +1,275 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "context" + "fmt" + "os" + "time" + + "github.com/fluxcd/pkg/git" + "github.com/fluxcd/pkg/git/gogit" + "github.com/spf13/cobra" + + "github.com/fluxcd/flux2/v2/internal/flags" + "github.com/fluxcd/flux2/v2/internal/utils" + "github.com/fluxcd/flux2/v2/pkg/bootstrap" + "github.com/fluxcd/flux2/v2/pkg/bootstrap/provider" + "github.com/fluxcd/flux2/v2/pkg/manifestgen" + "github.com/fluxcd/flux2/v2/pkg/manifestgen/install" + "github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret" + "github.com/fluxcd/flux2/v2/pkg/manifestgen/sync" +) + +var bootstrapGiteaCmd = &cobra.Command{ + Use: "gitea", + Short: "Deploy Flux on a cluster connected to a Gitea repository", + Long: `The bootstrap gitea command creates the Gitea repository if it doesn't exists and +commits the Flux manifests to the specified branch. +Then it configures the target cluster to synchronize with that repository. +If the Flux components are present on the cluster, +the bootstrap command will perform an upgrade if needed.`, + Example: ` # Create a Gitea personal access token and export it as an env var + export GITEA_TOKEN= + + # Run bootstrap for a private repository owned by a Gitea organization + flux bootstrap gitea --owner= --repository= --path=clusters/my-cluster + + # Run bootstrap for a private repository and assign organization teams to it + flux bootstrap gitea --owner= --repository= --team= --team= --path=clusters/my-cluster + + # Run bootstrap for a private repository and assign organization teams with their access level(e.g maintain, admin) to it + flux bootstrap gitea --owner= --repository= --team=: --path=clusters/my-cluster + + # Run bootstrap for a public repository on a personal account + flux bootstrap gitea --owner= --repository= --private=false --personal=true --path=clusters/my-cluster + + # Run bootstrap for a private repository hosted on Gitea Enterprise using SSH auth + flux bootstrap gitea --owner= --repository= --hostname= --ssh-hostname= --path=clusters/my-cluster + + # Run bootstrap for a private repository hosted on Gitea Enterprise using HTTPS auth + flux bootstrap gitea --owner= --repository= --hostname= --token-auth --path=clusters/my-cluster + + # Run bootstrap for an existing repository with a branch named main + flux bootstrap gitea --owner= --repository= --branch=main --path=clusters/my-cluster`, + RunE: bootstrapGiteaCmdRun, +} + +type giteaFlags struct { + owner string + repository string + interval time.Duration + personal bool + private bool + hostname string + path flags.SafeRelativePath + teams []string + readWriteKey bool + reconcile bool +} + +const ( + gtDefaultPermission = "maintain" + gtDefaultDomain = "gitea.com" + gtTokenEnvVar = "GITEA_TOKEN" +) + +var giteaArgs giteaFlags + +func init() { + bootstrapGiteaCmd.Flags().StringVar(&giteaArgs.owner, "owner", "", "Gitea user or organization name") + bootstrapGiteaCmd.Flags().StringVar(&giteaArgs.repository, "repository", "", "Gitea repository name") + bootstrapGiteaCmd.Flags().StringSliceVar(&giteaArgs.teams, "team", []string{}, "Gitea team and the access to be given to it(team:maintain). Defaults to maintainer access if no access level is specified (also accepts comma-separated values)") + bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.personal, "personal", false, "if true, the owner is assumed to be a Gitea user; otherwise an org") + bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.private, "private", true, "if true, the repository is setup or configured as private") + bootstrapGiteaCmd.Flags().DurationVar(&giteaArgs.interval, "interval", time.Minute, "sync interval") + bootstrapGiteaCmd.Flags().StringVar(&giteaArgs.hostname, "hostname", gtDefaultDomain, "Gitea hostname") + bootstrapGiteaCmd.Flags().Var(&giteaArgs.path, "path", "path relative to the repository root, when specified the cluster sync will be scoped to this path") + bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.readWriteKey, "read-write-key", false, "if true, the deploy key is configured with read/write permissions") + bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.reconcile, "reconcile", false, "if true, the configured options are also reconciled if the repository already exists") + + bootstrapCmd.AddCommand(bootstrapGiteaCmd) +} + +func bootstrapGiteaCmdRun(cmd *cobra.Command, args []string) error { + gtToken := os.Getenv(gtTokenEnvVar) + if gtToken == "" { + var err error + gtToken, err = readPasswordFromStdin("Please enter your Gitea personal access token (PAT): ") + if err != nil { + return fmt.Errorf("could not read token: %w", err) + } + } + + if err := bootstrapValidate(); err != nil { + return err + } + + ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) + defer cancel() + + kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) + if err != nil { + return err + } + + // Manifest base + if ver, err := getVersion(bootstrapArgs.version); err != nil { + return err + } else { + bootstrapArgs.version = ver + } + manifestsBase, err := buildEmbeddedManifestBase() + if err != nil { + return err + } + defer os.RemoveAll(manifestsBase) + + var caBundle []byte + if bootstrapArgs.caFile != "" { + var err error + caBundle, err = os.ReadFile(bootstrapArgs.caFile) + if err != nil { + return fmt.Errorf("unable to read TLS CA file: %w", err) + } + } + // Build Gitea provider + providerCfg := provider.Config{ + Provider: provider.GitProviderGitea, + Hostname: giteaArgs.hostname, + Token: gtToken, + CaBundle: caBundle, + } + providerClient, err := provider.BuildGitProvider(providerCfg) + if err != nil { + return err + } + + tmpDir, err := manifestgen.MkdirTempAbs("", "flux-bootstrap-") + if err != nil { + return fmt.Errorf("failed to create temporary working dir: %w", err) + } + defer os.RemoveAll(tmpDir) + + clientOpts := []gogit.ClientOption{gogit.WithDiskStorage(), gogit.WithFallbackToDefaultKnownHosts()} + gitClient, err := gogit.NewClient(tmpDir, &git.AuthOptions{ + Transport: git.HTTPS, + Username: giteaArgs.owner, + Password: gtToken, + CAFile: caBundle, + }, clientOpts...) + if err != nil { + return fmt.Errorf("failed to create a Git client: %w", err) + } + + // Install manifest config + installOptions := install.Options{ + BaseURL: rootArgs.defaults.BaseURL, + Version: bootstrapArgs.version, + Namespace: *kubeconfigArgs.Namespace, + Components: bootstrapComponents(), + Registry: bootstrapArgs.registry, + ImagePullSecret: bootstrapArgs.imagePullSecret, + WatchAllNamespaces: bootstrapArgs.watchAllNamespaces, + NetworkPolicy: bootstrapArgs.networkPolicy, + LogLevel: bootstrapArgs.logLevel.String(), + NotificationController: rootArgs.defaults.NotificationController, + ManifestFile: rootArgs.defaults.ManifestFile, + Timeout: rootArgs.timeout, + TargetPath: giteaArgs.path.ToSlash(), + ClusterDomain: bootstrapArgs.clusterDomain, + TolerationKeys: bootstrapArgs.tolerationKeys, + } + if customBaseURL := bootstrapArgs.manifestsPath; customBaseURL != "" { + installOptions.BaseURL = customBaseURL + } + + // Source generation and secret config + secretOpts := sourcesecret.Options{ + Name: bootstrapArgs.secretName, + Namespace: *kubeconfigArgs.Namespace, + TargetPath: giteaArgs.path.ToSlash(), + ManifestFile: sourcesecret.MakeDefaultOptions().ManifestFile, + } + if bootstrapArgs.tokenAuth { + secretOpts.Username = "git" + secretOpts.Password = gtToken + secretOpts.CAFile = caBundle + } else { + secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(bootstrapArgs.keyAlgorithm) + secretOpts.RSAKeyBits = int(bootstrapArgs.keyRSABits) + secretOpts.ECDSACurve = bootstrapArgs.keyECDSACurve.Curve + + secretOpts.SSHHostname = giteaArgs.hostname + if bootstrapArgs.sshHostname != "" { + secretOpts.SSHHostname = bootstrapArgs.sshHostname + } + } + + // Sync manifest config + syncOpts := sync.Options{ + Interval: giteaArgs.interval, + Name: *kubeconfigArgs.Namespace, + Namespace: *kubeconfigArgs.Namespace, + Branch: bootstrapArgs.branch, + Secret: bootstrapArgs.secretName, + TargetPath: giteaArgs.path.ToSlash(), + ManifestFile: sync.MakeDefaultOptions().ManifestFile, + RecurseSubmodules: bootstrapArgs.recurseSubmodules, + } + + entityList, err := bootstrap.LoadEntityListFromPath(bootstrapArgs.gpgKeyRingPath) + if err != nil { + return err + } + + // Bootstrap config + bootstrapOpts := []bootstrap.GitProviderOption{ + bootstrap.WithProviderRepository(giteaArgs.owner, giteaArgs.repository, giteaArgs.personal), + bootstrap.WithBranch(bootstrapArgs.branch), + bootstrap.WithBootstrapTransportType("https"), + bootstrap.WithSignature(bootstrapArgs.authorName, bootstrapArgs.authorEmail), + bootstrap.WithCommitMessageAppendix(bootstrapArgs.commitMessageAppendix), + bootstrap.WithProviderTeamPermissions(mapTeamSlice(giteaArgs.teams, gtDefaultPermission)), + bootstrap.WithReadWriteKeyPermissions(giteaArgs.readWriteKey), + bootstrap.WithKubeconfig(kubeconfigArgs, kubeclientOptions), + bootstrap.WithLogger(logger), + bootstrap.WithGitCommitSigning(entityList, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID), + } + if bootstrapArgs.sshHostname != "" { + bootstrapOpts = append(bootstrapOpts, bootstrap.WithSSHHostname(bootstrapArgs.sshHostname)) + } + if bootstrapArgs.tokenAuth { + bootstrapOpts = append(bootstrapOpts, bootstrap.WithSyncTransportType("https")) + } + if !giteaArgs.private { + bootstrapOpts = append(bootstrapOpts, bootstrap.WithProviderRepositoryConfig("", "", "public")) + } + if giteaArgs.reconcile { + bootstrapOpts = append(bootstrapOpts, bootstrap.WithReconcile()) + } + + // Setup bootstrapper with constructed configs + b, err := bootstrap.NewGitProviderBootstrapper(gitClient, providerClient, kubeClient, bootstrapOpts...) + if err != nil { + return err + } + + // Run + return bootstrap.Run(ctx, b, manifestsBase, installOptions, secretOpts, syncOpts, rootArgs.pollInterval, rootArgs.timeout) +} diff --git a/go.mod b/go.mod index b7bd0017..9f6434b1 100644 --- a/go.mod +++ b/go.mod @@ -63,6 +63,7 @@ require ( ) require ( + code.gitea.io/sdk/gitea v0.16.0 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect @@ -95,6 +96,7 @@ require ( github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davidmz/go-pageant v1.0.2 // indirect github.com/docker/cli v24.0.0+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/docker v24.0.7+incompatible // indirect @@ -114,6 +116,7 @@ require ( github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-errors/errors v1.4.2 // indirect + github.com/go-fed/httpsig v1.1.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect @@ -141,6 +144,7 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.4 // indirect + github.com/hashicorp/go-version v1.5.0 // indirect github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect github.com/imdario/mergo v0.3.15 // indirect diff --git a/go.sum b/go.sum index 8f7fcefc..58202d13 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +code.gitea.io/sdk/gitea v0.16.0 h1:gAfssETO1Hv9QbE+/nhWu7EjoFQYKt6kPoyDytQgw00= +code.gitea.io/sdk/gitea v0.16.0/go.mod h1:ndkDk99BnfiUCCYEUhpNzi0lpmApXlwRFqClBlOlEBg= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= @@ -97,6 +99,8 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG 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= +github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= +github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 h1:vlGNYFw1NB27Gk5tIwJpiog1Ti6FKOUI+DoFZKoCDZo= github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41/go.mod h1:WREzLx07iIFUGvbm6tBoqGt40zOC3whiM1qkcWOMFrs= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= @@ -190,6 +194,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= +github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= @@ -301,6 +307,8 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA= github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E= +github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= @@ -506,7 +514,9 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= diff --git a/pkg/bootstrap/provider/factory.go b/pkg/bootstrap/provider/factory.go index 575cb551..bd490334 100644 --- a/pkg/bootstrap/provider/factory.go +++ b/pkg/bootstrap/provider/factory.go @@ -19,6 +19,7 @@ package provider import ( "fmt" + "github.com/fluxcd/go-git-providers/gitea" "github.com/fluxcd/go-git-providers/github" "github.com/fluxcd/go-git-providers/gitlab" "github.com/fluxcd/go-git-providers/gitprovider" @@ -45,6 +46,17 @@ func BuildGitProvider(config Config) (gitprovider.Client, error) { if client, err = github.NewClient(opts...); err != nil { return nil, err } + case GitProviderGitea: + opts := []gitprovider.ClientOption{} + if config.Hostname != "" { + opts = append(opts, gitprovider.WithDomain(config.Hostname)) + } + if config.CaBundle != nil { + opts = append(opts, gitprovider.WithCustomCAPostChainTransportHook(config.CaBundle)) + } + if client, err = gitea.NewClient(config.Token, opts...); err != nil { + return nil, err + } case GitProviderGitLab: opts := []gitprovider.ClientOption{ gitprovider.WithConditionalRequests(true), diff --git a/pkg/bootstrap/provider/provider.go b/pkg/bootstrap/provider/provider.go index 4d1f92ac..f458184b 100644 --- a/pkg/bootstrap/provider/provider.go +++ b/pkg/bootstrap/provider/provider.go @@ -21,6 +21,7 @@ type GitProvider string const ( GitProviderGitHub GitProvider = "github" + GitProviderGitea GitProvider = "gitea" GitProviderGitLab GitProvider = "gitlab" GitProviderStash GitProvider = "stash" ) From 6dd0cbfaddc8ac795fb084053dae798803f22ec9 Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 3 Nov 2023 18:46:54 +0000 Subject: [PATCH 042/154] tests/int: Set exit code 1 on tf destroy fail Explicitly set the test program exit code to 1 when terraform destroy fails to delete the infrastructure. This was observed when GKE clusters failed to delete due to delete protection enabled by default in the latest version of terraform provider google. Signed-off-by: Sunny --- tests/integration/suite_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/integration/suite_test.go b/tests/integration/suite_test.go index b6ee3589..8044c46c 100644 --- a/tests/integration/suite_test.go +++ b/tests/integration/suite_test.go @@ -220,6 +220,7 @@ func TestMain(m *testing.M) { defer func() { if err := testEnv.Stop(ctx); err != nil { log.Printf("Failed to stop environment: %v", err) + exitCode = 1 } // Log the panic error before exit to surface the cause of panic. From 0ad4db9f82d1d9c5d0c6784f1cfb03c1a06fbc12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 00:39:04 +0000 Subject: [PATCH 043/154] build(deps): bump the ci group with 2 updates Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform). Updates `korthout/backport-action` from 2.0.0 to 2.1.0 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/408fae11ed190c2f91bf15d15af01b8f8b45709b...cb79e4e5f46c7d7d653dd3d5fa8a9b0a945dfe4b) Updates `hashicorp/setup-terraform` from 2.0.3 to 3.0.0 - [Release notes](https://github.com/hashicorp/setup-terraform/releases) - [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/setup-terraform/compare/633666f66e0061ca3b725c73b2ec20cd13a8fdd1...a1502cd9e758c50496cc9ac5308c4843bcd56d36) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: hashicorp/setup-terraform dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/backport.yaml | 2 +- .github/workflows/e2e-azure.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index 02032cb1..c9c112cc 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -17,7 +17,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs - uses: korthout/backport-action@408fae11ed190c2f91bf15d15af01b8f8b45709b # v2.0.0 + uses: korthout/backport-action@cb79e4e5f46c7d7d653dd3d5fa8a9b0a945dfe4b # v2.1.0 # xref: https://github.com/korthout/backport-action#inputs with: # Use token to allow workflows to be triggered for the created PR diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 05b03611..1c6330b5 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -48,7 +48,7 @@ jobs: wget https://github.com/mozilla/sops/releases/download/v3.7.1/sops-v3.7.1.linux -O $HOME/.local/bin/sops chmod +x $HOME/.local/bin/sops - name: Setup Terraform - uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2 + uses: hashicorp/setup-terraform@a1502cd9e758c50496cc9ac5308c4843bcd56d36 # v2 with: terraform_version: 1.2.8 terraform_wrapper: false From e73d1acb209d1408cbc77c5fb8bd52bc7fbb8b2d Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 3 Nov 2023 11:15:00 +0100 Subject: [PATCH 044/154] Tweak permissions on created files Signed-off-by: Hidde Beydals --- cmd/flux/main_test.go | 4 ++-- internal/build/diff.go | 4 ++-- tests/integration/util_test.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/flux/main_test.go b/cmd/flux/main_test.go index b97397ff..2859d963 100644 --- a/cmd/flux/main_test.go +++ b/cmd/flux/main_test.go @@ -182,7 +182,7 @@ func NewTestEnvKubeManager(testClusterMode TestClusterMode) (*testEnvKubeManager } tmpFilename := filepath.Join("/tmp", "kubeconfig-"+time.Nanosecond.String()) - os.WriteFile(tmpFilename, kubeConfig, 0644) + os.WriteFile(tmpFilename, kubeConfig, 0o600) k8sClient, err := client.NewWithWatch(cfg, client.Options{ Scheme: utils.NewScheme(), }) @@ -313,7 +313,7 @@ func assertGoldenTemplateFile(goldenFile string, templateValues map[string]strin if len(templateValues) > 0 { fmt.Println("NOTE: -update flag passed but golden template files can't be updated, please update it manually") } else { - if err := os.WriteFile(goldenFile, []byte(output), 0644); err != nil { + if err := os.WriteFile(goldenFile, []byte(output), 0o600); err != nil { return fmt.Errorf("failed to update golden file '%s': %v", goldenFile, err) } return nil diff --git a/internal/build/diff.go b/internal/build/diff.go index 0dd0d9a4..7714c6bb 100644 --- a/internal/build/diff.go +++ b/internal/build/diff.go @@ -168,13 +168,13 @@ func writeYamls(liveObject, mergedObject *unstructured.Unstructured) (string, st liveYAML, _ := yaml.Marshal(liveObject) liveFile := filepath.Join(tmpDir, "live.yaml") - if err := os.WriteFile(liveFile, liveYAML, 0644); err != nil { + if err := os.WriteFile(liveFile, liveYAML, 0o600); err != nil { return "", "", "", err } mergedYAML, _ := yaml.Marshal(mergedObject) mergedFile := filepath.Join(tmpDir, "merged.yaml") - if err := os.WriteFile(mergedFile, mergedYAML, 0644); err != nil { + if err := os.WriteFile(mergedFile, mergedYAML, 0o600); err != nil { return "", "", "", err } diff --git a/tests/integration/util_test.go b/tests/integration/util_test.go index 674c3b68..2f6b6a66 100644 --- a/tests/integration/util_test.go +++ b/tests/integration/util_test.go @@ -83,7 +83,7 @@ func installFlux(ctx context.Context, tmpDir string, kubeconfigPath string) erro if err != nil { return err } - err = os.WriteFile(f.Name(), []byte(cfg.gitPrivateKey), 0o644) + err = os.WriteFile(f.Name(), []byte(cfg.gitPrivateKey), 0o600) if err != nil { return err } From cbccb8c46a42edbd771f34ca6ccfe7d5a8348d9a Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 3 Nov 2023 11:27:53 +0100 Subject: [PATCH 045/154] Update `fluxcd/pkg` dependencies Signed-off-by: Hidde Beydals --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9f6434b1..54d3305b 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/fluxcd/pkg/sourceignore v0.3.5 github.com/fluxcd/pkg/ssa v0.32.0 github.com/fluxcd/pkg/ssh v0.8.2 - github.com/fluxcd/pkg/tar v0.3.0 + github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.1.2 github.com/go-git/go-git/v5 v5.9.0 diff --git a/go.sum b/go.sum index 58202d13..44fca985 100644 --- a/go.sum +++ b/go.sum @@ -182,8 +182,8 @@ github.com/fluxcd/pkg/ssa v0.32.0 h1:RBqs9DNrbJkFHjpfsiKilyean7gwqWFspSBTLOaBIHs github.com/fluxcd/pkg/ssa v0.32.0/go.mod h1:+Kf5euYAbvgJX645bo+IL7V/NlH0X7kGgFTr1W++I3c= github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= -github.com/fluxcd/pkg/tar v0.3.0 h1:gIdCIIuvV5aH193c1qYZeC6gpJOmw1p2OzhAvaUHNFI= -github.com/fluxcd/pkg/tar v0.3.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= +github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= +github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= From c5dd6a18fa59750637eef589597ed5fa620be457 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 01:09:39 +0000 Subject: [PATCH 046/154] build(deps): bump the ci group with 2 updates Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer). Updates `korthout/backport-action` from 2.1.0 to 2.1.1 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/cb79e4e5f46c7d7d653dd3d5fa8a9b0a945dfe4b...08bafb375e6e9a9a2b53a744b987e5d81a133191) Updates `sigstore/cosign-installer` from 3.1.2 to 3.2.0 - [Release notes](https://github.com/sigstore/cosign-installer/releases) - [Commits](https://github.com/sigstore/cosign-installer/compare/11086d25041f77fe8fe7b9ea4e48e3b9192b8f19...1fc5bd396d372bee37d608f955b336615edf79c8) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci - dependency-name: sigstore/cosign-installer dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/backport.yaml | 2 +- .github/workflows/release.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index c9c112cc..e3fdd5d3 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -17,7 +17,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs - uses: korthout/backport-action@cb79e4e5f46c7d7d653dd3d5fa8a9b0a945dfe4b # v2.1.0 + uses: korthout/backport-action@08bafb375e6e9a9a2b53a744b987e5d81a133191 # v2.1.1 # xref: https://github.com/korthout/backport-action#inputs with: # Use token to allow workflows to be triggered for the created PR diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6408e582..62bd8f3c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -36,7 +36,7 @@ jobs: - name: Setup Syft uses: anchore/sbom-action/download-syft@78fc58e266e87a38d4194b2137a3d4e9bcaf7ca1 # v0.14.3 - name: Setup Cosign - uses: sigstore/cosign-installer@11086d25041f77fe8fe7b9ea4e48e3b9192b8f19 # v3.1.2 + uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8 # v3.2.0 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Login to GitHub Container Registry @@ -155,7 +155,7 @@ jobs: --path="./flux-system" \ --source=${{ github.repositoryUrl }} \ --revision="${{ github.ref_name }}@sha1:${{ github.sha }}" - - uses: sigstore/cosign-installer@11086d25041f77fe8fe7b9ea4e48e3b9192b8f19 # v3.1.2 + - uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8 # v3.2.0 - name: Sign manifests env: COSIGN_EXPERIMENTAL: 1 From e184ef261858020ec6124b905312aa207691239d Mon Sep 17 00:00:00 2001 From: Matthew Clarke Date: Tue, 14 Nov 2023 15:02:54 -0500 Subject: [PATCH 047/154] fix build_artifact.go typo Signed-off-by: Matthew Clarke --- cmd/flux/build_artifact.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/flux/build_artifact.go b/cmd/flux/build_artifact.go index 4f26d402..ce3caf09 100644 --- a/cmd/flux/build_artifact.go +++ b/cmd/flux/build_artifact.go @@ -89,7 +89,7 @@ func buildArtifactCmdRun(cmd *cobra.Command, args []string) error { ociClient := oci.NewClient(oci.DefaultOptions()) if err := ociClient.Build(buildArtifactArgs.output, path, buildArtifactArgs.ignorePaths); err != nil { - return fmt.Errorf("bulding artifact failed, error: %w", err) + return fmt.Errorf("building artifact failed, error: %w", err) } logger.Successf("artifact created at %s", buildArtifactArgs.output) From aca461912c5fdf2e5c22ff1b214efa07f9437f68 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Fri, 3 Nov 2023 01:19:18 +0100 Subject: [PATCH 048/154] make flux events work with lowercased kinds Signed-off-by: Somtochi Onyekwere --- cmd/flux/events.go | 165 +++++++++++++++++++++++++--------------- cmd/flux/events_test.go | 77 +++++++++++++++---- 2 files changed, 165 insertions(+), 77 deletions(-) diff --git a/cmd/flux/events.go b/cmd/flux/events.go index 3a0e72cc..51c3bb7c 100644 --- a/cmd/flux/events.go +++ b/cmd/flux/events.go @@ -62,8 +62,14 @@ var eventsCmd = &cobra.Command{ # Display events for flux resources in all namespaces flux events -A - # Display events for flux resources + # Display events for a Kustomization named podinfo flux events --for Kustomization/podinfo + + # Display events for all Kustomizations in default namespace + flux events --for Kustomization -n default + + # Display warning events for alert resources + flux events --for Alert/podinfo --types warning `, RunE: eventsCmdRun, } @@ -84,7 +90,7 @@ func init() { "indicate if the events should be streamed") eventsCmd.Flags().StringVar(&eventArgs.forSelector, "for", "", "get events for a particular object") - eventsCmd.Flags().StringSliceVar(&eventArgs.filterTypes, "types", []string{}, "filter events for certain types") + eventsCmd.Flags().StringSliceVar(&eventArgs.filterTypes, "types", []string{}, "filter events for certain types (valid types are: Normal, Warning)") rootCmd.AddCommand(eventsCmd) } @@ -92,6 +98,10 @@ func eventsCmdRun(cmd *cobra.Command, args []string) error { ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) defer cancel() + if err := validateEventTypes(eventArgs.filterTypes); err != nil { + return err + } + kubeclient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) if err != nil { return err @@ -103,21 +113,33 @@ func eventsCmdRun(cmd *cobra.Command, args []string) error { } var diffRefNs bool - clientListOpts := getListOpt(namespace, eventArgs.forSelector) + clientListOpts := []client.ListOption{client.InNamespace(*kubeconfigArgs.Namespace)} var refListOpts [][]client.ListOption if eventArgs.forSelector != "" { - refs, err := getObjectRef(ctx, kubeclient, eventArgs.forSelector, *kubeconfigArgs.Namespace) + kind, name := getKindNameFromSelector(eventArgs.forSelector) + if kind == "" { + return fmt.Errorf("--for selector must be of format [/]") + } + + refInfoKind, err := fluxKindMap.getRefInfo(kind) if err != nil { return err } + clientListOpts = append(clientListOpts, getListOpt(refInfoKind.gvk.Kind, name)) + if name != "" { + refs, err := getObjectRef(ctx, kubeclient, refInfoKind, name, *kubeconfigArgs.Namespace) + if err != nil { + return err + } - for _, ref := range refs { - kind, name, refNs := utils.ParseObjectKindNameNamespace(ref) - if refNs != namespace { - diffRefNs = true + for _, ref := range refs { + refKind, refName, refNs := utils.ParseObjectKindNameNamespace(ref) + if refNs != namespace { + diffRefNs = true + } + refOpt := []client.ListOption{getListOpt(refKind, refName), client.InNamespace(refNs)} + refListOpts = append(refListOpts, refOpt) } - refSelector := fmt.Sprintf("%s/%s", kind, name) - refListOpts = append(refListOpts, getListOpt(refNs, refSelector)) } } @@ -140,8 +162,7 @@ func eventsCmdRun(cmd *cobra.Command, args []string) error { return nil } headers := getHeaders(showNamespace) - err = printers.TablePrinter(headers).Print(cmd.OutOrStdout(), rows) - return err + return printers.TablePrinter(headers).Print(cmd.OutOrStdout(), rows) } func getRows(ctx context.Context, kubeclient client.Client, clientListOpts []client.ListOption, refListOpts [][]client.ListOption, showNs bool) ([][]string, error) { @@ -171,11 +192,11 @@ func getRows(ctx context.Context, kubeclient client.Client, clientListOpts []cli func addEventsToList(ctx context.Context, kubeclient client.Client, el *corev1.EventList, clientListOpts []client.ListOption) error { listOpts := &metav1.ListOptions{} + clientListOpts = append(clientListOpts, client.Limit(cmdutil.DefaultChunkSize)) err := runtimeresource.FollowContinue(listOpts, func(options metav1.ListOptions) (runtime.Object, error) { newEvents := &corev1.EventList{} - err := kubeclient.List(ctx, newEvents, clientListOpts...) - if err != nil { + if err := kubeclient.List(ctx, newEvents, clientListOpts...); err != nil { return nil, fmt.Errorf("error getting events: %w", err) } el.Items = append(el.Items, newEvents.Items...) @@ -185,21 +206,22 @@ func addEventsToList(ctx context.Context, kubeclient client.Client, el *corev1.E return err } -func getListOpt(namespace, selector string) []client.ListOption { - clientListOpts := []client.ListOption{client.Limit(cmdutil.DefaultChunkSize), client.InNamespace(namespace)} - if selector != "" { - kind, name := utils.ParseObjectKindName(selector) - sel := fields.AndSelectors( +func getListOpt(kind, name string) client.ListOption { + var sel fields.Selector + if name == "" { + sel = fields.OneTermEqualSelector("involvedObject.kind", kind) + } else { + sel = fields.AndSelectors( fields.OneTermEqualSelector("involvedObject.kind", kind), fields.OneTermEqualSelector("involvedObject.name", name)) - clientListOpts = append(clientListOpts, client.MatchingFieldsSelector{Selector: sel}) } - return clientListOpts + return client.MatchingFieldsSelector{Selector: sel} } func eventsCmdWatchRun(ctx context.Context, kubeclient client.WithWatch, listOpts []client.ListOption, refListOpts [][]client.ListOption, showNs bool) error { event := &corev1.EventList{} + listOpts = append(listOpts, client.Limit(cmdutil.DefaultChunkSize)) eventWatch, err := kubeclient.Watch(ctx, event, listOpts...) if err != nil { return err @@ -225,12 +247,7 @@ func eventsCmdWatchRun(ctx context.Context, kubeclient client.WithWatch, listOpt hdr = getHeaders(showNs) firstIteration = false } - err = printers.TablePrinter(hdr).Print(os.Stdout, [][]string{rows}) - if err != nil { - return err - } - - return nil + return printers.TablePrinter(hdr).Print(os.Stdout, [][]string{rows}) } for _, refOpts := range refListOpts { @@ -239,8 +256,7 @@ func eventsCmdWatchRun(ctx context.Context, kubeclient client.WithWatch, listOpt return err } go func() { - err := receiveEventChan(ctx, refEventWatch, handleEvent) - if err != nil { + if err := receiveEventChan(ctx, refEventWatch, handleEvent); err != nil { logger.Failuref("error watching events: %s", err.Error()) } }() @@ -289,13 +305,7 @@ func getEventRow(e corev1.Event, showNs bool) []string { // getObjectRef is used to get the metadata of a resource that the selector(in the format ) references. // It returns an empty string if the resource doesn't reference any resource // and a string with the format `/.` if it does. -func getObjectRef(ctx context.Context, kubeclient client.Client, selector string, ns string) ([]string, error) { - kind, name := utils.ParseObjectKindName(selector) - ref, err := fluxKindMap.getRefInfo(kind) - if err != nil { - return nil, fmt.Errorf("error getting groupversion: %w", err) - } - +func getObjectRef(ctx context.Context, kubeclient client.Client, ref refInfo, name, ns string) ([]string, error) { // the resource has no source ref if len(ref.field) == 0 { return nil, nil @@ -303,31 +313,30 @@ func getObjectRef(ctx context.Context, kubeclient client.Client, selector string obj := &unstructured.Unstructured{} obj.SetGroupVersionKind(schema.GroupVersionKind{ - Kind: kind, - Version: ref.gv.Version, - Group: ref.gv.Group, + Kind: ref.gvk.Kind, + Version: ref.gvk.Version, + Group: ref.gvk.Group, }) objName := types.NamespacedName{ Namespace: ns, Name: name, } - err = kubeclient.Get(ctx, objName, obj) - if err != nil { + if err := kubeclient.Get(ctx, objName, obj); err != nil { return nil, err } - var ok bool refKind := ref.kind if refKind == "" { kindField := append(ref.field, "kind") - refKind, ok, err = unstructured.NestedString(obj.Object, kindField...) + specKind, ok, err := unstructured.NestedString(obj.Object, kindField...) if err != nil { return nil, err } if !ok { return nil, fmt.Errorf("field '%s' for '%s' not found", strings.Join(kindField, "."), objName) } + refKind = specKind } nameField := append(ref.field, "name") @@ -377,22 +386,40 @@ func (r refMap) hasKind(kind string) bool { return err == nil } +// validateEventTypes checks that the event types passed into the function +// is either equal to `Normal` or `Warning` which are currently the two supported types. +// https://github.com/kubernetes/kubernetes/blob/a8a1abc25cad87333840cd7d54be2efaf31a3177/staging/src/k8s.io/api/core/v1/types.go#L6212 +func validateEventTypes(eventTypes []string) error { + for _, t := range eventTypes { + if !strings.EqualFold(corev1.EventTypeWarning, t) && !strings.EqualFold(corev1.EventTypeNormal, t) { + return fmt.Errorf("type '%s' not supported. Supported types are Normal, Warning", t) + } + } + + return nil +} + type refInfo struct { - gv schema.GroupVersion - kind string + // gvk is the group version kind of the resource + gvk schema.GroupVersionKind + // kind is the kind that the resource references if it's not static + kind string + // crossNamespaced indicates if this resource uses cross namespaced references crossNamespaced bool - otherRefs func(namespace, name string) []string - field []string + // otherRefs returns other reference that might not be directly accessible + // from the spec of the object + otherRefs func(namespace, name string) []string + field []string } var fluxKindMap = refMap{ kustomizev1.KustomizationKind: { - gv: kustomizev1.GroupVersion, + gvk: kustomizev1.GroupVersion.WithKind(kustomizev1.KustomizationKind), crossNamespaced: true, field: []string{"spec", "sourceRef"}, }, helmv2.HelmReleaseKind: { - gv: helmv2.GroupVersion, + gvk: helmv2.GroupVersion.WithKind(helmv2.HelmReleaseKind), crossNamespaced: true, otherRefs: func(namespace, name string) []string { return []string{fmt.Sprintf("%s/%s-%s", sourcev1b2.HelmChartKind, namespace, name)} @@ -400,26 +427,30 @@ var fluxKindMap = refMap{ field: []string{"spec", "chart", "spec", "sourceRef"}, }, notificationv1b2.AlertKind: { - gv: notificationv1b2.GroupVersion, + gvk: notificationv1b2.GroupVersion.WithKind(notificationv1b2.AlertKind), kind: notificationv1b2.ProviderKind, crossNamespaced: false, field: []string{"spec", "providerRef"}, }, - notificationv1.ReceiverKind: {gv: notificationv1.GroupVersion}, - notificationv1b2.ProviderKind: {gv: notificationv1b2.GroupVersion}, + notificationv1.ReceiverKind: {gvk: notificationv1.GroupVersion.WithKind(notificationv1.ReceiverKind)}, + notificationv1b2.ProviderKind: {gvk: notificationv1b2.GroupVersion.WithKind(notificationv1b2.ProviderKind)}, imagev1.ImagePolicyKind: { - gv: imagev1.GroupVersion, + gvk: imagev1.GroupVersion.WithKind(imagev1.ImagePolicyKind), kind: imagev1.ImageRepositoryKind, crossNamespaced: true, field: []string{"spec", "imageRepositoryRef"}, }, - sourcev1.GitRepositoryKind: {gv: sourcev1.GroupVersion}, - sourcev1b2.OCIRepositoryKind: {gv: sourcev1b2.GroupVersion}, - sourcev1b2.BucketKind: {gv: sourcev1b2.GroupVersion}, - sourcev1b2.HelmRepositoryKind: {gv: sourcev1b2.GroupVersion}, - sourcev1b2.HelmChartKind: {gv: sourcev1b2.GroupVersion}, - autov1.ImageUpdateAutomationKind: {gv: autov1.GroupVersion}, - imagev1.ImageRepositoryKind: {gv: imagev1.GroupVersion}, + sourcev1b2.HelmChartKind: { + gvk: sourcev1b2.GroupVersion.WithKind(sourcev1b2.HelmChartKind), + crossNamespaced: true, + field: []string{"spec", "sourceRef"}, + }, + sourcev1.GitRepositoryKind: {gvk: sourcev1.GroupVersion.WithKind(sourcev1.GitRepositoryKind)}, + sourcev1b2.OCIRepositoryKind: {gvk: sourcev1b2.GroupVersion.WithKind(sourcev1b2.OCIRepositoryKind)}, + sourcev1b2.BucketKind: {gvk: sourcev1b2.GroupVersion.WithKind(sourcev1b2.BucketKind)}, + sourcev1b2.HelmRepositoryKind: {gvk: sourcev1b2.GroupVersion.WithKind(sourcev1b2.HelmRepositoryKind)}, + autov1.ImageUpdateAutomationKind: {gvk: autov1.GroupVersion.WithKind(autov1.ImageUpdateAutomationKind)}, + imagev1.ImageRepositoryKind: {gvk: imagev1.GroupVersion.WithKind(imagev1.ImageRepositoryKind)}, } func ignoreEvent(e corev1.Event) bool { @@ -437,7 +468,19 @@ func ignoreEvent(e corev1.Event) bool { return false } -// The functions below are copied from: https://github.com/kubernetes/kubectl/blob/master/pkg/cmd/events/events.go#L347 +func getKindNameFromSelector(selector string) (string, string) { + kind, name := utils.ParseObjectKindName(selector) + // if there's no slash in the selector utils.ParseObjectKindName returns the + // input string as the name but here we want it as the kind instead + if kind == "" && name != "" { + kind = name + name = "" + } + + return kind, name +} + +// The functions below are copied from: https://github.com/kubernetes/kubectl/blob/4ecd7bd0f0799f191335a331ca3c6a397a888233/pkg/cmd/events/events.go#L294 // SortableEvents implements sort.Interface for []api.Event by time type SortableEvents []corev1.Event diff --git a/cmd/flux/events_test.go b/cmd/flux/events_test.go index a6977431..a6b5e11f 100644 --- a/cmd/flux/events_test.go +++ b/cmd/flux/events_test.go @@ -28,7 +28,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" - cmdutil "k8s.io/kubectl/pkg/cmd/util" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/fake" @@ -216,6 +215,12 @@ func Test_getObjectRef(t *testing.T) { namespace: "default", want: []string{"ImageRepository/acr-podinfo.flux-system"}, }, + { + name: "Source Ref for ImagePolicy (lowercased)", + selector: "imagepolicy/podinfo", + namespace: "default", + want: []string{"ImageRepository/acr-podinfo.flux-system"}, + }, { name: "Empty Ref for Provider", selector: "Provider/slack", @@ -232,11 +237,13 @@ func Test_getObjectRef(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { g := NewWithT(t) - got, err := getObjectRef(context.Background(), c, tt.selector, tt.namespace) + kind, name := getKindNameFromSelector(tt.selector) + infoRef, err := fluxKindMap.getRefInfo(kind) if tt.wantErr { g.Expect(err).To(HaveOccurred()) return } + got, err := getObjectRef(context.Background(), c, infoRef, name, tt.namespace) g.Expect(err).To(Not(HaveOccurred())) g.Expect(got).To(Equal(tt.want)) @@ -261,6 +268,7 @@ func Test_getRows(t *testing.T) { } builder = builder.WithLists(eventList) builder.WithIndex(&corev1.Event{}, "involvedObject.kind/name", kindNameIndexer) + builder.WithIndex(&corev1.Event{}, "involvedObject.kind", kindIndexer) c := builder.Build() tests := []struct { @@ -320,6 +328,16 @@ func Test_getRows(t *testing.T) { {"flux-system", "", "info", "Info Reason", "GitRepository/flux-system", "Info Message"}, }, }, + { + name: "All Kustomization (lowercased selector)", + selector: "kustomization", + expected: [][]string{ + {"default", "", "error", "Error Reason", "Kustomization/podinfo", "Error Message"}, + {"default", "", "info", "Info Reason", "Kustomization/podinfo", "Info Message"}, + {"flux-system", "", "error", "Error Reason", "Kustomization/flux-system", "Error Message"}, + {"flux-system", "", "info", "Info Reason", "Kustomization/flux-system", "Info Message"}, + }, + }, { name: "HelmRelease with crossnamespaced HelmRepository", selector: "HelmRelease/podinfo", @@ -333,6 +351,19 @@ func Test_getRows(t *testing.T) { {"flux-system", "", "info", "Info Reason", "HelmChart/default-podinfo", "Info Message"}, }, }, + { + name: "HelmRelease with crossnamespaced HelmRepository (lowercased)", + selector: "helmrelease/podinfo", + namespace: "default", + expected: [][]string{ + {"default", "", "error", "Error Reason", "HelmRelease/podinfo", "Error Message"}, + {"default", "", "info", "Info Reason", "HelmRelease/podinfo", "Info Message"}, + {"flux-system", "", "error", "Error Reason", "HelmRepository/podinfo", "Error Message"}, + {"flux-system", "", "info", "Info Reason", "HelmRepository/podinfo", "Info Message"}, + {"flux-system", "", "error", "Error Reason", "HelmChart/default-podinfo", "Error Message"}, + {"flux-system", "", "info", "Info Reason", "HelmChart/default-podinfo", "Info Message"}, + }, + }, } for _, tt := range tests { @@ -341,37 +372,42 @@ func Test_getRows(t *testing.T) { var refs []string var refNs, refKind, refName string + var clientOpts = []client.ListOption{client.InNamespace(tt.namespace)} if tt.selector != "" { - refs, err = getObjectRef(context.Background(), c, tt.selector, tt.namespace) - g.Expect(err).To(Not(HaveOccurred())) + kind, name := getKindNameFromSelector(tt.selector) + infoRef, err := fluxKindMap.getRefInfo(kind) + clientOpts = append(clientOpts, getTestListOpt(infoRef.gvk.Kind, name)) + if name != "" { + g.Expect(err).To(Not(HaveOccurred())) + refs, err = getObjectRef(context.Background(), c, infoRef, name, tt.namespace) + g.Expect(err).To(Not(HaveOccurred())) + } } g.Expect(err).To(Not(HaveOccurred())) - clientOpts := getTestListOpt(tt.namespace, tt.selector) var refOpts [][]client.ListOption for _, ref := range refs { refKind, refName, refNs = utils.ParseObjectKindNameNamespace(ref) - refSelector := fmt.Sprintf("%s/%s", refKind, refName) - refOpts = append(refOpts, getTestListOpt(refNs, refSelector)) + refOpts = append(refOpts, []client.ListOption{client.InNamespace(refNs), getTestListOpt(refKind, refName)}) } showNs := tt.namespace == "" || (refNs != "" && refNs != tt.namespace) rows, err := getRows(context.Background(), c, clientOpts, refOpts, showNs) g.Expect(err).To(Not(HaveOccurred())) - g.Expect(rows).To(Equal(tt.expected)) + g.Expect(rows).To(ConsistOf(tt.expected)) }) } } -func getTestListOpt(namespace, selector string) []client.ListOption { - clientListOpts := []client.ListOption{client.Limit(cmdutil.DefaultChunkSize), client.InNamespace(namespace)} - if selector != "" { - sel := fields.OneTermEqualSelector("involvedObject.kind/name", selector) - clientListOpts = append(clientListOpts, client.MatchingFieldsSelector{Selector: sel}) +func getTestListOpt(kind, name string) client.ListOption { + var sel fields.Selector + if name == "" { + sel = fields.OneTermEqualSelector("involvedObject.kind", kind) + } else { + sel = fields.OneTermEqualSelector("involvedObject.kind/name", fmt.Sprintf("%s/%s", kind, name)) } - - return clientListOpts + return client.MatchingFieldsSelector{Selector: sel} } func getScheme() *runtime.Scheme { @@ -393,7 +429,7 @@ func createEvent(obj client.Object, eventType, msg, reason string) corev1.Event return corev1.Event{ ObjectMeta: metav1.ObjectMeta{ Namespace: obj.GetNamespace(), - // name of event needs to be unique so fak + // name of event needs to be unique Name: obj.GetNamespace() + obj.GetNamespace() + obj.GetObjectKind().GroupVersionKind().Kind + eventType, }, Reason: reason, @@ -415,3 +451,12 @@ func kindNameIndexer(obj client.Object) []string { return []string{fmt.Sprintf("%s/%s", e.InvolvedObject.Kind, e.InvolvedObject.Name)} } + +func kindIndexer(obj client.Object) []string { + e, ok := obj.(*corev1.Event) + if !ok { + panic(fmt.Sprintf("Expected a Event, got %T", e)) + } + + return []string{e.InvolvedObject.Kind} +} From 80efd29ec0607573e35e8fcc849f8f4e25f2e1a9 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Mon, 20 Nov 2023 15:27:46 +0200 Subject: [PATCH 049/154] Update dependencies Signed-off-by: Stefan Prodan --- cmd/flux/push_artifact.go | 5 +- cmd/flux/stats.go | 7 +- cmd/flux/status.go | 5 +- .../diff-with-drifted-secret.golden | 4 +- cmd/flux/tree_kustomization.go | 2 +- go.mod | 124 +++---- go.sum | 313 ++++++++---------- internal/build/diff.go | 4 +- internal/tree/tree.go | 2 +- internal/utils/apply.go | 5 +- pkg/bootstrap/bootstrap_plain_git.go | 2 +- pkg/status/status.go | 12 +- tests/azure/go.mod | 76 ++--- tests/azure/go.sum | 285 ++++++---------- tests/integration/go.mod | 100 +++--- tests/integration/go.sum | 260 +++++++-------- 16 files changed, 532 insertions(+), 674 deletions(-) diff --git a/cmd/flux/push_artifact.go b/cmd/flux/push_artifact.go index 605dfed7..228a826e 100644 --- a/cmd/flux/push_artifact.go +++ b/cmd/flux/push_artifact.go @@ -260,7 +260,10 @@ func pushArtifactCmdRun(cmd *cobra.Command, args []string) error { } ociClient := client.NewClient(opts) - digestURL, err := ociClient.Push(ctx, url, path, meta, pushArtifactArgs.ignorePaths) + digestURL, err := ociClient.Push(ctx, url, path, + client.WithPushMetadata(meta), + client.WithPushIgnorePaths(pushArtifactArgs.ignorePaths...), + ) if err != nil { return fmt.Errorf("pushing artifact failed: %w", err) } diff --git a/cmd/flux/stats.go b/cmd/flux/stats.go index 25e35c55..4542d498 100644 --- a/cmd/flux/stats.go +++ b/cmd/flux/stats.go @@ -24,11 +24,9 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "sigs.k8s.io/cli-utils/pkg/kstatus/status" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/fluxcd/flux2/v2/internal/utils" - "github.com/fluxcd/flux2/v2/pkg/printers" + "github.com/fluxcd/cli-utils/pkg/kstatus/status" helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" @@ -37,6 +35,9 @@ import ( notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" + + "github.com/fluxcd/flux2/v2/internal/utils" + "github.com/fluxcd/flux2/v2/pkg/printers" ) var statsCmd = &cobra.Command{ diff --git a/cmd/flux/status.go b/cmd/flux/status.go index 6fb41565..6e4e18c5 100644 --- a/cmd/flux/status.go +++ b/cmd/flux/status.go @@ -20,14 +20,15 @@ import ( "context" "fmt" - "github.com/fluxcd/pkg/apis/meta" apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" - "sigs.k8s.io/cli-utils/pkg/object" "sigs.k8s.io/controller-runtime/pkg/client" + + "github.com/fluxcd/cli-utils/pkg/object" + "github.com/fluxcd/pkg/apis/meta" ) // statusable is used to see if a resource is considered ready in the usual way diff --git a/cmd/flux/testdata/diff-kustomization/diff-with-drifted-secret.golden b/cmd/flux/testdata/diff-kustomization/diff-with-drifted-secret.golden index 41a65058..bfce21b5 100644 --- a/cmd/flux/testdata/diff-kustomization/diff-with-drifted-secret.golden +++ b/cmd/flux/testdata/diff-kustomization/diff-with-drifted-secret.golden @@ -8,6 +8,6 @@ data.password ± value change - - ****** - + ***** + - *** (before) + + *** (after) diff --git a/cmd/flux/tree_kustomization.go b/cmd/flux/tree_kustomization.go index 6ea63dcb..ec4efd67 100644 --- a/cmd/flux/tree_kustomization.go +++ b/cmd/flux/tree_kustomization.go @@ -31,10 +31,10 @@ import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/cli-utils/pkg/object" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" + "github.com/fluxcd/cli-utils/pkg/object" helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/ssa" diff --git a/go.mod b/go.mod index 54d3305b..354c1459 100644 --- a/go.mod +++ b/go.mod @@ -7,59 +7,59 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Masterminds/semver/v3 v3.2.1 - github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 + github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 + github.com/fluxcd/cli-utils v0.36.0-flux.1 github.com/fluxcd/go-git-providers v0.19.1 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.30.0 github.com/fluxcd/kustomize-controller/api v1.1.1 github.com/fluxcd/notification-controller/api v1.1.0 - github.com/fluxcd/pkg/apis/event v0.5.2 - github.com/fluxcd/pkg/apis/meta v1.1.2 - github.com/fluxcd/pkg/git v0.14.0 - github.com/fluxcd/pkg/git/gogit v0.14.0 - github.com/fluxcd/pkg/kustomize v1.3.4 - github.com/fluxcd/pkg/oci v0.32.0 - github.com/fluxcd/pkg/runtime v0.42.0 + github.com/fluxcd/pkg/apis/event v0.6.0 + github.com/fluxcd/pkg/apis/meta v1.2.0 + github.com/fluxcd/pkg/git v0.15.0 + github.com/fluxcd/pkg/git/gogit v0.15.0 + github.com/fluxcd/pkg/kustomize v1.4.0 + github.com/fluxcd/pkg/oci v0.33.0 + github.com/fluxcd/pkg/runtime v0.43.0 github.com/fluxcd/pkg/sourceignore v0.3.5 - github.com/fluxcd/pkg/ssa v0.32.0 - github.com/fluxcd/pkg/ssh v0.8.2 + github.com/fluxcd/pkg/ssa v0.34.0 + github.com/fluxcd/pkg/ssh v0.9.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.1.2 - github.com/go-git/go-git/v5 v5.9.0 - github.com/go-logr/logr v1.2.4 + github.com/go-git/go-git/v5 v5.10.0 + github.com/go-logr/logr v1.3.0 github.com/gonvenience/bunt v1.3.5 github.com/gonvenience/ytbx v1.4.4 - github.com/google/go-cmp v0.5.9 + github.com/google/go-cmp v0.6.0 github.com/google/go-containerregistry v0.16.1 github.com/hashicorp/go-cleanhttp v0.5.2 - github.com/homeport/dyff v1.5.8 + github.com/homeport/dyff v1.6.0 github.com/lucasb-eyer/go-colorful v1.2.0 github.com/manifoldco/promptui v0.9.0 github.com/mattn/go-shellwords v1.0.12 github.com/olekukonko/tablewriter v0.0.5 - github.com/onsi/gomega v1.28.0 + github.com/onsi/gomega v1.30.0 github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 - github.com/spf13/cobra v1.7.0 + github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/theckman/yacspin v0.13.12 - golang.org/x/crypto v0.14.0 - golang.org/x/term v0.13.0 - golang.org/x/text v0.13.0 - k8s.io/api v0.27.4 - k8s.io/apiextensions-apiserver v0.27.4 - k8s.io/apimachinery v0.27.4 - k8s.io/cli-runtime v0.27.4 - k8s.io/client-go v0.27.4 - k8s.io/kubectl v0.27.4 - sigs.k8s.io/cli-utils v0.35.0 - sigs.k8s.io/controller-runtime v0.15.1 - sigs.k8s.io/kustomize/api v0.13.4 - sigs.k8s.io/kustomize/kyaml v0.14.2 - sigs.k8s.io/yaml v1.3.0 + golang.org/x/crypto v0.15.0 + golang.org/x/term v0.14.0 + golang.org/x/text v0.14.0 + k8s.io/api v0.28.4 + k8s.io/apiextensions-apiserver v0.28.4 + k8s.io/apimachinery v0.28.4 + k8s.io/cli-runtime v0.28.4 + k8s.io/client-go v0.28.4 + k8s.io/kubectl v0.28.4 + sigs.k8s.io/controller-runtime v0.16.3 + sigs.k8s.io/kustomize/api v0.15.0 + sigs.k8s.io/kustomize/kyaml v0.15.0 + sigs.k8s.io/yaml v1.4.0 ) require ( @@ -92,9 +92,9 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/cloudflare/circl v1.3.6 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect github.com/docker/cli v24.0.0+incompatible // indirect @@ -105,22 +105,22 @@ require ( github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 // indirect github.com/drone/envsubst v1.0.3 // indirect - github.com/emicklei/go-restful/v3 v3.10.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/evanphx/json-patch v5.6.0+incompatible // indirect - github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/evanphx/json-patch v5.7.0+incompatible // indirect + github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect github.com/fatih/color v1.13.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-fed/httpsig v1.1.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.0.0 // indirect @@ -132,18 +132,18 @@ require ( github.com/gonvenience/text v1.0.7 // indirect github.com/gonvenience/wrap v1.1.2 // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/gnostic v0.6.9 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-github/v55 v55.0.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-retryablehttp v0.7.4 // indirect + github.com/hashicorp/go-retryablehttp v0.7.5 // indirect github.com/hashicorp/go-version v1.5.0 // indirect github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect @@ -162,13 +162,13 @@ require ( github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/hashstructure v1.1.0 // indirect github.com/moby/spdystream v0.2.0 // indirect - github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect + github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect @@ -179,40 +179,42 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.16.0 // indirect - github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/client_golang v1.17.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/skeema/knownhosts v1.2.0 // indirect + github.com/skeema/knownhosts v1.2.1 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/vbatts/tar-split v0.11.3 // indirect github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect github.com/xanzy/go-gitlab v0.93.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xlab/treeprint v1.1.0 // indirect - go.starlark.net v0.0.0-20221028183056-acb66ad56dd2 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.13.0 // indirect - golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.13.0 // indirect - gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect + github.com/xlab/treeprint v1.2.0 // indirect + go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.18.0 // indirect + golang.org/x/oauth2 v0.14.0 // indirect + golang.org/x/sync v0.5.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/time v0.4.0 // indirect + golang.org/x/tools v0.15.0 // indirect + gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/evanphx/json-patch.v5 v5.6.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/component-base v0.27.4 // indirect + k8s.io/component-base v0.28.4 // indirect k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect + k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/go.sum b/go.sum index 44fca985..554510c9 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,4 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= code.gitea.io/sdk/gitea v0.16.0 h1:gAfssETO1Hv9QbE+/nhWu7EjoFQYKt6kPoyDytQgw00= code.gitea.io/sdk/gitea v0.16.0/go.mod h1:ndkDk99BnfiUCCYEUhpNzi0lpmApXlwRFqClBlOlEBg= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= @@ -26,15 +25,13 @@ github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYr github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= +github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= @@ -68,10 +65,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= @@ -83,15 +78,14 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -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= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= +github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -118,24 +112,19 @@ github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQ github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= -github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= -github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= -github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/elazarl/goproxy v0.0.0-20231117061959-7cc037d33fb5 h1:m62nsMU279qRD9PQSWD1l66kmkXzuYcnVJqL4XLeV2M= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= -github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= -github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= +github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI= +github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= +github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= @@ -143,7 +132,8 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= +github.com/fluxcd/cli-utils v0.36.0-flux.1 h1:004HtB/p47xqkTCGZhc1vVuXNzef7+N3wT364eFk7WA= +github.com/fluxcd/cli-utils v0.36.0-flux.1/go.mod h1:c+uMMDqGg8WKwBNeWKDDFEuDDHICDWAHthzosAKF2PA= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.19.1 h1:LXRFpHdPCmO+Uegw2MvAU3KiEHn1PRV2c//ii/HhpeY= github.com/fluxcd/go-git-providers v0.19.1/go.mod h1:eN0JpfkQqS/6yJ1I6DW3z1XLCC2JZK+55Ues+0Ur3Ds= @@ -159,29 +149,29 @@ github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDX github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.5.2 h1:WtnCOeWglf7wR3dpyiWxb1JtYkw1G5OXcERb1QopFpA= -github.com/fluxcd/pkg/apis/event v0.5.2/go.mod h1:5l6SSxVTkqrXrYjgEqAajOOHkl4x0TPocAuSdu+3AEs= -github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0cuDQY2HYwM= -github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= -github.com/fluxcd/pkg/apis/meta v1.1.2 h1:Unjo7hxadtB2dvGpeFqZZUdsjpRA08YYSBb7dF2WIAM= -github.com/fluxcd/pkg/apis/meta v1.1.2/go.mod h1:BHQyRHCskGMEDf6kDGbgQ+cyiNpUHbLsCOsaMYM2maI= -github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= -github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= -github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= -github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= +github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= +github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= +github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= +github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= +github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= +github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= +github.com/fluxcd/pkg/git v0.15.0 h1:QPqv+b4sQXXpWQhigf/sPE5qzK4BrQhkltnYuEy4AYw= +github.com/fluxcd/pkg/git v0.15.0/go.mod h1:zqmLfw4d+mS77bMRkeQ+8dmFSgxB/c2ZDkafIyY6bAQ= +github.com/fluxcd/pkg/git/gogit v0.15.0 h1:GV8XaRp7CtlRuDallrJgMR6s1YHIMZi5+zyXMOJsS0c= +github.com/fluxcd/pkg/git/gogit v0.15.0/go.mod h1:9KBhXE1czARGT6QqHYVMfr2RbvPpguKwCdm4LgkP3nY= github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/kustomize v1.3.4 h1:+XA4umfhkFqrNYQp3ZmKSJy4i3LWjbgoi6H4PllkkkA= -github.com/fluxcd/pkg/kustomize v1.3.4/go.mod h1:nsbsNGe6nQY6DGYYPowFGQlhxFRcaRFvbwqhCbwAQuE= -github.com/fluxcd/pkg/oci v0.32.0 h1:bszRg0pzdfQ0iHLTvjMkDJysc+rlw2TS4c0uCl2MYDQ= -github.com/fluxcd/pkg/oci v0.32.0/go.mod h1:SqbTfdbxNDfrKkZuNtlBKQj9M7E5Hpw0UuxukS48ApA= -github.com/fluxcd/pkg/runtime v0.42.0 h1:a5DQ/f90YjoHBmiXZUpnp4bDSLORjInbmqP7K11L4uY= -github.com/fluxcd/pkg/runtime v0.42.0/go.mod h1:p6A3xWVV8cKLLQW0N90GehKgGMMmbNYv+OSJ/0qB0vg= +github.com/fluxcd/pkg/kustomize v1.4.0 h1:1c9dwLkccFGEVkE+CvCYqybtBoInYq6OePTkkgTfLzQ= +github.com/fluxcd/pkg/kustomize v1.4.0/go.mod h1:o0UgMmAjyCwsUSdBIDJ9NgXfOEJ6Iojs5PQ2agIRapc= +github.com/fluxcd/pkg/oci v0.33.0 h1:OC9eJzazldcUAyWS5Ul1XvUISpfJBRzDZqLjYyyNG2g= +github.com/fluxcd/pkg/oci v0.33.0/go.mod h1:XNxj6Pr1ddmC5EVSo+R3Nlr5droAV0LxZ9HJ3V1GNwI= +github.com/fluxcd/pkg/runtime v0.43.0 h1:dU4cWct5VTpddGzJUU80zxNl80jbbVEN5Y5rbt4YUnw= +github.com/fluxcd/pkg/runtime v0.43.0/go.mod h1:RuqJ9VEXELjzgurK2+UXBBgVN1vS0hZ7CYVG2xBAEVM= github.com/fluxcd/pkg/sourceignore v0.3.5 h1:omcHTH5X5tlPr9w1b9T7WuJTOP+o/KdVdarYb4kgkCU= github.com/fluxcd/pkg/sourceignore v0.3.5/go.mod h1:6Xz3jErz8RsidsdrjUBBUGKes24rbdp/F38MnTGibEw= -github.com/fluxcd/pkg/ssa v0.32.0 h1:RBqs9DNrbJkFHjpfsiKilyean7gwqWFspSBTLOaBIHs= -github.com/fluxcd/pkg/ssa v0.32.0/go.mod h1:+Kf5euYAbvgJX645bo+IL7V/NlH0X7kGgFTr1W++I3c= -github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= -github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= +github.com/fluxcd/pkg/ssa v0.34.0 h1:hpMo0D7G3faieRYH39e9YD8Jl+aC2hTgUep8ojG5+LE= +github.com/fluxcd/pkg/ssa v0.34.0/go.mod h1:rhVh0EtYVUOznKXlz6E7JOSgdc8xWbIwA4L5HVtJRLA= +github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= +github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= @@ -190,7 +180,6 @@ github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41 github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= @@ -200,20 +189,20 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66D github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= -github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= -github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git/v5 v5.10.0 h1:F0x3xXrAWmhwtzoCokU4IMPcBdncG+HAAqi9FcOOjbQ= +github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYvhWHvZGhoo= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -231,17 +220,13 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb 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= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= @@ -260,8 +245,8 @@ github.com/gonvenience/ytbx v1.4.4 h1:jQopwyaLsVGuwdxSiN4WkXjsEaFNPJ3V4lUj7eyEpz github.com/gonvenience/ytbx v1.4.4/go.mod h1:w37+MKCPcCMY/jpPNmEklD4xKqrOAVBO6kIWW2+uI6M= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= -github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= 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= @@ -271,8 +256,9 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/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.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.16.1 h1:rUEt426sR6nyrL3gt+18ibRcvYpKYdpsa5ZW7MA08dQ= github.com/google/go-containerregistry v0.16.1/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg= @@ -285,9 +271,8 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs= 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/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -295,7 +280,6 @@ github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB7 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -305,23 +289,22 @@ github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxC github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA= -github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= +github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E= github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/homeport/dyff v1.5.8 h1:CZvnYFh6Pr/c+d32EnWODAHRTctrDKkz0tFr6yTYCpU= -github.com/homeport/dyff v1.5.8/go.mod h1:S669ekLW2ttUp6lT1d0jIlmH+eAsP3psfl9K6oMIBeU= +github.com/homeport/dyff v1.6.0 h1:AN+ikld0Fy+qx34YE7655b/bpWuxS6cL9k852pE2GUc= +github.com/homeport/dyff v1.6.0/go.mod h1:FlAOFYzeKvxmU5nTrnG+qrlJVWpsFew7pt8L99p5q8k= github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -342,7 +325,6 @@ github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQs 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/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -376,8 +358,8 @@ github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= @@ -388,8 +370,8 @@ github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9km github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -406,14 +388,14 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo/v2 v2.12.0 h1:UIVDowFPwpg6yMUpPjGkYvf06K3RAiJXUhCxEwQVHRI= -github.com/onsi/gomega v1.28.0 h1:i2rg/p9n/UqIDAMFUJ6qIUUMcsqOuUHgbpbu235Vr1c= -github.com/onsi/gomega v1.28.0/go.mod h1:A1H2JE76sI14WIP57LMKj7FVfCHx3g3BcZVjJG8bjX8= +github.com/onsi/ginkgo/v2 v2.13.1 h1:LNGfMbR2OVGBfXjvRZIZ2YCTQdGKtPLvuI1rMCCj3OU= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= 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.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= github.com/opencontainers/image-spec v1.1.0-rc3/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= -github.com/otiai10/copy v1.12.0 h1:cLMgSQnXBs1eehF0Wy/FAGsgDTDmAqFR7rQylBb1nDY= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= @@ -423,7 +405,6 @@ github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFz github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -431,25 +412,24 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -460,14 +440,12 @@ github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= -github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= +github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= 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/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -496,19 +474,15 @@ github.com/xanzy/go-gitlab v0.93.1 h1:f7J33cw/P9b/8paIOoH0F3H+TFrswvWHs6yUgoTp9L github.com/xanzy/go-gitlab v0.93.1/go.mod h1:5ryv+MnpZStBH8I/77HuQBsMbBGANtVpLWC15qOjWAw= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -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/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= -github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.starlark.net v0.0.0-20221028183056-acb66ad56dd2 h1:5/KzhcSqd4UgY51l17r7C5g/JiE6DRw1Vq7VJfQHuMc= -go.starlark.net v0.0.0-20221028183056-acb66ad56dd2/go.mod h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -519,10 +493,12 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= 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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -530,12 +506,11 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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= @@ -543,22 +518,18 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/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-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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= -golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= +golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= +golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= 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= @@ -567,8 +538,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -579,13 +550,10 @@ golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -600,29 +568,29 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.3.0/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.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= +golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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= @@ -633,42 +601,34 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= 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= -gomodules.xyz/jsonpatch/v2 v2.3.0 h1:8NFhfS6gzxNqjLIYnZxg319wZ5Qjnx4m/CcX+Klzazc= -gomodules.xyz/jsonpatch/v2 v2.3.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= +gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= +gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= google.golang.org/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.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -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-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= 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.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -676,6 +636,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v5 v5.6.0 h1:BMT6KIwBD9CaU91PJCZIe46bDmBWa9ynTQgJIOpfQBk= +gopkg.in/evanphx/json-patch.v5 v5.6.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= @@ -683,7 +645,6 @@ gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= @@ -693,37 +654,35 @@ gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= -k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= -k8s.io/apiextensions-apiserver v0.27.4 h1:ie1yZG4nY/wvFMIR2hXBeSVq+HfNzib60FjnBYtPGSs= -k8s.io/apiextensions-apiserver v0.27.4/go.mod h1:KHZaDr5H9IbGEnSskEUp/DsdXe1hMQ7uzpQcYUFt2bM= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/cli-runtime v0.27.4 h1:Zb0eci+58eHZNnoHhjRFc7W88s8dlG12VtIl3Nv2Hto= -k8s.io/cli-runtime v0.27.4/go.mod h1:k9Z1xiZq2xNplQmehpDquLgc+rE+pubpO1cK4al4Mlw= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= -k8s.io/component-base v0.27.4 h1:Wqc0jMKEDGjKXdae8hBXeskRP//vu1m6ypC+gwErj4c= -k8s.io/component-base v0.27.4/go.mod h1:hoiEETnLc0ioLv6WPeDt8vD34DDeB35MfQnxCARq3kY= +k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= +k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= +k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= +k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM= +k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= +k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= +k8s.io/cli-runtime v0.28.4 h1:IW3aqSNFXiGDllJF4KVYM90YX4cXPGxuCxCVqCD8X+Q= +k8s.io/cli-runtime v0.28.4/go.mod h1:MLGRB7LWTIYyYR3d/DOgtUC8ihsAPA3P8K8FDNIqJ0k= +k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= +k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= +k8s.io/component-base v0.28.4 h1:c/iQLWPdUgI90O+T9TeECg8o7N3YJTiuz2sKxILYcYo= +k8s.io/component-base v0.28.4/go.mod h1:m9hR0uvqXDybiGL2nf/3Lf0MerAfQXzkfWhUY58JUbU= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/kubectl v0.27.4 h1:RV1TQLIbtL34+vIM+W7HaS3KfAbqvy9lWn6pWB9els4= -k8s.io/kubectl v0.27.4/go.mod h1:qtc1s3BouB9KixJkriZMQqTsXMc+OAni6FeKAhq7q14= -k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= -k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/cli-utils v0.35.0 h1:dfSJaF1W0frW74PtjwiyoB4cwdRygbHnC7qe7HF0g/Y= -sigs.k8s.io/cli-utils v0.35.0/go.mod h1:ITitykCJxP1vaj1Cew/FZEaVJ2YsTN9Q71m02jebkoE= -sigs.k8s.io/controller-runtime v0.15.1 h1:9UvgKD4ZJGcj24vefUFgZFP3xej/3igL9BsOUTb/+4c= -sigs.k8s.io/controller-runtime v0.15.1/go.mod h1:7ngYvp1MLT+9GeZ+6lH3LOlcHkp/+tzA/fmHa4iq9kk= +k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= +k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/kubectl v0.28.4 h1:gWpUXW/T7aFne+rchYeHkyB8eVDl5UZce8G4X//kjUQ= +k8s.io/kubectl v0.28.4/go.mod h1:CKOccVx3l+3MmDbkXtIUtibq93nN2hkDR99XDCn7c/c= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= +sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.13.4 h1:E38Hfx0G9R9v7vRgKshviPotJQETG0S2gD3JdHLCAsI= -sigs.k8s.io/kustomize/api v0.13.4/go.mod h1:Bkaavz5RKK6ZzP0zgPrB7QbpbBJKiHuD3BB0KujY7Ls= -sigs.k8s.io/kustomize/kyaml v0.14.2 h1:9WSwztbzwGszG1bZTziQUmVMrJccnyrLb5ZMKpJGvXw= -sigs.k8s.io/kustomize/kyaml v0.14.2/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4= -sigs.k8s.io/structured-merge-diff/v4 v4.3.0 h1:UZbZAZfX0wV2zr7YZorDz6GXROfDFj6LvqCRm4VUVKk= -sigs.k8s.io/structured-merge-diff/v4 v4.3.0/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/kustomize/api v0.15.0 h1:6Ca88kEOBVotHDw+y2IsIMYtg9Pvv7MKpW9JMyF/OH4= +sigs.k8s.io/kustomize/api v0.15.0/go.mod h1:p19kb+E14gN7zcIBR/nhByJDAfUa7N8mp6ZdH/mMXbg= +sigs.k8s.io/kustomize/kyaml v0.15.0 h1:ynlLMAxDhrY9otSg5GYE2TcIz31XkGZ2Pkj7SdolD84= +sigs.k8s.io/kustomize/kyaml v0.15.0/go.mod h1:+uMkBahdU1KNOj78Uta4rrXH+iH7wvg+nW7+GULvREA= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/internal/build/diff.go b/internal/build/diff.go index 7714c6bb..b84037c2 100644 --- a/internal/build/diff.go +++ b/internal/build/diff.go @@ -35,10 +35,10 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/errors" - "sigs.k8s.io/cli-utils/pkg/kstatus/polling" - "sigs.k8s.io/cli-utils/pkg/object" "sigs.k8s.io/yaml" + "github.com/fluxcd/cli-utils/pkg/kstatus/polling" + "github.com/fluxcd/cli-utils/pkg/object" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/ssa" diff --git a/internal/tree/tree.go b/internal/tree/tree.go index b651a19a..fad06426 100644 --- a/internal/tree/tree.go +++ b/internal/tree/tree.go @@ -22,8 +22,8 @@ package tree import ( "strings" + "github.com/fluxcd/cli-utils/pkg/object" "github.com/fluxcd/pkg/ssa" - "sigs.k8s.io/cli-utils/pkg/object" ) const ( diff --git a/internal/utils/apply.go b/internal/utils/apply.go index 52bf67b8..94767623 100644 --- a/internal/utils/apply.go +++ b/internal/utils/apply.go @@ -27,13 +27,14 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/cli-runtime/pkg/genericclioptions" - "sigs.k8s.io/cli-utils/pkg/kstatus/polling" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/kustomize/api/konfig" - "github.com/fluxcd/flux2/v2/pkg/manifestgen/kustomization" + "github.com/fluxcd/cli-utils/pkg/kstatus/polling" runclient "github.com/fluxcd/pkg/runtime/client" "github.com/fluxcd/pkg/ssa" + + "github.com/fluxcd/flux2/v2/pkg/manifestgen/kustomization" ) // Apply is the equivalent of 'kubectl apply --server-side -f'. diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index ba5a7f58..1be3d265 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -32,11 +32,11 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/cli-runtime/pkg/genericclioptions" - "sigs.k8s.io/cli-utils/pkg/object" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/yaml" + "github.com/fluxcd/cli-utils/pkg/object" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/git" "github.com/fluxcd/pkg/git/repository" diff --git a/pkg/status/status.go b/pkg/status/status.go index f28b290c..8b61881c 100644 --- a/pkg/status/status.go +++ b/pkg/status/status.go @@ -24,14 +24,14 @@ import ( "time" "k8s.io/client-go/rest" - "sigs.k8s.io/cli-utils/pkg/kstatus/polling" - "sigs.k8s.io/cli-utils/pkg/kstatus/polling/aggregator" - "sigs.k8s.io/cli-utils/pkg/kstatus/polling/collector" - "sigs.k8s.io/cli-utils/pkg/kstatus/polling/event" - "sigs.k8s.io/cli-utils/pkg/kstatus/status" - "sigs.k8s.io/cli-utils/pkg/object" "sigs.k8s.io/controller-runtime/pkg/client" + "github.com/fluxcd/cli-utils/pkg/kstatus/polling" + "github.com/fluxcd/cli-utils/pkg/kstatus/polling/aggregator" + "github.com/fluxcd/cli-utils/pkg/kstatus/polling/collector" + "github.com/fluxcd/cli-utils/pkg/kstatus/polling/event" + "github.com/fluxcd/cli-utils/pkg/kstatus/status" + "github.com/fluxcd/cli-utils/pkg/object" runtimeclient "github.com/fluxcd/pkg/runtime/client" "github.com/fluxcd/flux2/v2/pkg/log" diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 298cc7c3..8502c2b4 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -12,23 +12,23 @@ require ( github.com/fluxcd/image-reflector-controller/api v0.30.0 github.com/fluxcd/kustomize-controller/api v1.1.1 github.com/fluxcd/notification-controller/api v1.1.0 - github.com/fluxcd/pkg/apis/event v0.5.2 - github.com/fluxcd/pkg/apis/meta v1.1.2 - github.com/fluxcd/pkg/git v0.14.0 - github.com/fluxcd/pkg/git/gogit v0.14.0 + github.com/fluxcd/pkg/apis/event v0.6.0 + github.com/fluxcd/pkg/apis/meta v1.2.0 + github.com/fluxcd/pkg/git v0.15.0 + github.com/fluxcd/pkg/git/gogit v0.15.0 github.com/fluxcd/source-controller/api v1.1.2 - github.com/go-git/go-git/v5 v5.9.0 + github.com/go-git/go-git/v5 v5.10.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/stretchr/testify v1.8.4 github.com/whilp/git-urls v1.0.0 go.uber.org/multierr v1.11.0 - k8s.io/api v0.27.4 - k8s.io/apimachinery v0.27.4 - k8s.io/client-go v0.27.4 + k8s.io/api v0.28.4 + k8s.io/apimachinery v0.28.4 + k8s.io/client-go v0.28.4 k8s.io/klog/v2 v2.100.1 - sigs.k8s.io/controller-runtime v0.15.1 + sigs.k8s.io/controller-runtime v0.16.3 ) require ( @@ -46,34 +46,33 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/cloudflare/circl v1.3.6 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/devigned/tab v0.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.10.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect - github.com/fluxcd/pkg/ssh v0.8.2 // indirect + github.com/fluxcd/pkg/ssh v0.9.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gnostic v0.6.9 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-version v1.6.0 // indirect @@ -92,30 +91,33 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.17.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect - github.com/skeema/knownhosts v1.2.0 // indirect + github.com/skeema/knownhosts v1.2.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect - go.uber.org/atomic v1.10.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/crypto v0.15.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.18.0 // indirect + golang.org/x/oauth2 v0.14.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/term v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.4.0 // indirect + golang.org/x/tools v0.15.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.27.4 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect + k8s.io/apiextensions-apiserver v0.28.4 // indirect + k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 2aff25b1..b53c5f9f 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -1,5 +1,3 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Azure/azure-amqp-common-go/v4 v4.2.0 h1:q/jLx1KJ8xeI8XGfkOWMN9XrXzAfVTkyvCxPvHCjd2I= @@ -32,36 +30,26 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= +github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -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= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= +github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= @@ -71,21 +59,13 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/devigned/tab v0.1.1 h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= -github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= -github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/elazarl/goproxy v0.0.0-20231117061959-7cc037d33fb5 h1:m62nsMU279qRD9PQSWD1l66kmkXzuYcnVJqL4XLeV2M= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= -github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= +github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= +github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= @@ -99,42 +79,41 @@ github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDX github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.5.2 h1:WtnCOeWglf7wR3dpyiWxb1JtYkw1G5OXcERb1QopFpA= -github.com/fluxcd/pkg/apis/event v0.5.2/go.mod h1:5l6SSxVTkqrXrYjgEqAajOOHkl4x0TPocAuSdu+3AEs= +github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= +github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0cuDQY2HYwM= github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= -github.com/fluxcd/pkg/apis/meta v1.1.2 h1:Unjo7hxadtB2dvGpeFqZZUdsjpRA08YYSBb7dF2WIAM= -github.com/fluxcd/pkg/apis/meta v1.1.2/go.mod h1:BHQyRHCskGMEDf6kDGbgQ+cyiNpUHbLsCOsaMYM2maI= -github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= -github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= -github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= -github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= +github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= +github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= +github.com/fluxcd/pkg/git v0.15.0 h1:QPqv+b4sQXXpWQhigf/sPE5qzK4BrQhkltnYuEy4AYw= +github.com/fluxcd/pkg/git v0.15.0/go.mod h1:zqmLfw4d+mS77bMRkeQ+8dmFSgxB/c2ZDkafIyY6bAQ= +github.com/fluxcd/pkg/git/gogit v0.15.0 h1:GV8XaRp7CtlRuDallrJgMR6s1YHIMZi5+zyXMOJsS0c= +github.com/fluxcd/pkg/git/gogit v0.15.0/go.mod h1:9KBhXE1czARGT6QqHYVMfr2RbvPpguKwCdm4LgkP3nY= github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= -github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= +github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= +github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= -github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= -github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git/v5 v5.10.0 h1:F0x3xXrAWmhwtzoCokU4IMPcBdncG+HAAqi9FcOOjbQ= +github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYvhWHvZGhoo= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= @@ -143,49 +122,29 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -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.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= -github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= -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/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= 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.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -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/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= @@ -203,7 +162,6 @@ github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= @@ -216,7 +174,6 @@ github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF 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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -229,6 +186,7 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 h1:YH424zrwLTlyHSH/GzLMJeu5zhYVZSx5RQxGKm1h96s= github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5/go.mod h1:PoGiBqKSQK1vIfQ+yVaFcGjDySHvym6FM1cNYnwzbrY= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -243,39 +201,37 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= -github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= +github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= @@ -288,9 +244,6 @@ github.com/whilp/git-urls v1.0.0 h1:95f6UMWN5FKW71ECsXRUd3FVYiXdrE7aX4NZKcPmIjU= github.com/whilp/git-urls v1.0.0/go.mod h1:J16SAmobsqc3Qcy98brfl5f5+e0clUvg1krgwk/qCfE= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -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= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -299,12 +252,9 @@ github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uU github.com/zclconf/go-cty v1.13.0 h1:It5dfKTTZHe9aeppbNOda3mN7Ag7sg6QkBNm6TkyFa0= github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -312,66 +262,47 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -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-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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= +golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= 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-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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -379,16 +310,16 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.3.0/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= @@ -397,59 +328,32 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= +golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= 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= -gomodules.xyz/jsonpatch/v2 v2.3.0 h1:8NFhfS6gzxNqjLIYnZxg319wZ5Qjnx4m/CcX+Klzazc= +gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= 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.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -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-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -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.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/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-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -460,33 +364,30 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= 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.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= -k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= -k8s.io/apiextensions-apiserver v0.27.4 h1:ie1yZG4nY/wvFMIR2hXBeSVq+HfNzib60FjnBYtPGSs= -k8s.io/apiextensions-apiserver v0.27.4/go.mod h1:KHZaDr5H9IbGEnSskEUp/DsdXe1hMQ7uzpQcYUFt2bM= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= +k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= +k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= +k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= +k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM= +k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= +k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= +k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= +k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= -k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.15.1 h1:9UvgKD4ZJGcj24vefUFgZFP3xej/3igL9BsOUTb/+4c= -sigs.k8s.io/controller-runtime v0.15.1/go.mod h1:7ngYvp1MLT+9GeZ+6lH3LOlcHkp/+tzA/fmHa4iq9kk= +k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= +k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= +sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index ee7a3dfe..1468f0e3 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -10,29 +10,29 @@ require ( github.com/fluxcd/image-reflector-controller/api v0.30.0 github.com/fluxcd/kustomize-controller/api v1.1.1 github.com/fluxcd/notification-controller/api v1.1.0 - github.com/fluxcd/pkg/apis/event v0.5.2 - github.com/fluxcd/pkg/apis/meta v1.1.2 - github.com/fluxcd/pkg/git v0.14.0 - github.com/fluxcd/pkg/git/gogit v0.14.0 - github.com/fluxcd/pkg/runtime v0.42.0 + github.com/fluxcd/pkg/apis/event v0.6.0 + github.com/fluxcd/pkg/apis/meta v1.2.0 + github.com/fluxcd/pkg/git v0.15.0 + github.com/fluxcd/pkg/git/gogit v0.15.0 + github.com/fluxcd/pkg/runtime v0.43.0 github.com/fluxcd/source-controller/api v1.1.2 github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 - github.com/go-git/go-git/v5 v5.9.0 - github.com/google/go-containerregistry v0.14.0 + github.com/go-git/go-git/v5 v5.10.0 + github.com/google/go-containerregistry v0.16.1 github.com/hashicorp/terraform-json v0.16.0 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 - github.com/onsi/gomega v1.27.10 + github.com/onsi/gomega v1.30.0 github.com/whilp/git-urls v1.0.0 google.golang.org/grpc v1.56.3 - k8s.io/api v0.27.4 - k8s.io/apimachinery v0.27.4 - k8s.io/client-go v0.27.4 - sigs.k8s.io/controller-runtime v0.15.1 + k8s.io/api v0.28.4 + k8s.io/apimachinery v0.28.4 + k8s.io/client-go v0.28.4 + sigs.k8s.io/controller-runtime v0.16.3 ) require ( cloud.google.com/go v0.110.2 // indirect - cloud.google.com/go/compute v1.19.1 // indirect + cloud.google.com/go/compute v1.20.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.0.1 // indirect dario.cat/mergo v1.0.0 // indirect @@ -49,42 +49,42 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/cloudflare/circl v1.3.6 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/devigned/tab v0.1.1 // indirect - github.com/docker/cli v23.0.1+incompatible // indirect + github.com/docker/cli v24.0.0+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/docker v24.0.7+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect - github.com/emicklei/go-restful/v3 v3.10.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect - github.com/fluxcd/pkg/ssh v0.8.2 // indirect + github.com/fluxcd/pkg/ssh v0.9.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gnostic v0.6.9 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.4 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.9.1 // indirect + github.com/googleapis/gax-go/v2 v2.11.0 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -97,7 +97,7 @@ require ( github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.5 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -105,40 +105,42 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/opencontainers/image-spec v1.1.0-rc3 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/sergi/go-diff v1.3.1 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect - github.com/skeema/knownhosts v1.2.0 // indirect + github.com/sirupsen/logrus v1.9.1 // indirect + github.com/skeema/knownhosts v1.2.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/vbatts/tar-split v0.11.2 // indirect + github.com/vbatts/tar-split v0.11.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.13.0 // indirect - google.golang.org/api v0.124.0 // indirect + golang.org/x/crypto v0.15.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.18.0 // indirect + golang.org/x/oauth2 v0.14.0 // indirect + golang.org/x/sync v0.5.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/term v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.4.0 // indirect + golang.org/x/tools v0.15.0 // indirect + google.golang.org/api v0.126.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.27.4 // indirect + k8s.io/apiextensions-apiserver v0.28.4 // indirect k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect + k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/tests/integration/go.sum b/tests/integration/go.sum index d27f0bea..e4b352c4 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.110.2 h1:sdFPBr6xG9/wkBbfhmUz/JmZC7X6LavQgcrVINrKiVA= cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= -cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= -cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/iam v1.0.1 h1:lyeCAU6jpnVNrE9zGQkTl3WgNgK/X+uWwaw0kynZJMU= @@ -45,6 +45,7 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= @@ -55,10 +56,9 @@ github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugX github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= -github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= +github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= @@ -72,26 +72,23 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= +github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= 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= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= -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.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= @@ -101,18 +98,17 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/devigned/tab v0.1.1 h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= -github.com/docker/cli v23.0.1+incompatible h1:LRyWITpGzl2C9e9uGxzisptnxAn1zfZKXy13Ul2Q5oM= -github.com/docker/cli v23.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v24.0.0+incompatible h1:0+1VshNwBQzQAx9lOl+OYCTCEAD8fKs/qeXMx3O0wqM= +github.com/docker/cli v24.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= -github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= -github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/elazarl/goproxy v0.0.0-20231117061959-7cc037d33fb5 h1:m62nsMU279qRD9PQSWD1l66kmkXzuYcnVJqL4XLeV2M= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= @@ -120,13 +116,11 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= -github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= +github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= +github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= @@ -140,21 +134,21 @@ github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDX github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.5.2 h1:WtnCOeWglf7wR3dpyiWxb1JtYkw1G5OXcERb1QopFpA= -github.com/fluxcd/pkg/apis/event v0.5.2/go.mod h1:5l6SSxVTkqrXrYjgEqAajOOHkl4x0TPocAuSdu+3AEs= +github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= +github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0cuDQY2HYwM= github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= -github.com/fluxcd/pkg/apis/meta v1.1.2 h1:Unjo7hxadtB2dvGpeFqZZUdsjpRA08YYSBb7dF2WIAM= -github.com/fluxcd/pkg/apis/meta v1.1.2/go.mod h1:BHQyRHCskGMEDf6kDGbgQ+cyiNpUHbLsCOsaMYM2maI= -github.com/fluxcd/pkg/git v0.14.0 h1:gefX0A1HkoFhT9mX+ybw2EBNTgebLje0TPyBlKpYrlk= -github.com/fluxcd/pkg/git v0.14.0/go.mod h1:Oq1kLyTk8u2hlGk+7HC1uQ4xX5i0/umJSn+dSIsE6BY= -github.com/fluxcd/pkg/git/gogit v0.14.0 h1:4apklSXh55panQzgFIUwHZUei6B/zqXm4ygtF3jb6uI= -github.com/fluxcd/pkg/git/gogit v0.14.0/go.mod h1:EfTdPc1AaGS1NTF4h6HqXqyKEdOV0UyBeG7khQ7/ai0= +github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= +github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= +github.com/fluxcd/pkg/git v0.15.0 h1:QPqv+b4sQXXpWQhigf/sPE5qzK4BrQhkltnYuEy4AYw= +github.com/fluxcd/pkg/git v0.15.0/go.mod h1:zqmLfw4d+mS77bMRkeQ+8dmFSgxB/c2ZDkafIyY6bAQ= +github.com/fluxcd/pkg/git/gogit v0.15.0 h1:GV8XaRp7CtlRuDallrJgMR6s1YHIMZi5+zyXMOJsS0c= +github.com/fluxcd/pkg/git/gogit v0.15.0/go.mod h1:9KBhXE1czARGT6QqHYVMfr2RbvPpguKwCdm4LgkP3nY= github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/runtime v0.42.0 h1:a5DQ/f90YjoHBmiXZUpnp4bDSLORjInbmqP7K11L4uY= -github.com/fluxcd/pkg/runtime v0.42.0/go.mod h1:p6A3xWVV8cKLLQW0N90GehKgGMMmbNYv+OSJ/0qB0vg= -github.com/fluxcd/pkg/ssh v0.8.2 h1:WNfvTmnLnOUyXQDb8luSfmn1X0RIuhJBcKMFtKm6YsQ= -github.com/fluxcd/pkg/ssh v0.8.2/go.mod h1:ewbU9vakYYdGSX92qXhx6Kqi5tVQ3ppmGQakCX1R6Gw= +github.com/fluxcd/pkg/runtime v0.43.0 h1:dU4cWct5VTpddGzJUU80zxNl80jbbVEN5Y5rbt4YUnw= +github.com/fluxcd/pkg/runtime v0.43.0/go.mod h1:RuqJ9VEXELjzgurK2+UXBBgVN1vS0hZ7CYVG2xBAEVM= +github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= +github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= @@ -175,18 +169,18 @@ github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= -github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= -github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= +github.com/go-git/go-git/v5 v5.10.0 h1:F0x3xXrAWmhwtzoCokU4IMPcBdncG+HAAqi9FcOOjbQ= +github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYvhWHvZGhoo= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= @@ -195,8 +189,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= 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= @@ -218,8 +212,8 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= -github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= 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= @@ -227,10 +221,11 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/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.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.14.0 h1:z58vMqHxuwvAsVwvKEkmVBz2TlgBgH5k6koEXBtlYkw= -github.com/google/go-containerregistry v0.14.0/go.mod h1:aiJ2fp/SXvkWgmYHioXnbMdlgB8eXiiYOY55gfN91Wk= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-containerregistry v0.16.1 h1:rUEt426sR6nyrL3gt+18ibRcvYpKYdpsa5ZW7MA08dQ= +github.com/google/go-containerregistry v0.16.1/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -239,12 +234,12 @@ github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/gax-go/v2 v2.9.1 h1:DpTpJqzZ3NvX9zqjhIuI1oVzYZMvboZe+3LoeEIJjHM= -github.com/googleapis/gax-go/v2 v2.9.1/go.mod h1:4FG3gMrVZlyMp5itSYKMU9z/lBE7+SbnUOvzH2HqbEY= +github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -273,7 +268,6 @@ github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -287,11 +281,10 @@ github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4 github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= 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.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= +github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -305,6 +298,7 @@ github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlW github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 h1:YH424zrwLTlyHSH/GzLMJeu5zhYVZSx5RQxGKm1h96s= github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5/go.mod h1:PoGiBqKSQK1vIfQ+yVaFcGjDySHvym6FM1cNYnwzbrY= github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= @@ -322,13 +316,13 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= 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.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/image-spec v1.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= +github.com/opencontainers/image-spec v1.1.0-rc3/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -337,30 +331,28 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -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/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.7.0/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/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= -github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/sirupsen/logrus v1.9.1 h1:Ou41VVR3nMWWmTiEUnj0OlsgOSCUFgsPAOl6jRIcVtQ= +github.com/sirupsen/logrus v1.9.1/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= +github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 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/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -375,17 +367,14 @@ 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.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME= -github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI= +github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= +github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck= +github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= github.com/whilp/git-urls v1.0.0 h1:95f6UMWN5FKW71ECsXRUd3FVYiXdrE7aX4NZKcPmIjU= github.com/whilp/git-urls v1.0.0/go.mod h1:J16SAmobsqc3Qcy98brfl5f5+e0clUvg1krgwk/qCfE= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -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= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -394,7 +383,7 @@ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -410,10 +399,11 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= 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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -422,8 +412,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -438,20 +428,18 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= +golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= 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= @@ -460,8 +448,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -476,44 +464,42 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.3.0/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.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= +golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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= @@ -524,15 +510,15 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= 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= -gomodules.xyz/jsonpatch/v2 v2.3.0 h1:8NFhfS6gzxNqjLIYnZxg319wZ5Qjnx4m/CcX+Klzazc= -google.golang.org/api v0.124.0 h1:dP6Ef1VgOGqQ8eiv4GiY8RhmeyqzovcXBYPDUYG8Syo= -google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= +google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= 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.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= @@ -541,9 +527,12 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 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-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc h1:8DyZCyvI8mE1IdLy/60bS+52xfymkE72wv1asokgtao= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc h1:kVKPf/IiYSBWEWtkIn6wZXwWGCnLKcC8oWfZvXjsGnM= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -551,7 +540,6 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= @@ -566,9 +554,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/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/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -586,32 +573,31 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 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= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= -k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= -k8s.io/apiextensions-apiserver v0.27.4 h1:ie1yZG4nY/wvFMIR2hXBeSVq+HfNzib60FjnBYtPGSs= -k8s.io/apiextensions-apiserver v0.27.4/go.mod h1:KHZaDr5H9IbGEnSskEUp/DsdXe1hMQ7uzpQcYUFt2bM= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= +k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= +k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= +k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= +k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM= +k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= +k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= +k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= +k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= -k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.15.1 h1:9UvgKD4ZJGcj24vefUFgZFP3xej/3igL9BsOUTb/+4c= -sigs.k8s.io/controller-runtime v0.15.1/go.mod h1:7ngYvp1MLT+9GeZ+6lH3LOlcHkp/+tzA/fmHa4iq9kk= +k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= +k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= +sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From 765ebbacfe20fd3db965713db726490f9e6945ee Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 7 Nov 2023 09:10:27 +0200 Subject: [PATCH 050/154] OIDC identity matching for keyless verification Signed-off-by: Stefan Prodan --- rfcs/0003-kubernetes-oci/README.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/rfcs/0003-kubernetes-oci/README.md b/rfcs/0003-kubernetes-oci/README.md index 429b1880..be3e7e63 100644 --- a/rfcs/0003-kubernetes-oci/README.md +++ b/rfcs/0003-kubernetes-oci/README.md @@ -4,7 +4,7 @@ **Creation date:** 2022-03-31 -**Last update:** 2023-02-20 +**Last update:** 2023-11-07 ## Summary @@ -232,14 +232,26 @@ spec: ``` For verifying public artifacts which are signed using the keyless method, -the `spec.verify.secretRef` field must be omitted: +the `.spec.verify.matchOIDCIdentity` field must be used instead of + `spec.verify.secretRef`. ```yaml spec: verify: provider: cosign + matchOIDCIdentity: + - issuer: "^https://token.actions.githubusercontent.com$" + subject: "^https://github.com/org/app-repository.*$" ``` +The `matchOIDCIdentity` entries must contain the following fields: + +- `.issuer`, regexp that matches against the OIDC issuer. +- `.subject`, regexp that matches against the subject identity in the certificate. + +The entries are evaluated in an OR fashion, i.e. the identity is deemed to be +verified if any one entry successfully matches against the identity. + When using the keyless method, Flux will verify the signatures in the Rekor transparency log instance hosted at [rekor.sigstore.dev](https://rekor.sigstore.dev/). @@ -470,3 +482,5 @@ The feature is enabled by default. * **2022-08-29** Select layer by OCI media type released with [flux2 v0.33.0](https://github.com/fluxcd/flux2/releases/tag/v0.33.0) * **2022-09-29** Verifying OCI artifacts with Cosign released with [flux2 v0.35.0](https://github.com/fluxcd/flux2/releases/tag/v0.35.0) * **2023-02-20** Custom OCI media types released with [flux2 v0.40.0](https://github.com/fluxcd/flux2/releases/tag/v0.40.0) +* **2023-10-31** OIDC identity verification implemented in + [source-controller#1250](https://github.com/fluxcd/source-controller/pull/1250) From b596aefb91d1205ca31810f8b2d9fc6d073b5e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Garcia?= Date: Fri, 17 Nov 2023 10:51:04 -0300 Subject: [PATCH 051/154] Fix flux install command so it returns an error when unexpected arguments are passed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Max Jonas Werner Signed-off-by: Vinícius Garcia --- cmd/flux/install.go | 1 + cmd/flux/install_test.go | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/cmd/flux/install.go b/cmd/flux/install.go index 795cc1aa..bf0ee758 100644 --- a/cmd/flux/install.go +++ b/cmd/flux/install.go @@ -36,6 +36,7 @@ import ( var installCmd = &cobra.Command{ Use: "install", + Args: cobra.NoArgs, Short: "Install or upgrade Flux", Long: `The install command deploys Flux in the specified namespace. If a previous version is installed, then an in-place upgrade will be performed.`, diff --git a/cmd/flux/install_test.go b/cmd/flux/install_test.go index f10f7d62..5cb0fa66 100644 --- a/cmd/flux/install_test.go +++ b/cmd/flux/install_test.go @@ -37,6 +37,11 @@ func TestInstall(t *testing.T) { args: "install --namespace='@#[]'", assert: assertError("namespace must be a valid DNS label: \"@#[]\""), }, + { + name: "invalid sub-command", + args: "install unexpectedPosArg --namespace=example", + assert: assertError(`unknown command "unexpectedPosArg" for "flux install"`), + }, } for _, tt := range tests { From daa25a9a30e73f74455f6f7b810ddf59b9badc90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 01:15:12 +0000 Subject: [PATCH 052/154] build(deps): bump the ci group with 4 updates Bumps the ci group with 4 updates: [Azure/login](https://github.com/azure/login), [google-github-actions/auth](https://github.com/google-github-actions/auth), [anchore/sbom-action](https://github.com/anchore/sbom-action) and [fossa-contrib/fossa-action](https://github.com/fossa-contrib/fossa-action). Updates `Azure/login` from 1.4.7 to 1.5.1 - [Release notes](https://github.com/azure/login/releases) - [Commits](https://github.com/azure/login/compare/92a5484dfaf04ca78a94597f4f19fea633851fa2...de95379fe4dadc2defb305917eaa7e5dde727294) Updates `google-github-actions/auth` from 1.1.1 to 2.0.0 - [Release notes](https://github.com/google-github-actions/auth/releases) - [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/auth/compare/35b0e87d162680511bf346c299f71c9c5c379033...67e9c72af6e0492df856527b474995862b7b6591) Updates `anchore/sbom-action` from 0.14.3 to 0.15.0 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/78fc58e266e87a38d4194b2137a3d4e9bcaf7ca1...fd74a6fb98a204a1ad35bbfae0122c1a302ff88b) Updates `fossa-contrib/fossa-action` from 2.0.0 to 3.0.0 - [Release notes](https://github.com/fossa-contrib/fossa-action/releases) - [Changelog](https://github.com/fossa-contrib/fossa-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/fossa-contrib/fossa-action/compare/6728dc6fe9a068c648d080c33829ffbe56565023...cdc5065bcdee31a32e47d4585df72d66e8e941c2) --- updated-dependencies: - dependency-name: Azure/login dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: google-github-actions/auth dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: fossa-contrib/fossa-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/e2e-azure.yaml | 2 +- .github/workflows/e2e-gcp.yaml | 2 +- .github/workflows/release.yaml | 2 +- .github/workflows/scan.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 1c6330b5..3e974205 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -92,7 +92,7 @@ jobs: env: SOPS_VER: 3.7.1 - name: Authenticate to Azure - uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.6 + uses: Azure/login@de95379fe4dadc2defb305917eaa7e5dde727294 # v1.4.6 with: creds: '{"clientId":"${{ secrets.AZ_ARM_CLIENT_ID }}","clientSecret":"${{ secrets.AZ_ARM_CLIENT_SECRET }}","subscriptionId":"${{ secrets.AZ_ARM_SUBSCRIPTION_ID }}","tenantId":"${{ secrets.AZ_ARM_TENANT_ID }}"}' - name: Set dynamic variables in .env diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index c9170e5e..bfc57ddf 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -46,7 +46,7 @@ jobs: env: SOPS_VER: 3.7.1 - name: Authenticate to Google Cloud - uses: google-github-actions/auth@35b0e87d162680511bf346c299f71c9c5c379033 # v1.1.1 + uses: google-github-actions/auth@67e9c72af6e0492df856527b474995862b7b6591 # v2.0.0 id: 'auth' with: credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}' diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 62bd8f3c..030e9957 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@78fc58e266e87a38d4194b2137a3d4e9bcaf7ca1 # v0.14.3 + uses: anchore/sbom-action/download-syft@fd74a6fb98a204a1ad35bbfae0122c1a302ff88b # v0.15.0 - name: Setup Cosign uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8 # v3.2.0 - name: Setup Kustomize diff --git a/.github/workflows/scan.yaml b/.github/workflows/scan.yaml index 3de3abc6..8ba3df35 100644 --- a/.github/workflows/scan.yaml +++ b/.github/workflows/scan.yaml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Run FOSSA scan and upload build data - uses: fossa-contrib/fossa-action@6728dc6fe9a068c648d080c33829ffbe56565023 # v2.0.0 + uses: fossa-contrib/fossa-action@cdc5065bcdee31a32e47d4585df72d66e8e941c2 # v3.0.0 with: # FOSSA Push-Only API Token fossa-api-key: 5ee8bf422db1471e0bcf2bcb289185de From fd163ddcf231fc73464cea4abd6b816a12e2eab5 Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Wed, 22 Nov 2023 21:01:13 +0100 Subject: [PATCH 053/154] show cluster instance name and version in flux check and flux version Signed-off-by: Somtochi Onyekwere --- cmd/flux/check.go | 77 +++++++++++++++++++---------------- cmd/flux/cluster_info.go | 20 ++++++++- cmd/flux/cluster_info_test.go | 11 +++++ cmd/flux/version.go | 45 +++++++++++++++++--- pkg/status/status.go | 18 ++++---- 5 files changed, 122 insertions(+), 49 deletions(-) diff --git a/cmd/flux/check.go b/cmd/flux/check.go index df5fec61..244f60de 100644 --- a/cmd/flux/check.go +++ b/cmd/flux/check.go @@ -18,6 +18,7 @@ package main import ( "context" + "fmt" "os" "time" @@ -26,6 +27,7 @@ import ( v1 "k8s.io/api/apps/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/fluxcd/pkg/version" @@ -80,7 +82,20 @@ func runCheckCmd(cmd *cobra.Command, args []string) error { fluxCheck() - if !kubernetesCheck(kubernetesConstraints) { + ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) + defer cancel() + + cfg, err := utils.KubeConfig(kubeconfigArgs, kubeclientOptions) + if err != nil { + return fmt.Errorf("Kubernetes client initialization failed: %s", err.Error()) + } + + kubeClient, err := client.New(cfg, client.Options{Scheme: utils.NewScheme()}) + if err != nil { + return err + } + + if !kubernetesCheck(cfg, kubernetesConstraints) { checkFailed = true } @@ -92,13 +107,18 @@ func runCheckCmd(cmd *cobra.Command, args []string) error { return nil } + logger.Actionf("checking version in cluster") + if !fluxClusterVersionCheck(ctx, kubeClient) { + checkFailed = true + } + logger.Actionf("checking controllers") - if !componentsCheck() { + if !componentsCheck(ctx, kubeClient) { checkFailed = true } logger.Actionf("checking crds") - if !crdsCheck() { + if !crdsCheck(ctx, kubeClient) { checkFailed = true } @@ -129,17 +149,11 @@ func fluxCheck() { return } if latestSv.GreaterThan(curSv) { - logger.Failuref("flux %s <%s (new version is available, please upgrade)", curSv, latestSv) + logger.Failuref("flux %s <%s (new CLI version is available, please upgrade)", curSv, latestSv) } } -func kubernetesCheck(constraints []string) bool { - cfg, err := utils.KubeConfig(kubeconfigArgs, kubeclientOptions) - if err != nil { - logger.Failuref("Kubernetes client initialization failed: %s", err.Error()) - return false - } - +func kubernetesCheck(cfg *rest.Config, constraints []string) bool { clientSet, err := kubernetes.NewForConfig(cfg) if err != nil { logger.Failuref("Kubernetes client initialization failed: %s", err.Error()) @@ -178,21 +192,8 @@ func kubernetesCheck(constraints []string) bool { return true } -func componentsCheck() bool { - ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) - defer cancel() - - kubeConfig, err := utils.KubeConfig(kubeconfigArgs, kubeclientOptions) - if err != nil { - return false - } - - statusChecker, err := status.NewStatusChecker(kubeConfig, checkArgs.pollInterval, rootArgs.timeout, logger) - if err != nil { - return false - } - - kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) +func componentsCheck(ctx context.Context, kubeClient client.Client) bool { + statusChecker, err := status.NewStatusCheckerWithClient(kubeClient, checkArgs.pollInterval, rootArgs.timeout, logger) if err != nil { return false } @@ -222,15 +223,7 @@ func componentsCheck() bool { return ok } -func crdsCheck() bool { - ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) - defer cancel() - - kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) - if err != nil { - return false - } - +func crdsCheck(ctx context.Context, kubeClient client.Client) bool { ok := true selector := client.MatchingLabels{manifestgen.PartOfLabelKey: manifestgen.PartOfLabelValue} var list apiextensionsv1.CustomResourceDefinitionList @@ -253,3 +246,17 @@ func crdsCheck() bool { } return ok } + +func fluxClusterVersionCheck(ctx context.Context, kubeClient client.Client) bool { + clusterInfo, err := getFluxClusterInfo(ctx, kubeClient) + if err != nil { + logger.Failuref("checking failed: %s", err.Error()) + return false + } + + if clusterInfo.distribution() != "" { + logger.Successf("distribution: %s", clusterInfo.distribution()) + } + logger.Successf("bootstrapped: %t", clusterInfo.bootstrapped) + return true +} diff --git a/cmd/flux/cluster_info.go b/cmd/flux/cluster_info.go index daf122ee..2f2f79a3 100644 --- a/cmd/flux/cluster_info.go +++ b/cmd/flux/cluster_info.go @@ -27,6 +27,8 @@ import ( kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" sourcev1 "github.com/fluxcd/source-controller/api/v1" + + "github.com/fluxcd/flux2/v2/pkg/manifestgen" ) // bootstrapLabels are labels put on a resource by kustomize-controller. These labels on the CRD indicates @@ -42,6 +44,8 @@ type fluxClusterInfo struct { bootstrapped bool // managedBy is the name of the tool being used to manage the installation of Flux. managedBy string + // partOf indicates which distribution the instance is a part of. + partOf string // version is the Flux version number in semver format. version string } @@ -68,7 +72,7 @@ func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, return info, err } - info.version = crdMetadata.Labels["app.kubernetes.io/version"] + info.version = crdMetadata.Labels[manifestgen.VersionLabelKey] var present bool for _, l := range bootstrapLabels { @@ -78,11 +82,15 @@ func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, info.bootstrapped = true } - // the `app.kubernetes.io` label is not set by flux but might be set by other + // the `app.kubernetes.io/managed-by` label is not set by flux but might be set by other // tools used to install Flux e.g Helm. if manager, ok := crdMetadata.Labels["app.kubernetes.io/managed-by"]; ok { info.managedBy = manager } + + if partOf, ok := crdMetadata.Labels[manifestgen.PartOfLabelKey]; ok { + info.partOf = partOf + } return info, nil } @@ -105,6 +113,14 @@ func confirmFluxInstallOverride(info fluxClusterInfo) error { return err } +func (info fluxClusterInfo) distribution() string { + distribution := info.version + if info.partOf != "" { + distribution = fmt.Sprintf("%s-%s", info.partOf, info.version) + } + return distribution +} + func installManagedByFlux(manager string) bool { return manager == "" || manager == "flux" } diff --git a/cmd/flux/cluster_info_test.go b/cmd/flux/cluster_info_test.go index 550ab165..560c881b 100644 --- a/cmd/flux/cluster_info_test.go +++ b/cmd/flux/cluster_info_test.go @@ -102,6 +102,17 @@ func Test_getFluxClusterInfo(t *testing.T) { version: "v2.1.0", }, }, + { + name: "CRD with version and part-of labels", + labels: map[string]string{ + "app.kubernetes.io/version": "v2.1.0", + "app.kubernetes.io/part-of": "flux", + }, + wantInfo: fluxClusterInfo{ + version: "v2.1.0", + partOf: "flux", + }, + }, } for _, tt := range tests { diff --git a/cmd/flux/version.go b/cmd/flux/version.go index f02a161f..bddbfd4d 100644 --- a/cmd/flux/version.go +++ b/cmd/flux/version.go @@ -25,8 +25,9 @@ import ( "github.com/google/go-containerregistry/pkg/name" "github.com/spf13/cobra" v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/yaml" + "sigs.k8s.io/yaml/goyaml.v2" "github.com/fluxcd/flux2/v2/internal/utils" "github.com/fluxcd/flux2/v2/pkg/manifestgen" @@ -55,6 +56,12 @@ type versionFlags struct { var versionArgs versionFlags +type versionInfo struct { + Flux string `yaml:"flux"` + Distribution string `yaml:"distribution,omitempty"` + Controller map[string]string `yaml:"controller,inline"` +} + func init() { versionCmd.Flags().BoolVar(&versionArgs.client, "client", false, "print only client version") @@ -71,8 +78,12 @@ func versionCmdRun(cmd *cobra.Command, args []string) error { ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) defer cancel() - info := map[string]string{} - info["flux"] = rootArgs.defaults.Version + // versionInfo struct and goyaml is used because we care about the order. + // Without this `distribution` is printed before `flux` when the struct is marshalled. + info := &versionInfo{ + Controller: map[string]string{}, + } + info.Flux = rootArgs.defaults.Version if !versionArgs.client { kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) @@ -80,6 +91,16 @@ func versionCmdRun(cmd *cobra.Command, args []string) error { return err } + clusterInfo, err := getFluxClusterInfo(ctx, kubeClient) + // ignoring not found errors because it means that the GitRepository CRD isn't installed but a user might + // have other controllers(e.g notification-controller), and we want to still return information for them. + if err != nil && !errors.IsNotFound(err) { + return err + } + if clusterInfo.distribution() != "" { + info.Distribution = clusterInfo.distribution() + } + selector := client.MatchingLabels{manifestgen.PartOfLabelKey: manifestgen.PartOfLabelValue} var list v1.DeploymentList if err := kubeClient.List(ctx, &list, client.InNamespace(*kubeconfigArgs.Namespace), selector); err != nil { @@ -96,7 +117,7 @@ func versionCmdRun(cmd *cobra.Command, args []string) error { if err != nil { return err } - info[name] = tag + info.Controller[name] = tag } } } @@ -105,7 +126,7 @@ func versionCmdRun(cmd *cobra.Command, args []string) error { var err error if versionArgs.output == "json" { - marshalled, err = json.MarshalIndent(&info, "", " ") + marshalled, err = info.toJSON() marshalled = append(marshalled, "\n"...) } else { marshalled, err = yaml.Marshal(&info) @@ -119,6 +140,20 @@ func versionCmdRun(cmd *cobra.Command, args []string) error { return nil } +func (info versionInfo) toJSON() ([]byte, error) { + mapInfo := map[string]string{ + "flux": info.Flux, + } + + if info.Distribution != "" { + mapInfo["distribution"] = info.Distribution + } + for k, v := range info.Controller { + mapInfo[k] = v + } + return json.MarshalIndent(&mapInfo, "", " ") +} + func splitImageStr(image string) (string, string, error) { ref, err := name.ParseReference(image) if err != nil { diff --git a/pkg/status/status.go b/pkg/status/status.go index 8b61881c..859c4a1e 100644 --- a/pkg/status/status.go +++ b/pkg/status/status.go @@ -45,6 +45,16 @@ type StatusChecker struct { logger log.Logger } +func NewStatusCheckerWithClient(c client.Client, pollInterval time.Duration, timeout time.Duration, log log.Logger) (*StatusChecker, error) { + return &StatusChecker{ + pollInterval: pollInterval, + timeout: timeout, + client: c, + statusPoller: polling.NewStatusPoller(c, c.RESTMapper(), polling.Options{}), + logger: log, + }, nil +} + func NewStatusChecker(kubeConfig *rest.Config, pollInterval time.Duration, timeout time.Duration, log log.Logger) (*StatusChecker, error) { restMapper, err := runtimeclient.NewDynamicRESTMapper(kubeConfig) if err != nil { @@ -55,13 +65,7 @@ func NewStatusChecker(kubeConfig *rest.Config, pollInterval time.Duration, timeo return nil, err } - return &StatusChecker{ - pollInterval: pollInterval, - timeout: timeout, - client: c, - statusPoller: polling.NewStatusPoller(c, restMapper, polling.Options{}), - logger: log, - }, nil + return NewStatusCheckerWithClient(c, pollInterval, timeout, log) } func (sc *StatusChecker) Assess(identifiers ...object.ObjMetadata) error { From 5685afb9d5136c6b7353b9468ae590f334d7930e Mon Sep 17 00:00:00 2001 From: Ernest Wong Date: Tue, 5 Dec 2023 16:51:32 -0800 Subject: [PATCH 054/154] Fix typos in flux bootstrap documentation Signed-off-by: Ernest Wong --- cmd/flux/bootstrap_bitbucket_server.go | 2 +- cmd/flux/bootstrap_gitlab.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/flux/bootstrap_bitbucket_server.go b/cmd/flux/bootstrap_bitbucket_server.go index 3648f0d2..f4caf62d 100644 --- a/cmd/flux/bootstrap_bitbucket_server.go +++ b/cmd/flux/bootstrap_bitbucket_server.go @@ -56,7 +56,7 @@ the bootstrap command will perform an upgrade if needed.`, # Run bootstrap for a public repository on a personal account flux bootstrap bitbucket-server --owner= --repository= --private=false --personal --hostname= --token-auth --path=clusters/my-cluster - # Run bootstrap for a an existing repository with a branch named main + # Run bootstrap for an existing repository with a branch named main flux bootstrap bitbucket-server --owner= --username= --repository= --branch=main --hostname= --token-auth --path=clusters/my-cluster`, RunE: bootstrapBServerCmdRun, } diff --git a/cmd/flux/bootstrap_gitlab.go b/cmd/flux/bootstrap_gitlab.go index 90e6e968..f281a883 100644 --- a/cmd/flux/bootstrap_gitlab.go +++ b/cmd/flux/bootstrap_gitlab.go @@ -64,7 +64,7 @@ the bootstrap command will perform an upgrade if needed.`, # Run bootstrap for a private repository hosted on a GitLab server flux bootstrap gitlab --owner= --repository= --hostname= --token-auth - # Run bootstrap for a an existing repository with a branch named main + # Run bootstrap for an existing repository with a branch named main flux bootstrap gitlab --owner= --repository= --branch=main --token-auth # Run bootstrap for a private repository using Deploy Token authentication From e4747b55c7965b70f376b842274b2cd8aacc054b Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Fri, 8 Dec 2023 13:02:54 +0000 Subject: [PATCH 055/154] Update toolkit components - source-controller to v1.2.1 https://github.com/fluxcd/source-controller/blob/v1.2.1/CHANGELOG.md - notification-controller to v1.2.1 https://github.com/fluxcd/notification-controller/blob/v1.2.1/CHANGELOG.md - image-reflector-controller to v0.31.0 https://github.com/fluxcd/image-reflector-controller/blob/v0.31.0/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 6 +++--- go.sum | 12 ++++++------ .../image-reflector-controller/kustomization.yaml | 4 ++-- .../bases/notification-controller/kustomization.yaml | 4 ++-- manifests/bases/source-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 354c1459..ef27cffa 100644 --- a/go.mod +++ b/go.mod @@ -14,9 +14,9 @@ require ( github.com/fluxcd/go-git-providers v0.19.1 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 - github.com/fluxcd/image-reflector-controller/api v0.30.0 + github.com/fluxcd/image-reflector-controller/api v0.31.0 github.com/fluxcd/kustomize-controller/api v1.1.1 - github.com/fluxcd/notification-controller/api v1.1.0 + github.com/fluxcd/notification-controller/api v1.2.1 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.15.0 @@ -29,7 +29,7 @@ require ( github.com/fluxcd/pkg/ssh v0.9.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 - github.com/fluxcd/source-controller/api v1.1.2 + github.com/fluxcd/source-controller/api v1.2.1 github.com/go-git/go-git/v5 v5.10.0 github.com/go-logr/logr v1.3.0 github.com/gonvenience/bunt v1.3.5 diff --git a/go.sum b/go.sum index 554510c9..823bc0d9 100644 --- a/go.sum +++ b/go.sum @@ -141,12 +141,12 @@ github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRj github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= -github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= -github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= +github.com/fluxcd/image-reflector-controller/api v0.31.0 h1:9t5zj7ufo9/d57gpcZsD6YAIxFz0vtLH4jXCj379srE= +github.com/fluxcd/image-reflector-controller/api v0.31.0/go.mod h1:/EcjOa/EYi8sSBHcGrBkLjMjNNfC7xXMxqG9phBORCo= github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= -github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDXLnijUddlHeRfciALwQw= -github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= +github.com/fluxcd/notification-controller/api v1.2.1 h1:yPQZ7ppYvazxl/Vsespbx9VlVyopH7p8pKGzZTNxI0c= +github.com/fluxcd/notification-controller/api v1.2.1/go.mod h1:1sWTpAXkga5zkXOgFoR+NIJgHNclBcfAHUJ/rMAjnYY= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -176,8 +176,8 @@ github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= -github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= +github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= diff --git a/manifests/bases/image-reflector-controller/kustomization.yaml b/manifests/bases/image-reflector-controller/kustomization.yaml index e1a30b53..5a2a007f 100644 --- a/manifests/bases/image-reflector-controller/kustomization.yaml +++ b/manifests/bases/image-reflector-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.30.0/image-reflector-controller.crds.yaml -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.30.0/image-reflector-controller.deployment.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.0/image-reflector-controller.crds.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.0/image-reflector-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/notification-controller/kustomization.yaml b/manifests/bases/notification-controller/kustomization.yaml index 262acc6b..c5a34987 100644 --- a/manifests/bases/notification-controller/kustomization.yaml +++ b/manifests/bases/notification-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/notification-controller/releases/download/v1.1.0/notification-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.1.0/notification-controller.deployment.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.1/notification-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.1/notification-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/source-controller/kustomization.yaml b/manifests/bases/source-controller/kustomization.yaml index 7b3d3fec..71b0e930 100644 --- a/manifests/bases/source-controller/kustomization.yaml +++ b/manifests/bases/source-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.1.2/source-controller.crds.yaml -- https://github.com/fluxcd/source-controller/releases/download/v1.1.2/source-controller.deployment.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.1/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.1/source-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index 920f6fec..75c6f34c 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -1,9 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.1.2/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.1/source-controller.crds.yaml - https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.crds.yaml - https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.1.0/notification-controller.crds.yaml -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.30.0/image-reflector-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.1/notification-controller.crds.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.0/image-reflector-controller.crds.yaml - https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.crds.yaml From 2289c6cc6008e24dcc912c715d78ddfbdb39ac5e Mon Sep 17 00:00:00 2001 From: Somtochi Onyekwere Date: Fri, 8 Dec 2023 13:17:28 +0000 Subject: [PATCH 056/154] bootstrap: provide better error message on timeout Check GitRepository and return Ready condition message as part of error on timeout. Signed-off-by: Somtochi Onyekwere --- cmd/flux/events_test.go | 28 +- pkg/bootstrap/bootstrap.go | 95 ++++-- pkg/bootstrap/bootstrap_plain_git.go | 58 +++- pkg/bootstrap/bootstrap_test.go | 469 +++++++++++++++++++++++++++ pkg/status/status.go | 2 +- 5 files changed, 597 insertions(+), 55 deletions(-) create mode 100644 pkg/bootstrap/bootstrap_test.go diff --git a/cmd/flux/events_test.go b/cmd/flux/events_test.go index a6b5e11f..7737f7c4 100644 --- a/cmd/flux/events_test.go +++ b/cmd/flux/events_test.go @@ -27,20 +27,11 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/fake" - helmv2beta1 "github.com/fluxcd/helm-controller/api/v2beta1" - autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" - imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" - kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" - notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1" "github.com/fluxcd/pkg/ssa" - sourcev1 "github.com/fluxcd/source-controller/api/v1" - sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" "github.com/fluxcd/flux2/v2/internal/utils" ) @@ -172,7 +163,7 @@ func Test_getObjectRef(t *testing.T) { objs, err := ssa.ReadObjects(strings.NewReader(objects)) g.Expect(err).To(Not(HaveOccurred())) - builder := fake.NewClientBuilder().WithScheme(getScheme()) + builder := fake.NewClientBuilder().WithScheme(utils.NewScheme()) for _, obj := range objs { builder = builder.WithObjects(obj) } @@ -256,7 +247,7 @@ func Test_getRows(t *testing.T) { objs, err := ssa.ReadObjects(strings.NewReader(objects)) g.Expect(err).To(Not(HaveOccurred())) - builder := fake.NewClientBuilder().WithScheme(getScheme()) + builder := fake.NewClientBuilder().WithScheme(utils.NewScheme()) for _, obj := range objs { builder = builder.WithObjects(obj) } @@ -410,21 +401,6 @@ func getTestListOpt(kind, name string) client.ListOption { return client.MatchingFieldsSelector{Selector: sel} } -func getScheme() *runtime.Scheme { - newscheme := runtime.NewScheme() - corev1.AddToScheme(newscheme) - kustomizev1.AddToScheme(newscheme) - helmv2beta1.AddToScheme(newscheme) - notificationv1.AddToScheme(newscheme) - notificationv1b2.AddToScheme(newscheme) - imagev1.AddToScheme(newscheme) - autov1.AddToScheme(newscheme) - sourcev1.AddToScheme(newscheme) - sourcev1b2.AddToScheme(newscheme) - - return newscheme -} - func createEvent(obj client.Object, eventType, msg, reason string) corev1.Event { return corev1.Event{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/bootstrap/bootstrap.go b/pkg/bootstrap/bootstrap.go index 1111f6e9..10fda941 100644 --- a/pkg/bootstrap/bootstrap.go +++ b/pkg/bootstrap/bootstrap.go @@ -20,7 +20,6 @@ import ( "context" "errors" "fmt" - "k8s.io/apimachinery/pkg/util/wait" "strings" "time" @@ -28,12 +27,17 @@ import ( apierr "k8s.io/apimachinery/pkg/api/errors" apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" + apierrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/wait" "sigs.k8s.io/controller-runtime/pkg/client" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/apis/meta" - sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" + sourcev1 "github.com/fluxcd/source-controller/api/v1" + sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" "github.com/fluxcd/flux2/v2/pkg/manifestgen/install" "github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret" @@ -44,6 +48,11 @@ var ( ErrReconciledWithWarning = errors.New("reconciled with warning") ) +// Reconciler reconciles and reports the health of different +// components and kubernetes resources involved in the installation of Flux. +// +// It is recommended use the `ReconcilerWithSyncCheck` interface that also +// reports the health of the GitRepository. type Reconciler interface { // ReconcileComponents reconciles the components by generating the // manifests with the provided values, committing them to Git and @@ -76,6 +85,14 @@ type RepositoryReconciler interface { ReconcileRepository(ctx context.Context) error } +// ReconcilerWithSyncCheck extends the Reconciler interface to also report the health of the GitReposiotry +// that syncs Flux on the cluster +type ReconcilerWithSyncCheck interface { + Reconciler + // ReportGitRepoHealth reports about the health of the GitRepository synchronizing the components. + ReportGitRepoHealth(ctx context.Context, options sync.Options, pollInterval, timeout time.Duration) error +} + type PostGenerateSecretFunc func(ctx context.Context, secret corev1.Secret, options sourcesecret.Options) error func Run(ctx context.Context, reconciler Reconciler, manifestsBase string, @@ -99,18 +116,22 @@ func Run(ctx context.Context, reconciler Reconciler, manifestsBase string, return err } - var healthErrCount int + var errs []error + if r, ok := reconciler.(ReconcilerWithSyncCheck); ok { + if err := r.ReportGitRepoHealth(ctx, syncOpts, pollInterval, timeout); err != nil { + errs = append(errs, err) + } + } + if err := reconciler.ReportKustomizationHealth(ctx, syncOpts, pollInterval, timeout); err != nil { - healthErrCount++ + errs = append(errs, err) } + if err := reconciler.ReportComponentsHealth(ctx, installOpts, timeout); err != nil { - healthErrCount++ + errs = append(errs, err) } - if healthErrCount > 0 { - // Composing a "smart" error message here from the returned - // errors does not result in any useful information for the - // user, as both methods log the failures they run into. - err = fmt.Errorf("bootstrap failed with %d health check failure(s)", healthErrCount) + if len(errs) > 0 { + err = fmt.Errorf("bootstrap failed with %d health check failure(s): %w", len(errs), apierrors.NewAggregate(errs)) } return err @@ -173,32 +194,47 @@ func kustomizationPathDiffers(ctx context.Context, kube client.Client, objKey cl return k.Spec.Path, nil } -func kustomizationReconciled(kube client.Client, objKey client.ObjectKey, kustomization *kustomizev1.Kustomization, expectRevision string) wait.ConditionWithContextFunc { +type objectWithConditions interface { + client.Object + GetConditions() []metav1.Condition +} + +func objectReconciled(kube client.Client, objKey client.ObjectKey, clientObject objectWithConditions, expectRevision string) wait.ConditionWithContextFunc { return func(ctx context.Context) (bool, error) { - if err := kube.Get(ctx, objKey, kustomization); err != nil { + // for some reason, TypeMeta gets unset after kube.Get so we want to store the GVK and set it after + // ref https://github.com/kubernetes-sigs/controller-runtime/issues/1517#issuecomment-844703142 + gvk := clientObject.GetObjectKind().GroupVersionKind() + if err := kube.Get(ctx, objKey, clientObject); err != nil { return false, err } + clientObject.GetObjectKind().SetGroupVersionKind(gvk) - // Detect suspended Kustomization, as this would result in an endless wait - if kustomization.Spec.Suspend { - return false, fmt.Errorf("Kustomization is suspended") + kind := gvk.Kind + obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(clientObject) + if err != nil { + return false, err } - // Confirm the state we are observing is for the current generation - if kustomization.Generation != kustomization.Status.ObservedGeneration { - return false, nil + // Detect suspended object, as this would result in an endless wait + if suspended, ok, _ := unstructured.NestedBool(obj, "spec", "suspend"); ok && suspended { + return false, fmt.Errorf("%s '%s' is suspended", kind, objKey.String()) } - // Confirm the given revision has been attempted by the controller - if sourcev1.TransformLegacyRevision(kustomization.Status.LastAttemptedRevision) != expectRevision { + // Confirm the state we are observing is for the current generation + if generation, ok, _ := unstructured.NestedInt64(obj, "status", "observedGeneration"); ok && generation != clientObject.GetGeneration() { return false, nil } // Confirm the resource is healthy - if c := apimeta.FindStatusCondition(kustomization.Status.Conditions, meta.ReadyCondition); c != nil { + if c := apimeta.FindStatusCondition(clientObject.GetConditions(), meta.ReadyCondition); c != nil { switch c.Status { case metav1.ConditionTrue: - return true, nil + // Confirm the given revision has been attempted by the controller + hasRev, err := hasRevision(kind, obj, expectRevision) + if err != nil { + return false, err + } + return hasRev, nil case metav1.ConditionFalse: return false, fmt.Errorf(c.Message) } @@ -207,6 +243,21 @@ func kustomizationReconciled(kube client.Client, objKey client.ObjectKey, kustom } } +// hasRevision checks that the reconciled revision (for Kustomization this is `.status.lastAttemptedRevision` +// and for Source APIs, it is stored in `.status.artifact.revision`) is the same as the expectedRev +func hasRevision(kind string, obj map[string]interface{}, expectedRev string) (bool, error) { + var rev string + switch kind { + case sourcev1.GitRepositoryKind, sourcev1b2.OCIRepositoryKind, sourcev1b2.BucketKind, sourcev1b2.HelmChartKind: + rev, _, _ = unstructured.NestedString(obj, "status", "artifact", "revision") + case kustomizev1.KustomizationKind: + rev, _, _ = unstructured.NestedString(obj, "status", "lastAttemptedRevision") + default: + return false, fmt.Errorf("cannot get status revision for kind: '%s'", kind) + } + return sourcev1b2.TransformLegacyRevision(rev) == expectedRev, nil +} + func retry(retries int, wait time.Duration, fn func() error) (err error) { for i := 0; ; i++ { err = fn() diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index 1be3d265..fbba4e69 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -29,6 +29,8 @@ import ( "github.com/ProtonMail/go-crypto/openpgp" gogit "github.com/go-git/go-git/v5" corev1 "k8s.io/api/core/v1" + apimeta "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/cli-runtime/pkg/genericclioptions" @@ -38,10 +40,12 @@ import ( "github.com/fluxcd/cli-utils/pkg/object" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" + "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/pkg/git" "github.com/fluxcd/pkg/git/repository" "github.com/fluxcd/pkg/kustomize/filesys" runclient "github.com/fluxcd/pkg/runtime/client" + sourcev1 "github.com/fluxcd/source-controller/api/v1" "github.com/fluxcd/flux2/v2/internal/utils" "github.com/fluxcd/flux2/v2/pkg/log" @@ -397,20 +401,62 @@ func (b *PlainGitBootstrapper) ReportKustomizationHealth(ctx context.Context, op objKey := client.ObjectKey{Name: options.Name, Namespace: options.Namespace} - b.logger.Waitingf("waiting for Kustomization %q to be reconciled", objKey.String()) - expectRevision := fmt.Sprintf("%s@%s", options.Branch, git.Hash(head).Digest()) - var k kustomizev1.Kustomization + b.logger.Waitingf("waiting for Kustomization %q to be reconciled", objKey.String()) + k := &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + }, + } if err := wait.PollUntilContextTimeout(ctx, pollInterval, timeout, true, - kustomizationReconciled(b.kube, objKey, &k, expectRevision)); err != nil { + objectReconciled(b.kube, objKey, k, expectRevision)); err != nil { + // If the poll timed out, we want to log the ready condition message as + // that likely contains the reason + if errors.Is(err, context.DeadlineExceeded) { + readyCondition := apimeta.FindStatusCondition(k.Status.Conditions, meta.ReadyCondition) + if readyCondition != nil && readyCondition.Status != metav1.ConditionTrue { + err = fmt.Errorf("kustomization '%s' not ready: '%s'", objKey, readyCondition.Message) + } + } b.logger.Failuref(err.Error()) - return err + return fmt.Errorf("error while waiting for Kustomization to be ready: '%s'", err) } - b.logger.Successf("Kustomization reconciled successfully") return nil } +func (b *PlainGitBootstrapper) ReportGitRepoHealth(ctx context.Context, options sync.Options, pollInterval, timeout time.Duration) error { + head, err := b.gitClient.Head() + if err != nil { + return err + } + + objKey := client.ObjectKey{Name: options.Name, Namespace: options.Namespace} + + b.logger.Waitingf("waiting for GitRepository %q to be reconciled", objKey.String()) + expectRevision := fmt.Sprintf("%s@%s", options.Branch, git.Hash(head).Digest()) + g := &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + } + if err := wait.PollUntilContextTimeout(ctx, pollInterval, timeout, true, + objectReconciled(b.kube, objKey, g, expectRevision)); err != nil { + // If the poll timed out, we want to log the ready condition message as + // that likely contains the reason + if errors.Is(err, context.DeadlineExceeded) { + readyCondition := apimeta.FindStatusCondition(g.Status.Conditions, meta.ReadyCondition) + if readyCondition != nil && readyCondition.Status != metav1.ConditionTrue { + err = fmt.Errorf("gitrepository '%s' not ready: '%s'", objKey, readyCondition.Message) + } + } + b.logger.Failuref(err.Error()) + return fmt.Errorf("error while waiting for GitRepository to be ready: '%s'", err) + } + b.logger.Successf("GitRepsoitory reconciled successfully") + return nil +} func (b *PlainGitBootstrapper) ReportComponentsHealth(ctx context.Context, install install.Options, timeout time.Duration) error { cfg, err := utils.KubeConfig(b.restClientGetter, b.restClientOptions) if err != nil { diff --git a/pkg/bootstrap/bootstrap_test.go b/pkg/bootstrap/bootstrap_test.go new file mode 100644 index 00000000..47bf07f9 --- /dev/null +++ b/pkg/bootstrap/bootstrap_test.go @@ -0,0 +1,469 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package bootstrap + +import ( + "context" + "testing" + + "github.com/fluxcd/pkg/apis/meta" + . "github.com/onsi/gomega" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" + + "github.com/fluxcd/flux2/v2/internal/utils" + kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + sourcev1 "github.com/fluxcd/source-controller/api/v1" + sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" +) + +func Test_hasRevision(t *testing.T) { + var revision = "main@sha1:5bf3a8f9bb0aa5ae8afd6208f43757ab73fc033a" + + tests := []struct { + name string + obj objectWithConditions + rev string + expectErr bool + expectedBool bool + }{ + { + name: "Kustomization revision", + obj: &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + }, + Status: kustomizev1.KustomizationStatus{ + LastAttemptedRevision: "main@sha1:5bf3a8f9bb0aa5ae8afd6208f43757ab73fc033a", + }, + }, + expectedBool: true, + }, + { + name: "GitRepository revision", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + Status: sourcev1.GitRepositoryStatus{ + Artifact: &sourcev1.Artifact{ + Revision: "main@sha1:5bf3a8f9bb0aa5ae8afd6208f43757ab73fc033a", + }, + }, + }, + expectedBool: true, + }, + { + name: "GitRepository revision (wrong revision)", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + Status: sourcev1.GitRepositoryStatus{ + Artifact: &sourcev1.Artifact{ + Revision: "main@sha1:e7f3a8f9bb0aa5ae8afd6208f43757ab73fc043a", + }, + }, + }, + }, + { + name: "Kustomization revision (empty revision)", + obj: &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + }, + Status: kustomizev1.KustomizationStatus{ + LastAttemptedRevision: "", + }, + }, + }, + { + name: "OCIRepository revision", + obj: &sourcev1b2.OCIRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1b2.OCIRepositoryKind, + }, + Status: sourcev1b2.OCIRepositoryStatus{ + Artifact: &sourcev1.Artifact{ + Revision: "main@sha1:5bf3a8f9bb0aa5ae8afd6208f43757ab73fc033a", + }, + }, + }, + expectedBool: true, + }, + { + name: "Alert revision(Not supported)", + obj: ¬ificationv1.Alert{ + TypeMeta: metav1.TypeMeta{ + Kind: notificationv1.AlertKind, + }, + Status: notificationv1.AlertStatus{ + ObservedGeneration: 1, + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + g := NewWithT(t) + obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tt.obj) + g.Expect(err).To(BeNil()) + got, err := hasRevision(tt.obj.GetObjectKind().GroupVersionKind().Kind, obj, revision) + if tt.expectErr { + g.Expect(err).To(HaveOccurred()) + return + } + g.Expect(got).To(Equal(tt.expectedBool)) + }) + } +} + +func Test_objectReconciled(t *testing.T) { + expectedRev := "main@sha1:5bf3a8f9bb0aa5ae8afd6208f43757ab73fc033a" + + type updateStatus struct { + statusFn func(o client.Object) + expectedErr bool + expectedBool bool + } + tests := []struct { + name string + obj objectWithConditions + statuses []updateStatus + }{ + { + name: "GitRepository with no status", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: false, + }, + }, + }, + { + name: "suspended Kustomization", + obj: &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + APIVersion: kustomizev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + }, + Spec: kustomizev1.KustomizationSpec{ + Suspend: true, + }, + }, + statuses: []updateStatus{ + { + expectedErr: true, + }, + }, + }, + { + name: "Kustomization - status with old generation", + obj: &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + APIVersion: kustomizev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: kustomizev1.KustomizationStatus{ + ObservedGeneration: -1, + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: false, + }, + }, + }, + { + name: "GitRepository - status with same generation but no conditions", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: false, + }, + }, + }, + { + name: "GitRepository - status with conditions but no ready condition", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReconcilingCondition, Status: metav1.ConditionTrue, ObservedGeneration: 1, Reason: "Progressing", Message: "Progressing"}, + }, + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: false, + }, + }, + }, + { + name: "Kustomization - status with false ready condition", + obj: &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + APIVersion: kustomizev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: kustomizev1.KustomizationStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionFalse, ObservedGeneration: 1, Reason: "Failing", Message: "Failed to clone"}, + }, + }, + }, + statuses: []updateStatus{ + { + expectedErr: true, + expectedBool: false, + }, + }, + }, + { + name: "Kustomization - status with true ready condition but different revision", + obj: &kustomizev1.Kustomization{ + TypeMeta: metav1.TypeMeta{ + Kind: kustomizev1.KustomizationKind, + APIVersion: kustomizev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: kustomizev1.KustomizationStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionTrue, ObservedGeneration: 1, Reason: "Passing", Message: "Applied revision"}, + }, + LastAttemptedRevision: "main@sha1:e7f3a8f9bb0aa5ae8afd6208f43757ab73fc043a", + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: false, + }, + }, + }, + { + name: "GitRepository - status with true ready condition but different revision", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionTrue, ObservedGeneration: 1, Reason: "Readyyy", Message: "Cloned successfully"}, + }, + Artifact: &sourcev1.Artifact{ + Revision: "main@sha1:e7f3a8f9bb0aa5ae8afd6208f43757ab73fc043a", + }, + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: false, + }, + }, + }, + { + name: "GitRepository - ready with right revision", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + Status: sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionTrue, ObservedGeneration: 1, Reason: "Readyyy", Message: "Cloned successfully"}, + }, + Artifact: &sourcev1.Artifact{ + Revision: expectedRev, + }, + }, + }, + statuses: []updateStatus{ + { + expectedErr: false, + expectedBool: true, + }, + }, + }, + { + name: "GitRepository - sequence of status updates before ready", + obj: &sourcev1.GitRepository{ + TypeMeta: metav1.TypeMeta{ + Kind: sourcev1.GitRepositoryKind, + APIVersion: sourcev1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "flux-system", + Namespace: "flux-system", + Generation: 1, + }, + }, + statuses: []updateStatus{ + { + // observed gen different + statusFn: func(o client.Object) { + gitRepo := o.(*sourcev1.GitRepository) + gitRepo.Status = sourcev1.GitRepositoryStatus{ + ObservedGeneration: -1, + } + }, + }, + { + // ready failing + statusFn: func(o client.Object) { + gitRepo := o.(*sourcev1.GitRepository) + gitRepo.Status = sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionFalse, ObservedGeneration: 1, Reason: "Not Ready", Message: "Transient connection issue"}, + }, + } + }, + expectedErr: true, + }, + { + // updated to a different revision + statusFn: func(o client.Object) { + gitRepo := o.(*sourcev1.GitRepository) + gitRepo.Status = sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionTrue, ObservedGeneration: 1, Reason: "Readyyy", Message: "Cloned successfully"}, + }, + Artifact: &sourcev1.Artifact{ + Revision: "wrong rev", + }, + } + }, + }, + { + // updated to the expected revision + statusFn: func(o client.Object) { + gitRepo := o.(*sourcev1.GitRepository) + gitRepo.Status = sourcev1.GitRepositoryStatus{ + ObservedGeneration: 1, + Conditions: []metav1.Condition{ + {Type: meta.ReadyCondition, Status: metav1.ConditionTrue, ObservedGeneration: 1, Reason: "Readyyy", Message: "Cloned successfully"}, + }, + Artifact: &sourcev1.Artifact{ + Revision: expectedRev, + }, + } + }, + expectedBool: true, + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + g := NewWithT(t) + builder := fake.NewClientBuilder().WithScheme(utils.NewScheme()) + builder.WithObjects(tt.obj) + + kubeClient := builder.Build() + + for _, updates := range tt.statuses { + if updates.statusFn != nil { + updates.statusFn(tt.obj) + g.Expect(kubeClient.Update(context.TODO(), tt.obj)).To(Succeed()) + } + + waitFunc := objectReconciled(kubeClient, client.ObjectKeyFromObject(tt.obj), tt.obj, expectedRev) + got, err := waitFunc(context.TODO()) + g.Expect(err != nil).To(Equal(updates.expectedErr)) + g.Expect(got).To(Equal(updates.expectedBool)) + } + }) + } +} diff --git a/pkg/status/status.go b/pkg/status/status.go index 859c4a1e..5f20e90f 100644 --- a/pkg/status/status.go +++ b/pkg/status/status.go @@ -98,7 +98,7 @@ func (sc *StatusChecker) Assess(identifiers ...object.ObjMetadata) error { } if coll.Error != nil || ctx.Err() == context.DeadlineExceeded { - return fmt.Errorf("timed out waiting for condition") + return fmt.Errorf("timed out waiting for all resources to be ready") } return nil } From 05c13fe35a62b2e434b7ea6d46ffd3bd03aa7f1c Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 8 Dec 2023 13:38:08 +0000 Subject: [PATCH 057/154] check readiness using kstatus This change replaces all the many functions and ways of calculating readiness of objects into one unified way that uses kstatus.Compute() to check if the object is in progress or current. Only the objects that are current are considered to be ready. This takes advantage of the kstatus compatibility of Flux's APIs and also makes sure that they remain kstatus compatible. The new isObjectReady() function is also aware of static/statusless objects and knows how to check their readiness using kstatus. This prepares the CLI for the upcoming static API objects. All the is*Ready() functions for specific objects have been removed. This change doesn't affect any of the existing tests results. Introduce suspend and resume subcommands for alert-provider. Signed-off-by: Sunny --- cmd/flux/create.go | 2 +- cmd/flux/create_alert.go | 22 +--- cmd/flux/create_alertprovider.go | 22 +--- cmd/flux/create_helmrelease.go | 19 +--- cmd/flux/create_kustomization.go | 27 +---- cmd/flux/create_receiver.go | 22 +--- cmd/flux/create_source_bucket.go | 29 +----- cmd/flux/create_source_git.go | 29 +----- cmd/flux/create_source_git_test.go | 11 ++ cmd/flux/create_source_helm.go | 29 +----- cmd/flux/create_source_oci.go | 29 +----- cmd/flux/main_e2e_test.go | 5 + cmd/flux/main_unit_test.go | 9 +- cmd/flux/readiness.go | 149 ++++++++++++++++++++++++++++ cmd/flux/readiness_test.go | 139 ++++++++++++++++++++++++++ cmd/flux/reconcile.go | 46 +++------ cmd/flux/reconcile_alert.go | 2 +- cmd/flux/reconcile_alertprovider.go | 61 ++---------- cmd/flux/reconcile_receiver.go | 67 ++----------- cmd/flux/resume.go | 2 +- cmd/flux/resume_alertprovider.go | 60 +++++++++++ cmd/flux/status.go | 47 +-------- cmd/flux/suspend_alertprovider.go | 56 +++++++++++ 23 files changed, 464 insertions(+), 420 deletions(-) create mode 100644 cmd/flux/readiness.go create mode 100644 cmd/flux/readiness_test.go create mode 100644 cmd/flux/resume_alertprovider.go create mode 100644 cmd/flux/suspend_alertprovider.go diff --git a/cmd/flux/create.go b/cmd/flux/create.go index 795d9367..209c8f0a 100644 --- a/cmd/flux/create.go +++ b/cmd/flux/create.go @@ -132,7 +132,7 @@ func (names apiType) upsertAndWait(object upsertWaitable, mutate func() error) e logger.Waitingf("waiting for %s reconciliation", names.kind) if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isReady(kubeClient, namespacedName, object)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, object.asClientObject())); err != nil { return err } logger.Successf("%s reconciliation completed", names.kind) diff --git a/cmd/flux/create_alert.go b/cmd/flux/create_alert.go index 0f50bf02..22a5d289 100644 --- a/cmd/flux/create_alert.go +++ b/cmd/flux/create_alert.go @@ -22,7 +22,6 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/api/errors" - apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" @@ -133,7 +132,7 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Alert reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isAlertReady(kubeClient, namespacedName, &alert)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, &alert)); err != nil { return err } logger.Successf("Alert %s is ready", name) @@ -170,22 +169,3 @@ func upsertAlert(ctx context.Context, kubeClient client.Client, logger.Successf("Alert updated") return namespacedName, nil } - -func isAlertReady(kubeClient client.Client, namespacedName types.NamespacedName, alert *notificationv1b2.Alert) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, alert) - if err != nil { - return false, err - } - - if c := apimeta.FindStatusCondition(alert.Status.Conditions, meta.ReadyCondition); c != nil { - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_alertprovider.go b/cmd/flux/create_alertprovider.go index 8523d1c5..468ec5d8 100644 --- a/cmd/flux/create_alertprovider.go +++ b/cmd/flux/create_alertprovider.go @@ -22,7 +22,6 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/api/errors" - apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" @@ -128,7 +127,7 @@ func createAlertProviderCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Provider reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isAlertProviderReady(kubeClient, namespacedName, &provider)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, &provider)); err != nil { return err } @@ -167,22 +166,3 @@ func upsertAlertProvider(ctx context.Context, kubeClient client.Client, logger.Successf("Provider updated") return namespacedName, nil } - -func isAlertProviderReady(kubeClient client.Client, namespacedName types.NamespacedName, provider *notificationv1.Provider) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, provider) - if err != nil { - return false, err - } - - if c := apimeta.FindStatusCondition(provider.Status.Conditions, meta.ReadyCondition); c != nil { - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_helmrelease.go b/cmd/flux/create_helmrelease.go index b6ef92b3..64bfcfe3 100644 --- a/cmd/flux/create_helmrelease.go +++ b/cmd/flux/create_helmrelease.go @@ -32,7 +32,6 @@ import ( "github.com/spf13/cobra" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "k8s.io/apimachinery/pkg/api/errors" - apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" @@ -304,7 +303,7 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for HelmRelease reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isHelmReleaseReady(kubeClient, namespacedName, &helmRelease)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, &helmRelease)); err != nil { return err } logger.Successf("HelmRelease %s is ready", name) @@ -344,22 +343,6 @@ func upsertHelmRelease(ctx context.Context, kubeClient client.Client, return namespacedName, nil } -func isHelmReleaseReady(kubeClient client.Client, namespacedName types.NamespacedName, helmRelease *helmv2.HelmRelease) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, helmRelease) - if err != nil { - return false, err - } - - // Confirm the state we are observing is for the current generation - if helmRelease.Generation != helmRelease.Status.ObservedGeneration { - return false, nil - } - - return apimeta.IsStatusConditionTrue(helmRelease.Status.Conditions, meta.ReadyCondition), nil - } -} - func validateStrategy(input string) bool { allowedStrategy := []string{"Revision", "ChartVersion"} diff --git a/cmd/flux/create_kustomization.go b/cmd/flux/create_kustomization.go index eb2f8fc1..ec9a5293 100644 --- a/cmd/flux/create_kustomization.go +++ b/cmd/flux/create_kustomization.go @@ -24,7 +24,6 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/api/errors" - apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" @@ -264,7 +263,7 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Kustomization reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isKustomizationReady(kubeClient, namespacedName, &kustomization)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, &kustomization)); err != nil { return err } logger.Successf("Kustomization %s is ready", name) @@ -303,27 +302,3 @@ func upsertKustomization(ctx context.Context, kubeClient client.Client, logger.Successf("Kustomization updated") return namespacedName, nil } - -func isKustomizationReady(kubeClient client.Client, namespacedName types.NamespacedName, kustomization *kustomizev1.Kustomization) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, kustomization) - if err != nil { - return false, err - } - - // Confirm the state we are observing is for the current generation - if kustomization.Generation != kustomization.Status.ObservedGeneration { - return false, nil - } - - if c := apimeta.FindStatusCondition(kustomization.Status.Conditions, meta.ReadyCondition); c != nil { - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_receiver.go b/cmd/flux/create_receiver.go index 045ff771..ad6436cf 100644 --- a/cmd/flux/create_receiver.go +++ b/cmd/flux/create_receiver.go @@ -22,7 +22,6 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/api/errors" - apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" @@ -140,7 +139,7 @@ func createReceiverCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Receiver reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isReceiverReady(kubeClient, namespacedName, &receiver)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, &receiver)); err != nil { return err } logger.Successf("Receiver %s is ready", name) @@ -179,22 +178,3 @@ func upsertReceiver(ctx context.Context, kubeClient client.Client, logger.Successf("Receiver updated") return namespacedName, nil } - -func isReceiverReady(kubeClient client.Client, namespacedName types.NamespacedName, receiver *notificationv1.Receiver) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, receiver) - if err != nil { - return false, err - } - - if c := apimeta.FindStatusCondition(receiver.Status.Conditions, meta.ReadyCondition); c != nil { - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_source_bucket.go b/cmd/flux/create_source_bucket.go index ebb6a834..32c88730 100644 --- a/cmd/flux/create_source_bucket.go +++ b/cmd/flux/create_source_bucket.go @@ -31,7 +31,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "github.com/fluxcd/pkg/apis/meta" - "github.com/fluxcd/pkg/runtime/conditions" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -205,7 +204,7 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Bucket source reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isBucketReady(kubeClient, namespacedName, bucket)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, bucket)); err != nil { return err } logger.Successf("Bucket source reconciliation completed") @@ -247,29 +246,3 @@ func upsertBucket(ctx context.Context, kubeClient client.Client, logger.Successf("Bucket source updated") return namespacedName, nil } - -func isBucketReady(kubeClient client.Client, namespacedName types.NamespacedName, bucket *sourcev1.Bucket) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, bucket) - if err != nil { - return false, err - } - - if c := conditions.Get(bucket, meta.ReadyCondition); c != nil { - // Confirm the Ready condition we are observing is for the - // current generation - if c.ObservedGeneration != bucket.GetGeneration() { - return false, nil - } - - // Further check the Status - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_source_git.go b/cmd/flux/create_source_git.go index 8c0d031d..67b03dab 100644 --- a/cmd/flux/create_source_git.go +++ b/cmd/flux/create_source_git.go @@ -35,7 +35,6 @@ import ( "sigs.k8s.io/yaml" "github.com/fluxcd/pkg/apis/meta" - "github.com/fluxcd/pkg/runtime/conditions" sourcev1 "github.com/fluxcd/source-controller/api/v1" @@ -326,7 +325,7 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for GitRepository source reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isGitRepositoryReady(kubeClient, namespacedName, &gitRepository)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, &gitRepository)); err != nil { return err } logger.Successf("GitRepository source reconciliation completed") @@ -368,29 +367,3 @@ func upsertGitRepository(ctx context.Context, kubeClient client.Client, logger.Successf("GitRepository source updated") return namespacedName, nil } - -func isGitRepositoryReady(kubeClient client.Client, namespacedName types.NamespacedName, gitRepository *sourcev1.GitRepository) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, gitRepository) - if err != nil { - return false, err - } - - if c := conditions.Get(gitRepository, meta.ReadyCondition); c != nil { - // Confirm the Ready condition we are observing is for the - // current generation - if c.ObservedGeneration != gitRepository.GetGeneration() { - return false, nil - } - - // Further check the Status - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_source_git_test.go b/cmd/flux/create_source_git_test.go index 27365990..b34e4208 100644 --- a/cmd/flux/create_source_git_test.go +++ b/cmd/flux/create_source_git_test.go @@ -181,12 +181,21 @@ func TestCreateSourceGit(t *testing.T) { Time: time.Now(), }, } + repo.Status.ObservedGeneration = repo.GetGeneration() }, }, { "Failed", command, assertError("failed message"), func(repo *sourcev1.GitRepository) { + stalledCondition := metav1.Condition{ + Type: meta.StalledCondition, + Status: metav1.ConditionTrue, + Reason: sourcev1.URLInvalidReason, + Message: "failed message", + ObservedGeneration: repo.GetGeneration(), + } + apimeta.SetStatusCondition(&repo.Status.Conditions, stalledCondition) newCondition := metav1.Condition{ Type: meta.ReadyCondition, Status: metav1.ConditionFalse, @@ -195,6 +204,7 @@ func TestCreateSourceGit(t *testing.T) { ObservedGeneration: repo.GetGeneration(), } apimeta.SetStatusCondition(&repo.Status.Conditions, newCondition) + repo.Status.ObservedGeneration = repo.GetGeneration() }, }, { "NoArtifact", @@ -210,6 +220,7 @@ func TestCreateSourceGit(t *testing.T) { ObservedGeneration: repo.GetGeneration(), } apimeta.SetStatusCondition(&repo.Status.Conditions, newCondition) + repo.Status.ObservedGeneration = repo.GetGeneration() }, }, } diff --git a/cmd/flux/create_source_helm.go b/cmd/flux/create_source_helm.go index ea82fa8a..5b46f45e 100644 --- a/cmd/flux/create_source_helm.go +++ b/cmd/flux/create_source_helm.go @@ -23,7 +23,6 @@ import ( "os" "github.com/fluxcd/pkg/apis/meta" - "github.com/fluxcd/pkg/runtime/conditions" "github.com/spf13/cobra" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -232,7 +231,7 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for HelmRepository source reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isHelmRepositoryReady(kubeClient, namespacedName, helmRepository)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, helmRepository)); err != nil { return err } logger.Successf("HelmRepository source reconciliation completed") @@ -279,29 +278,3 @@ func upsertHelmRepository(ctx context.Context, kubeClient client.Client, logger.Successf("source updated") return namespacedName, nil } - -func isHelmRepositoryReady(kubeClient client.Client, namespacedName types.NamespacedName, helmRepository *sourcev1.HelmRepository) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, helmRepository) - if err != nil { - return false, err - } - - if c := conditions.Get(helmRepository, meta.ReadyCondition); c != nil { - // Confirm the Ready condition we are observing is for the - // current generation - if c.ObservedGeneration != helmRepository.GetGeneration() { - return false, nil - } - - // Further check the Status - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/create_source_oci.go b/cmd/flux/create_source_oci.go index 30fc4d8d..6393380c 100644 --- a/cmd/flux/create_source_oci.go +++ b/cmd/flux/create_source_oci.go @@ -29,7 +29,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "github.com/fluxcd/pkg/apis/meta" - "github.com/fluxcd/pkg/runtime/conditions" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -193,7 +192,7 @@ func createSourceOCIRepositoryCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for OCIRepository reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isOCIRepositoryReady(kubeClient, namespacedName, repository)); err != nil { + isObjectReadyConditionFunc(kubeClient, namespacedName, repository)); err != nil { return err } logger.Successf("OCIRepository reconciliation completed") @@ -235,29 +234,3 @@ func upsertOCIRepository(ctx context.Context, kubeClient client.Client, logger.Successf("OCIRepository updated") return namespacedName, nil } - -func isOCIRepositoryReady(kubeClient client.Client, namespacedName types.NamespacedName, ociRepository *sourcev1.OCIRepository) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, ociRepository) - if err != nil { - return false, err - } - - if c := conditions.Get(ociRepository, meta.ReadyCondition); c != nil { - // Confirm the Ready condition we are observing is for the - // current generation - if c.ObservedGeneration != ociRepository.GetGeneration() { - return false, nil - } - - // Further check the Status - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/main_e2e_test.go b/cmd/flux/main_e2e_test.go index 008b810f..f2b01cc6 100644 --- a/cmd/flux/main_e2e_test.go +++ b/cmd/flux/main_e2e_test.go @@ -25,10 +25,15 @@ import ( "os" "testing" + "github.com/go-logr/logr" + "sigs.k8s.io/controller-runtime/pkg/log" + "github.com/fluxcd/flux2/v2/internal/utils" ) func TestMain(m *testing.M) { + log.SetLogger(logr.New(log.NullLogSink{})) + // Ensure tests print consistent timestamps regardless of timezone os.Setenv("TZ", "UTC") diff --git a/cmd/flux/main_unit_test.go b/cmd/flux/main_unit_test.go index 8d3e6398..8e0af1aa 100644 --- a/cmd/flux/main_unit_test.go +++ b/cmd/flux/main_unit_test.go @@ -22,10 +22,13 @@ package main import ( "context" "fmt" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "os" "testing" + + "github.com/go-logr/logr" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/log" ) // The test environment is long running process shared between tests, initialized @@ -34,6 +37,8 @@ import ( var testEnv *testEnvKubeManager func TestMain(m *testing.M) { + log.SetLogger(logr.New(log.NullLogSink{})) + // Ensure tests print consistent timestamps regardless of timezone os.Setenv("TZ", "UTC") diff --git a/cmd/flux/readiness.go b/cmd/flux/readiness.go new file mode 100644 index 00000000..f201625f --- /dev/null +++ b/cmd/flux/readiness.go @@ -0,0 +1,149 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "context" + "fmt" + + kstatus "github.com/fluxcd/cli-utils/pkg/kstatus/status" + apimeta "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" + "sigs.k8s.io/controller-runtime/pkg/client" + + "github.com/fluxcd/pkg/apis/meta" + "github.com/fluxcd/pkg/runtime/object" + "github.com/fluxcd/pkg/runtime/patch" +) + +// objectStatusType is the type of object in terms of status when computing the +// readiness of an object. Readiness check method depends on the type of object. +// For a dynamic object, Ready status condition is considered only for the +// latest generation of the object. For a static object that don't have any +// condition, the object generation is not considered. +type objectStatusType int + +const ( + objectStatusDynamic objectStatusType = iota + objectStatusStatic +) + +// isObjectReady determines if an object is ready using the kstatus.Compute() +// result. statusType helps differenciate between static and dynamic objects to +// accurately check the object's readiness. A dynamic object may have some extra +// considerations depending on the object. +func isObjectReady(obj client.Object, statusType objectStatusType) (bool, error) { + observedGen, err := object.GetStatusObservedGeneration(obj) + if err != nil && err != object.ErrObservedGenerationNotFound { + return false, err + } + + if statusType == objectStatusDynamic { + // Object not reconciled yet. + if observedGen < 1 { + return false, nil + } + + cobj, ok := obj.(meta.ObjectWithConditions) + if !ok { + return false, fmt.Errorf("unable to get conditions from object") + } + + if c := apimeta.FindStatusCondition(cobj.GetConditions(), meta.ReadyCondition); c != nil { + // Ensure that the ready condition is for the latest generation of + // the object. + // NOTE: Some APIs like ImageUpdateAutomation and HelmRelease don't + // support per condition observed generation yet. Per condition + // observed generation for them are always zero. + // There are two strategies used across different object kinds to + // check the latest ready condition: + // - check that the ready condition's generation matches the + // object's generation. + // - check that the observed generation of the object in the + // status matches the object's generation. + // + // TODO: Once ImageUpdateAutomation and HelmRelease APIs have per + // condition observed generation, remove the object's observed + // generation and object's generation check (the second condition + // below). Also, try replacing this readiness check function with + // fluxcd/pkg/ssa's ResourceManager.Wait(), which uses kstatus + // internally to check readiness of the objects. + if c.ObservedGeneration != 0 && c.ObservedGeneration != obj.GetGeneration() { + return false, nil + } + if c.ObservedGeneration == 0 && observedGen != obj.GetGeneration() { + return false, nil + } + } else { + return false, nil + } + } + + u, err := patch.ToUnstructured(obj) + if err != nil { + return false, err + } + result, err := kstatus.Compute(u) + if err != nil { + return false, err + } + switch result.Status { + case kstatus.CurrentStatus: + return true, nil + case kstatus.InProgressStatus: + return false, nil + default: + return false, fmt.Errorf(result.Message) + } +} + +// isObjectReadyConditionFunc returns a wait.ConditionFunc to be used with +// wait.Poll* while polling for an object with dynamic status to be ready. +func isObjectReadyConditionFunc(kubeClient client.Client, namespaceName types.NamespacedName, obj client.Object) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { + err := kubeClient.Get(ctx, namespaceName, obj) + if err != nil { + return false, err + } + + return isObjectReady(obj, objectStatusDynamic) + } +} + +// isStaticObjectReadyConditionFunc returns a wait.ConditionFunc to be used with +// wait.Poll* while polling for an object with static or no status to be +// ready. +func isStaticObjectReadyConditionFunc(kubeClient client.Client, namespaceName types.NamespacedName, obj client.Object) wait.ConditionWithContextFunc { + return func(ctx context.Context) (bool, error) { + err := kubeClient.Get(ctx, namespaceName, obj) + if err != nil { + return false, err + } + + return isObjectReady(obj, objectStatusStatic) + } +} + +// kstatusCompute returns the kstatus computed result of a given object. +func kstatusCompute(obj client.Object) (result *kstatus.Result, err error) { + u, err := patch.ToUnstructured(obj) + if err != nil { + return result, err + } + return kstatus.Compute(u) +} diff --git a/cmd/flux/readiness_test.go b/cmd/flux/readiness_test.go new file mode 100644 index 00000000..4d987042 --- /dev/null +++ b/cmd/flux/readiness_test.go @@ -0,0 +1,139 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" + + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" + "github.com/fluxcd/pkg/apis/meta" + "github.com/fluxcd/pkg/runtime/conditions" + sourcev1 "github.com/fluxcd/source-controller/api/v1" +) + +func Test_isObjectReady(t *testing.T) { + // Ready object. + readyObj := &sourcev1.GitRepository{} + readyObj.Generation = 1 + readyObj.Status.ObservedGeneration = 1 + conditions.MarkTrue(readyObj, meta.ReadyCondition, "foo1", "bar1") + + // Not ready object. + notReadyObj := readyObj.DeepCopy() + conditions.MarkFalse(notReadyObj, meta.ReadyCondition, "foo2", "bar2") + + // Not reconciled object. + notReconciledObj := readyObj.DeepCopy() + notReconciledObj.Status = sourcev1.GitRepositoryStatus{ObservedGeneration: -1} + + // No condition. + noConditionObj := readyObj.DeepCopy() + noConditionObj.Status = sourcev1.GitRepositoryStatus{ObservedGeneration: 1} + + // Outdated condition. + readyObjOutdated := readyObj.DeepCopy() + readyObjOutdated.Generation = 2 + + // Object without per condition observed generation. + oldObj := readyObj.DeepCopy() + readyTrueCondn := conditions.TrueCondition(meta.ReadyCondition, "foo3", "bar3") + oldObj.Status.Conditions = []metav1.Condition{*readyTrueCondn} + + // Outdated object without per condition observed generation. + oldObjOutdated := oldObj.DeepCopy() + oldObjOutdated.Generation = 2 + + // Empty status object. + staticObj := readyObj.DeepCopy() + staticObj.Status = sourcev1.GitRepositoryStatus{} + + // No status object. + noStatusObj := ¬ificationv1.Provider{} + noStatusObj.Generation = 1 + + type args struct { + obj client.Object + statusType objectStatusType + } + tests := []struct { + name string + args args + want bool + wantErr bool + }{ + { + name: "dynamic ready", + args: args{obj: readyObj, statusType: objectStatusDynamic}, + want: true, + }, + { + name: "dynamic not ready", + args: args{obj: notReadyObj, statusType: objectStatusDynamic}, + want: false, + }, + { + name: "dynamic not reconciled", + args: args{obj: notReconciledObj, statusType: objectStatusDynamic}, + want: false, + }, + { + name: "dynamic not condition", + args: args{obj: noConditionObj, statusType: objectStatusDynamic}, + want: false, + }, + { + name: "dynamic ready outdated", + args: args{obj: readyObjOutdated, statusType: objectStatusDynamic}, + want: false, + }, + { + name: "dynamic ready without per condition gen", + args: args{obj: oldObj, statusType: objectStatusDynamic}, + want: true, + }, + { + name: "dynamic outdated ready status without per condition gen", + args: args{obj: oldObjOutdated, statusType: objectStatusDynamic}, + want: false, + }, + { + name: "static empty status", + args: args{obj: staticObj, statusType: objectStatusStatic}, + want: true, + }, + { + name: "static no status", + args: args{obj: noStatusObj, statusType: objectStatusStatic}, + want: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := isObjectReady(tt.args.obj, tt.args.statusType) + if (err != nil) != tt.wantErr { + t.Errorf("isObjectReady() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("isObjectReady() = %v, want %v", got, tt.want) + } + }) + } +} diff --git a/cmd/flux/reconcile.go b/cmd/flux/reconcile.go index 08b47a2a..7589dcb9 100644 --- a/cmd/flux/reconcile.go +++ b/cmd/flux/reconcile.go @@ -21,6 +21,7 @@ import ( "fmt" "time" + kstatus "github.com/fluxcd/cli-utils/pkg/kstatus/status" "github.com/spf13/cobra" apimeta "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -30,8 +31,6 @@ import ( "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/client" - notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/flux2/v2/internal/utils" @@ -112,16 +111,6 @@ func (reconcile reconcileCommand) run(cmd *cobra.Command, args []string) error { } logger.Successf("%s annotated", reconcile.kind) - if reconcile.kind == notificationv1b2.AlertKind || reconcile.kind == notificationv1.ReceiverKind { - if err = wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isReconcileReady(kubeClient, namespacedName, reconcile.object)); err != nil { - return err - } - - logger.Successf(reconcile.object.successMessage()) - return nil - } - lastHandledReconcileAt := reconcile.object.lastHandledReconcileRequest() logger.Waitingf("waiting for %s reconciliation", reconcile.kind) if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, @@ -146,9 +135,17 @@ func reconciliationHandled(kubeClient client.Client, namespacedName types.Namesp if err != nil { return false, err } - isProgressing := apimeta.IsStatusConditionPresentAndEqual(reconcilableConditions(obj), - meta.ReadyCondition, metav1.ConditionUnknown) - return obj.lastHandledReconcileRequest() != lastHandledReconcileAt && !isProgressing, nil + + if obj.lastHandledReconcileRequest() == lastHandledReconcileAt { + return false, nil + } + + result, err := kstatusCompute(obj.asClientObject()) + if err != nil { + return false, err + } + + return result.Status == kstatus.CurrentStatus, nil } } @@ -174,22 +171,3 @@ func requestReconciliation(ctx context.Context, kubeClient client.Client, return kubeClient.Patch(ctx, object, patch) }) } - -func isReconcileReady(kubeClient client.Client, namespacedName types.NamespacedName, obj reconcilable) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, obj.asClientObject()) - if err != nil { - return false, err - } - - if c := apimeta.FindStatusCondition(reconcilableConditions(obj), meta.ReadyCondition); c != nil { - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} diff --git a/cmd/flux/reconcile_alert.go b/cmd/flux/reconcile_alert.go index 655b366f..8dd8be61 100644 --- a/cmd/flux/reconcile_alert.go +++ b/cmd/flux/reconcile_alert.go @@ -40,5 +40,5 @@ func init() { } func (obj alertAdapter) lastHandledReconcileRequest() string { - return "" + return obj.Status.GetLastHandledReconcileRequest() } diff --git a/cmd/flux/reconcile_alertprovider.go b/cmd/flux/reconcile_alertprovider.go index 4f6ce136..5c3001af 100644 --- a/cmd/flux/reconcile_alertprovider.go +++ b/cmd/flux/reconcile_alertprovider.go @@ -17,18 +17,9 @@ limitations under the License. package main import ( - "context" - "fmt" - "time" - "github.com/spf13/cobra" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" - "github.com/fluxcd/pkg/apis/meta" - - "github.com/fluxcd/flux2/v2/internal/utils" ) var reconcileAlertProviderCmd = &cobra.Command{ @@ -38,56 +29,16 @@ var reconcileAlertProviderCmd = &cobra.Command{ Example: ` # Trigger a reconciliation for an existing provider flux reconcile alert-provider slack`, ValidArgsFunction: resourceNamesCompletionFunc(notificationv1.GroupVersion.WithKind(notificationv1.ProviderKind)), - RunE: reconcileAlertProviderCmdRun, + RunE: reconcileCommand{ + apiType: alertProviderType, + object: alertProviderAdapter{¬ificationv1.Provider{}}, + }.run, } func init() { reconcileCmd.AddCommand(reconcileAlertProviderCmd) } -func reconcileAlertProviderCmdRun(cmd *cobra.Command, args []string) error { - if len(args) < 1 { - return fmt.Errorf("Provider name is required") - } - name := args[0] - - ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) - defer cancel() - - kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) - if err != nil { - return err - } - - namespacedName := types.NamespacedName{ - Namespace: *kubeconfigArgs.Namespace, - Name: name, - } - - logger.Actionf("annotating Provider %s in %s namespace", name, *kubeconfigArgs.Namespace) - var alertProvider notificationv1.Provider - err = kubeClient.Get(ctx, namespacedName, &alertProvider) - if err != nil { - return err - } - - if alertProvider.Annotations == nil { - alertProvider.Annotations = map[string]string{ - meta.ReconcileRequestAnnotation: time.Now().Format(time.RFC3339Nano), - } - } else { - alertProvider.Annotations[meta.ReconcileRequestAnnotation] = time.Now().Format(time.RFC3339Nano) - } - if err := kubeClient.Update(ctx, &alertProvider); err != nil { - return err - } - logger.Successf("Provider annotated") - - logger.Waitingf("waiting for reconciliation") - if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isAlertProviderReady(kubeClient, namespacedName, &alertProvider)); err != nil { - return err - } - logger.Successf("Provider reconciliation completed") - return nil +func (obj alertProviderAdapter) lastHandledReconcileRequest() string { + return obj.Status.GetLastHandledReconcileRequest() } diff --git a/cmd/flux/reconcile_receiver.go b/cmd/flux/reconcile_receiver.go index a16946a7..42a2dd24 100644 --- a/cmd/flux/reconcile_receiver.go +++ b/cmd/flux/reconcile_receiver.go @@ -17,18 +17,9 @@ limitations under the License. package main import ( - "context" - "fmt" - "time" - "github.com/spf13/cobra" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - "github.com/fluxcd/pkg/apis/meta" - - "github.com/fluxcd/flux2/v2/internal/utils" ) var reconcileReceiverCmd = &cobra.Command{ @@ -38,62 +29,16 @@ var reconcileReceiverCmd = &cobra.Command{ Example: ` # Trigger a reconciliation for an existing receiver flux reconcile receiver main`, ValidArgsFunction: resourceNamesCompletionFunc(notificationv1.GroupVersion.WithKind(notificationv1.ReceiverKind)), - RunE: reconcileReceiverCmdRun, + RunE: reconcileCommand{ + apiType: receiverType, + object: receiverAdapter{¬ificationv1.Receiver{}}, + }.run, } func init() { reconcileCmd.AddCommand(reconcileReceiverCmd) } -func reconcileReceiverCmdRun(cmd *cobra.Command, args []string) error { - if len(args) < 1 { - return fmt.Errorf("receiver name is required") - } - name := args[0] - - ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout) - defer cancel() - - kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) - if err != nil { - return err - } - - namespacedName := types.NamespacedName{ - Namespace: *kubeconfigArgs.Namespace, - Name: name, - } - - var receiver notificationv1.Receiver - err = kubeClient.Get(ctx, namespacedName, &receiver) - if err != nil { - return err - } - - if receiver.Spec.Suspend { - return fmt.Errorf("resource is suspended") - } - - logger.Actionf("annotating Receiver %s in %s namespace", name, *kubeconfigArgs.Namespace) - if receiver.Annotations == nil { - receiver.Annotations = map[string]string{ - meta.ReconcileRequestAnnotation: time.Now().Format(time.RFC3339Nano), - } - } else { - receiver.Annotations[meta.ReconcileRequestAnnotation] = time.Now().Format(time.RFC3339Nano) - } - if err := kubeClient.Update(ctx, &receiver); err != nil { - return err - } - logger.Successf("Receiver annotated") - - logger.Waitingf("waiting for Receiver reconciliation") - if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isReceiverReady(kubeClient, namespacedName, &receiver)); err != nil { - return err - } - - logger.Successf("Receiver reconciliation completed") - - return nil +func (obj receiverAdapter) lastHandledReconcileRequest() string { + return obj.Status.GetLastHandledReconcileRequest() } diff --git a/cmd/flux/resume.go b/cmd/flux/resume.go index d62895ca..4cb700a2 100644 --- a/cmd/flux/resume.go +++ b/cmd/flux/resume.go @@ -213,7 +213,7 @@ func (resume resumeCommand) reconcile(ctx context.Context, res resumable) reconc logger.Waitingf("waiting for %s reconciliation", resume.kind) if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isReady(resume.client, namespacedName, res)); err != nil { + isObjectReadyConditionFunc(resume.client, namespacedName, res.asClientObject())); err != nil { return reconcileResponse{ resumable: res, err: err, diff --git a/cmd/flux/resume_alertprovider.go b/cmd/flux/resume_alertprovider.go new file mode 100644 index 00000000..e0ba49b9 --- /dev/null +++ b/cmd/flux/resume_alertprovider.go @@ -0,0 +1,60 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "github.com/spf13/cobra" + + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" +) + +var resumeAlertProviderCmd = &cobra.Command{ + Use: "alert-provider [name]", + Short: "Resume a suspended Provider", + Long: `The resume command marks a previously suspended Provider resource for reconciliation and waits for it to +finish the apply.`, + Example: ` # Resume reconciliation for an existing Provider + flux resume alert-provider main + + # Resume reconciliation for multiple Providers + flux resume alert-provider main-1 main-2`, + ValidArgsFunction: resourceNamesCompletionFunc(notificationv1.GroupVersion.WithKind(notificationv1.ProviderKind)), + RunE: resumeCommand{ + apiType: alertProviderType, + list: &alertProviderListAdapter{¬ificationv1.ProviderList{}}, + }.run, +} + +func init() { + resumeCmd.AddCommand(resumeAlertProviderCmd) +} + +func (obj alertProviderAdapter) getObservedGeneration() int64 { + return obj.Provider.Status.ObservedGeneration +} + +func (obj alertProviderAdapter) setUnsuspended() { + obj.Provider.Spec.Suspend = false +} + +func (obj alertProviderAdapter) successMessage() string { + return "Provider reconciliation completed" +} + +func (a alertProviderListAdapter) resumeItem(i int) resumable { + return &alertProviderAdapter{&a.ProviderList.Items[i]} +} diff --git a/cmd/flux/status.go b/cmd/flux/status.go index 6e4e18c5..95c6e9f3 100644 --- a/cmd/flux/status.go +++ b/cmd/flux/status.go @@ -17,18 +17,9 @@ limitations under the License. package main import ( - "context" - "fmt" - - apimeta "k8s.io/apimachinery/pkg/api/meta" + "github.com/fluxcd/cli-utils/pkg/object" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" - "sigs.k8s.io/controller-runtime/pkg/client" - - "github.com/fluxcd/cli-utils/pkg/object" - "github.com/fluxcd/pkg/apis/meta" ) // statusable is used to see if a resource is considered ready in the usual way @@ -45,42 +36,6 @@ type oldConditions interface { GetStatusConditions() *[]metav1.Condition } -func statusableConditions(object statusable) []metav1.Condition { - if s, ok := object.(meta.ObjectWithConditions); ok { - return s.GetConditions() - } - - if s, ok := object.(oldConditions); ok { - return *s.GetStatusConditions() - } - - return []metav1.Condition{} -} - -func isReady(kubeClient client.Client, namespacedName types.NamespacedName, object statusable) wait.ConditionWithContextFunc { - return func(ctx context.Context) (bool, error) { - err := kubeClient.Get(ctx, namespacedName, object.asClientObject()) - if err != nil { - return false, err - } - - // Confirm the state we are observing is for the current generation - if object.GetGeneration() != object.getObservedGeneration() { - return false, nil - } - - if c := apimeta.FindStatusCondition(statusableConditions(object), meta.ReadyCondition); c != nil { - switch c.Status { - case metav1.ConditionTrue: - return true, nil - case metav1.ConditionFalse: - return false, fmt.Errorf(c.Message) - } - } - return false, nil - } -} - func buildComponentObjectRefs(components ...string) ([]object.ObjMetadata, error) { var objRefs []object.ObjMetadata for _, deployment := range components { diff --git a/cmd/flux/suspend_alertprovider.go b/cmd/flux/suspend_alertprovider.go new file mode 100644 index 00000000..5a69513c --- /dev/null +++ b/cmd/flux/suspend_alertprovider.go @@ -0,0 +1,56 @@ +/* +Copyright 2023 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "github.com/spf13/cobra" + + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" +) + +var suspendAlertProviderCmd = &cobra.Command{ + Use: "alert-provider [name]", + Short: "Suspend reconciliation of Provider", + Long: `The suspend command disables the reconciliation of a Provider resource.`, + Example: ` # Suspend reconciliation for an existing Provider + flux suspend alert-provider main + + # Suspend reconciliation for multiple Providers + flux suspend alert-providers main-1 main-2`, + ValidArgsFunction: resourceNamesCompletionFunc(notificationv1.GroupVersion.WithKind(notificationv1.ProviderKind)), + RunE: suspendCommand{ + apiType: alertProviderType, + object: &alertProviderAdapter{¬ificationv1.Provider{}}, + list: &alertProviderListAdapter{¬ificationv1.ProviderList{}}, + }.run, +} + +func init() { + suspendCmd.AddCommand(suspendAlertProviderCmd) +} + +func (obj alertProviderAdapter) isSuspended() bool { + return obj.Provider.Spec.Suspend +} + +func (obj alertProviderAdapter) setSuspended() { + obj.Provider.Spec.Suspend = true +} + +func (a alertProviderListAdapter) item(i int) suspendable { + return &alertProviderAdapter{&a.ProviderList.Items[i]} +} From b28b5dd9b9cbbcfb4c771c84a58de78ceda8a9e9 Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 13 Oct 2023 20:40:34 +0000 Subject: [PATCH 058/154] non-reconciliable & readiness of static objects Remove reconcile subcommand for static object APIs Alerts and Providers. Add a isStatic() method on all the object adapters to determine if they are static and don't have reconciler. The objects that don't have reconcilers are skipped from reconciliation and readiness checks like HelmRepository of type OCI. Add default ready message for `get` subcommand output for static objects, Alerts, Providers and HelmRepositories of type OCI, as ready message can't be derived for them from their status. Signed-off-by: Sunny --- cmd/flux/create_alert.go | 2 +- cmd/flux/create_alertprovider.go | 2 +- cmd/flux/create_source_helm.go | 8 +++-- cmd/flux/get_alert.go | 3 +- cmd/flux/get_alertprovider.go | 3 +- cmd/flux/get_source_helm.go | 8 ++++- cmd/flux/reconcile.go | 6 ++++ cmd/flux/reconcile_alert.go | 44 -------------------------- cmd/flux/reconcile_alertprovider.go | 44 -------------------------- cmd/flux/reconcile_helmrelease.go | 4 +++ cmd/flux/reconcile_image_repository.go | 4 +++ cmd/flux/reconcile_image_updateauto.go | 4 +++ cmd/flux/reconcile_kustomization.go | 4 +++ cmd/flux/reconcile_receiver.go | 4 +++ cmd/flux/reconcile_source_bucket.go | 4 +++ cmd/flux/reconcile_source_chart.go | 4 +++ cmd/flux/reconcile_source_git.go | 4 +++ cmd/flux/reconcile_source_helm.go | 4 +++ cmd/flux/reconcile_source_oci.go | 4 +++ cmd/flux/resume.go | 9 ++++-- cmd/flux/resume_alert.go | 4 +++ cmd/flux/resume_alertprovider.go | 4 +++ 22 files changed, 80 insertions(+), 97 deletions(-) delete mode 100644 cmd/flux/reconcile_alert.go delete mode 100644 cmd/flux/reconcile_alertprovider.go diff --git a/cmd/flux/create_alert.go b/cmd/flux/create_alert.go index 22a5d289..e750d44f 100644 --- a/cmd/flux/create_alert.go +++ b/cmd/flux/create_alert.go @@ -132,7 +132,7 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Alert reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isObjectReadyConditionFunc(kubeClient, namespacedName, &alert)); err != nil { + isStaticObjectReadyConditionFunc(kubeClient, namespacedName, &alert)); err != nil { return err } logger.Successf("Alert %s is ready", name) diff --git a/cmd/flux/create_alertprovider.go b/cmd/flux/create_alertprovider.go index 468ec5d8..402ff0c4 100644 --- a/cmd/flux/create_alertprovider.go +++ b/cmd/flux/create_alertprovider.go @@ -127,7 +127,7 @@ func createAlertProviderCmdRun(cmd *cobra.Command, args []string) error { logger.Waitingf("waiting for Provider reconciliation") if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isObjectReadyConditionFunc(kubeClient, namespacedName, &provider)); err != nil { + isStaticObjectReadyConditionFunc(kubeClient, namespacedName, &provider)); err != nil { return err } diff --git a/cmd/flux/create_source_helm.go b/cmd/flux/create_source_helm.go index 5b46f45e..522e980f 100644 --- a/cmd/flux/create_source_helm.go +++ b/cmd/flux/create_source_helm.go @@ -230,8 +230,12 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error { } logger.Waitingf("waiting for HelmRepository source reconciliation") - if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isObjectReadyConditionFunc(kubeClient, namespacedName, helmRepository)); err != nil { + readyConditionFunc := isObjectReadyConditionFunc(kubeClient, namespacedName, helmRepository) + if helmRepository.Spec.Type == sourcev1.HelmRepositoryTypeOCI { + // HelmRepository type OCI is a static object. + readyConditionFunc = isStaticObjectReadyConditionFunc(kubeClient, namespacedName, helmRepository) + } + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, readyConditionFunc); err != nil { return err } logger.Successf("HelmRepository source reconciliation completed") diff --git a/cmd/flux/get_alert.go b/cmd/flux/get_alert.go index 9ea6c682..760423c3 100644 --- a/cmd/flux/get_alert.go +++ b/cmd/flux/get_alert.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/cobra" "golang.org/x/text/cases" "golang.org/x/text/language" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" @@ -77,7 +78,7 @@ func init() { func (s alertListAdapter) summariseItem(i int, includeNamespace bool, includeKind bool) []string { item := s.Items[i] - status, msg := statusAndMessage(item.Status.Conditions) + status, msg := string(metav1.ConditionTrue), "Alert is Ready" return append(nameColumns(&item, includeNamespace, includeKind), cases.Title(language.English).String(strconv.FormatBool(item.Spec.Suspend)), status, msg) } diff --git a/cmd/flux/get_alertprovider.go b/cmd/flux/get_alertprovider.go index 983cbf33..a4c3bca6 100644 --- a/cmd/flux/get_alertprovider.go +++ b/cmd/flux/get_alertprovider.go @@ -20,6 +20,7 @@ import ( "fmt" "github.com/spf13/cobra" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" @@ -74,7 +75,7 @@ func init() { func (s alertProviderListAdapter) summariseItem(i int, includeNamespace bool, includeKind bool) []string { item := s.Items[i] - status, msg := statusAndMessage(item.Status.Conditions) + status, msg := string(metav1.ConditionTrue), "Provider is Ready" return append(nameColumns(&item, includeNamespace, includeKind), status, msg) } diff --git a/cmd/flux/get_source_helm.go b/cmd/flux/get_source_helm.go index 173a1880..ec131714 100644 --- a/cmd/flux/get_source_helm.go +++ b/cmd/flux/get_source_helm.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/cobra" "golang.org/x/text/cases" "golang.org/x/text/language" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" @@ -82,7 +83,12 @@ func (a *helmRepositoryListAdapter) summariseItem(i int, includeNamespace bool, if item.GetArtifact() != nil { revision = item.GetArtifact().Revision } - status, msg := statusAndMessage(item.Status.Conditions) + var status, msg string + if item.Spec.Type == sourcev1.HelmRepositoryTypeOCI { + status, msg = string(metav1.ConditionTrue), "Helm repository is Ready" + } else { + status, msg = statusAndMessage(item.Status.Conditions) + } revision = utils.TruncateHex(revision) msg = utils.TruncateHex(msg) return append(nameColumns(&item, includeNamespace, includeKind), diff --git a/cmd/flux/reconcile.go b/cmd/flux/reconcile.go index 7589dcb9..c6c7a472 100644 --- a/cmd/flux/reconcile.go +++ b/cmd/flux/reconcile.go @@ -60,6 +60,7 @@ type reconcilable interface { GetAnnotations() map[string]string SetAnnotations(map[string]string) + isStatic() bool // is it a static object that does not have a reconciler? lastHandledReconcileRequest() string // what was the last handled reconcile request? successMessage() string // what do you want to tell people when successfully reconciled? } @@ -100,6 +101,11 @@ func (reconcile reconcileCommand) run(cmd *cobra.Command, args []string) error { return err } + if reconcile.object.isStatic() { + logger.Successf("reconciliation not supported by the object") + return nil + } + if reconcile.object.isSuspended() { return fmt.Errorf("resource is suspended") } diff --git a/cmd/flux/reconcile_alert.go b/cmd/flux/reconcile_alert.go deleted file mode 100644 index 8dd8be61..00000000 --- a/cmd/flux/reconcile_alert.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2020 The Flux authors - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package main - -import ( - "github.com/spf13/cobra" - - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" -) - -var reconcileAlertCmd = &cobra.Command{ - Use: "alert [name]", - Short: "Reconcile an Alert", - Long: `The reconcile alert command triggers a reconciliation of an Alert resource and waits for it to finish.`, - Example: ` # Trigger a reconciliation for an existing alert - flux reconcile alert main`, - ValidArgsFunction: resourceNamesCompletionFunc(notificationv1.GroupVersion.WithKind(notificationv1.AlertKind)), - RunE: reconcileCommand{ - apiType: alertType, - object: alertAdapter{¬ificationv1.Alert{}}, - }.run, -} - -func init() { - reconcileCmd.AddCommand(reconcileAlertCmd) -} - -func (obj alertAdapter) lastHandledReconcileRequest() string { - return obj.Status.GetLastHandledReconcileRequest() -} diff --git a/cmd/flux/reconcile_alertprovider.go b/cmd/flux/reconcile_alertprovider.go deleted file mode 100644 index 5c3001af..00000000 --- a/cmd/flux/reconcile_alertprovider.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2020 The Flux authors - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package main - -import ( - "github.com/spf13/cobra" - - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" -) - -var reconcileAlertProviderCmd = &cobra.Command{ - Use: "alert-provider [name]", - Short: "Reconcile a Provider", - Long: `The reconcile alert-provider command triggers a reconciliation of a Provider resource and waits for it to finish.`, - Example: ` # Trigger a reconciliation for an existing provider - flux reconcile alert-provider slack`, - ValidArgsFunction: resourceNamesCompletionFunc(notificationv1.GroupVersion.WithKind(notificationv1.ProviderKind)), - RunE: reconcileCommand{ - apiType: alertProviderType, - object: alertProviderAdapter{¬ificationv1.Provider{}}, - }.run, -} - -func init() { - reconcileCmd.AddCommand(reconcileAlertProviderCmd) -} - -func (obj alertProviderAdapter) lastHandledReconcileRequest() string { - return obj.Status.GetLastHandledReconcileRequest() -} diff --git a/cmd/flux/reconcile_helmrelease.go b/cmd/flux/reconcile_helmrelease.go index b015aa8b..b55a1295 100644 --- a/cmd/flux/reconcile_helmrelease.go +++ b/cmd/flux/reconcile_helmrelease.go @@ -81,3 +81,7 @@ func (obj helmReleaseAdapter) getSource() (reconcileSource, types.NamespacedName Namespace: ns, } } + +func (obj helmReleaseAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_image_repository.go b/cmd/flux/reconcile_image_repository.go index c7304eb7..6a386c8b 100644 --- a/cmd/flux/reconcile_image_repository.go +++ b/cmd/flux/reconcile_image_repository.go @@ -48,3 +48,7 @@ func (obj imageRepositoryAdapter) lastHandledReconcileRequest() string { func (obj imageRepositoryAdapter) successMessage() string { return fmt.Sprintf("scan fetched %d tags", obj.Status.LastScanResult.TagCount) } + +func (obj imageRepositoryAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_image_updateauto.go b/cmd/flux/reconcile_image_updateauto.go index 2db4a1c0..95bb42df 100644 --- a/cmd/flux/reconcile_image_updateauto.go +++ b/cmd/flux/reconcile_image_updateauto.go @@ -56,3 +56,7 @@ func (obj imageUpdateAutomationAdapter) successMessage() string { } return "automation not yet run" } + +func (obj imageUpdateAutomationAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_kustomization.go b/cmd/flux/reconcile_kustomization.go index 99d12545..7a18ec02 100644 --- a/cmd/flux/reconcile_kustomization.go +++ b/cmd/flux/reconcile_kustomization.go @@ -88,3 +88,7 @@ func (obj kustomizationAdapter) getSource() (reconcileSource, types.NamespacedNa Namespace: obj.Spec.SourceRef.Namespace, } } + +func (obj kustomizationAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_receiver.go b/cmd/flux/reconcile_receiver.go index 42a2dd24..1691a95d 100644 --- a/cmd/flux/reconcile_receiver.go +++ b/cmd/flux/reconcile_receiver.go @@ -42,3 +42,7 @@ func init() { func (obj receiverAdapter) lastHandledReconcileRequest() string { return obj.Status.GetLastHandledReconcileRequest() } + +func (obj receiverAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_source_bucket.go b/cmd/flux/reconcile_source_bucket.go index 2a2bbdbc..68079a66 100644 --- a/cmd/flux/reconcile_source_bucket.go +++ b/cmd/flux/reconcile_source_bucket.go @@ -48,3 +48,7 @@ func (obj bucketAdapter) lastHandledReconcileRequest() string { func (obj bucketAdapter) successMessage() string { return fmt.Sprintf("fetched revision %s", obj.Status.Artifact.Revision) } + +func (obj bucketAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_source_chart.go b/cmd/flux/reconcile_source_chart.go index 41540617..ead4fa76 100644 --- a/cmd/flux/reconcile_source_chart.go +++ b/cmd/flux/reconcile_source_chart.go @@ -84,3 +84,7 @@ func (obj helmChartAdapter) getSource() (reconcileSource, types.NamespacedName) Namespace: obj.Namespace, } } + +func (obj helmChartAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_source_git.go b/cmd/flux/reconcile_source_git.go index a42cd7b9..28256496 100644 --- a/cmd/flux/reconcile_source_git.go +++ b/cmd/flux/reconcile_source_git.go @@ -48,3 +48,7 @@ func (obj gitRepositoryAdapter) lastHandledReconcileRequest() string { func (obj gitRepositoryAdapter) successMessage() string { return fmt.Sprintf("fetched revision %s", obj.Status.Artifact.Revision) } + +func (obj gitRepositoryAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/reconcile_source_helm.go b/cmd/flux/reconcile_source_helm.go index f559a5e4..a081fd0e 100644 --- a/cmd/flux/reconcile_source_helm.go +++ b/cmd/flux/reconcile_source_helm.go @@ -60,3 +60,7 @@ func (obj helmRepositoryAdapter) successMessage() string { } return fmt.Sprintf("fetched revision %s", obj.Status.Artifact.Revision) } + +func (obj helmRepositoryAdapter) isStatic() bool { + return obj.Spec.Type == sourcev1.HelmRepositoryTypeOCI +} diff --git a/cmd/flux/reconcile_source_oci.go b/cmd/flux/reconcile_source_oci.go index ffc649f9..52237f2f 100644 --- a/cmd/flux/reconcile_source_oci.go +++ b/cmd/flux/reconcile_source_oci.go @@ -48,3 +48,7 @@ func (obj ociRepositoryAdapter) lastHandledReconcileRequest() string { func (obj ociRepositoryAdapter) successMessage() string { return fmt.Sprintf("fetched revision %s", obj.Status.Artifact.Revision) } + +func (obj ociRepositoryAdapter) isStatic() bool { + return false +} diff --git a/cmd/flux/resume.go b/cmd/flux/resume.go index 4cb700a2..5f3c8b81 100644 --- a/cmd/flux/resume.go +++ b/cmd/flux/resume.go @@ -56,6 +56,7 @@ type resumable interface { copyable statusable setUnsuspended() + isStatic() bool successMessage() string } @@ -212,8 +213,12 @@ func (resume resumeCommand) reconcile(ctx context.Context, res resumable) reconc logger.Waitingf("waiting for %s reconciliation", resume.kind) - if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, - isObjectReadyConditionFunc(resume.client, namespacedName, res.asClientObject())); err != nil { + readyConditionFunc := isObjectReadyConditionFunc(resume.client, namespacedName, res.asClientObject()) + if res.isStatic() { + readyConditionFunc = isStaticObjectReadyConditionFunc(resume.client, namespacedName, res.asClientObject()) + } + + if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, readyConditionFunc); err != nil { return reconcileResponse{ resumable: res, err: err, diff --git a/cmd/flux/resume_alert.go b/cmd/flux/resume_alert.go index 713aebb3..0b72b059 100644 --- a/cmd/flux/resume_alert.go +++ b/cmd/flux/resume_alert.go @@ -55,6 +55,10 @@ func (obj alertAdapter) successMessage() string { return "Alert reconciliation completed" } +func (a alertAdapter) isStatic() bool { + return true +} + func (a alertListAdapter) resumeItem(i int) resumable { return &alertAdapter{&a.AlertList.Items[i]} } diff --git a/cmd/flux/resume_alertprovider.go b/cmd/flux/resume_alertprovider.go index e0ba49b9..40427c50 100644 --- a/cmd/flux/resume_alertprovider.go +++ b/cmd/flux/resume_alertprovider.go @@ -55,6 +55,10 @@ func (obj alertProviderAdapter) successMessage() string { return "Provider reconciliation completed" } +func (a alertProviderAdapter) isStatic() bool { + return true +} + func (a alertProviderListAdapter) resumeItem(i int) resumable { return &alertProviderAdapter{&a.ProviderList.Items[i]} } From e901e8b6f8f740233fac01fd00b972d0a58a4df6 Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 8 Dec 2023 14:14:25 +0000 Subject: [PATCH 059/154] Update all the references of NC v1beta2 to v1beta3 Signed-off-by: Sunny --- cmd/flux/alert.go | 2 +- cmd/flux/alert_provider.go | 2 +- cmd/flux/create_alert.go | 10 ++-- cmd/flux/create_alertprovider.go | 2 +- cmd/flux/delete_alert.go | 2 +- cmd/flux/delete_alertprovider.go | 2 +- cmd/flux/events.go | 10 ++-- cmd/flux/events_test.go | 4 +- cmd/flux/export_alert.go | 2 +- cmd/flux/export_alertprovider.go | 2 +- cmd/flux/get_alert.go | 5 +- cmd/flux/get_alertprovider.go | 5 +- cmd/flux/get_all.go | 6 +-- cmd/flux/main_test.go | 4 +- cmd/flux/resume_alert.go | 4 +- cmd/flux/resume_alertprovider.go | 4 +- cmd/flux/stats.go | 14 +++--- cmd/flux/suspend_alert.go | 2 +- cmd/flux/suspend_alertprovider.go | 2 +- cmd/flux/testdata/export/alert.yaml | 2 +- cmd/flux/testdata/export/objects.yaml | 4 +- cmd/flux/testdata/export/provider.yaml | 2 +- go.mod | 28 ++++++------ go.sum | 58 ++++++++++++------------ internal/utils/utils.go | 4 +- pkg/uninstall/uninstall.go | 6 +-- tests/azure/azure_test.go | 18 ++++---- tests/azure/go.mod | 6 +-- tests/azure/go.sum | 12 ++--- tests/azure/util_test.go | 4 +- tests/integration/azure_specific_test.go | 10 ++-- tests/integration/go.mod | 6 +-- tests/integration/go.sum | 12 ++--- tests/integration/notification_test.go | 14 +++--- tests/integration/suite_test.go | 4 +- 35 files changed, 138 insertions(+), 136 deletions(-) diff --git a/cmd/flux/alert.go b/cmd/flux/alert.go index 366a9a4a..16310e3a 100644 --- a/cmd/flux/alert.go +++ b/cmd/flux/alert.go @@ -19,7 +19,7 @@ package main import ( "sigs.k8s.io/controller-runtime/pkg/client" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) // notificationv1.Alert diff --git a/cmd/flux/alert_provider.go b/cmd/flux/alert_provider.go index 3ee071ce..c370a5c0 100644 --- a/cmd/flux/alert_provider.go +++ b/cmd/flux/alert_provider.go @@ -19,7 +19,7 @@ package main import ( "sigs.k8s.io/controller-runtime/pkg/client" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) // notificationv1.Provider diff --git a/cmd/flux/create_alert.go b/cmd/flux/create_alert.go index e750d44f..80c8beee 100644 --- a/cmd/flux/create_alert.go +++ b/cmd/flux/create_alert.go @@ -28,7 +28,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/flux2/v2/internal/utils" @@ -96,13 +96,13 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error { logger.Generatef("generating Alert") } - alert := notificationv1b2.Alert{ + alert := notificationv1b3.Alert{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: *kubeconfigArgs.Namespace, Labels: sourceLabels, }, - Spec: notificationv1b2.AlertSpec{ + Spec: notificationv1b3.AlertSpec{ ProviderRef: meta.LocalObjectReference{ Name: alertArgs.providerRef, }, @@ -140,13 +140,13 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error { } func upsertAlert(ctx context.Context, kubeClient client.Client, - alert *notificationv1b2.Alert) (types.NamespacedName, error) { + alert *notificationv1b3.Alert) (types.NamespacedName, error) { namespacedName := types.NamespacedName{ Namespace: alert.GetNamespace(), Name: alert.GetName(), } - var existing notificationv1b2.Alert + var existing notificationv1b3.Alert err := kubeClient.Get(ctx, namespacedName, &existing) if err != nil { if errors.IsNotFound(err) { diff --git a/cmd/flux/create_alertprovider.go b/cmd/flux/create_alertprovider.go index 402ff0c4..89a8e289 100644 --- a/cmd/flux/create_alertprovider.go +++ b/cmd/flux/create_alertprovider.go @@ -27,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "sigs.k8s.io/controller-runtime/pkg/client" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/flux2/v2/internal/utils" diff --git a/cmd/flux/delete_alert.go b/cmd/flux/delete_alert.go index f0c8ee58..cda9f04d 100644 --- a/cmd/flux/delete_alert.go +++ b/cmd/flux/delete_alert.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var deleteAlertCmd = &cobra.Command{ diff --git a/cmd/flux/delete_alertprovider.go b/cmd/flux/delete_alertprovider.go index 871f42a6..73a54b2a 100644 --- a/cmd/flux/delete_alertprovider.go +++ b/cmd/flux/delete_alertprovider.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var deleteAlertProviderCmd = &cobra.Command{ diff --git a/cmd/flux/events.go b/cmd/flux/events.go index 51c3bb7c..cf85c3f5 100644 --- a/cmd/flux/events.go +++ b/cmd/flux/events.go @@ -44,7 +44,7 @@ import ( imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" @@ -426,14 +426,14 @@ var fluxKindMap = refMap{ }, field: []string{"spec", "chart", "spec", "sourceRef"}, }, - notificationv1b2.AlertKind: { - gvk: notificationv1b2.GroupVersion.WithKind(notificationv1b2.AlertKind), - kind: notificationv1b2.ProviderKind, + notificationv1b3.AlertKind: { + gvk: notificationv1b3.GroupVersion.WithKind(notificationv1b3.AlertKind), + kind: notificationv1b3.ProviderKind, crossNamespaced: false, field: []string{"spec", "providerRef"}, }, notificationv1.ReceiverKind: {gvk: notificationv1.GroupVersion.WithKind(notificationv1.ReceiverKind)}, - notificationv1b2.ProviderKind: {gvk: notificationv1b2.GroupVersion.WithKind(notificationv1b2.ProviderKind)}, + notificationv1b3.ProviderKind: {gvk: notificationv1b3.GroupVersion.WithKind(notificationv1b3.ProviderKind)}, imagev1.ImagePolicyKind: { gvk: imagev1.GroupVersion.WithKind(imagev1.ImagePolicyKind), kind: imagev1.ImageRepositoryKind, diff --git a/cmd/flux/events_test.go b/cmd/flux/events_test.go index 7737f7c4..0c208d1e 100644 --- a/cmd/flux/events_test.go +++ b/cmd/flux/events_test.go @@ -118,7 +118,7 @@ spec: name: podinfo-chart version: '*' --- -apiVersion: notification.toolkit.fluxcd.io/v1beta2 +apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind: Alert metadata: name: webapp @@ -131,7 +131,7 @@ spec: providerRef: name: slack --- -apiVersion: notification.toolkit.fluxcd.io/v1beta2 +apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind: Provider metadata: name: slack diff --git a/cmd/flux/export_alert.go b/cmd/flux/export_alert.go index 63f9f59f..2f158711 100644 --- a/cmd/flux/export_alert.go +++ b/cmd/flux/export_alert.go @@ -20,7 +20,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var exportAlertCmd = &cobra.Command{ diff --git a/cmd/flux/export_alertprovider.go b/cmd/flux/export_alertprovider.go index 782648ca..e4c3ab9a 100644 --- a/cmd/flux/export_alertprovider.go +++ b/cmd/flux/export_alertprovider.go @@ -20,7 +20,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var exportAlertProviderCmd = &cobra.Command{ diff --git a/cmd/flux/get_alert.go b/cmd/flux/get_alert.go index 760423c3..54b2afe6 100644 --- a/cmd/flux/get_alert.go +++ b/cmd/flux/get_alert.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var getAlertCmd = &cobra.Command{ @@ -92,6 +92,5 @@ func (s alertListAdapter) headers(includeNamespace bool) []string { } func (s alertListAdapter) statusSelectorMatches(i int, conditionType, conditionStatus string) bool { - item := s.Items[i] - return statusMatches(conditionType, conditionStatus, item.Status.Conditions) + return false } diff --git a/cmd/flux/get_alertprovider.go b/cmd/flux/get_alertprovider.go index a4c3bca6..11d50cb3 100644 --- a/cmd/flux/get_alertprovider.go +++ b/cmd/flux/get_alertprovider.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var getAlertProviderCmd = &cobra.Command{ @@ -88,6 +88,5 @@ func (s alertProviderListAdapter) headers(includeNamespace bool) []string { } func (s alertProviderListAdapter) statusSelectorMatches(i int, conditionType, conditionStatus string) bool { - item := s.Items[i] - return statusMatches(conditionType, conditionStatus, item.Status.Conditions) + return false } diff --git a/cmd/flux/get_all.go b/cmd/flux/get_all.go index f868b833..27bbcfe4 100644 --- a/cmd/flux/get_all.go +++ b/cmd/flux/get_all.go @@ -24,7 +24,7 @@ import ( helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" ) var getAllCmd = &cobra.Command{ @@ -63,11 +63,11 @@ var getAllCmd = &cobra.Command{ }, { apiType: alertProviderType, - list: alertProviderListAdapter{¬ificationv1b2.ProviderList{}}, + list: alertProviderListAdapter{¬ificationv1b3.ProviderList{}}, }, { apiType: alertType, - list: &alertListAdapter{¬ificationv1b2.AlertList{}}, + list: &alertListAdapter{¬ificationv1b3.AlertList{}}, }, } diff --git a/cmd/flux/main_test.go b/cmd/flux/main_test.go index 2859d963..d2f9622e 100644 --- a/cmd/flux/main_test.go +++ b/cmd/flux/main_test.go @@ -34,6 +34,7 @@ import ( "github.com/fluxcd/flux2/v2/internal/utils" "github.com/google/go-cmp/cmp" "github.com/mattn/go-shellwords" + "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" k8syaml "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/tools/clientcmd" @@ -112,7 +113,8 @@ func (m *testEnvKubeManager) CreateObjects(clientObjects []*unstructured.Unstruc } obj.SetResourceVersion(createObj.GetResourceVersion()) err = m.client.Status().Update(context.Background(), obj) - if err != nil { + // Updating status of static objects results in not found error. + if err != nil && !errors.IsNotFound(err) { return err } } diff --git a/cmd/flux/resume_alert.go b/cmd/flux/resume_alert.go index 0b72b059..a33d4f5b 100644 --- a/cmd/flux/resume_alert.go +++ b/cmd/flux/resume_alert.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var resumeAlertCmd = &cobra.Command{ @@ -44,7 +44,7 @@ func init() { } func (obj alertAdapter) getObservedGeneration() int64 { - return obj.Alert.Status.ObservedGeneration + return 0 } func (obj alertAdapter) setUnsuspended() { diff --git a/cmd/flux/resume_alertprovider.go b/cmd/flux/resume_alertprovider.go index 40427c50..de95d48d 100644 --- a/cmd/flux/resume_alertprovider.go +++ b/cmd/flux/resume_alertprovider.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var resumeAlertProviderCmd = &cobra.Command{ @@ -44,7 +44,7 @@ func init() { } func (obj alertProviderAdapter) getObservedGeneration() int64 { - return obj.Provider.Status.ObservedGeneration + return 0 } func (obj alertProviderAdapter) setUnsuspended() { diff --git a/cmd/flux/stats.go b/cmd/flux/stats.go index 4542d498..196d68d6 100644 --- a/cmd/flux/stats.go +++ b/cmd/flux/stats.go @@ -32,7 +32,7 @@ import ( imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" @@ -111,14 +111,14 @@ func runStatsCmd(cmd *cobra.Command, args []string) error { Group: helmv2.GroupVersion.Group, }, { - Kind: notificationv1b2.AlertKind, - Version: notificationv1b2.GroupVersion.Version, - Group: notificationv1b2.GroupVersion.Group, + Kind: notificationv1b3.AlertKind, + Version: notificationv1b3.GroupVersion.Version, + Group: notificationv1b3.GroupVersion.Group, }, { - Kind: notificationv1b2.ProviderKind, - Version: notificationv1b2.GroupVersion.Version, - Group: notificationv1b2.GroupVersion.Group, + Kind: notificationv1b3.ProviderKind, + Version: notificationv1b3.GroupVersion.Version, + Group: notificationv1b3.GroupVersion.Group, }, { Kind: notificationv1.ReceiverKind, diff --git a/cmd/flux/suspend_alert.go b/cmd/flux/suspend_alert.go index 17cdd801..67fa201a 100644 --- a/cmd/flux/suspend_alert.go +++ b/cmd/flux/suspend_alert.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var suspendAlertCmd = &cobra.Command{ diff --git a/cmd/flux/suspend_alertprovider.go b/cmd/flux/suspend_alertprovider.go index 5a69513c..fa58c80e 100644 --- a/cmd/flux/suspend_alertprovider.go +++ b/cmd/flux/suspend_alertprovider.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - notificationv1 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3" ) var suspendAlertProviderCmd = &cobra.Command{ diff --git a/cmd/flux/testdata/export/alert.yaml b/cmd/flux/testdata/export/alert.yaml index 4619affb..e5ffba02 100644 --- a/cmd/flux/testdata/export/alert.yaml +++ b/cmd/flux/testdata/export/alert.yaml @@ -1,5 +1,5 @@ --- -apiVersion: notification.toolkit.fluxcd.io/v1beta2 +apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind: Alert metadata: name: flux-system diff --git a/cmd/flux/testdata/export/objects.yaml b/cmd/flux/testdata/export/objects.yaml index aa1b6f19..8ba59969 100644 --- a/cmd/flux/testdata/export/objects.yaml +++ b/cmd/flux/testdata/export/objects.yaml @@ -4,7 +4,7 @@ kind: Namespace metadata: name: {{ .fluxns }} --- -apiVersion: notification.toolkit.fluxcd.io/v1beta2 +apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind: Provider metadata: name: slack @@ -14,7 +14,7 @@ spec: channel: 'A channel with spacess' address: https://hooks.slack.com/services/mock --- -apiVersion: notification.toolkit.fluxcd.io/v1beta2 +apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind: Alert metadata: name: flux-system diff --git a/cmd/flux/testdata/export/provider.yaml b/cmd/flux/testdata/export/provider.yaml index 67104453..c3ca08e3 100644 --- a/cmd/flux/testdata/export/provider.yaml +++ b/cmd/flux/testdata/export/provider.yaml @@ -1,5 +1,5 @@ --- -apiVersion: notification.toolkit.fluxcd.io/v1beta2 +apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind: Provider metadata: name: slack diff --git a/go.mod b/go.mod index ef27cffa..393a9482 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/fluxcd/pkg/runtime v0.43.0 github.com/fluxcd/pkg/sourceignore v0.3.5 github.com/fluxcd/pkg/ssa v0.34.0 - github.com/fluxcd/pkg/ssh v0.9.0 + github.com/fluxcd/pkg/ssh v0.10.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.2.1 @@ -47,8 +47,8 @@ require ( github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/theckman/yacspin v0.13.12 - golang.org/x/crypto v0.15.0 - golang.org/x/term v0.14.0 + golang.org/x/crypto v0.16.0 + golang.org/x/term v0.15.0 golang.org/x/text v0.14.0 k8s.io/api v0.28.4 k8s.io/apiextensions-apiserver v0.28.4 @@ -119,9 +119,9 @@ require ( github.com/go-fed/httpsig v1.1.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -144,7 +144,7 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.5 // indirect - github.com/hashicorp/go-version v1.5.0 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect github.com/imdario/mergo v0.3.15 // indirect @@ -197,14 +197,14 @@ require ( go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.18.0 // indirect - golang.org/x/oauth2 v0.14.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.15.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.14.0 // indirect - golang.org/x/time v0.4.0 // indirect - golang.org/x/tools v0.15.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.16.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.6.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect @@ -212,9 +212,9 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/component-base v0.28.4 // indirect - k8s.io/klog/v2 v2.100.1 // indirect + k8s.io/klog/v2 v2.110.1 // indirect k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/go.sum b/go.sum index 823bc0d9..fdb411cc 100644 --- a/go.sum +++ b/go.sum @@ -170,8 +170,8 @@ github.com/fluxcd/pkg/sourceignore v0.3.5 h1:omcHTH5X5tlPr9w1b9T7WuJTOP+o/KdVdar github.com/fluxcd/pkg/sourceignore v0.3.5/go.mod h1:6Xz3jErz8RsidsdrjUBBUGKes24rbdp/F38MnTGibEw= github.com/fluxcd/pkg/ssa v0.34.0 h1:hpMo0D7G3faieRYH39e9YD8Jl+aC2hTgUep8ojG5+LE= github.com/fluxcd/pkg/ssa v0.34.0/go.mod h1:rhVh0EtYVUOznKXlz6E7JOSgdc8xWbIwA4L5HVtJRLA= -github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= -github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= +github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= +github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= @@ -195,16 +195,17 @@ github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYv github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= @@ -227,6 +228,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= @@ -291,8 +293,9 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= -github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E= github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +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/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= @@ -494,8 +497,8 @@ golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= @@ -514,7 +517,6 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/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-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -525,11 +527,11 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= +golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= 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= @@ -569,28 +571,28 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= -golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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= @@ -601,8 +603,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= 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= @@ -611,8 +613,8 @@ gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= google.golang.org/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.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= @@ -666,14 +668,14 @@ k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= k8s.io/component-base v0.28.4 h1:c/iQLWPdUgI90O+T9TeECg8o7N3YJTiuz2sKxILYcYo= k8s.io/component-base v0.28.4/go.mod h1:m9hR0uvqXDybiGL2nf/3Lf0MerAfQXzkfWhUY58JUbU= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/kubectl v0.28.4 h1:gWpUXW/T7aFne+rchYeHkyB8eVDl5UZce8G4X//kjUQ= k8s.io/kubectl v0.28.4/go.mod h1:CKOccVx3l+3MmDbkXtIUtibq93nN2hkDR99XDCn7c/c= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= +k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/internal/utils/utils.go b/internal/utils/utils.go index c5d8ec88..e820372a 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -46,7 +46,7 @@ import ( imagereflectv1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" "github.com/fluxcd/pkg/apis/meta" runclient "github.com/fluxcd/pkg/runtime/client" "github.com/fluxcd/pkg/version" @@ -133,7 +133,7 @@ func NewScheme() *apiruntime.Scheme { _ = kustomizev1.AddToScheme(scheme) _ = helmv2.AddToScheme(scheme) _ = notificationv1.AddToScheme(scheme) - _ = notificationv1b2.AddToScheme(scheme) + _ = notificationv1b3.AddToScheme(scheme) _ = imagereflectv1.AddToScheme(scheme) _ = imageautov1.AddToScheme(scheme) return scheme diff --git a/pkg/uninstall/uninstall.go b/pkg/uninstall/uninstall.go index 744cb04e..92d7ffc2 100644 --- a/pkg/uninstall/uninstall.go +++ b/pkg/uninstall/uninstall.go @@ -35,7 +35,7 @@ import ( imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" - notificationv1b2 "github.com/fluxcd/notification-controller/api/v1beta2" + notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" ) @@ -243,7 +243,7 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client } } { - var list notificationv1b2.AlertList + var list notificationv1b3.AlertList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { for i := range list.Items { r := list.Items[i] @@ -258,7 +258,7 @@ func Finalizers(ctx context.Context, logger log.Logger, kubeClient client.Client } } { - var list notificationv1b2.ProviderList + var list notificationv1b3.ProviderList if err := kubeClient.List(ctx, &list, client.InNamespace("")); err == nil { for i := range list.Items { r := list.Items[i] diff --git a/tests/azure/azure_test.go b/tests/azure/azure_test.go index 6209ec9b..57384156 100644 --- a/tests/azure/azure_test.go +++ b/tests/azure/azure_test.go @@ -53,7 +53,7 @@ import ( reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notiv1 "github.com/fluxcd/notification-controller/api/v1" - notiv1beta2 "github.com/fluxcd/notification-controller/api/v1beta2" + notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1" "github.com/fluxcd/pkg/apis/meta" sourcev1 "github.com/fluxcd/source-controller/api/v1" @@ -681,14 +681,14 @@ func TestAzureDevOpsCommitStatus(t *testing.T) { } return nil }) - provider := notiv1beta2.Provider{ + provider := notiv1beta3.Provider{ ObjectMeta: metav1.ObjectMeta{ Name: "azuredevops", Namespace: name, }, } _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &provider, func() error { - provider.Spec = notiv1beta2.ProviderSpec{ + provider.Spec = notiv1beta3.ProviderSpec{ Type: "azuredevops", Address: repoUrl, SecretRef: &meta.LocalObjectReference{ @@ -698,14 +698,14 @@ func TestAzureDevOpsCommitStatus(t *testing.T) { return nil }) require.NoError(t, err) - alert := notiv1beta2.Alert{ + alert := notiv1beta3.Alert{ ObjectMeta: metav1.ObjectMeta{ Name: "azuredevops", Namespace: name, }, } _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &alert, func() error { - alert.Spec = notiv1beta2.AlertSpec{ + alert.Spec = notiv1beta3.AlertSpec{ ProviderRef: meta.LocalObjectReference{ Name: provider.Name, }, @@ -809,14 +809,14 @@ func TestEventHubNotification(t *testing.T) { } return nil }) - provider := notiv1beta2.Provider{ + provider := notiv1beta3.Provider{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: name, }, } _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &provider, func() error { - provider.Spec = notiv1beta2.ProviderSpec{ + provider.Spec = notiv1beta3.ProviderSpec{ Type: "azureeventhub", Address: repoUrl, SecretRef: &meta.LocalObjectReference{ @@ -826,14 +826,14 @@ func TestEventHubNotification(t *testing.T) { return nil }) require.NoError(t, err) - alert := notiv1beta2.Alert{ + alert := notiv1beta3.Alert{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: name, }, } _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &alert, func() error { - alert.Spec = notiv1beta2.AlertSpec{ + alert.Spec = notiv1beta3.AlertSpec{ ProviderRef: meta.LocalObjectReference{ Name: provider.Name, }, diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 8502c2b4..10b790b8 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -9,14 +9,14 @@ require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 - github.com/fluxcd/image-reflector-controller/api v0.30.0 + github.com/fluxcd/image-reflector-controller/api v0.31.0 github.com/fluxcd/kustomize-controller/api v1.1.1 - github.com/fluxcd/notification-controller/api v1.1.0 + github.com/fluxcd/notification-controller/api v1.2.1 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.15.0 github.com/fluxcd/pkg/git/gogit v0.15.0 - github.com/fluxcd/source-controller/api v1.1.2 + github.com/fluxcd/source-controller/api v1.2.1 github.com/go-git/go-git/v5 v5.10.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 diff --git a/tests/azure/go.sum b/tests/azure/go.sum index b53c5f9f..1beaaa1a 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -71,12 +71,12 @@ github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRj github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= -github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= -github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= +github.com/fluxcd/image-reflector-controller/api v0.31.0 h1:9t5zj7ufo9/d57gpcZsD6YAIxFz0vtLH4jXCj379srE= +github.com/fluxcd/image-reflector-controller/api v0.31.0/go.mod h1:/EcjOa/EYi8sSBHcGrBkLjMjNNfC7xXMxqG9phBORCo= github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= -github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDXLnijUddlHeRfciALwQw= -github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= +github.com/fluxcd/notification-controller/api v1.2.1 h1:yPQZ7ppYvazxl/Vsespbx9VlVyopH7p8pKGzZTNxI0c= +github.com/fluxcd/notification-controller/api v1.2.1/go.mod h1:1sWTpAXkga5zkXOgFoR+NIJgHNclBcfAHUJ/rMAjnYY= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -94,8 +94,8 @@ github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= -github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= +github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= diff --git a/tests/azure/util_test.go b/tests/azure/util_test.go index 7c4f4083..836ea3a2 100644 --- a/tests/azure/util_test.go +++ b/tests/azure/util_test.go @@ -40,7 +40,7 @@ import ( reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notiv1 "github.com/fluxcd/notification-controller/api/v1" - notiv1beta2 "github.com/fluxcd/notification-controller/api/v1beta2" + notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/pkg/git" "github.com/fluxcd/pkg/git/gogit" @@ -96,7 +96,7 @@ func getKubernetesCredentials(kubeconfig, aksHost, aksCert, aksKey, aksCa string if err != nil { return "", nil, err } - err = notiv1beta2.AddToScheme(scheme.Scheme) + err = notiv1beta3.AddToScheme(scheme.Scheme) if err != nil { return "", nil, err } diff --git a/tests/integration/azure_specific_test.go b/tests/integration/azure_specific_test.go index 536de394..2f9d6fc7 100644 --- a/tests/integration/azure_specific_test.go +++ b/tests/integration/azure_specific_test.go @@ -38,7 +38,7 @@ import ( kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notiv1 "github.com/fluxcd/notification-controller/api/v1" - notiv1beta2 "github.com/fluxcd/notification-controller/api/v1beta2" + notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" "github.com/fluxcd/pkg/apis/meta" sourcev1 "github.com/fluxcd/source-controller/api/v1" ) @@ -109,12 +109,12 @@ metadata: g.Expect(testEnv.Create(ctx, &secret)).To(Succeed()) defer testEnv.Delete(ctx, &secret) - provider := notiv1beta2.Provider{ + provider := notiv1beta3.Provider{ ObjectMeta: metav1.ObjectMeta{ Name: "azuredevops", Namespace: testID, }, - Spec: notiv1beta2.ProviderSpec{ + Spec: notiv1beta3.ProviderSpec{ Type: "azuredevops", Address: repoUrl, SecretRef: &meta.LocalObjectReference{ @@ -125,12 +125,12 @@ metadata: g.Expect(testEnv.Create(ctx, &provider)).To(Succeed()) defer testEnv.Delete(ctx, &provider) - alert := notiv1beta2.Alert{ + alert := notiv1beta3.Alert{ ObjectMeta: metav1.ObjectMeta{ Name: "azuredevops", Namespace: testID, }, - Spec: notiv1beta2.AlertSpec{ + Spec: notiv1beta3.AlertSpec{ ProviderRef: meta.LocalObjectReference{ Name: provider.Name, }, diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 1468f0e3..091b691a 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -7,15 +7,15 @@ require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.0 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 - github.com/fluxcd/image-reflector-controller/api v0.30.0 + github.com/fluxcd/image-reflector-controller/api v0.31.0 github.com/fluxcd/kustomize-controller/api v1.1.1 - github.com/fluxcd/notification-controller/api v1.1.0 + github.com/fluxcd/notification-controller/api v1.2.1 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.15.0 github.com/fluxcd/pkg/git/gogit v0.15.0 github.com/fluxcd/pkg/runtime v0.43.0 - github.com/fluxcd/source-controller/api v1.1.2 + github.com/fluxcd/source-controller/api v1.2.1 github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 github.com/go-git/go-git/v5 v5.10.0 github.com/google/go-containerregistry v0.16.1 diff --git a/tests/integration/go.sum b/tests/integration/go.sum index e4b352c4..b28d6010 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -126,12 +126,12 @@ github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRj github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= -github.com/fluxcd/image-reflector-controller/api v0.30.0 h1:DiWj+4tcbnaSqZs1Pfkyt3uSy47wg3dsNMgbFE50pYc= -github.com/fluxcd/image-reflector-controller/api v0.30.0/go.mod h1:hv57KwIzoPyy7Vu4PFcIf21eu0N3p/HbijygcuNgf8c= +github.com/fluxcd/image-reflector-controller/api v0.31.0 h1:9t5zj7ufo9/d57gpcZsD6YAIxFz0vtLH4jXCj379srE= +github.com/fluxcd/image-reflector-controller/api v0.31.0/go.mod h1:/EcjOa/EYi8sSBHcGrBkLjMjNNfC7xXMxqG9phBORCo= github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= -github.com/fluxcd/notification-controller/api v1.1.0 h1:qx5t5DmArfPLxG2bsYZXIqDXLnijUddlHeRfciALwQw= -github.com/fluxcd/notification-controller/api v1.1.0/go.mod h1:6MqWVQeI5yrYR7zp0GFqsfXitNPGJrnfOWxO2w3jylg= +github.com/fluxcd/notification-controller/api v1.2.1 h1:yPQZ7ppYvazxl/Vsespbx9VlVyopH7p8pKGzZTNxI0c= +github.com/fluxcd/notification-controller/api v1.2.1/go.mod h1:1sWTpAXkga5zkXOgFoR+NIJgHNclBcfAHUJ/rMAjnYY= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -151,8 +151,8 @@ github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.1.2 h1:FfKDKVWnopo+Q2pOAxgHEjrtr4MP41L8aapR4mqBhBk= -github.com/fluxcd/source-controller/api v1.1.2/go.mod h1:ZLkaUd1KQIjtLPCvO63Ni5zpnSTVBAkeRgFBzMItbDQ= +github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= +github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 h1:w9UGknpfAGbiObQALZiuWYGeriAU1wKCFTmI2tj/96M= github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= diff --git a/tests/integration/notification_test.go b/tests/integration/notification_test.go index 4ea01692..6df2d145 100644 --- a/tests/integration/notification_test.go +++ b/tests/integration/notification_test.go @@ -31,7 +31,7 @@ import ( kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notiv1 "github.com/fluxcd/notification-controller/api/v1" - notiv1beta2 "github.com/fluxcd/notification-controller/api/v1beta2" + notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" events "github.com/fluxcd/pkg/apis/event/v1beta1" "github.com/fluxcd/pkg/apis/meta" sourcev1 "github.com/fluxcd/source-controller/api/v1" @@ -66,12 +66,12 @@ metadata: g.Expect(testEnv.Create(ctx, &namespace)).To(Succeed()) defer testEnv.Delete(ctx, &namespace) - provider := notiv1beta2.Provider{ + provider := notiv1beta3.Provider{ ObjectMeta: metav1.ObjectMeta{ Name: testID, Namespace: testID, }, - Spec: notiv1beta2.ProviderSpec{ + Spec: notiv1beta3.ProviderSpec{ Type: cfg.notificationCfg.providerType, Address: cfg.notificationCfg.providerAddress, Channel: cfg.notificationCfg.providerChannel, @@ -98,12 +98,12 @@ metadata: g.Expect(testEnv.Create(ctx, &provider)).To(Succeed()) defer testEnv.Delete(ctx, &provider) - alert := notiv1beta2.Alert{ + alert := notiv1beta3.Alert{ ObjectMeta: metav1.ObjectMeta{ Name: testID, Namespace: testID, }, - Spec: notiv1beta2.AlertSpec{ + Spec: notiv1beta3.AlertSpec{ ProviderRef: meta.LocalObjectReference{ Name: provider.Name, }, @@ -121,7 +121,7 @@ metadata: g.Eventually(func() bool { nn := types.NamespacedName{Name: provider.Name, Namespace: provider.Namespace} - obj := ¬iv1beta2.Provider{} + obj := ¬iv1beta3.Provider{} err := testEnv.Get(ctx, nn, obj) if err != nil { return false @@ -132,7 +132,7 @@ metadata: } nn = types.NamespacedName{Name: alert.Name, Namespace: alert.Namespace} - alertObj := ¬iv1beta2.Alert{} + alertObj := ¬iv1beta3.Alert{} err = testEnv.Get(ctx, nn, alertObj) if err != nil { return false diff --git a/tests/integration/suite_test.go b/tests/integration/suite_test.go index 8044c46c..87c0fdb0 100644 --- a/tests/integration/suite_test.go +++ b/tests/integration/suite_test.go @@ -34,7 +34,7 @@ import ( automationv1beta1 "github.com/fluxcd/image-automation-controller/api/v1beta1" reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" - notiv1beta2 "github.com/fluxcd/notification-controller/api/v1beta2" + notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" "github.com/fluxcd/pkg/git" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2" @@ -166,7 +166,7 @@ func init() { utilruntime.Must(helmv2beta1.AddToScheme(scheme.Scheme)) utilruntime.Must(reflectorv1beta2.AddToScheme(scheme.Scheme)) utilruntime.Must(automationv1beta1.AddToScheme(scheme.Scheme)) - utilruntime.Must(notiv1beta2.AddToScheme(scheme.Scheme)) + utilruntime.Must(notiv1beta3.AddToScheme(scheme.Scheme)) random = rand.New(rand.NewSource(time.Now().UnixNano())) } From 2649bfb3a301d23318308095ad91a4d2ccc7c9d6 Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 8 Dec 2023 14:39:53 +0000 Subject: [PATCH 060/154] tests/int: do not wait for static objects HelmRepo OCI, Alerts and Providers are static objects and don't need to be checked for readiness. Signed-off-by: Sunny --- tests/integration/notification_test.go | 27 -------------------------- tests/integration/oci_test.go | 17 +--------------- 2 files changed, 1 insertion(+), 43 deletions(-) diff --git a/tests/integration/notification_test.go b/tests/integration/notification_test.go index 6df2d145..ef154147 100644 --- a/tests/integration/notification_test.go +++ b/tests/integration/notification_test.go @@ -27,7 +27,6 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notiv1 "github.com/fluxcd/notification-controller/api/v1" @@ -119,32 +118,6 @@ metadata: g.Expect(testEnv.Create(ctx, &alert)).ToNot(HaveOccurred()) defer testEnv.Delete(ctx, &alert) - g.Eventually(func() bool { - nn := types.NamespacedName{Name: provider.Name, Namespace: provider.Namespace} - obj := ¬iv1beta3.Provider{} - err := testEnv.Get(ctx, nn, obj) - if err != nil { - return false - } - if err := checkReadyCondition(obj); err != nil { - t.Log(err) - return false - } - - nn = types.NamespacedName{Name: alert.Name, Namespace: alert.Namespace} - alertObj := ¬iv1beta3.Alert{} - err = testEnv.Get(ctx, nn, alertObj) - if err != nil { - return false - } - if err := checkReadyCondition(alertObj); err != nil { - t.Log(err) - return false - } - - return true - }, testTimeout, testInterval).Should(BeTrue()) - modifyKsSpec := func(spec *kustomizev1.KustomizationSpec) { spec.Interval = metav1.Duration{Duration: 30 * time.Second} spec.HealthChecks = []meta.NamespacedObjectKindReference{ diff --git a/tests/integration/oci_test.go b/tests/integration/oci_test.go index c95e07d6..49788364 100644 --- a/tests/integration/oci_test.go +++ b/tests/integration/oci_test.go @@ -49,7 +49,7 @@ func TestOCIHelmRelease(t *testing.T) { err := pushImagesFromURL(repoURL, "ghcr.io/stefanprodan/charts/podinfo:6.2.0", []string{"6.2.0"}) g.Expect(err).ToNot(HaveOccurred()) - // Create HelmRepository and wait for it to sync + // Create HelmRepository. helmRepository := sourcev1.HelmRepository{ ObjectMeta: metav1.ObjectMeta{Name: testID, Namespace: testID}, Spec: sourcev1.HelmRepositorySpec{ @@ -66,21 +66,6 @@ func TestOCIHelmRelease(t *testing.T) { g.Expect(testEnv.Create(ctx, &helmRepository)).To(Succeed()) defer testEnv.Delete(ctx, &helmRepository) - g.Eventually(func() bool { - obj := &sourcev1.HelmRepository{} - nn := types.NamespacedName{Name: helmRepository.Name, Namespace: helmRepository.Namespace} - err := testEnv.Get(ctx, nn, obj) - if err != nil { - t.Logf("error getting helm repository %s", err.Error()) - return false - } - if err := checkReadyCondition(obj); err != nil { - t.Logf("%v", err) - return false - } - return true - }, testTimeout, testInterval).Should(BeTrue()) - // create helm release helmRelease := helmv2.HelmRelease{ ObjectMeta: metav1.ObjectMeta{Name: testID, Namespace: testID}, From 1e37cbeae7f2c8bc509ee36d11fcdf24042323b8 Mon Sep 17 00:00:00 2001 From: Sunny Date: Fri, 8 Dec 2023 16:16:05 +0000 Subject: [PATCH 061/154] Update Helm OCI RFC - static HelmRepository design Update the design details to reflect the design change to make the HelmRepository of type OCI static. Signed-off-by: Sunny --- rfcs/0002-helm-oci/README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/rfcs/0002-helm-oci/README.md b/rfcs/0002-helm-oci/README.md index 518eaae5..d0636a32 100644 --- a/rfcs/0002-helm-oci/README.md +++ b/rfcs/0002-helm-oci/README.md @@ -4,7 +4,7 @@ **Creation date:** 2022-03-30 -**Last update:** 2022-10-20 +**Last update:** 2023-11-28 ## Summary @@ -252,17 +252,15 @@ Bucket API design, where the same Kind servers different implementations: AWS S3 ## Design Details -In source-controller we'll add a new predicate for filtering `HelmRepositories` based on the `spec.type` field. +Unlike the default `HelmRepository`, the OCI `HelmRepository` does not need to +download any repository index file. The associated HelmChart can pull the chart +directly from the OCI registry based on the registry information in the +`HelmRepository` object. This makes the `HelmRepository` of type `oci` static, +not backed by a reconciler to move to a desired state. It becomes a data +container with information about the OCI registry. -The current `HelmRepositoryReconciler` will handle only objects with `type: default`, -it's scope remains unchanged. - -We'll introduce a new reconciler named `HelmRepositoryOCIReconciler`, that will handle -objects with `type: oci`. This reconciler will set the `HelmRepository` Ready status to -`False` if: -- the URL is not prefixed with `oci://` -- the URL is malformed and can't be parsed -- the specified credentials result in an authentication error +In source-controller, the `HelmRepositoryReconciler` will be updated to check +the `.spec.type` field of `HelmRepository` and do nothing if it is `oci`. The current `HelmChartReconciler` will be adapted to handle both types. @@ -277,6 +275,7 @@ The feature is enabled by default. * **2022-08-11** Resolve chart dependencies from OCI released with [flux2 v0.32.0](https://github.com/fluxcd/flux2/releases/tag/v0.32.0) * **2022-08-29** Contextual login for AWS, Azure and GCP released with [flux2 v0.33.0](https://github.com/fluxcd/flux2/releases/tag/v0.33.0) * **2022-10-21** Verifying Helm charts with Cosign released with [flux2 v0.36.0](https://github.com/fluxcd/flux2/releases/tag/v0.36.0) +* **2023-11-28** Update the design of HelmRepository of type OCI to be static object [flux2 v2.2.0](https://github.com/fluxcd/flux2/releases/tag/v2.2.0) ### TODOs From 3abc8292504ecdd5d774b3f6a132e5a052b4bb30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 01:03:57 +0000 Subject: [PATCH 062/154] build(deps): bump the ci group with 4 updates Bumps the ci group with 4 updates: [korthout/backport-action](https://github.com/korthout/backport-action), [actions/setup-go](https://github.com/actions/setup-go), [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `korthout/backport-action` from 2.1.1 to 2.2.0 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/08bafb375e6e9a9a2b53a744b987e5d81a133191...b982d297e31f500652b2246cf26714796312bd23) Updates `actions/setup-go` from 4.1.0 to 5.0.0 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/93397bea11091df50f3d7e59dc26a7711a8bcfbe...0c52d547c9bc32b1aa3301fd7a9cb496313a4491) Updates `google-github-actions/setup-gcloud` from 1.1.1 to 2.0.0 - [Release notes](https://github.com/google-github-actions/setup-gcloud/releases) - [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/setup-gcloud/compare/e30db14379863a8c79331b04a9969f4c1e225e0b...825196879a077b7efa50db2e88409f44de4635c2) Updates `anchore/sbom-action` from 0.15.0 to 0.15.1 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/fd74a6fb98a204a1ad35bbfae0122c1a302ff88b...5ecf649a417b8ae17dc8383dc32d46c03f2312df) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: google-github-actions/setup-gcloud dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/backport.yaml | 2 +- .github/workflows/e2e-arm64.yaml | 2 +- .github/workflows/e2e-azure.yaml | 4 ++-- .github/workflows/e2e-bootstrap.yaml | 2 +- .github/workflows/e2e-gcp.yaml | 4 ++-- .github/workflows/e2e.yaml | 2 +- .github/workflows/release.yaml | 4 ++-- .github/workflows/scan.yaml | 4 ++-- .github/workflows/update.yaml | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index e3fdd5d3..d584e25f 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -17,7 +17,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs - uses: korthout/backport-action@08bafb375e6e9a9a2b53a744b987e5d81a133191 # v2.1.1 + uses: korthout/backport-action@b982d297e31f500652b2246cf26714796312bd23 # v2.2.0 # xref: https://github.com/korthout/backport-action#inputs with: # Use token to allow workflows to be triggered for the created PR diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index b9aa1aa4..93b81b12 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -23,7 +23,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: | diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 3e974205..67743f3f 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -32,7 +32,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: tests/azure/go.sum @@ -77,7 +77,7 @@ jobs: - name: CheckoutD uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: tests/integration/go.sum diff --git a/.github/workflows/e2e-bootstrap.yaml b/.github/workflows/e2e-bootstrap.yaml index 908741a2..0d010405 100644 --- a/.github/workflows/e2e-bootstrap.yaml +++ b/.github/workflows/e2e-bootstrap.yaml @@ -19,7 +19,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: | diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index bfc57ddf..ae9d5295 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -31,7 +31,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: tests/integration/go.sum @@ -52,7 +52,7 @@ jobs: credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}' token_format: 'access_token' - name: Setup gcloud - uses: google-github-actions/setup-gcloud@e30db14379863a8c79331b04a9969f4c1e225e0b # v1.1.1 + uses: google-github-actions/setup-gcloud@825196879a077b7efa50db2e88409f44de4635c2 # v2.0.0 - name: Setup QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Setup Docker Buildx diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 3fbbb70b..de08bc7f 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -23,7 +23,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: | diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 030e9957..e936fc03 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -24,7 +24,7 @@ jobs: - name: Unshallow run: git fetch --prune --unshallow - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache: false @@ -34,7 +34,7 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@fd74a6fb98a204a1ad35bbfae0122c1a302ff88b # v0.15.0 + uses: anchore/sbom-action/download-syft@5ecf649a417b8ae17dc8383dc32d46c03f2312df # v0.15.1 - name: Setup Cosign uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8 # v3.2.0 - name: Setup Kustomize diff --git a/.github/workflows/scan.yaml b/.github/workflows/scan.yaml index 8ba3df35..28b1b840 100644 --- a/.github/workflows/scan.yaml +++ b/.github/workflows/scan.yaml @@ -35,7 +35,7 @@ jobs: - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: | @@ -66,7 +66,7 @@ jobs: - name: Checkout repository uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: | diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index 0618d372..ec619fcd 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -20,7 +20,7 @@ jobs: - name: Check out code uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: 1.20.x cache-dependency-path: | From 8ce8b1b690ca29cde691071482d1da19aa0dc1b5 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 12 Dec 2023 09:26:11 +0200 Subject: [PATCH 063/154] Update Git dependencies Signed-off-by: Stefan Prodan --- go.mod | 74 ++++---- go.sum | 214 +++++++++-------------- tests/azure/azure_test.go | 2 +- tests/azure/go.mod | 23 ++- tests/azure/go.sum | 51 +++--- tests/integration/azure_specific_test.go | 2 +- tests/integration/go.mod | 41 +++-- tests/integration/go.sum | 95 +++++----- 8 files changed, 216 insertions(+), 286 deletions(-) diff --git a/go.mod b/go.mod index 393a9482..bef83405 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 - github.com/fluxcd/cli-utils v0.36.0-flux.1 + github.com/fluxcd/cli-utils v0.36.0-flux.2 github.com/fluxcd/go-git-providers v0.19.1 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 @@ -19,23 +19,23 @@ require ( github.com/fluxcd/notification-controller/api v1.2.1 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 - github.com/fluxcd/pkg/git v0.15.0 - github.com/fluxcd/pkg/git/gogit v0.15.0 - github.com/fluxcd/pkg/kustomize v1.4.0 - github.com/fluxcd/pkg/oci v0.33.0 - github.com/fluxcd/pkg/runtime v0.43.0 - github.com/fluxcd/pkg/sourceignore v0.3.5 - github.com/fluxcd/pkg/ssa v0.34.0 + github.com/fluxcd/pkg/git v0.16.0 + github.com/fluxcd/pkg/git/gogit v0.16.1 + github.com/fluxcd/pkg/kustomize v1.5.0 + github.com/fluxcd/pkg/oci v0.33.3 + github.com/fluxcd/pkg/runtime v0.43.2 + github.com/fluxcd/pkg/sourceignore v0.4.0 + github.com/fluxcd/pkg/ssa v0.35.0 github.com/fluxcd/pkg/ssh v0.10.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.2.1 - github.com/go-git/go-git/v5 v5.10.0 + github.com/go-git/go-git/v5 v5.11.0 github.com/go-logr/logr v1.3.0 github.com/gonvenience/bunt v1.3.5 github.com/gonvenience/ytbx v1.4.4 github.com/google/go-cmp v0.6.0 - github.com/google/go-containerregistry v0.16.1 + github.com/google/go-containerregistry v0.17.0 github.com/hashicorp/go-cleanhttp v0.5.2 github.com/homeport/dyff v1.6.0 github.com/lucasb-eyer/go-colorful v1.2.0 @@ -57,36 +57,36 @@ require ( k8s.io/client-go v0.28.4 k8s.io/kubectl v0.28.4 sigs.k8s.io/controller-runtime v0.16.3 - sigs.k8s.io/kustomize/api v0.15.0 - sigs.k8s.io/kustomize/kyaml v0.15.0 + sigs.k8s.io/kustomize/api v0.16.0 + sigs.k8s.io/kustomize/kyaml v0.16.0 sigs.k8s.io/yaml v1.4.0 ) require ( code.gitea.io/sdk/gitea v0.16.0 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 // indirect github.com/BurntSushi/toml v1.3.2 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/acomagu/bufpipe v1.0.4 // indirect - github.com/aws/aws-sdk-go-v2 v1.21.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.18.36 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.35 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.19.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.13.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 // indirect - github.com/aws/smithy-go v1.14.2 // indirect + github.com/aws/aws-sdk-go-v2 v1.24.0 // indirect + github.com/aws/aws-sdk-go-v2/config v1.26.1 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect + github.com/aws/smithy-go v1.19.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bshuster-repo/logrus-logstash-hook v1.0.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -114,8 +114,8 @@ require ( github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-errors/errors v1.4.2 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-errors/errors v1.5.1 // indirect github.com/go-fed/httpsig v1.1.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect @@ -147,7 +147,7 @@ require ( github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect - github.com/imdario/mergo v0.3.15 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -194,8 +194,8 @@ require ( github.com/xanzy/go-gitlab v0.93.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xlab/treeprint v1.2.0 // indirect - go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect + go.starlark.net v0.0.0-20231121155337-90ade8b19d09 // indirect + golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/oauth2 v0.15.0 // indirect @@ -206,14 +206,14 @@ require ( gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/evanphx/json-patch.v5 v5.6.0 // indirect + gopkg.in/evanphx/json-patch.v5 v5.7.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/component-base v0.28.4 // indirect k8s.io/klog/v2 v2.110.1 // indirect - k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect + k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect diff --git a/go.sum b/go.sum index fdb411cc..2470a0fe 100644 --- a/go.sum +++ b/go.sum @@ -1,20 +1,18 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= code.gitea.io/sdk/gitea v0.16.0 h1:gAfssETO1Hv9QbE+/nhWu7EjoFQYKt6kPoyDytQgw00= code.gitea.io/sdk/gitea v0.16.0/go.mod h1:ndkDk99BnfiUCCYEUhpNzi0lpmApXlwRFqClBlOlEBg= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1 h1:LNHhpdK7hzUcx/k1LIcuh5k7k1LGIWLQfCjaneSj7Fc= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.1/go.mod h1:uE9zaUfEQT/nbQjVi2IblCG9iaLtZsuYZ8ne+PuQ02M= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 h1:fb8kj/Dh4CSwgsOzHeZY4Xh68cFVbzXx+ONXGMY//4w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0/go.mod h1:uReU2sSxZExRPBAg3qKzmAucSi51+SP1OhohieR821Q= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 h1:d81/ng9rET2YqdVkVwkb6EXeRrLJIwyGnJcAlAWKwhs= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 h1:WpB/QDNLpMw72xHJc34BNNykqSOeEJDAWkhf0u12/Jk= github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -27,38 +25,38 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= -github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= -github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/aws/aws-sdk-go-v2 v1.21.0 h1:gMT0IW+03wtYJhRqTVYn0wLzwdnK9sRMcxmtfGzRdJc= -github.com/aws/aws-sdk-go-v2 v1.21.0/go.mod h1:/RfNgGmRxI+iFOB1OeJUyxiU+9s88k3pfHvDagGEp0M= -github.com/aws/aws-sdk-go-v2/config v1.18.36 h1:mLNA12PWU1Y+ueOO79QgQfKIPhc1MYKl44RmvASkJ7Q= -github.com/aws/aws-sdk-go-v2/config v1.18.36/go.mod h1:8AnEFxW9/XGKCbjYDCJy7iltVNyEI9Iu9qC21UzhhgQ= -github.com/aws/aws-sdk-go-v2/credentials v1.13.35 h1:QpsNitYJu0GgvMBLUIYu9H4yryA5kMksjeIVQfgXrt8= -github.com/aws/aws-sdk-go-v2/credentials v1.13.35/go.mod h1:o7rCaLtvK0hUggAGclf76mNGGkaG5a9KWlp+d9IpcV8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11 h1:uDZJF1hu0EVT/4bogChk8DyjSF6fof6uL/0Y26Ma7Fg= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.11/go.mod h1:TEPP4tENqBGO99KwVpV9MlOX4NSrSLP8u3KRy2CDwA8= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41 h1:22dGT7PneFMx4+b3pz7lMTRyN8ZKH7M2cW4GP9yUS2g= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.41/go.mod h1:CrObHAuPneJBlfEJ5T3szXOUkLEThaGfvnhTf33buas= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35 h1:SijA0mgjV8E+8G45ltVHs0fvKpTj8xmZJ3VwhGKtUSI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.35/go.mod h1:SJC1nEVVva1g3pHAIdCp7QsRIkMmLAgoDquQ9Rr8kYw= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42 h1:GPUcE/Yq7Ur8YSUk6lVkoIMWnJNO0HT18GUzCWCgCI0= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.42/go.mod h1:rzfdUlfA+jdgLDmPKjd3Chq9V7LVLYo1Nz++Wb91aRo= -github.com/aws/aws-sdk-go-v2/service/ecr v1.19.5 h1:hg2/a7rE9dwYr+/DPNzHQ+IsHXLNt1NsQVUecBtA8os= -github.com/aws/aws-sdk-go-v2/service/ecr v1.19.5/go.mod h1:pGwmNL8hN0jpBfKfTbmu+Rl0bJkDhaGl+9PQLrZ4KLo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35 h1:CdzPW9kKitgIiLV1+MHobfR5Xg25iYnyzWZhyQuSlDI= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.35/go.mod h1:QGF2Rs33W5MaN9gYdEQOBBFPLwTZkEhRwI33f7KIG0o= -github.com/aws/aws-sdk-go-v2/service/sso v1.13.5 h1:oCvTFSDi67AX0pOX3PuPdGFewvLRU2zzFSrTsgURNo0= -github.com/aws/aws-sdk-go-v2/service/sso v1.13.5/go.mod h1:fIAwKQKBFu90pBxx07BFOMJLpRUGu8VOzLJakeY+0K4= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 h1:dnInJb4S0oy8aQuri1mV6ipLlnZPfnsDNB9BGO9PDNY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5/go.mod h1:yygr8ACQRY2PrEcy3xsUI357stq2AxnFM6DIsR9lij4= -github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 h1:CQBFElb0LS8RojMJlxRSo/HXipvTZW2S44Lt9Mk2aYQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.21.5/go.mod h1:VC7JDqsqiwXukYEDjoHh9U0fOJtNWh04FPQz4ct4GGU= -github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ= -github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/aws-sdk-go-v2 v1.24.0 h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk= +github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= +github.com/aws/aws-sdk-go-v2/config v1.26.1 h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o= +github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg= +github.com/aws/aws-sdk-go-v2/credentials v1.16.12 h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU= +github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 h1:v+HbZaCGmOwnTTVS86Fleq0vPzOd7tnJGbFhP0stNLs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9/go.mod h1:Xjqy+Nyj7VDLBtCMkQYOw1QYfAEZCVLrfI0ezve8wd4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 h1:N94sVhRACtXyVcjXxrwK1SKFIJrA9pOJ5yu2eSHnmls= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9/go.mod h1:hqamLz7g1/4EJP+GH5NBhcUMLjW+gKLQabgyz6/7WAU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5 h1:wLPDAUFT50NEXGXpywRU3AA74pg35RJjWol/68ruvQQ= +github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5/go.mod h1:AOHmGMoPtSY9Zm2zBuwUJQBisIvYAZeA1n7b6f4e880= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 h1:Nf2sHxjMJR8CSImIVCONRi4g0Su3J+TSTbS7G0pUeMU= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9/go.mod h1:idky4TER38YIjr2cADF1/ugFMKvZV7p//pVeV5LZbF0= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNICmcgKPAO1CER25Wg= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= +github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= +github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -66,7 +64,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= @@ -77,7 +74,6 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5O github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= @@ -119,8 +115,6 @@ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI= github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= @@ -132,8 +126,8 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fluxcd/cli-utils v0.36.0-flux.1 h1:004HtB/p47xqkTCGZhc1vVuXNzef7+N3wT364eFk7WA= -github.com/fluxcd/cli-utils v0.36.0-flux.1/go.mod h1:c+uMMDqGg8WKwBNeWKDDFEuDDHICDWAHthzosAKF2PA= +github.com/fluxcd/cli-utils v0.36.0-flux.2 h1:7nlXfAJ7iaDF34IdbyId+wBf7beL2qvzDBLmVBJSDVo= +github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po3pzAtk3NQmQEN5l8= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.19.1 h1:LXRFpHdPCmO+Uegw2MvAU3KiEHn1PRV2c//ii/HhpeY= github.com/fluxcd/go-git-providers v0.19.1/go.mod h1:eN0JpfkQqS/6yJ1I6DW3z1XLCC2JZK+55Ues+0Ur3Ds= @@ -155,21 +149,21 @@ github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhy github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= -github.com/fluxcd/pkg/git v0.15.0 h1:QPqv+b4sQXXpWQhigf/sPE5qzK4BrQhkltnYuEy4AYw= -github.com/fluxcd/pkg/git v0.15.0/go.mod h1:zqmLfw4d+mS77bMRkeQ+8dmFSgxB/c2ZDkafIyY6bAQ= -github.com/fluxcd/pkg/git/gogit v0.15.0 h1:GV8XaRp7CtlRuDallrJgMR6s1YHIMZi5+zyXMOJsS0c= -github.com/fluxcd/pkg/git/gogit v0.15.0/go.mod h1:9KBhXE1czARGT6QqHYVMfr2RbvPpguKwCdm4LgkP3nY= -github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/kustomize v1.4.0 h1:1c9dwLkccFGEVkE+CvCYqybtBoInYq6OePTkkgTfLzQ= -github.com/fluxcd/pkg/kustomize v1.4.0/go.mod h1:o0UgMmAjyCwsUSdBIDJ9NgXfOEJ6Iojs5PQ2agIRapc= -github.com/fluxcd/pkg/oci v0.33.0 h1:OC9eJzazldcUAyWS5Ul1XvUISpfJBRzDZqLjYyyNG2g= -github.com/fluxcd/pkg/oci v0.33.0/go.mod h1:XNxj6Pr1ddmC5EVSo+R3Nlr5droAV0LxZ9HJ3V1GNwI= -github.com/fluxcd/pkg/runtime v0.43.0 h1:dU4cWct5VTpddGzJUU80zxNl80jbbVEN5Y5rbt4YUnw= -github.com/fluxcd/pkg/runtime v0.43.0/go.mod h1:RuqJ9VEXELjzgurK2+UXBBgVN1vS0hZ7CYVG2xBAEVM= -github.com/fluxcd/pkg/sourceignore v0.3.5 h1:omcHTH5X5tlPr9w1b9T7WuJTOP+o/KdVdarYb4kgkCU= -github.com/fluxcd/pkg/sourceignore v0.3.5/go.mod h1:6Xz3jErz8RsidsdrjUBBUGKes24rbdp/F38MnTGibEw= -github.com/fluxcd/pkg/ssa v0.34.0 h1:hpMo0D7G3faieRYH39e9YD8Jl+aC2hTgUep8ojG5+LE= -github.com/fluxcd/pkg/ssa v0.34.0/go.mod h1:rhVh0EtYVUOznKXlz6E7JOSgdc8xWbIwA4L5HVtJRLA= +github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= +github.com/fluxcd/pkg/git v0.16.0/go.mod h1:ZsaxXDBHIUjNeRf+3qDGyHD22KpqbjuNPCbHy2Xid5U= +github.com/fluxcd/pkg/git/gogit v0.16.1 h1:byimVk7VLbERRxJDkVktithN03GC0y7fyc8Ur9Uka8U= +github.com/fluxcd/pkg/git/gogit v0.16.1/go.mod h1:nx3PumOFe5e3fMsh2HPLSlAeOk2wC+jVg7H9BTRKEmg= +github.com/fluxcd/pkg/gittestserver v0.9.0 h1:OthMahtKmmpwCRw8LmSGrceqVhHywGg/QiytxHGSgeY= +github.com/fluxcd/pkg/kustomize v1.5.0 h1:Q2kynQzF4coKlOJq/XaLM+gVmVloaInkoa+vsor6Hho= +github.com/fluxcd/pkg/kustomize v1.5.0/go.mod h1:QgFwpteTedb7oio5+yN+h+rhSgm253OIjmtoTow+a5c= +github.com/fluxcd/pkg/oci v0.33.3 h1:dj5IuF2O9/0r37tOWoOoKX/0emytjEiJ6sXy9FUkHww= +github.com/fluxcd/pkg/oci v0.33.3/go.mod h1:6+vIgdqP6AkFitvlyGx2W9f4s8q5Oguw9SNeN494MCY= +github.com/fluxcd/pkg/runtime v0.43.2 h1:xH2BvttUqJ7wS0zjuBETr2pLXG62QY6f0mdxg5UQKio= +github.com/fluxcd/pkg/runtime v0.43.2/go.mod h1:dhhNV45B3tekg7qPzATFTuWOulvUzMoO1bV+vc2pSts= +github.com/fluxcd/pkg/sourceignore v0.4.0 h1:99Ikoi8qMirlBK4yjnoKa5vx9YFQ/BSSK3Axi+yDg9s= +github.com/fluxcd/pkg/sourceignore v0.4.0/go.mod h1:j1BRQE+R0TJmPYPUnEd/0gm8KcpajlX6mDv3z7s8YFQ= +github.com/fluxcd/pkg/ssa v0.35.0 h1:8T3WY4P9SQWApa2hq1rU1u2WE8oqP3MMTsAiEWwhmfo= +github.com/fluxcd/pkg/ssa v0.35.0/go.mod h1:rhVh0EtYVUOznKXlz6E7JOSgdc8xWbIwA4L5HVtJRLA= github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= @@ -178,11 +172,11 @@ github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/b github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= -github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= -github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= +github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= @@ -190,14 +184,14 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmS github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= -github.com/go-git/go-git/v5 v5.10.0 h1:F0x3xXrAWmhwtzoCokU4IMPcBdncG+HAAqi9FcOOjbQ= -github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYvhWHvZGhoo= +github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= +github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= +github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= @@ -214,19 +208,11 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 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.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= @@ -251,18 +237,13 @@ github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvR github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= 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.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/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.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.16.1 h1:rUEt426sR6nyrL3gt+18ibRcvYpKYdpsa5ZW7MA08dQ= -github.com/google/go-containerregistry v0.16.1/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= +github.com/google/go-containerregistry v0.17.0 h1:5p+zYs/R4VGHkhyvgWurWrpJ2hW4Vv9fQI+GzdcwXLk= +github.com/google/go-containerregistry v0.17.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg= github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= @@ -302,8 +283,8 @@ github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvH github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/homeport/dyff v1.6.0 h1:AN+ikld0Fy+qx34YE7655b/bpWuxS6cL9k852pE2GUc= github.com/homeport/dyff v1.6.0/go.mod h1:FlAOFYzeKvxmU5nTrnG+qrlJVWpsFew7pt8L99p5q8k= -github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= -github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= @@ -344,8 +325,6 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= -github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 h1:BXxTozrOU8zgC5dkpn3J6NTRdoP+hjok/e+ACr4Hibk= github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3/go.mod h1:x1uk6vxTiVuNt6S5R2UYgdhpj3oKojXvOXauHZ7dEnI= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -391,7 +370,7 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo/v2 v2.13.1 h1:LNGfMbR2OVGBfXjvRZIZ2YCTQdGKtPLvuI1rMCCj3OU= +github.com/onsi/ginkgo/v2 v2.13.2 h1:Bi2gGVkfn6gQcjNjZJVO8Gf0FHzMPf2phUei9tejVMs= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -419,7 +398,6 @@ github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1 github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -482,9 +460,9 @@ github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= -go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.starlark.net v0.0.0-20231121155337-90ade8b19d09 h1:hzy3LFnSN8kuQK8h9tHl4ndF6UruMj47OqwqsS+/Ai4= +go.starlark.net v0.0.0-20231121155337-90ade8b19d09/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -499,23 +477,15 @@ golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2Uz golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= -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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -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-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -529,10 +499,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= -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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -542,7 +510,6 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -565,7 +532,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -575,7 +541,6 @@ golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= @@ -594,10 +559,6 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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= @@ -611,24 +572,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/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.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= @@ -638,8 +583,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v5 v5.6.0 h1:BMT6KIwBD9CaU91PJCZIe46bDmBWa9ynTQgJIOpfQBk= -gopkg.in/evanphx/json-patch.v5 v5.6.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= +gopkg.in/evanphx/json-patch.v5 v5.7.0 h1:dGKGylPlZ/jus2g1YqhhyzfH0gPy2R8/MYUpW/OslTY= +gopkg.in/evanphx/json-patch.v5 v5.7.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= @@ -652,10 +597,7 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 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 v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= @@ -670,8 +612,8 @@ k8s.io/component-base v0.28.4 h1:c/iQLWPdUgI90O+T9TeECg8o7N3YJTiuz2sKxILYcYo= k8s.io/component-base v0.28.4/go.mod h1:m9hR0uvqXDybiGL2nf/3Lf0MerAfQXzkfWhUY58JUbU= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= -k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ= +k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/kubectl v0.28.4 h1:gWpUXW/T7aFne+rchYeHkyB8eVDl5UZce8G4X//kjUQ= k8s.io/kubectl v0.28.4/go.mod h1:CKOccVx3l+3MmDbkXtIUtibq93nN2hkDR99XDCn7c/c= k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= @@ -680,10 +622,10 @@ sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigw sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.15.0 h1:6Ca88kEOBVotHDw+y2IsIMYtg9Pvv7MKpW9JMyF/OH4= -sigs.k8s.io/kustomize/api v0.15.0/go.mod h1:p19kb+E14gN7zcIBR/nhByJDAfUa7N8mp6ZdH/mMXbg= -sigs.k8s.io/kustomize/kyaml v0.15.0 h1:ynlLMAxDhrY9otSg5GYE2TcIz31XkGZ2Pkj7SdolD84= -sigs.k8s.io/kustomize/kyaml v0.15.0/go.mod h1:+uMkBahdU1KNOj78Uta4rrXH+iH7wvg+nW7+GULvREA= +sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g= +sigs.k8s.io/kustomize/api v0.16.0/go.mod h1:MnFZ7IP2YqVyVwMWoRxPtgl/5hpA+eCCrQR/866cm5c= +sigs.k8s.io/kustomize/kyaml v0.16.0 h1:6J33uKSoATlKZH16unr2XOhDI+otoe2sR3M8PDzW3K0= +sigs.k8s.io/kustomize/kyaml v0.16.0/go.mod h1:xOK/7i+vmE14N2FdFyugIshB8eF6ALpy7jI87Q2nRh4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= diff --git a/tests/azure/azure_test.go b/tests/azure/azure_test.go index 57384156..889af1ad 100644 --- a/tests/azure/azure_test.go +++ b/tests/azure/azure_test.go @@ -31,6 +31,7 @@ import ( "time" eventhub "github.com/Azure/azure-event-hubs-go/v3" + giturls "github.com/chainguard-dev/git-urls" install "github.com/hashicorp/hc-install" "github.com/hashicorp/hc-install/fs" "github.com/hashicorp/hc-install/product" @@ -39,7 +40,6 @@ import ( "github.com/microsoft/azure-devops-go-api/azuredevops" "github.com/microsoft/azure-devops-go-api/azuredevops/git" "github.com/stretchr/testify/require" - giturls "github.com/whilp/git-urls" "go.uber.org/multierr" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 10b790b8..d61a0fbd 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -7,6 +7,7 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 + github.com/chainguard-dev/git-urls v1.0.2 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.31.0 @@ -14,20 +15,19 @@ require ( github.com/fluxcd/notification-controller/api v1.2.1 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 - github.com/fluxcd/pkg/git v0.15.0 - github.com/fluxcd/pkg/git/gogit v0.15.0 + github.com/fluxcd/pkg/git v0.16.0 + github.com/fluxcd/pkg/git/gogit v0.16.1 github.com/fluxcd/source-controller/api v1.2.1 - github.com/go-git/go-git/v5 v5.10.0 + github.com/go-git/go-git/v5 v5.11.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/stretchr/testify v1.8.4 - github.com/whilp/git-urls v1.0.0 go.uber.org/multierr v1.11.0 k8s.io/api v0.28.4 k8s.io/apimachinery v0.28.4 k8s.io/client-go v0.28.4 - k8s.io/klog/v2 v2.100.1 + k8s.io/klog/v2 v2.110.1 sigs.k8s.io/controller-runtime v0.16.3 ) @@ -47,7 +47,6 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect - github.com/acomagu/bufpipe v1.0.4 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/cloudflare/circl v1.3.6 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect @@ -58,7 +57,7 @@ require ( github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect - github.com/fluxcd/pkg/ssh v0.9.0 // indirect + github.com/fluxcd/pkg/ssh v0.10.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect @@ -99,15 +98,15 @@ require ( github.com/skeema/knownhosts v1.2.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect - golang.org/x/crypto v0.15.0 // indirect + golang.org/x/crypto v0.16.0 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.18.0 // indirect + golang.org/x/net v0.19.0 // indirect golang.org/x/oauth2 v0.14.0 // indirect - golang.org/x/sys v0.14.0 // indirect - golang.org/x/term v0.14.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.4.0 // indirect - golang.org/x/tools v0.15.0 // indirect + golang.org/x/tools v0.16.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 1beaaa1a..316215fe 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -37,8 +37,6 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= -github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= -github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= @@ -47,6 +45,8 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ= +github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= @@ -85,13 +85,13 @@ github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0 github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= -github.com/fluxcd/pkg/git v0.15.0 h1:QPqv+b4sQXXpWQhigf/sPE5qzK4BrQhkltnYuEy4AYw= -github.com/fluxcd/pkg/git v0.15.0/go.mod h1:zqmLfw4d+mS77bMRkeQ+8dmFSgxB/c2ZDkafIyY6bAQ= -github.com/fluxcd/pkg/git/gogit v0.15.0 h1:GV8XaRp7CtlRuDallrJgMR6s1YHIMZi5+zyXMOJsS0c= -github.com/fluxcd/pkg/git/gogit v0.15.0/go.mod h1:9KBhXE1czARGT6QqHYVMfr2RbvPpguKwCdm4LgkP3nY= -github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= -github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= +github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= +github.com/fluxcd/pkg/git v0.16.0/go.mod h1:ZsaxXDBHIUjNeRf+3qDGyHD22KpqbjuNPCbHy2Xid5U= +github.com/fluxcd/pkg/git/gogit v0.16.1 h1:byimVk7VLbERRxJDkVktithN03GC0y7fyc8Ur9Uka8U= +github.com/fluxcd/pkg/git/gogit v0.16.1/go.mod h1:nx3PumOFe5e3fMsh2HPLSlAeOk2wC+jVg7H9BTRKEmg= +github.com/fluxcd/pkg/gittestserver v0.9.0 h1:OthMahtKmmpwCRw8LmSGrceqVhHywGg/QiytxHGSgeY= +github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= +github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= @@ -104,9 +104,8 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmS github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= -github.com/go-git/go-git/v5 v5.10.0 h1:F0x3xXrAWmhwtzoCokU4IMPcBdncG+HAAqi9FcOOjbQ= -github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYvhWHvZGhoo= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= +github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= @@ -183,8 +182,6 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 h1:YH424zrwLTlyHSH/GzLMJeu5zhYVZSx5RQxGKm1h96s= @@ -240,8 +237,6 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/whilp/git-urls v1.0.0 h1:95f6UMWN5FKW71ECsXRUd3FVYiXdrE7aX4NZKcPmIjU= -github.com/whilp/git-urls v1.0.0/go.mod h1:J16SAmobsqc3Qcy98brfl5f5+e0clUvg1krgwk/qCfE= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -263,8 +258,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -285,8 +280,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -311,15 +306,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/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= @@ -339,8 +334,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= 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= @@ -377,8 +372,8 @@ k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= diff --git a/tests/integration/azure_specific_test.go b/tests/integration/azure_specific_test.go index 2f9d6fc7..7f84c76b 100644 --- a/tests/integration/azure_specific_test.go +++ b/tests/integration/azure_specific_test.go @@ -28,10 +28,10 @@ import ( "testing" "time" + giturls "github.com/chainguard-dev/git-urls" "github.com/microsoft/azure-devops-go-api/azuredevops" "github.com/microsoft/azure-devops-go-api/azuredevops/git" . "github.com/onsi/gomega" - giturls "github.com/whilp/git-urls" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 091b691a..711e213b 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -5,6 +5,7 @@ go 1.20 require ( cloud.google.com/go/pubsub v1.31.0 github.com/Azure/azure-event-hubs-go/v3 v3.6.0 + github.com/chainguard-dev/git-urls v1.0.2 github.com/fluxcd/helm-controller/api v0.36.2 github.com/fluxcd/image-automation-controller/api v0.36.1 github.com/fluxcd/image-reflector-controller/api v0.31.0 @@ -12,17 +13,16 @@ require ( github.com/fluxcd/notification-controller/api v1.2.1 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 - github.com/fluxcd/pkg/git v0.15.0 - github.com/fluxcd/pkg/git/gogit v0.15.0 - github.com/fluxcd/pkg/runtime v0.43.0 + github.com/fluxcd/pkg/git v0.16.0 + github.com/fluxcd/pkg/git/gogit v0.16.1 + github.com/fluxcd/pkg/runtime v0.43.2 github.com/fluxcd/source-controller/api v1.2.1 github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 - github.com/go-git/go-git/v5 v5.10.0 + github.com/go-git/go-git/v5 v5.11.0 github.com/google/go-containerregistry v0.16.1 github.com/hashicorp/terraform-json v0.16.0 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/onsi/gomega v1.30.0 - github.com/whilp/git-urls v1.0.0 google.golang.org/grpc v1.56.3 k8s.io/api v0.28.4 k8s.io/apimachinery v0.28.4 @@ -50,7 +50,6 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect - github.com/acomagu/bufpipe v1.0.4 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/cloudflare/circl v1.3.6 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect @@ -66,14 +65,14 @@ require ( github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect - github.com/fluxcd/pkg/ssh v0.9.0 // indirect + github.com/fluxcd/pkg/ssh v0.10.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-logr/logr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -91,7 +90,7 @@ require ( github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/hc-install v0.5.0 // indirect github.com/hashicorp/terraform-exec v0.18.1 // indirect - github.com/imdario/mergo v0.3.15 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect @@ -116,18 +115,18 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.15.0 // indirect + golang.org/x/crypto v0.16.0 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.18.0 // indirect - golang.org/x/oauth2 v0.14.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.15.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.14.0 // indirect - golang.org/x/term v0.14.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.4.0 // indirect - golang.org/x/tools v0.15.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.16.0 // indirect google.golang.org/api v0.126.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect @@ -137,9 +136,9 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.28.4 // indirect - k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + k8s.io/klog/v2 v2.110.1 // indirect + k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect + k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index b28d6010..d83c779d 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -60,8 +60,6 @@ github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/ github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= -github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= -github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -76,6 +74,8 @@ github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7N github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ= +github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= @@ -140,15 +140,15 @@ github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0 github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= -github.com/fluxcd/pkg/git v0.15.0 h1:QPqv+b4sQXXpWQhigf/sPE5qzK4BrQhkltnYuEy4AYw= -github.com/fluxcd/pkg/git v0.15.0/go.mod h1:zqmLfw4d+mS77bMRkeQ+8dmFSgxB/c2ZDkafIyY6bAQ= -github.com/fluxcd/pkg/git/gogit v0.15.0 h1:GV8XaRp7CtlRuDallrJgMR6s1YHIMZi5+zyXMOJsS0c= -github.com/fluxcd/pkg/git/gogit v0.15.0/go.mod h1:9KBhXE1czARGT6QqHYVMfr2RbvPpguKwCdm4LgkP3nY= -github.com/fluxcd/pkg/gittestserver v0.8.6 h1:YM8prVKB3LC9LBBe+a2p7l1BlfV9erXCgC1em9sbqW4= -github.com/fluxcd/pkg/runtime v0.43.0 h1:dU4cWct5VTpddGzJUU80zxNl80jbbVEN5Y5rbt4YUnw= -github.com/fluxcd/pkg/runtime v0.43.0/go.mod h1:RuqJ9VEXELjzgurK2+UXBBgVN1vS0hZ7CYVG2xBAEVM= -github.com/fluxcd/pkg/ssh v0.9.0 h1:egRvg4AKarObFKXsBDZ5oBZ5PCjmQ4Q6hX+6GmrdbH0= -github.com/fluxcd/pkg/ssh v0.9.0/go.mod h1:3KKbfcFn4l+HqYdHKqcu2LO8RvFv0Kh6tYRSUtONC/8= +github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= +github.com/fluxcd/pkg/git v0.16.0/go.mod h1:ZsaxXDBHIUjNeRf+3qDGyHD22KpqbjuNPCbHy2Xid5U= +github.com/fluxcd/pkg/git/gogit v0.16.1 h1:byimVk7VLbERRxJDkVktithN03GC0y7fyc8Ur9Uka8U= +github.com/fluxcd/pkg/git/gogit v0.16.1/go.mod h1:nx3PumOFe5e3fMsh2HPLSlAeOk2wC+jVg7H9BTRKEmg= +github.com/fluxcd/pkg/gittestserver v0.9.0 h1:OthMahtKmmpwCRw8LmSGrceqVhHywGg/QiytxHGSgeY= +github.com/fluxcd/pkg/runtime v0.43.2 h1:xH2BvttUqJ7wS0zjuBETr2pLXG62QY6f0mdxg5UQKio= +github.com/fluxcd/pkg/runtime v0.43.2/go.mod h1:dhhNV45B3tekg7qPzATFTuWOulvUzMoO1bV+vc2pSts= +github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= +github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= @@ -157,7 +157,7 @@ github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 h1:w9U github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= @@ -171,18 +171,19 @@ github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgF github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= -github.com/go-git/go-git/v5 v5.10.0 h1:F0x3xXrAWmhwtzoCokU4IMPcBdncG+HAAqi9FcOOjbQ= -github.com/go-git/go-git/v5 v5.10.0/go.mod h1:1FOZ/pQnqw24ghP2n7cunVl0ON55BsjPYvhWHvZGhoo= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= +github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -197,7 +198,6 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 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= @@ -264,8 +264,8 @@ github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= -github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= @@ -293,7 +293,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -370,8 +369,6 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck= github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= -github.com/whilp/git-urls v1.0.0 h1:95f6UMWN5FKW71ECsXRUd3FVYiXdrE7aX4NZKcPmIjU= -github.com/whilp/git-urls v1.0.0/go.mod h1:J16SAmobsqc3Qcy98brfl5f5+e0clUvg1krgwk/qCfE= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= @@ -384,7 +381,7 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -400,10 +397,10 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= 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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -420,7 +417,6 @@ 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-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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -434,12 +430,12 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= +golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= 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= @@ -476,18 +472,17 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -498,8 +493,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= -golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= 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= @@ -510,8 +505,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= 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= @@ -521,8 +516,8 @@ google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= 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.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -587,12 +582,12 @@ k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= -k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= +k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ= +k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= +k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= From 43c9cfc52f8408f17ab30d6e59d6207d8289baca Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Tue, 12 Dec 2023 08:12:44 +0000 Subject: [PATCH 064/154] Update toolkit components - helm-controller to v0.37.0 https://github.com/fluxcd/helm-controller/blob/v0.37.0/CHANGELOG.md - kustomize-controller to v1.2.0 https://github.com/fluxcd/kustomize-controller/blob/v1.2.0/CHANGELOG.md - source-controller to v1.2.2 https://github.com/fluxcd/source-controller/blob/v1.2.2/CHANGELOG.md - notification-controller to v1.2.2 https://github.com/fluxcd/notification-controller/blob/v1.2.2/CHANGELOG.md - image-reflector-controller to v0.31.1 https://github.com/fluxcd/image-reflector-controller/blob/v0.31.1/CHANGELOG.md - image-automation-controller to v0.37.0 https://github.com/fluxcd/image-automation-controller/blob/v0.37.0/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 12 +++++----- go.sum | 24 +++++++++---------- .../bases/helm-controller/kustomization.yaml | 4 ++-- .../kustomization.yaml | 4 ++-- .../kustomization.yaml | 4 ++-- .../kustomize-controller/kustomization.yaml | 4 ++-- .../kustomization.yaml | 4 ++-- .../source-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 12 +++++----- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index bef83405..83ab4988 100644 --- a/go.mod +++ b/go.mod @@ -12,11 +12,11 @@ require ( github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/cli-utils v0.36.0-flux.2 github.com/fluxcd/go-git-providers v0.19.1 - github.com/fluxcd/helm-controller/api v0.36.2 - github.com/fluxcd/image-automation-controller/api v0.36.1 - github.com/fluxcd/image-reflector-controller/api v0.31.0 - github.com/fluxcd/kustomize-controller/api v1.1.1 - github.com/fluxcd/notification-controller/api v1.2.1 + github.com/fluxcd/helm-controller/api v0.37.0 + github.com/fluxcd/image-automation-controller/api v0.37.0 + github.com/fluxcd/image-reflector-controller/api v0.31.1 + github.com/fluxcd/kustomize-controller/api v1.2.0 + github.com/fluxcd/notification-controller/api v1.2.2 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.16.0 @@ -29,7 +29,7 @@ require ( github.com/fluxcd/pkg/ssh v0.10.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 - github.com/fluxcd/source-controller/api v1.2.1 + github.com/fluxcd/source-controller/api v1.2.2 github.com/go-git/go-git/v5 v5.11.0 github.com/go-logr/logr v1.3.0 github.com/gonvenience/bunt v1.3.5 diff --git a/go.sum b/go.sum index 2470a0fe..a3671495 100644 --- a/go.sum +++ b/go.sum @@ -131,16 +131,16 @@ github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.19.1 h1:LXRFpHdPCmO+Uegw2MvAU3KiEHn1PRV2c//ii/HhpeY= github.com/fluxcd/go-git-providers v0.19.1/go.mod h1:eN0JpfkQqS/6yJ1I6DW3z1XLCC2JZK+55Ues+0Ur3Ds= -github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= -github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= -github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= -github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= -github.com/fluxcd/image-reflector-controller/api v0.31.0 h1:9t5zj7ufo9/d57gpcZsD6YAIxFz0vtLH4jXCj379srE= -github.com/fluxcd/image-reflector-controller/api v0.31.0/go.mod h1:/EcjOa/EYi8sSBHcGrBkLjMjNNfC7xXMxqG9phBORCo= -github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= -github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= -github.com/fluxcd/notification-controller/api v1.2.1 h1:yPQZ7ppYvazxl/Vsespbx9VlVyopH7p8pKGzZTNxI0c= -github.com/fluxcd/notification-controller/api v1.2.1/go.mod h1:1sWTpAXkga5zkXOgFoR+NIJgHNclBcfAHUJ/rMAjnYY= +github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= +github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= +github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= +github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= +github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= +github.com/fluxcd/kustomize-controller/api v1.2.0 h1:kXlZUl5QztIIrqceZLBYF+f3am41B47uXgVw8WlnuMY= +github.com/fluxcd/kustomize-controller/api v1.2.0/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= +github.com/fluxcd/notification-controller/api v1.2.2 h1:BUuVkYxrXzpsdCGh76Tiu//6dffLFo10KmX7MaVeZ64= +github.com/fluxcd/notification-controller/api v1.2.2/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -170,8 +170,8 @@ github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= -github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= +github.com/fluxcd/source-controller/api v1.2.2 h1:OUivb1UHDmY8+hlxjRx3k8i1w3jMSytdOYRMfmeeZhY= +github.com/fluxcd/source-controller/api v1.2.2/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= diff --git a/manifests/bases/helm-controller/kustomization.yaml b/manifests/bases/helm-controller/kustomization.yaml index a55c9340..ec49cbbe 100644 --- a/manifests/bases/helm-controller/kustomization.yaml +++ b/manifests/bases/helm-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.deployment.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.0/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.0/helm-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/image-automation-controller/kustomization.yaml b/manifests/bases/image-automation-controller/kustomization.yaml index f6beff59..a89e9847 100644 --- a/manifests/bases/image-automation-controller/kustomization.yaml +++ b/manifests/bases/image-automation-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.crds.yaml -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.deployment.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.crds.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/image-reflector-controller/kustomization.yaml b/manifests/bases/image-reflector-controller/kustomization.yaml index 5a2a007f..f8aef1e6 100644 --- a/manifests/bases/image-reflector-controller/kustomization.yaml +++ b/manifests/bases/image-reflector-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.0/image-reflector-controller.crds.yaml -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.0/image-reflector-controller.deployment.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.crds.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/kustomize-controller/kustomization.yaml b/manifests/bases/kustomize-controller/kustomization.yaml index cef82f1e..a509f9ad 100644 --- a/manifests/bases/kustomize-controller/kustomization.yaml +++ b/manifests/bases/kustomize-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.deployment.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.0/kustomize-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.0/kustomize-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/notification-controller/kustomization.yaml b/manifests/bases/notification-controller/kustomization.yaml index c5a34987..914c2953 100644 --- a/manifests/bases/notification-controller/kustomization.yaml +++ b/manifests/bases/notification-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.1/notification-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.1/notification-controller.deployment.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.2/notification-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.2/notification-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/source-controller/kustomization.yaml b/manifests/bases/source-controller/kustomization.yaml index 71b0e930..a01c739b 100644 --- a/manifests/bases/source-controller/kustomization.yaml +++ b/manifests/bases/source-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.2.1/source-controller.crds.yaml -- https://github.com/fluxcd/source-controller/releases/download/v1.2.1/source-controller.deployment.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.2/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.2/source-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index 75c6f34c..483ee668 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -1,9 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.2.1/source-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.1.1/kustomize-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.36.2/helm-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.1/notification-controller.crds.yaml -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.0/image-reflector-controller.crds.yaml -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.36.1/image-automation-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.2/source-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.0/kustomize-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.0/helm-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.2/notification-controller.crds.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.crds.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.crds.yaml From eeaffd5c0e7f5a9ae87bc86f91071240f1fe1c7a Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Tue, 12 Dec 2023 09:24:49 +0100 Subject: [PATCH 065/154] Update HelmRelease golden file with new message Signed-off-by: Hidde Beydals --- cmd/flux/testdata/helmrelease/get_helmrelease_from_git.golden | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/flux/testdata/helmrelease/get_helmrelease_from_git.golden b/cmd/flux/testdata/helmrelease/get_helmrelease_from_git.golden index b384ecb8..8bd236dd 100644 --- a/cmd/flux/testdata/helmrelease/get_helmrelease_from_git.golden +++ b/cmd/flux/testdata/helmrelease/get_helmrelease_from_git.golden @@ -1,2 +1,2 @@ -NAME REVISION SUSPENDED READY MESSAGE -thrfg 6.3.5 False True Release reconciliation succeeded +NAME REVISION SUSPENDED READY MESSAGE +thrfg 6.3.5 False True Helm install succeeded for release thrfg-1/thrfg.v1 with chart podinfo@6.3.5 From bed6efa6712a86146f16eca540882e6922ffea30 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Thu, 30 Nov 2023 10:33:36 +0200 Subject: [PATCH 066/154] Add force and reset flags to `flux reconcile hr` Signed-off-by: Stefan Prodan --- cmd/flux/reconcile.go | 27 ++++++++++++++++++++------- cmd/flux/reconcile_helmrelease.go | 5 ++++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/cmd/flux/reconcile.go b/cmd/flux/reconcile.go index c6c7a472..fc6334b6 100644 --- a/cmd/flux/reconcile.go +++ b/cmd/flux/reconcile.go @@ -31,6 +31,7 @@ import ( "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/client" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/flux2/v2/internal/utils" @@ -166,14 +167,26 @@ func requestReconciliation(ctx context.Context, kubeClient client.Client, return err } patch := client.MergeFrom(object.DeepCopy()) - if ann := object.GetAnnotations(); ann == nil { - object.SetAnnotations(map[string]string{ - meta.ReconcileRequestAnnotation: time.Now().Format(time.RFC3339Nano), - }) - } else { - ann[meta.ReconcileRequestAnnotation] = time.Now().Format(time.RFC3339Nano) - object.SetAnnotations(ann) + + // Add a timestamp annotation to trigger a reconciliation. + ts := time.Now().Format(time.RFC3339Nano) + annotations := object.GetAnnotations() + if annotations == nil { + annotations = make(map[string]string, 1) + } + annotations[meta.ReconcileRequestAnnotation] = ts + + // HelmRelease specific annotations to force or reset a release. + if gvk.Kind == helmv2.HelmReleaseKind { + if rhrArgs.syncForce { + annotations["reconcile.fluxcd.io/forceAt"] = ts + } + if rhrArgs.syncReset { + annotations["reconcile.fluxcd.io/resetAt"] = ts + } } + + object.SetAnnotations(annotations) return kubeClient.Patch(ctx, object, patch) }) } diff --git a/cmd/flux/reconcile_helmrelease.go b/cmd/flux/reconcile_helmrelease.go index b55a1295..145b6dc9 100644 --- a/cmd/flux/reconcile_helmrelease.go +++ b/cmd/flux/reconcile_helmrelease.go @@ -46,13 +46,16 @@ The reconcile kustomization command triggers a reconciliation of a HelmRelease r type reconcileHelmReleaseFlags struct { syncHrWithSource bool + syncForce bool + syncReset bool } var rhrArgs reconcileHelmReleaseFlags func init() { reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncHrWithSource, "with-source", false, "reconcile HelmRelease source") - + reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncForce, "force", false, "force a one-off install or upgrade of the HelmRelease resource") + reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncReset, "reset", false, "reset the reset the failure count for this HelmRelease resource") reconcileCmd.AddCommand(reconcileHrCmd) } From 437a94367784541695fa68deba7a52b188d97ea8 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 12 Dec 2023 11:07:01 +0200 Subject: [PATCH 067/154] Update `HelmRelease` to v2beta2 Signed-off-by: Stefan Prodan --- cmd/flux/create_helmrelease.go | 7 ++++--- cmd/flux/create_kustomization.go | 2 +- cmd/flux/delete_helmrelease.go | 2 +- cmd/flux/events.go | 2 +- cmd/flux/export_helmrelease.go | 2 +- cmd/flux/get_all.go | 2 +- cmd/flux/get_helmrelease.go | 2 +- cmd/flux/helmrelease.go | 2 +- cmd/flux/reconcile.go | 6 +++--- cmd/flux/reconcile_helmrelease.go | 2 +- cmd/flux/resume_helmrelease.go | 2 +- cmd/flux/stats.go | 2 +- cmd/flux/suspend_helmrelease.go | 2 +- cmd/flux/trace.go | 5 +++-- cmd/flux/tree_kustomization.go | 2 +- internal/flags/crds.go | 2 +- internal/utils/utils.go | 2 +- pkg/uninstall/uninstall.go | 7 ++++--- tests/azure/go.mod | 16 ++++++++-------- tests/azure/go.sum | 32 +++++++++++++++---------------- tests/azure/util_test.go | 2 +- tests/integration/go.mod | 12 ++++++------ tests/integration/go.sum | 24 +++++++++++------------ tests/integration/oci_test.go | 2 +- tests/integration/suite_test.go | 2 +- 25 files changed, 73 insertions(+), 70 deletions(-) diff --git a/cmd/flux/create_helmrelease.go b/cmd/flux/create_helmrelease.go index 64bfcfe3..d06e2ab3 100644 --- a/cmd/flux/create_helmrelease.go +++ b/cmd/flux/create_helmrelease.go @@ -24,11 +24,12 @@ import ( "strings" "time" - "github.com/fluxcd/flux2/v2/internal/flags" - "github.com/fluxcd/flux2/v2/internal/utils" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/pkg/runtime/transform" + "github.com/fluxcd/flux2/v2/internal/flags" + "github.com/fluxcd/flux2/v2/internal/utils" + "github.com/spf13/cobra" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -38,7 +39,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) var createHelmReleaseCmd = &cobra.Command{ diff --git a/cmd/flux/create_kustomization.go b/cmd/flux/create_kustomization.go index ec9a5293..aa3a73a7 100644 --- a/cmd/flux/create_kustomization.go +++ b/cmd/flux/create_kustomization.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "sigs.k8s.io/controller-runtime/pkg/client" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/apis/meta" diff --git a/cmd/flux/delete_helmrelease.go b/cmd/flux/delete_helmrelease.go index 6f2300c5..a182c0a6 100644 --- a/cmd/flux/delete_helmrelease.go +++ b/cmd/flux/delete_helmrelease.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) var deleteHelmReleaseCmd = &cobra.Command{ diff --git a/cmd/flux/events.go b/cmd/flux/events.go index cf85c3f5..481f9e79 100644 --- a/cmd/flux/events.go +++ b/cmd/flux/events.go @@ -39,7 +39,7 @@ import ( cmdutil "k8s.io/kubectl/pkg/cmd/util" "sigs.k8s.io/controller-runtime/pkg/client" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" diff --git a/cmd/flux/export_helmrelease.go b/cmd/flux/export_helmrelease.go index e00b3494..b55df13b 100644 --- a/cmd/flux/export_helmrelease.go +++ b/cmd/flux/export_helmrelease.go @@ -20,7 +20,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) var exportHelmReleaseCmd = &cobra.Command{ diff --git a/cmd/flux/get_all.go b/cmd/flux/get_all.go index 27bbcfe4..79b8cd04 100644 --- a/cmd/flux/get_all.go +++ b/cmd/flux/get_all.go @@ -21,7 +21,7 @@ import ( "github.com/spf13/cobra" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" notificationv1 "github.com/fluxcd/notification-controller/api/v1" notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" diff --git a/cmd/flux/get_helmrelease.go b/cmd/flux/get_helmrelease.go index d6462ddd..92dc7215 100644 --- a/cmd/flux/get_helmrelease.go +++ b/cmd/flux/get_helmrelease.go @@ -25,7 +25,7 @@ import ( "golang.org/x/text/language" "k8s.io/apimachinery/pkg/runtime" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) var getHelmReleaseCmd = &cobra.Command{ diff --git a/cmd/flux/helmrelease.go b/cmd/flux/helmrelease.go index 81deb149..d01d04c3 100644 --- a/cmd/flux/helmrelease.go +++ b/cmd/flux/helmrelease.go @@ -19,7 +19,7 @@ package main import ( "sigs.k8s.io/controller-runtime/pkg/client" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) // helmv2.HelmRelease diff --git a/cmd/flux/reconcile.go b/cmd/flux/reconcile.go index fc6334b6..b2e74105 100644 --- a/cmd/flux/reconcile.go +++ b/cmd/flux/reconcile.go @@ -31,7 +31,7 @@ import ( "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/client" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/flux2/v2/internal/utils" @@ -179,10 +179,10 @@ func requestReconciliation(ctx context.Context, kubeClient client.Client, // HelmRelease specific annotations to force or reset a release. if gvk.Kind == helmv2.HelmReleaseKind { if rhrArgs.syncForce { - annotations["reconcile.fluxcd.io/forceAt"] = ts + annotations[helmv2.ForceRequestAnnotation] = ts } if rhrArgs.syncReset { - annotations["reconcile.fluxcd.io/resetAt"] = ts + annotations[helmv2.ResetRequestAnnotation] = ts } } diff --git a/cmd/flux/reconcile_helmrelease.go b/cmd/flux/reconcile_helmrelease.go index 145b6dc9..14414acd 100644 --- a/cmd/flux/reconcile_helmrelease.go +++ b/cmd/flux/reconcile_helmrelease.go @@ -22,7 +22,7 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/types" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" ) diff --git a/cmd/flux/resume_helmrelease.go b/cmd/flux/resume_helmrelease.go index b058d273..5c1bc15d 100644 --- a/cmd/flux/resume_helmrelease.go +++ b/cmd/flux/resume_helmrelease.go @@ -21,7 +21,7 @@ import ( "github.com/spf13/cobra" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) var resumeHrCmd = &cobra.Command{ diff --git a/cmd/flux/stats.go b/cmd/flux/stats.go index 196d68d6..0181ffab 100644 --- a/cmd/flux/stats.go +++ b/cmd/flux/stats.go @@ -27,7 +27,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "github.com/fluxcd/cli-utils/pkg/kstatus/status" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" diff --git a/cmd/flux/suspend_helmrelease.go b/cmd/flux/suspend_helmrelease.go index 5872c8b4..b4c3eb8f 100644 --- a/cmd/flux/suspend_helmrelease.go +++ b/cmd/flux/suspend_helmrelease.go @@ -19,7 +19,7 @@ package main import ( "github.com/spf13/cobra" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" ) var suspendHrCmd = &cobra.Command{ diff --git a/cmd/flux/trace.go b/cmd/flux/trace.go index d85f10ea..6a3f7fc3 100644 --- a/cmd/flux/trace.go +++ b/cmd/flux/trace.go @@ -33,13 +33,14 @@ import ( "k8s.io/cli-runtime/pkg/resource" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/fluxcd/flux2/v2/internal/utils" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" fluxmeta "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/pkg/oci" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" + + "github.com/fluxcd/flux2/v2/internal/utils" ) var traceCmd = &cobra.Command{ diff --git a/cmd/flux/tree_kustomization.go b/cmd/flux/tree_kustomization.go index ec4efd67..57d2ff25 100644 --- a/cmd/flux/tree_kustomization.go +++ b/cmd/flux/tree_kustomization.go @@ -35,7 +35,7 @@ import ( "sigs.k8s.io/yaml" "github.com/fluxcd/cli-utils/pkg/object" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/ssa" diff --git a/internal/flags/crds.go b/internal/flags/crds.go index aa7eee61..0c1e4fa6 100644 --- a/internal/flags/crds.go +++ b/internal/flags/crds.go @@ -20,7 +20,7 @@ import ( "fmt" "strings" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" "github.com/fluxcd/flux2/v2/internal/utils" ) diff --git a/internal/utils/utils.go b/internal/utils/utils.go index e820372a..26d77ef8 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -41,7 +41,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" imageautov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" imagereflectv1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" diff --git a/pkg/uninstall/uninstall.go b/pkg/uninstall/uninstall.go index 92d7ffc2..220666ff 100644 --- a/pkg/uninstall/uninstall.go +++ b/pkg/uninstall/uninstall.go @@ -28,9 +28,7 @@ import ( "k8s.io/apimachinery/pkg/util/errors" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/fluxcd/flux2/v2/pkg/log" - "github.com/fluxcd/flux2/v2/pkg/manifestgen" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1" imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" @@ -38,6 +36,9 @@ import ( notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" + + "github.com/fluxcd/flux2/v2/pkg/log" + "github.com/fluxcd/flux2/v2/pkg/manifestgen" ) // Components removes all Kubernetes components that are part of Flux excluding the CRDs and namespace. diff --git a/tests/azure/go.mod b/tests/azure/go.mod index d61a0fbd..bbf5e59f 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -8,16 +8,16 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.36.2 - github.com/fluxcd/image-automation-controller/api v0.36.1 - github.com/fluxcd/image-reflector-controller/api v0.31.0 - github.com/fluxcd/kustomize-controller/api v1.1.1 - github.com/fluxcd/notification-controller/api v1.2.1 + github.com/fluxcd/helm-controller/api v0.37.0 + github.com/fluxcd/image-automation-controller/api v0.37.0 + github.com/fluxcd/image-reflector-controller/api v0.31.1 + github.com/fluxcd/kustomize-controller/api v1.2.0 + github.com/fluxcd/notification-controller/api v1.2.2 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.16.0 github.com/fluxcd/pkg/git/gogit v0.16.1 - github.com/fluxcd/source-controller/api v1.2.1 + github.com/fluxcd/source-controller/api v1.2.2 github.com/go-git/go-git/v5 v5.11.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 @@ -56,7 +56,7 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect github.com/fluxcd/pkg/ssh v0.10.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect @@ -115,7 +115,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.28.4 // indirect k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 316215fe..c0d9b588 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -67,22 +67,22 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= -github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= -github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= -github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= -github.com/fluxcd/image-reflector-controller/api v0.31.0 h1:9t5zj7ufo9/d57gpcZsD6YAIxFz0vtLH4jXCj379srE= -github.com/fluxcd/image-reflector-controller/api v0.31.0/go.mod h1:/EcjOa/EYi8sSBHcGrBkLjMjNNfC7xXMxqG9phBORCo= -github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= -github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= -github.com/fluxcd/notification-controller/api v1.2.1 h1:yPQZ7ppYvazxl/Vsespbx9VlVyopH7p8pKGzZTNxI0c= -github.com/fluxcd/notification-controller/api v1.2.1/go.mod h1:1sWTpAXkga5zkXOgFoR+NIJgHNclBcfAHUJ/rMAjnYY= +github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= +github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= +github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= +github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= +github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= +github.com/fluxcd/kustomize-controller/api v1.2.0 h1:kXlZUl5QztIIrqceZLBYF+f3am41B47uXgVw8WlnuMY= +github.com/fluxcd/kustomize-controller/api v1.2.0/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= +github.com/fluxcd/notification-controller/api v1.2.2 h1:BUuVkYxrXzpsdCGh76Tiu//6dffLFo10KmX7MaVeZ64= +github.com/fluxcd/notification-controller/api v1.2.2/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= -github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0cuDQY2HYwM= -github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= +github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= +github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= @@ -94,8 +94,8 @@ github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= -github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= +github.com/fluxcd/source-controller/api v1.2.2 h1:OUivb1UHDmY8+hlxjRx3k8i1w3jMSytdOYRMfmeeZhY= +github.com/fluxcd/source-controller/api v1.2.2/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= @@ -376,8 +376,8 @@ k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= +k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/tests/azure/util_test.go b/tests/azure/util_test.go index 836ea3a2..ededf2d9 100644 --- a/tests/azure/util_test.go +++ b/tests/azure/util_test.go @@ -35,7 +35,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - helmv2beta1 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2beta1 "github.com/fluxcd/helm-controller/api/v2beta2" automationv1beta1 "github.com/fluxcd/image-automation-controller/api/v1beta1" reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 711e213b..c7d1600f 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -6,11 +6,11 @@ require ( cloud.google.com/go/pubsub v1.31.0 github.com/Azure/azure-event-hubs-go/v3 v3.6.0 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.36.2 - github.com/fluxcd/image-automation-controller/api v0.36.1 - github.com/fluxcd/image-reflector-controller/api v0.31.0 - github.com/fluxcd/kustomize-controller/api v1.1.1 - github.com/fluxcd/notification-controller/api v1.2.1 + github.com/fluxcd/helm-controller/api v0.37.0 + github.com/fluxcd/image-automation-controller/api v0.37.0 + github.com/fluxcd/image-reflector-controller/api v0.31.1 + github.com/fluxcd/kustomize-controller/api v1.2.0 + github.com/fluxcd/notification-controller/api v1.2.2 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.16.0 @@ -64,7 +64,7 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.1.1 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect github.com/fluxcd/pkg/ssh v0.10.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index d83c779d..f353c203 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -122,22 +122,22 @@ github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0n github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.36.2 h1:9JaTc91yocG1oQkM/GMfpZ/nGPpliRjZBNwyAsW5584= -github.com/fluxcd/helm-controller/api v0.36.2/go.mod h1:zkcRy3PxG0NoxSY5SjiSA5tWOGa6spIbWsChQY8FXqM= -github.com/fluxcd/image-automation-controller/api v0.36.1 h1:Knd4SSm/bJ0iqvYcQq87uDaT/mW9poM1jOvHpJ/4tzk= -github.com/fluxcd/image-automation-controller/api v0.36.1/go.mod h1:IsjdBtgm71KHRGDTZZZiGYdWGoJ5VjenE9F4ueADM/o= -github.com/fluxcd/image-reflector-controller/api v0.31.0 h1:9t5zj7ufo9/d57gpcZsD6YAIxFz0vtLH4jXCj379srE= -github.com/fluxcd/image-reflector-controller/api v0.31.0/go.mod h1:/EcjOa/EYi8sSBHcGrBkLjMjNNfC7xXMxqG9phBORCo= -github.com/fluxcd/kustomize-controller/api v1.1.1 h1:pQcAzvBC3cFGOCgk0zrcsO1Kjtal1tvd6rHXkyp2R78= -github.com/fluxcd/kustomize-controller/api v1.1.1/go.mod h1:FHJTX6c0+CznUNGMol5+Uc4lQsYRxWgpmIRK/xDCghA= -github.com/fluxcd/notification-controller/api v1.2.1 h1:yPQZ7ppYvazxl/Vsespbx9VlVyopH7p8pKGzZTNxI0c= -github.com/fluxcd/notification-controller/api v1.2.1/go.mod h1:1sWTpAXkga5zkXOgFoR+NIJgHNclBcfAHUJ/rMAjnYY= +github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= +github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= +github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= +github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= +github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= +github.com/fluxcd/kustomize-controller/api v1.2.0 h1:kXlZUl5QztIIrqceZLBYF+f3am41B47uXgVw8WlnuMY= +github.com/fluxcd/kustomize-controller/api v1.2.0/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= +github.com/fluxcd/notification-controller/api v1.2.2 h1:BUuVkYxrXzpsdCGh76Tiu//6dffLFo10KmX7MaVeZ64= +github.com/fluxcd/notification-controller/api v1.2.2/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= -github.com/fluxcd/pkg/apis/kustomize v1.1.1 h1:MSGn4z0R9PptmoPFHnx2nEZ8Jtl1sKfw0cuDQY2HYwM= -github.com/fluxcd/pkg/apis/kustomize v1.1.1/go.mod h1:0pCu0ecIY+ZM0iE/hOHYwCMZ3b0SpBrjJ1SH3FFyYdE= +github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= +github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= diff --git a/tests/integration/oci_test.go b/tests/integration/oci_test.go index 49788364..80d89af2 100644 --- a/tests/integration/oci_test.go +++ b/tests/integration/oci_test.go @@ -27,7 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - helmv2 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" ) diff --git a/tests/integration/suite_test.go b/tests/integration/suite_test.go index 87c0fdb0..0e2b2186 100644 --- a/tests/integration/suite_test.go +++ b/tests/integration/suite_test.go @@ -30,7 +30,7 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/kubernetes/scheme" - helmv2beta1 "github.com/fluxcd/helm-controller/api/v2beta1" + helmv2beta1 "github.com/fluxcd/helm-controller/api/v2beta2" automationv1beta1 "github.com/fluxcd/image-automation-controller/api/v1beta1" reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" From afcf12194d786d2c3705ec80a4614cfd7acbfaea Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 12 Dec 2023 11:25:12 +0200 Subject: [PATCH 068/154] Adapt tree command to `HelmRelease` v2beta2 Signed-off-by: Stefan Prodan --- cmd/flux/tree_kustomization.go | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/cmd/flux/tree_kustomization.go b/cmd/flux/tree_kustomization.go index 57d2ff25..6f1ee560 100644 --- a/cmd/flux/tree_kustomization.go +++ b/cmd/flux/tree_kustomization.go @@ -208,27 +208,16 @@ func getHelmReleaseInventory(ctx context.Context, objectKey client.ObjectKey, ku return nil, nil } - storageNamespace := hr.GetNamespace() - if hr.Spec.StorageNamespace != "" { - storageNamespace = hr.Spec.StorageNamespace - } - - storageName := hr.GetName() - if hr.Spec.ReleaseName != "" { - storageName = hr.Spec.ReleaseName - } else if hr.Spec.TargetNamespace != "" { - storageName = strings.Join([]string{hr.Spec.TargetNamespace, hr.Name}, "-") - } - - storageVersion := hr.Status.LastReleaseRevision - // skip release if it failed to install - if storageVersion < 1 { + storageNamespace := hr.Status.StorageNamespace + latest := hr.Status.History.Latest() + if len(storageNamespace) == 0 || latest == nil { + // Skip release if it has no current return nil, nil } storageKey := client.ObjectKey{ Namespace: storageNamespace, - Name: fmt.Sprintf("sh.helm.release.v1.%s.v%v", storageName, storageVersion), + Name: fmt.Sprintf("sh.helm.release.v1.%s.v%v", latest.Name, latest.Version), } storageSecret := &corev1.Secret{} From b4f5d121c81719984f9b1619ffcf441e40e87f7d Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 12 Dec 2023 11:40:16 +0200 Subject: [PATCH 069/154] Update tests to `HelmRelease` v2beta2 Signed-off-by: Stefan Prodan --- cmd/flux/events_test.go | 2 +- cmd/flux/testdata/export/helm-release.yaml | 2 +- cmd/flux/testdata/export/objects.yaml | 2 +- cmd/flux/testdata/trace/deployment.yaml | 2 +- cmd/flux/testdata/trace/helmrelease-oci.yaml | 2 +- cmd/flux/testdata/trace/helmrelease.yaml | 2 +- cmd/flux/trace.go | 2 +- cmd/flux/trace_test.go | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/flux/events_test.go b/cmd/flux/events_test.go index 0c208d1e..53fab161 100644 --- a/cmd/flux/events_test.go +++ b/cmd/flux/events_test.go @@ -78,7 +78,7 @@ spec: timeout: 1m0s url: ssh://git@github.com/example/repo --- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 +apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: podinfo diff --git a/cmd/flux/testdata/export/helm-release.yaml b/cmd/flux/testdata/export/helm-release.yaml index b6c3b126..c7aceaf1 100644 --- a/cmd/flux/testdata/export/helm-release.yaml +++ b/cmd/flux/testdata/export/helm-release.yaml @@ -1,5 +1,5 @@ --- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 +apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: flux-system diff --git a/cmd/flux/testdata/export/objects.yaml b/cmd/flux/testdata/export/objects.yaml index 8ba59969..ee5c228c 100644 --- a/cmd/flux/testdata/export/objects.yaml +++ b/cmd/flux/testdata/export/objects.yaml @@ -124,7 +124,7 @@ spec: timeout: 1m0s url: https://stefanprodan.github.io/podinfo --- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 +apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: flux-system diff --git a/cmd/flux/testdata/trace/deployment.yaml b/cmd/flux/testdata/trace/deployment.yaml index 01580dfe..0d0f8f79 100644 --- a/cmd/flux/testdata/trace/deployment.yaml +++ b/cmd/flux/testdata/trace/deployment.yaml @@ -34,7 +34,7 @@ spec: command: [ "echo hello world" ] image: busybox --- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 +apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: labels: diff --git a/cmd/flux/testdata/trace/helmrelease-oci.yaml b/cmd/flux/testdata/trace/helmrelease-oci.yaml index da9d1d47..0fc7b6c4 100644 --- a/cmd/flux/testdata/trace/helmrelease-oci.yaml +++ b/cmd/flux/testdata/trace/helmrelease-oci.yaml @@ -9,7 +9,7 @@ kind: Namespace metadata: name: {{ .ns }} --- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 +apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: labels: diff --git a/cmd/flux/testdata/trace/helmrelease.yaml b/cmd/flux/testdata/trace/helmrelease.yaml index 9c626f4a..8c029cde 100644 --- a/cmd/flux/testdata/trace/helmrelease.yaml +++ b/cmd/flux/testdata/trace/helmrelease.yaml @@ -9,7 +9,7 @@ kind: Namespace metadata: name: {{ .ns }} --- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 +apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: labels: diff --git a/cmd/flux/trace.go b/cmd/flux/trace.go index 6a3f7fc3..bab5a457 100644 --- a/cmd/flux/trace.go +++ b/cmd/flux/trace.go @@ -64,7 +64,7 @@ You can also trace multiple objects with different resource kinds using Date: Tue, 12 Dec 2023 11:55:35 +0200 Subject: [PATCH 070/154] Use `IsObjectNamespaced` from controller-runtime Signed-off-by: Stefan Prodan --- cmd/flux/tree_kustomization.go | 9 ++--- internal/utils/objectutil.go | 63 ---------------------------------- 2 files changed, 3 insertions(+), 69 deletions(-) delete mode 100644 internal/utils/objectutil.go diff --git a/cmd/flux/tree_kustomization.go b/cmd/flux/tree_kustomization.go index 6f1ee560..e345f0f2 100644 --- a/cmd/flux/tree_kustomization.go +++ b/cmd/flux/tree_kustomization.go @@ -32,6 +32,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/apiutil" "sigs.k8s.io/yaml" "github.com/fluxcd/cli-utils/pkg/object" @@ -268,12 +269,8 @@ func getHelmReleaseInventory(ctx context.Context, objectKey client.ObjectKey, ku // set the namespace on namespaced objects for _, obj := range objects { if obj.GetNamespace() == "" { - if isNamespaced, _ := utils.IsAPINamespaced(obj, kubeClient.Scheme(), kubeClient.RESTMapper()); isNamespaced { - if hr.Spec.TargetNamespace != "" { - obj.SetNamespace(hr.Spec.TargetNamespace) - } else { - obj.SetNamespace(hr.GetNamespace()) - } + if isNamespaced, _ := apiutil.IsObjectNamespaced(obj, kubeClient.Scheme(), kubeClient.RESTMapper()); isNamespaced { + obj.SetNamespace(latest.Namespace) } } } diff --git a/internal/utils/objectutil.go b/internal/utils/objectutil.go deleted file mode 100644 index 35b381bc..00000000 --- a/internal/utils/objectutil.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2023 The Flux authors -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// TODO: Remove this when -// https://github.com/kubernetes-sigs/controller-runtime/blob/c783d2527a7da76332a2d8d563a6ca0b80c12122/pkg/client/apiutil/apimachinery.go#L76-L104 -// is included in a semver release. - -package utils - -import ( - "errors" - "fmt" - - apimeta "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/client/apiutil" -) - -// IsAPINamespaced returns true if the object is namespace scoped. -// For unstructured objects the gvk is found from the object itself. -func IsAPINamespaced(obj runtime.Object, scheme *runtime.Scheme, restmapper apimeta.RESTMapper) (bool, error) { - gvk, err := apiutil.GVKForObject(obj, scheme) - if err != nil { - return false, err - } - - return IsAPINamespacedWithGVK(gvk, scheme, restmapper) -} - -// IsAPINamespacedWithGVK returns true if the object having the provided -// GVK is namespace scoped. -func IsAPINamespacedWithGVK(gk schema.GroupVersionKind, scheme *runtime.Scheme, restmapper apimeta.RESTMapper) (bool, error) { - restmapping, err := restmapper.RESTMapping(schema.GroupKind{Group: gk.Group, Kind: gk.Kind}) - if err != nil { - return false, fmt.Errorf("failed to get restmapping: %w", err) - } - - scope := restmapping.Scope.Name() - - if scope == "" { - return false, errors.New("scope cannot be identified, empty scope returned") - } - - if scope != apimeta.RESTScopeNameRoot { - return true, nil - } - return false, nil -} From 04cc1278fbfe4bbaa53f2d44eb267f9104c39651 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 12 Dec 2023 12:27:32 +0200 Subject: [PATCH 071/154] Update alpine and kubectl in flux-cli image Signed-off-by: Stefan Prodan --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0a4bcbf2..65feaa66 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,15 @@ -FROM alpine:3.18 as builder +FROM alpine:3.19 as builder RUN apk add --no-cache ca-certificates curl ARG ARCH=linux/amd64 -ARG KUBECTL_VER=1.27.3 +ARG KUBECTL_VER=1.28.4 RUN curl -sL https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VER}/bin/${ARCH}/kubectl \ -o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl && \ kubectl version --client=true -FROM alpine:3.18 as flux-cli +FROM alpine:3.19 as flux-cli RUN apk add --no-cache ca-certificates From cdcf332491b2453439d68f7089ccbb8fed40c174 Mon Sep 17 00:00:00 2001 From: Joel Bennett Date: Wed, 11 Oct 2023 17:27:49 -0400 Subject: [PATCH 072/154] Correct "sync" to "component" in log lines Signed-off-by: Joel Bennett --- pkg/bootstrap/bootstrap_plain_git.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index fbba4e69..51a9d2dd 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -174,11 +174,11 @@ func (b *PlainGitBootstrapper) ReconcileComponents(ctx context.Context, manifest manifests.Path: strings.NewReader(manifests.Content), }), repository.WithSigner(signer)) if err != nil && err != git.ErrNoStagedFiles { - return fmt.Errorf("failed to commit sync manifests: %w", err) + return fmt.Errorf("failed to commit component manifests: %w", err) } if err == nil { - b.logger.Successf("committed sync manifests to %q (%q)", b.branch, commit) + b.logger.Successf("committed component manifests to %q (%q)", b.branch, commit) b.logger.Actionf("pushing component manifests to %q", b.url) if err = b.gitClient.Push(ctx, repository.PushConfig{}); err != nil { return fmt.Errorf("failed to push manifests: %w", err) From 4cb756bfb035e621aaa79921a59a142b3348941c Mon Sep 17 00:00:00 2001 From: Soule BA Date: Tue, 12 Dec 2023 10:13:31 +0100 Subject: [PATCH 073/154] updating go-git-providers to v0.19.2 Signed-off-by: Soule BA --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 83ab4988..10cac246 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/cli-utils v0.36.0-flux.2 - github.com/fluxcd/go-git-providers v0.19.1 + github.com/fluxcd/go-git-providers v0.19.2 github.com/fluxcd/helm-controller/api v0.37.0 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 @@ -63,7 +63,7 @@ require ( ) require ( - code.gitea.io/sdk/gitea v0.16.0 // indirect + code.gitea.io/sdk/gitea v0.17.0 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect @@ -133,7 +133,7 @@ require ( github.com/gonvenience/wrap v1.1.2 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-github/v55 v55.0.0 // indirect + github.com/google/go-github/v57 v57.0.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect @@ -191,7 +191,7 @@ require ( github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/vbatts/tar-split v0.11.3 // indirect github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect - github.com/xanzy/go-gitlab v0.93.1 // indirect + github.com/xanzy/go-gitlab v0.95.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xlab/treeprint v1.2.0 // indirect go.starlark.net v0.0.0-20231121155337-90ade8b19d09 // indirect diff --git a/go.sum b/go.sum index a3671495..8d05b47c 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -code.gitea.io/sdk/gitea v0.16.0 h1:gAfssETO1Hv9QbE+/nhWu7EjoFQYKt6kPoyDytQgw00= -code.gitea.io/sdk/gitea v0.16.0/go.mod h1:ndkDk99BnfiUCCYEUhpNzi0lpmApXlwRFqClBlOlEBg= +code.gitea.io/sdk/gitea v0.17.0 h1:8JPBss4+Jf7AE1YcfyiGrngTXE8dFSG3si/bypsTH34= +code.gitea.io/sdk/gitea v0.17.0/go.mod h1:ndkDk99BnfiUCCYEUhpNzi0lpmApXlwRFqClBlOlEBg= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= @@ -129,8 +129,8 @@ github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw github.com/fluxcd/cli-utils v0.36.0-flux.2 h1:7nlXfAJ7iaDF34IdbyId+wBf7beL2qvzDBLmVBJSDVo= github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po3pzAtk3NQmQEN5l8= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/go-git-providers v0.19.1 h1:LXRFpHdPCmO+Uegw2MvAU3KiEHn1PRV2c//ii/HhpeY= -github.com/fluxcd/go-git-providers v0.19.1/go.mod h1:eN0JpfkQqS/6yJ1I6DW3z1XLCC2JZK+55Ues+0Ur3Ds= +github.com/fluxcd/go-git-providers v0.19.2 h1:G/O0z4WUlgChV6o3YrZ1GP1ZgZSd8ZJWACIW0ICqxMo= +github.com/fluxcd/go-git-providers v0.19.2/go.mod h1:V44pmhFqoZ8heFJEBU1PS+OHTwLWOfoj0nKpFAqik6Y= github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= @@ -244,8 +244,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.17.0 h1:5p+zYs/R4VGHkhyvgWurWrpJ2hW4Vv9fQI+GzdcwXLk= github.com/google/go-containerregistry v0.17.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= -github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg= -github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA= +github.com/google/go-github/v57 v57.0.0 h1:L+Y3UPTY8ALM8x+TV0lg+IEBI+upibemtBD8Q9u7zHs= +github.com/google/go-github/v57 v57.0.0/go.mod h1:s0omdnye0hvK/ecLvpsGfJMiRt85PimQh4oygmLIxHw= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -451,8 +451,8 @@ github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RV github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 h1:JwtAtbp7r/7QSyGz8mKUbYJBg2+6Cd7OjM8o/GNOcVo= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74/go.mod h1:RmMWU37GKR2s6pgrIEB4ixgpVCt/cf7dnJv3fuH1J1c= -github.com/xanzy/go-gitlab v0.93.1 h1:f7J33cw/P9b/8paIOoH0F3H+TFrswvWHs6yUgoTp9LY= -github.com/xanzy/go-gitlab v0.93.1/go.mod h1:5ryv+MnpZStBH8I/77HuQBsMbBGANtVpLWC15qOjWAw= +github.com/xanzy/go-gitlab v0.95.1 h1:rQjcmX5Au2Lz9bc3QLTdtSK5ZHdTXLnmhz3CAB/G5So= +github.com/xanzy/go-gitlab v0.95.1/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= From c22d8f28f984583111292e044d6e521492b865b4 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 12 Dec 2023 16:09:54 +0200 Subject: [PATCH 074/154] Drop support for Kubernetes EOL versions Signed-off-by: Stefan Prodan --- .github/workflows/e2e-arm64.yaml | 2 +- cmd/flux/check.go | 2 +- cmd/flux/testdata/check/check_pre.golden | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index 93b81b12..17ea084e 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -17,7 +17,7 @@ jobs: matrix: # Keep this list up-to-date with https://endoflife.date/kubernetes # Check which versions are available on DockerHub with 'crane ls kindest/node' - KUBERNETES_VERSION: [ 1.25.11, 1.26.6, 1.27.3, 1.28.0 ] + KUBERNETES_VERSION: [ 1.26.6, 1.27.3, 1.28.0 ] fail-fast: false steps: - name: Checkout diff --git a/cmd/flux/check.go b/cmd/flux/check.go index 244f60de..99ecfd8c 100644 --- a/cmd/flux/check.go +++ b/cmd/flux/check.go @@ -59,7 +59,7 @@ type checkFlags struct { } var kubernetesConstraints = []string{ - ">=1.25.0-0", + ">=1.26.0-0", } var checkArgs checkFlags diff --git a/cmd/flux/testdata/check/check_pre.golden b/cmd/flux/testdata/check/check_pre.golden index 646909e1..9b097d1e 100644 --- a/cmd/flux/testdata/check/check_pre.golden +++ b/cmd/flux/testdata/check/check_pre.golden @@ -1,3 +1,3 @@ â–º checking prerequisites -✔ Kubernetes {{ .serverVersion }} >=1.25.0-0 +✔ Kubernetes {{ .serverVersion }} >=1.26.0-0 ✔ prerequisites checks passed From 5ede32b3277e347a5a59e090f40673c8e57f84fb Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Tue, 12 Dec 2023 17:11:22 +0100 Subject: [PATCH 075/154] Add 2.2.x backport label Signed-off-by: Hidde Beydals --- .github/labels.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/labels.yaml b/.github/labels.yaml index ddaf3632..c3b4b2ac 100644 --- a/.github/labels.yaml +++ b/.github/labels.yaml @@ -50,3 +50,6 @@ - name: backport:release/v2.1.x description: To be backported to release/v2.1.x color: '#ffd700' +- name: backport:release/v2.2.x + description: To be backported to release/v2.2.x + color: '#ffd700' From bf6754e20c4b4fe178e8131cc4d59868ce534a8a Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Wed, 13 Dec 2023 13:10:37 +0100 Subject: [PATCH 076/154] Properly detect unsupported API errors This can happen when Custom Resource Definitions do not exist on the cluster. For example, because only a subset of the Flux controllers are installed on the cluster. Previously, the detection was based on a combination of error type and string matching. However, a more reliable (and maintained) `apimeta.IsNoMatchError` checker is available upstream. Making it less likely this suddenly stops to matching properly when Kubernetes changes things. Signed-off-by: Hidde Beydals --- cmd/flux/get.go | 5 +---- cmd/flux/get_all.go | 5 ++--- cmd/flux/get_source_all.go | 5 ++--- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/cmd/flux/get.go b/cmd/flux/get.go index fe70006a..17766f38 100644 --- a/cmd/flux/get.go +++ b/cmd/flux/get.go @@ -18,7 +18,6 @@ package main import ( "context" - "errors" "fmt" "os" "strings" @@ -28,7 +27,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/discovery" watchtools "k8s.io/client-go/tools/watch" "sigs.k8s.io/controller-runtime/pkg/client" @@ -178,8 +176,7 @@ func (get getCommand) run(cmd *cobra.Command, args []string) error { err = kubeClient.List(ctx, get.list.asClientList(), listOpts...) if err != nil { - var discErr *discovery.ErrGroupDiscoveryFailed - if getAll && (strings.Contains(err.Error(), "no matches for kind") || errors.As(err, &discErr)) { + if getAll && apimeta.IsNoMatchError(err) { return nil } return err diff --git a/cmd/flux/get_all.go b/cmd/flux/get_all.go index 79b8cd04..7a40466b 100644 --- a/cmd/flux/get_all.go +++ b/cmd/flux/get_all.go @@ -17,9 +17,8 @@ limitations under the License. package main import ( - "strings" - "github.com/spf13/cobra" + apimeta "k8s.io/apimachinery/pkg/api/meta" helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" @@ -87,7 +86,7 @@ var getAllCmd = &cobra.Command{ } func logError(err error) { - if !strings.Contains(err.Error(), "no matches for kind") { + if !apimeta.IsNoMatchError(err) { logger.Failuref(err.Error()) } } diff --git a/cmd/flux/get_source_all.go b/cmd/flux/get_source_all.go index a7c52e85..c6736c74 100644 --- a/cmd/flux/get_source_all.go +++ b/cmd/flux/get_source_all.go @@ -17,9 +17,8 @@ limitations under the License. package main import ( - "strings" - "github.com/spf13/cobra" + apimeta "k8s.io/apimachinery/pkg/api/meta" sourcev1 "github.com/fluxcd/source-controller/api/v1" sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" @@ -65,7 +64,7 @@ var getSourceAllCmd = &cobra.Command{ for _, c := range allSourceCmd { if err := c.run(cmd, args); err != nil { - if !strings.Contains(err.Error(), "no matches for kind") { + if !apimeta.IsNoMatchError(err) { logger.Failuref(err.Error()) } } From 36adfff99e177ca4acca3a03ac9b3e04510deba4 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Wed, 13 Dec 2023 17:03:18 +0200 Subject: [PATCH 077/154] Remove deprecated monitoring configs Signed-off-by: Stefan Prodan --- manifests/monitoring/README.md | 12 +- .../kube-prometheus-stack/kustomization.yaml | 7 - .../kube-prometheus-stack/namespace.yaml | 6 - .../kube-prometheus-stack/release.yaml | 51 - .../kube-prometheus-stack/repository.yaml | 9 - .../monitoring/loki-stack/kustomization.yaml | 6 - manifests/monitoring/loki-stack/release.yaml | 40 - .../monitoring/loki-stack/repository.yaml | 7 - .../monitoring-config/dashboards/cluster.json | 1006 ---------- .../dashboards/control-plane.json | 1637 ----------------- .../monitoring-config/dashboards/logs.json | 332 ---- .../monitoring-config/kustomization.yaml | 16 - .../monitoring-config/podmonitor.yaml | 30 - 13 files changed, 7 insertions(+), 3152 deletions(-) delete mode 100644 manifests/monitoring/kube-prometheus-stack/kustomization.yaml delete mode 100644 manifests/monitoring/kube-prometheus-stack/namespace.yaml delete mode 100644 manifests/monitoring/kube-prometheus-stack/release.yaml delete mode 100644 manifests/monitoring/kube-prometheus-stack/repository.yaml delete mode 100644 manifests/monitoring/loki-stack/kustomization.yaml delete mode 100644 manifests/monitoring/loki-stack/release.yaml delete mode 100644 manifests/monitoring/loki-stack/repository.yaml delete mode 100644 manifests/monitoring/monitoring-config/dashboards/cluster.json delete mode 100644 manifests/monitoring/monitoring-config/dashboards/control-plane.json delete mode 100644 manifests/monitoring/monitoring-config/dashboards/logs.json delete mode 100644 manifests/monitoring/monitoring-config/kustomization.yaml delete mode 100644 manifests/monitoring/monitoring-config/podmonitor.yaml diff --git a/manifests/monitoring/README.md b/manifests/monitoring/README.md index 07f03864..af5d720b 100644 --- a/manifests/monitoring/README.md +++ b/manifests/monitoring/README.md @@ -1,13 +1,15 @@ -# :warning: Deprecation Notice +# :warning: Removal Notice Starting Flux v2.1.0, released August 24, 2023, the Flux monitoring -configurations in this repository will be marked as deprecated. New monitoring +configurations in this repository were marked as deprecated. The new monitoring docs are available at [Flux monitoring](https://fluxcd.io/flux/monitoring/) docs with new example configurations in [fluxcd/flux2-monitoring-example](https://github.com/fluxcd/flux2-monitoring-example/). -The deprecated configurations will be removed in a future release of Flux. All -users of these configurations are recommended to use the new monitoring setup, -following the docs and the new examples. + +The deprecated configurations were removed in Flux v2.2 on December 13, 2023. All +users of these configurations are advised to use the new monitoring setup, +following the [docs](https://fluxcd.io/flux/monitoring/) and the +[examples](https://github.com/fluxcd/flux2-monitoring-example/). After collecting a lot of user feedback about our monitoring recommendation, in order to serve most of the needs of the users, we decided to create a new diff --git a/manifests/monitoring/kube-prometheus-stack/kustomization.yaml b/manifests/monitoring/kube-prometheus-stack/kustomization.yaml deleted file mode 100644 index 920eff14..00000000 --- a/manifests/monitoring/kube-prometheus-stack/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: monitoring -resources: - - namespace.yaml - - repository.yaml - - release.yaml diff --git a/manifests/monitoring/kube-prometheus-stack/namespace.yaml b/manifests/monitoring/kube-prometheus-stack/namespace.yaml deleted file mode 100644 index 78abcfce..00000000 --- a/manifests/monitoring/kube-prometheus-stack/namespace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: monitoring - labels: - app.kubernetes.io/component: monitoring diff --git a/manifests/monitoring/kube-prometheus-stack/release.yaml b/manifests/monitoring/kube-prometheus-stack/release.yaml deleted file mode 100644 index f2c60c5c..00000000 --- a/manifests/monitoring/kube-prometheus-stack/release.yaml +++ /dev/null @@ -1,51 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: kube-prometheus-stack -spec: - interval: 5m - chart: - spec: - version: "45.x" - chart: kube-prometheus-stack - sourceRef: - kind: HelmRepository - name: prometheus-community - interval: 60m - install: - crds: Create - upgrade: - crds: CreateReplace - # https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml - values: - alertmanager: - enabled: false - prometheus: - prometheusSpec: - retention: 24h - resources: - requests: - cpu: 200m - memory: 200Mi - podMonitorNamespaceSelector: {} - podMonitorSelector: - matchLabels: - app.kubernetes.io/component: monitoring - postRenderers: - - kustomize: - patches: - - target: - # Ignore these objects from Flux diff as they are mutated from chart hooks - kind: (ValidatingWebhookConfiguration|MutatingWebhookConfiguration) - name: kube-prometheus-stack-admission - patch: | - - op: add - path: /metadata/annotations/helm.toolkit.fluxcd.io~1driftDetection - value: disabled - - target: - # Ignore these objects from Flux diff as they are mutated at apply time but not at dry-run time - kind: PrometheusRule - patch: | - - op: add - path: /metadata/annotations/helm.toolkit.fluxcd.io~1driftDetection - value: disabled diff --git a/manifests/monitoring/kube-prometheus-stack/repository.yaml b/manifests/monitoring/kube-prometheus-stack/repository.yaml deleted file mode 100644 index 82d36073..00000000 --- a/manifests/monitoring/kube-prometheus-stack/repository.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: source.toolkit.fluxcd.io/v1beta2 -kind: HelmRepository -metadata: - name: prometheus-community -spec: - interval: 120m - # OCI builds for kube-prometheus-stack have been temporarily disabled (see https://github.com/prometheus-community/helm-charts/issues/2940). - type: default - url: https://prometheus-community.github.io/helm-charts diff --git a/manifests/monitoring/loki-stack/kustomization.yaml b/manifests/monitoring/loki-stack/kustomization.yaml deleted file mode 100644 index d6d43382..00000000 --- a/manifests/monitoring/loki-stack/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: monitoring -resources: - - repository.yaml - - release.yaml diff --git a/manifests/monitoring/loki-stack/release.yaml b/manifests/monitoring/loki-stack/release.yaml deleted file mode 100644 index 5389e808..00000000 --- a/manifests/monitoring/loki-stack/release.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: loki-stack -spec: - interval: 5m - dependsOn: - - name: kube-prometheus-stack - chart: - spec: - version: "2.x" - chart: loki-stack - sourceRef: - kind: HelmRepository - name: grafana-charts - interval: 60m - # https://github.com/grafana/helm-charts/blob/main/charts/loki-stack/values.yaml - # https://github.com/grafana/loki/blob/main/production/helm/loki/values.yaml - values: - grafana: - enabled: false - sidecar: - datasources: - enabled: true - maxLines: 1000 - promtail: - enabled: true - loki: - enabled: true - isDefault: false - serviceMonitor: - enabled: true - additionalLabels: - app.kubernetes.io/part-of: kube-prometheus-stack - config: - chunk_store_config: - max_look_back_period: 0s - table_manager: - retention_deletes_enabled: true - retention_period: 12h diff --git a/manifests/monitoring/loki-stack/repository.yaml b/manifests/monitoring/loki-stack/repository.yaml deleted file mode 100644 index 49f58cdd..00000000 --- a/manifests/monitoring/loki-stack/repository.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: source.toolkit.fluxcd.io/v1beta2 -kind: HelmRepository -metadata: - name: grafana-charts -spec: - interval: 120m0s - url: https://grafana.github.io/helm-charts diff --git a/manifests/monitoring/monitoring-config/dashboards/cluster.json b/manifests/monitoring/monitoring-config/dashboards/cluster.json deleted file mode 100644 index 1ef0fed5..00000000 --- a/manifests/monitoring/monitoring-config/dashboards/cluster.json +++ /dev/null @@ -1,1006 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - }, - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "iconColor": "red", - "name": "flux events", - "target": { - "limit": 100, - "matchAny": false, - "tags": [ - "flux" - ], - "type": "tags" - } - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "iteration": 1652337714814, - "links": [], - "panels": [ - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "red", - "value": 100 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 0 - }, - "id": 24, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "count(gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"True\",kind=~\"Kustomization|HelmRelease\"})\n-\nsum(gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"Deleted\",kind=~\"Kustomization|HelmRelease\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Cluster Reconcilers", - "type": "stat" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 28, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "sum(gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"False\",kind=~\"Kustomization|HelmRelease\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Failing Reconcilers", - "type": "stat" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "red", - "value": 100 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 12, - "y": 0 - }, - "id": 29, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "count(gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"True\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"})\n-\nsum(gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"Deleted\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Kubernetes Manifests Sources", - "type": "stat" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 30, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "sum(gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"False\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Failing Sources", - "type": "stat" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 1 - }, - { - "color": "red", - "value": 61 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 12, - "x": 0, - "y": 5 - }, - "id": 8, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "sum(rate(gotk_reconcile_duration_seconds_sum{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"Kustomization|HelmRelease\"}[5m])) by (kind)\n/\n sum(rate(gotk_reconcile_duration_seconds_count{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"Kustomization|HelmRelease\"}[5m])) by (kind)", - "interval": "", - "legendFormat": "{{kind}}", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Reconciler ops avg. duration", - "type": "bargauge" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 1 - }, - { - "color": "red", - "value": 61 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 12, - "x": 12, - "y": 5 - }, - "id": 31, - "options": { - "displayMode": "gradient", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "sum(rate(gotk_reconcile_duration_seconds_sum{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"}[5m])) by (kind)\n/\n sum(rate(gotk_reconcile_duration_seconds_count{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"}[5m])) by (kind)", - "interval": "", - "legendFormat": "{{kind}}", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Source ops avg. duration", - "type": "bargauge" - }, - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 15, - "panels": [], - "title": "Status", - "type": "row" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "custom": { - "displayMode": "auto", - "filterable": true, - "inspect": false - }, - "mappings": [ - { - "options": { - "0": { - "text": "Ready" - }, - "1": { - "text": "Not Ready" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "blue", - "value": 0 - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Status" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 10 - }, - "id": 33, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Status" - } - ] - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"False\",kind=~\"Kustomization|HelmRelease\"}", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Cluster reconciliation readiness ", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "__name__": true, - "app": true, - "container": true, - "endpoint": true, - "exported_namespace": false, - "instance": true, - "job": true, - "kubernetes_namespace": true, - "kubernetes_pod_name": true, - "namespace": true, - "pod": true, - "pod_template_hash": true, - "status": true, - "type": true - }, - "indexByName": {}, - "renameByName": { - "Value": "Status", - "exported_namespace": "Namespace", - "kind": "Kind", - "name": "Name", - "namespace": "Operator Namespace" - } - } - } - ], - "type": "table" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "custom": { - "displayMode": "auto", - "filterable": true, - "inspect": false - }, - "mappings": [ - { - "options": { - "0": { - "text": "Ready" - }, - "1": { - "text": "Not Ready" - } - }, - "type": "value" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "blue", - "value": 0 - }, - { - "color": "red", - "value": 1 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Status" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - } - ] - }, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 10 - }, - "id": 34, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Status" - } - ] - }, - "pluginVersion": "7.5.5", - "targets": [ - { - "exemplar": true, - "expr": "gotk_reconcile_condition{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",type=\"Ready\",status=\"False\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"}", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Source acquisition readiness ", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "__name__": true, - "app": true, - "container": true, - "endpoint": true, - "exported_namespace": false, - "instance": true, - "job": true, - "kubernetes_namespace": true, - "kubernetes_pod_name": true, - "namespace": true, - "pod": true, - "pod_template_hash": true, - "status": true, - "type": true - }, - "indexByName": {}, - "renameByName": { - "Value": "Status", - "exported_namespace": "Namespace", - "kind": "Kind", - "name": "Name", - "namespace": "Operator Namespace" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 21 - }, - "id": 17, - "panels": [], - "title": "Timing", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 27, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum(rate(gotk_reconcile_duration_seconds_sum{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"Kustomization|HelmRelease\"}[5m])) by (kind, name)\n/\n sum(rate(gotk_reconcile_duration_seconds_count{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"Kustomization|HelmRelease\"}[5m])) by (kind, name)", - "hide": false, - "interval": "", - "legendFormat": "{{kind}}/{{name}}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster reconciliation duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 35, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum(rate(gotk_reconcile_duration_seconds_sum{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"}[5m])) by (kind, name)\n/\n sum(rate(gotk_reconcile_duration_seconds_count{namespace=~\"$operator_namespace\",exported_namespace=~\"$namespace\",kind=~\"GitRepository|OCIRepository|HelmRepository|Bucket\"}[5m])) by (kind, name)", - "hide": false, - "interval": "", - "legendFormat": "{{kind}}/{{name}}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Source acquisition duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "30s", - "schemaVersion": 36, - "style": "light", - "tags": [ - "flux" - ], - "templating": { - "list": [ - { - "allValue": "", - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "$DS_PROMETHEUS", - "definition": "label_values(gotk_reconcile_condition, namespace)", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "name": "operator_namespace", - "options": [], - "query": { - "query": "label_values(gotk_reconcile_condition, namespace)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": true, - "tags": [], - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "$DS_PROMETHEUS", - "definition": "label_values(gotk_reconcile_condition, exported_namespace)", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "name": "namespace", - "options": [], - "query": { - "query": "label_values(gotk_reconcile_condition, exported_namespace)", - "refId": "StandardVariableQuery" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "DS_PROMETHEUS", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "title": "Flux Cluster Stats", - "uid": "flux-cluster", - "version": 3 -} diff --git a/manifests/monitoring/monitoring-config/dashboards/control-plane.json b/manifests/monitoring/monitoring-config/dashboards/control-plane.json deleted file mode 100644 index a4ad008d..00000000 --- a/manifests/monitoring/monitoring-config/dashboards/control-plane.json +++ /dev/null @@ -1,1637 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - }, - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "iconColor": "red", - "name": "flux events", - "target": { - "limit": 100, - "matchAny": false, - "tags": [ - "flux" - ], - "type": "tags" - } - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": null, - "graphTooltip": 0, - "id": 29, - "iteration": 1639041352219, - "links": [], - "liveNow": false, - "panels": [ - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "red", - "value": 100 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 0 - }, - "id": 24, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "8.2.3", - "targets": [ - { - "expr": "sum(go_info{namespace=\"$namespace\",pod=~\".*-controller-.*\"})", - "interval": "", - "legendFormat": "pods", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Controllers", - "type": "stat" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 100 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 23, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.2.3", - "targets": [ - { - "expr": "max(workqueue_longest_running_processor_seconds{namespace=\"$namespace\",pod=~\".*-controller-.*\"})", - "hide": false, - "interval": "", - "legendFormat": "seconds", - "refId": "B" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Max Work Queue", - "type": "stat" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#EAB839", - "value": 500000000 - }, - { - "color": "red", - "value": 900000000 - } - ] - }, - "unit": "decbits" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 12, - "y": 0 - }, - "id": 25, - "options": { - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "8.2.3", - "targets": [ - { - "expr": "sum(go_memstats_alloc_bytes{namespace=\"$namespace\",pod=~\".*-controller-.*\"})", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Memory", - "type": "gauge" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "", - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#EAB839", - "value": 50 - }, - { - "color": "red", - "value": 100 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 26, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.2.3", - "targets": [ - { - "expr": "sum(rate(rest_client_requests_total{namespace=\"$namespace\",pod=~\".*-controller-.*\"}[1m]))", - "interval": "", - "legendFormat": "requests", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "API Requests", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": null, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 5 - }, - "hiddenSeries": false, - "id": 21, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(rest_client_requests_total{namespace=\"$namespace\"}[1m]))", - "hide": false, - "interval": "", - "legendFormat": "total", - "refId": "A" - }, - { - "expr": "sum(rate(rest_client_requests_total{namespace=\"$namespace\",code!~\"2..\"}[1m]))", - "hide": false, - "interval": "", - "legendFormat": "errors", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Kubernetes API Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:912", - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:913", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 15, - "panels": [], - "title": "Resource Usage", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 12, - "x": 0, - "y": 14 - }, - "hiddenSeries": false, - "id": 11, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "rate(process_cpu_seconds_total{namespace=\"$namespace\",pod=~\".*-controller-.*\"}[1m])", - "interval": "", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:93", - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:94", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 11, - "w": 12, - "x": 12, - "y": 14 - }, - "hiddenSeries": false, - "id": 13, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(container_memory_working_set_bytes{namespace=\"$namespace\",container!=\"POD\",container!=\"\",pod=~\".*-controller-.*\"}) by (pod)", - "hide": false, - "interval": "", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:93", - "decimals": 0, - "format": "bytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:94", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 25 - }, - "id": 17, - "panels": [], - "title": "Reconciliation Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 26 - }, - "hiddenSeries": false, - "id": 27, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "workqueue_longest_running_processor_seconds{name=\"kustomization\"}", - "hide": false, - "interval": "", - "legendFormat": "kustomizations", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Reconciliation Duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:912", - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:913", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 34 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"kustomization\",result!=\"error\"}[1m])) by (controller)", - "format": "time_series", - "interval": "", - "legendFormat": "successful reconciliations ", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"kustomization\",result=\"error\"}[1m])) by (controller)", - "format": "time_series", - "interval": "", - "legendFormat": "failed reconciliations ", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Reconciliations ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1171", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1172", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 29, - "panels": [], - "title": "Sources Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 43 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"gitrepository\",result!=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "successful git pulls", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"gitrepository\",result=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "failed git pulls", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Git Repos ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:285", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:286", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 43 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"ocirepository\",result!=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "successful oci pulls", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"ocirepository\",result=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "failed oci pulls", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "OCI Repos ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:285", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:286", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 52 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"helmrepository\",result!=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "successful helm pulls", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"helmrepository\",result=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "failed helm pulls", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Helm Repos ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:285", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:286", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 52 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"bucket\",result!=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "successful bucket pulls", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"bucket\",result=\"error\"}[1m]))", - "format": "time_series", - "interval": "", - "legendFormat": "failed bucket pulls", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Buckets ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:285", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:286", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": "${DS_PROMETHEUS}", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 61 - }, - "id": 19, - "panels": [], - "title": "Helm Stats", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 62 - }, - "hiddenSeries": false, - "id": 9, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": false, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "histogram_quantile(0.50, sum(rate(controller_runtime_reconcile_time_seconds_bucket{controller=\"helmrelease\"}[5m])) by (le))", - "hide": true, - "interval": "", - "legendFormat": "P50", - "refId": "A" - }, - { - "expr": "histogram_quantile(0.90, sum(rate(controller_runtime_reconcile_time_seconds_bucket{controller=\"helmrelease\"}[5m])) by (le))", - "hide": true, - "interval": "", - "legendFormat": "P90", - "refId": "B" - }, - { - "expr": "histogram_quantile(0.99, sum(rate(controller_runtime_reconcile_time_seconds_bucket{controller=\"helmrelease\"}[5m])) by (le))", - "hide": false, - "interval": "", - "legendFormat": "P99", - "refId": "C" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Helm Release Duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1612", - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1613", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 70 - }, - "hiddenSeries": false, - "id": 5, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"helmrelease\",result!=\"error\"}[1m])) by (controller)", - "format": "time_series", - "interval": "", - "legendFormat": "successful reconciliations ", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"helmrelease\",result=\"error\"}[1m])) by (controller)", - "format": "time_series", - "interval": "", - "legendFormat": "failed reconciliations ", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Helm Releases ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1102", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1103", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 70 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "8.2.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"helmchart\",result!=\"error\"}[1m])) by (controller)", - "format": "time_series", - "interval": "", - "legendFormat": "successful chart pulls", - "refId": "A" - }, - { - "expr": "sum(increase(controller_runtime_reconcile_total{controller=\"helmchart\",result=\"error\"}[1m])) by (controller)", - "format": "time_series", - "interval": "", - "legendFormat": "failed chart pulls", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Helm Charts ops/min", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1892", - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:1893", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "10s", - "schemaVersion": 31, - "style": "light", - "tags": [ - "flux" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "description": null, - "error": null, - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "DS_PROMETHEUS", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "flux-system", - "value": "flux-system" - }, - "datasource": "${DS_PROMETHEUS}", - "definition": "workqueue_work_duration_seconds_count", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "namespace", - "options": [], - "query": { - "query": "workqueue_work_duration_seconds_count", - "refId": "Prometheus-namespace-Variable-Query" - }, - "refresh": 2, - "regex": "/.*namespace=\"([^\"]*).*/", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Flux Control Plane", - "uid": "flux-control-plane", - "version": 2 -} \ No newline at end of file diff --git a/manifests/monitoring/monitoring-config/dashboards/logs.json b/manifests/monitoring/monitoring-config/dashboards/logs.json deleted file mode 100644 index 4d9f58da..00000000 --- a/manifests/monitoring/monitoring-config/dashboards/logs.json +++ /dev/null @@ -1,332 +0,0 @@ -{ - "__inputs": [ - { - "name": "DS_LOKI", - "label": "Loki", - "description": "", - "type": "datasource", - "pluginId": "loki", - "pluginName": "Loki" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - }, - { - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "iconColor": "red", - "name": "flux events", - "target": { - "limit": 100, - "matchAny": false, - "tags": [ - "flux" - ], - "type": "tags" - } - } - ] - }, - "description": "Flux logs collected from Kubernetes, stored in Loki", - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 29, - "iteration": 1653748775696, - "links": [], - "liveNow": false, - "panels": [ - { - "datasource": "${DS_LOKI}", - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "hidden", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": "${DS_LOKI}", - "expr": "sum(count_over_time({namespace=~\"$namespace\", stream=~\"$stream\", app =~\"$controller\"} | json | __error__!=\"JSONParserErr\" | level=~\"$level\" |= \"$query\" [$__interval]))", - "instant": false, - "legendFormat": "Log count", - "range": true, - "refId": "A" - } - ], - "type": "timeseries" - }, - { - "datasource": "${DS_LOKI}", - "description": "Logs from services running in Kubernetes", - "gridPos": { - "h": 25, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 2, - "options": { - "dedupStrategy": "numbers", - "enableLogDetails": false, - "prettifyLogMessage": true, - "showCommonLabels": false, - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false - }, - "targets": [ - { - "datasource": "${DS_LOKI}", - "expr": "{namespace=~\"$namespace\", stream=~\"$stream\", app =~\"$controller\"} | json | __error__!=\"JSONParserErr\" | level=~\"$level\" |= \"$query\"", - "refId": "A" - } - ], - "type": "logs" - } - ], - "refresh": "10s", - "schemaVersion": 36, - "style": "light", - "tags": [ - "flux" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "", - "value": "" - }, - "description": "String to search for", - "hide": 0, - "label": "Search Query", - "name": "query", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - }, - { - "allValue": "info|error", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "hide": 0, - "includeAll": true, - "multi": false, - "name": "level", - "options": [ - { - "selected": true, - "text": "All", - "value": "$__all" - }, - { - "selected": false, - "text": "info", - "value": "info" - }, - { - "selected": false, - "text": "error", - "value": "error" - } - ], - "query": "info,error", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "allValue": ".+", - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "${DS_LOKI}", - "definition": "label_values(app)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "controller", - "options": [], - "query": "label_values(app)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "allValue": ".+", - "current": { - "selected": true, - "text": [ - "flux-system" - ], - "value": [ - "flux-system" - ] - }, - "datasource": "${DS_LOKI}", - "definition": "label_values(namespace)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "namespace", - "options": [], - "query": "label_values(namespace)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "allValue": ".+", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "${DS_LOKI}", - "definition": "label_values(stream)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "stream", - "options": [], - "query": "label_values(stream)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": false, - "text": "Loki", - "value": "Loki" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "DS_LOKI", - "options": [], - "query": "loki", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - } - ] - }, - "time": { - "from": "now-6h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Flux Logs", - "uid": "flux-logs", - "version": 2 -} diff --git a/manifests/monitoring/monitoring-config/kustomization.yaml b/manifests/monitoring/monitoring-config/kustomization.yaml deleted file mode 100644 index 29dcad85..00000000 --- a/manifests/monitoring/monitoring-config/kustomization.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: monitoring -resources: - - podmonitor.yaml -configMapGenerator: - - name: flux-grafana-dashboards - files: - - dashboards/control-plane.json - - dashboards/cluster.json - - dashboards/logs.json - options: - labels: - grafana_dashboard: "1" - app.kubernetes.io/part-of: flux - app.kubernetes.io/component: monitoring diff --git a/manifests/monitoring/monitoring-config/podmonitor.yaml b/manifests/monitoring/monitoring-config/podmonitor.yaml deleted file mode 100644 index 5e4b3a8c..00000000 --- a/manifests/monitoring/monitoring-config/podmonitor.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: monitoring.coreos.com/v1 -kind: PodMonitor -metadata: - name: flux-system - namespace: flux-system - labels: - app.kubernetes.io/part-of: flux - app.kubernetes.io/component: monitoring -spec: - namespaceSelector: - matchNames: - - flux-system - selector: - matchExpressions: - - key: app - operator: In - values: - - helm-controller - - source-controller - - kustomize-controller - - notification-controller - - image-automation-controller - - image-reflector-controller - podMetricsEndpoints: - - port: http-prom - relabelings: - # https://github.com/prometheus-operator/prometheus-operator/issues/4816 - - sourceLabels: [__meta_kubernetes_pod_phase] - action: keep - regex: Running From 056189265b268ace778b1c906dd1c003b53cdb2d Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Wed, 13 Dec 2023 17:22:03 +0200 Subject: [PATCH 078/154] Remove deprecated monitoring from e2e Signed-off-by: Stefan Prodan --- .github/workflows/e2e-arm64.yaml | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index 17ea084e..b22e64da 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -63,33 +63,6 @@ jobs: kubectl -n flux-system wait kustomization/tenants --for=condition=ready --timeout=5m kubectl -n apps wait kustomization/dev-team --for=condition=ready --timeout=1m kubectl -n apps wait helmrelease/podinfo --for=condition=ready --timeout=1m - - name: Run monitoring tests - # Keep this test in sync with https://fluxcd.io/flux/guides/monitoring/ - env: - KUBECONFIG: /tmp/${{ steps.prep.outputs.CLUSTER }} - run: | - ./bin/flux create source git flux-monitoring \ - --interval=30m \ - --url=https://github.com/fluxcd/flux2 \ - --branch=${GITHUB_REF#refs/heads/} - ./bin/flux create kustomization kube-prometheus-stack \ - --interval=1h \ - --prune \ - --source=flux-monitoring \ - --path="./manifests/monitoring/kube-prometheus-stack" \ - --health-check-timeout=5m \ - --wait - ./bin/flux create kustomization monitoring-config \ - --depends-on=kube-prometheus-stack \ - --interval=1h \ - --prune=true \ - --source=flux-monitoring \ - --path="./manifests/monitoring/monitoring-config" \ - --health-check-timeout=1m \ - --wait - kubectl -n flux-system wait kustomization/kube-prometheus-stack --for=condition=ready --timeout=5m - kubectl -n flux-system wait kustomization/monitoring-config --for=condition=ready --timeout=5m - kubectl -n monitoring wait helmrelease/kube-prometheus-stack --for=condition=ready --timeout=1m - name: Debug failure if: failure() env: From 59e5f4c8876b17fd1ce8784dc0c43147de0420c4 Mon Sep 17 00:00:00 2001 From: Sven Hoexter Date: Thu, 14 Dec 2023 11:14:22 +0100 Subject: [PATCH 079/154] Remove duplicate part of the reconcile hr --reset help message Signed-off-by: Sven Hoexter --- cmd/flux/reconcile_helmrelease.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/flux/reconcile_helmrelease.go b/cmd/flux/reconcile_helmrelease.go index 14414acd..1a1a5769 100644 --- a/cmd/flux/reconcile_helmrelease.go +++ b/cmd/flux/reconcile_helmrelease.go @@ -55,7 +55,7 @@ var rhrArgs reconcileHelmReleaseFlags func init() { reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncHrWithSource, "with-source", false, "reconcile HelmRelease source") reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncForce, "force", false, "force a one-off install or upgrade of the HelmRelease resource") - reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncReset, "reset", false, "reset the reset the failure count for this HelmRelease resource") + reconcileHrCmd.Flags().BoolVar(&rhrArgs.syncReset, "reset", false, "reset the failure count for this HelmRelease resource") reconcileCmd.AddCommand(reconcileHrCmd) } From 0cf855f16f1724d8c6764ec05ad0f0ba50f9ea15 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Thu, 14 Dec 2023 21:39:23 +0200 Subject: [PATCH 080/154] Run conformance tests for Kubernetes v1.29.0 Signed-off-by: Stefan Prodan --- .github/workflows/e2e-arm64.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-arm64.yaml b/.github/workflows/e2e-arm64.yaml index b22e64da..34a18134 100644 --- a/.github/workflows/e2e-arm64.yaml +++ b/.github/workflows/e2e-arm64.yaml @@ -17,7 +17,7 @@ jobs: matrix: # Keep this list up-to-date with https://endoflife.date/kubernetes # Check which versions are available on DockerHub with 'crane ls kindest/node' - KUBERNETES_VERSION: [ 1.26.6, 1.27.3, 1.28.0 ] + KUBERNETES_VERSION: [ 1.26.6, 1.27.3, 1.28.0, 1.29.0 ] fail-fast: false steps: - name: Checkout From 9ec8e717ae02eeca62541a09b841c23cf1072353 Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Fri, 15 Dec 2023 09:07:50 +0000 Subject: [PATCH 081/154] Update toolkit components - helm-controller to v0.37.1 https://github.com/fluxcd/helm-controller/blob/v0.37.1/CHANGELOG.md - kustomize-controller to v1.2.1 https://github.com/fluxcd/kustomize-controller/blob/v1.2.1/CHANGELOG.md - source-controller to v1.2.3 https://github.com/fluxcd/source-controller/blob/v1.2.3/CHANGELOG.md - notification-controller to v1.2.3 https://github.com/fluxcd/notification-controller/blob/v1.2.3/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- .../bases/helm-controller/kustomization.yaml | 4 ++-- .../kustomize-controller/kustomization.yaml | 4 ++-- .../notification-controller/kustomization.yaml | 4 ++-- .../bases/source-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 8 ++++---- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 10cac246..5795605c 100644 --- a/go.mod +++ b/go.mod @@ -12,11 +12,11 @@ require ( github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/cli-utils v0.36.0-flux.2 github.com/fluxcd/go-git-providers v0.19.2 - github.com/fluxcd/helm-controller/api v0.37.0 + github.com/fluxcd/helm-controller/api v0.37.1 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 - github.com/fluxcd/kustomize-controller/api v1.2.0 - github.com/fluxcd/notification-controller/api v1.2.2 + github.com/fluxcd/kustomize-controller/api v1.2.1 + github.com/fluxcd/notification-controller/api v1.2.3 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.16.0 @@ -29,7 +29,7 @@ require ( github.com/fluxcd/pkg/ssh v0.10.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 - github.com/fluxcd/source-controller/api v1.2.2 + github.com/fluxcd/source-controller/api v1.2.3 github.com/go-git/go-git/v5 v5.11.0 github.com/go-logr/logr v1.3.0 github.com/gonvenience/bunt v1.3.5 diff --git a/go.sum b/go.sum index 8d05b47c..8d9d9403 100644 --- a/go.sum +++ b/go.sum @@ -131,16 +131,16 @@ github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.19.2 h1:G/O0z4WUlgChV6o3YrZ1GP1ZgZSd8ZJWACIW0ICqxMo= github.com/fluxcd/go-git-providers v0.19.2/go.mod h1:V44pmhFqoZ8heFJEBU1PS+OHTwLWOfoj0nKpFAqik6Y= -github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= -github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/helm-controller/api v0.37.1 h1:cDUX79wGpNoSrDgirQswdN8X6gKmWVrpMMBn1BKdXAc= +github.com/fluxcd/helm-controller/api v0.37.1/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= -github.com/fluxcd/kustomize-controller/api v1.2.0 h1:kXlZUl5QztIIrqceZLBYF+f3am41B47uXgVw8WlnuMY= -github.com/fluxcd/kustomize-controller/api v1.2.0/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= -github.com/fluxcd/notification-controller/api v1.2.2 h1:BUuVkYxrXzpsdCGh76Tiu//6dffLFo10KmX7MaVeZ64= -github.com/fluxcd/notification-controller/api v1.2.2/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= +github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk= +github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= +github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm/CsJaM9yjNJzRdI0JMs= +github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -170,8 +170,8 @@ github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.2 h1:OUivb1UHDmY8+hlxjRx3k8i1w3jMSytdOYRMfmeeZhY= -github.com/fluxcd/source-controller/api v1.2.2/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= +github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= +github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= diff --git a/manifests/bases/helm-controller/kustomization.yaml b/manifests/bases/helm-controller/kustomization.yaml index ec49cbbe..66a1c74d 100644 --- a/manifests/bases/helm-controller/kustomization.yaml +++ b/manifests/bases/helm-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.0/helm-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.0/helm-controller.deployment.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.1/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.1/helm-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/kustomize-controller/kustomization.yaml b/manifests/bases/kustomize-controller/kustomization.yaml index a509f9ad..c25d9209 100644 --- a/manifests/bases/kustomize-controller/kustomization.yaml +++ b/manifests/bases/kustomize-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.0/kustomize-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.0/kustomize-controller.deployment.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/notification-controller/kustomization.yaml b/manifests/bases/notification-controller/kustomization.yaml index 914c2953..af3abbc1 100644 --- a/manifests/bases/notification-controller/kustomization.yaml +++ b/manifests/bases/notification-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.2/notification-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.2/notification-controller.deployment.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/source-controller/kustomization.yaml b/manifests/bases/source-controller/kustomization.yaml index a01c739b..538fc18b 100644 --- a/manifests/bases/source-controller/kustomization.yaml +++ b/manifests/bases/source-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.2.2/source-controller.crds.yaml -- https://github.com/fluxcd/source-controller/releases/download/v1.2.2/source-controller.deployment.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index 483ee668..a51adb3e 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -1,9 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.2.2/source-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.0/kustomize-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.0/helm-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.2/notification-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.1/helm-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.crds.yaml - https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.crds.yaml - https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.crds.yaml From 0e75d96911c1b64d58862d50f99860ac1d092e7c Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 15 Dec 2023 10:47:02 +0100 Subject: [PATCH 082/154] tests: update API dependencies - github.com/fluxcd/helm-controller/api to v0.37.1 - github.com/fluxcd/kustomize-controller/api to v1.2.1 - github.com/fluxcd/notification-controller/api to v1.2.3 - github.com/fluxcd/source-controller/api to v1.2.3 Signed-off-by: Hidde Beydals --- tests/azure/go.mod | 8 ++++---- tests/azure/go.sum | 16 ++++++++-------- tests/integration/go.mod | 8 ++++---- tests/integration/go.sum | 16 ++++++++-------- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/azure/go.mod b/tests/azure/go.mod index bbf5e59f..d5d48110 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -8,16 +8,16 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.0 + github.com/fluxcd/helm-controller/api v0.37.1 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 - github.com/fluxcd/kustomize-controller/api v1.2.0 - github.com/fluxcd/notification-controller/api v1.2.2 + github.com/fluxcd/kustomize-controller/api v1.2.1 + github.com/fluxcd/notification-controller/api v1.2.3 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.16.0 github.com/fluxcd/pkg/git/gogit v0.16.1 - github.com/fluxcd/source-controller/api v1.2.2 + github.com/fluxcd/source-controller/api v1.2.3 github.com/go-git/go-git/v5 v5.11.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 diff --git a/tests/azure/go.sum b/tests/azure/go.sum index c0d9b588..a6ab1d16 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -67,16 +67,16 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= -github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/helm-controller/api v0.37.1 h1:cDUX79wGpNoSrDgirQswdN8X6gKmWVrpMMBn1BKdXAc= +github.com/fluxcd/helm-controller/api v0.37.1/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= -github.com/fluxcd/kustomize-controller/api v1.2.0 h1:kXlZUl5QztIIrqceZLBYF+f3am41B47uXgVw8WlnuMY= -github.com/fluxcd/kustomize-controller/api v1.2.0/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= -github.com/fluxcd/notification-controller/api v1.2.2 h1:BUuVkYxrXzpsdCGh76Tiu//6dffLFo10KmX7MaVeZ64= -github.com/fluxcd/notification-controller/api v1.2.2/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= +github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk= +github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= +github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm/CsJaM9yjNJzRdI0JMs= +github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -94,8 +94,8 @@ github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.2 h1:OUivb1UHDmY8+hlxjRx3k8i1w3jMSytdOYRMfmeeZhY= -github.com/fluxcd/source-controller/api v1.2.2/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= +github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= +github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index c7d1600f..d3fd0528 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -6,17 +6,17 @@ require ( cloud.google.com/go/pubsub v1.31.0 github.com/Azure/azure-event-hubs-go/v3 v3.6.0 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.0 + github.com/fluxcd/helm-controller/api v0.37.1 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 - github.com/fluxcd/kustomize-controller/api v1.2.0 - github.com/fluxcd/notification-controller/api v1.2.2 + github.com/fluxcd/kustomize-controller/api v1.2.1 + github.com/fluxcd/notification-controller/api v1.2.3 github.com/fluxcd/pkg/apis/event v0.6.0 github.com/fluxcd/pkg/apis/meta v1.2.0 github.com/fluxcd/pkg/git v0.16.0 github.com/fluxcd/pkg/git/gogit v0.16.1 github.com/fluxcd/pkg/runtime v0.43.2 - github.com/fluxcd/source-controller/api v1.2.1 + github.com/fluxcd/source-controller/api v1.2.3 github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 github.com/go-git/go-git/v5 v5.11.0 github.com/google/go-containerregistry v0.16.1 diff --git a/tests/integration/go.sum b/tests/integration/go.sum index f353c203..64d2bc37 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -122,16 +122,16 @@ github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0n github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.0 h1:B14z4nJXmLhtEwQn681bIDy3V1o7USI3X22BuIIsrOw= -github.com/fluxcd/helm-controller/api v0.37.0/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/helm-controller/api v0.37.1 h1:cDUX79wGpNoSrDgirQswdN8X6gKmWVrpMMBn1BKdXAc= +github.com/fluxcd/helm-controller/api v0.37.1/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= -github.com/fluxcd/kustomize-controller/api v1.2.0 h1:kXlZUl5QztIIrqceZLBYF+f3am41B47uXgVw8WlnuMY= -github.com/fluxcd/kustomize-controller/api v1.2.0/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= -github.com/fluxcd/notification-controller/api v1.2.2 h1:BUuVkYxrXzpsdCGh76Tiu//6dffLFo10KmX7MaVeZ64= -github.com/fluxcd/notification-controller/api v1.2.2/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= +github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk= +github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= +github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm/CsJaM9yjNJzRdI0JMs= +github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= @@ -151,8 +151,8 @@ github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.1 h1:zWRfwMB/BkV0A/duZQwHEcrE/abWJQt7DUgYTzn4IzM= -github.com/fluxcd/source-controller/api v1.2.1/go.mod h1:n+PMCJXl/AYCjWHn5N/MUuoIFKfDg4kCDviFIa7fDvI= +github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= +github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 h1:w9UGknpfAGbiObQALZiuWYGeriAU1wKCFTmI2tj/96M= github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= From 9db8c4a990cccad32afba5ad8eef57a0f4e6bbbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:08:30 +0000 Subject: [PATCH 083/154] build(deps): bump golang.org/x/crypto in /tests/azure Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/azure/go.mod | 2 +- tests/azure/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/azure/go.mod b/tests/azure/go.mod index d5d48110..785f0760 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -98,7 +98,7 @@ require ( github.com/skeema/knownhosts v1.2.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect - golang.org/x/crypto v0.16.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/oauth2 v0.14.0 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index a6ab1d16..e124edf4 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -258,8 +258,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= From 284dfc05c60f7fe4faf7d160778b3c0bf6ab6d6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 08:40:35 +0000 Subject: [PATCH 084/154] build(deps): bump golang.org/x/crypto in /tests/integration Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/integration/go.mod | 2 +- tests/integration/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/go.mod b/tests/integration/go.mod index d3fd0528..892e5d39 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -115,7 +115,7 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.16.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/oauth2 v0.15.0 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 64d2bc37..7268cdd3 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -397,8 +397,8 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= From 2935bea6a230ca88ee454b367274da0242bf9290 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 08:43:01 +0000 Subject: [PATCH 085/154] build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5795605c..4e8695f2 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,7 @@ require ( github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/theckman/yacspin v0.13.12 - golang.org/x/crypto v0.16.0 + golang.org/x/crypto v0.17.0 golang.org/x/term v0.15.0 golang.org/x/text v0.14.0 k8s.io/api v0.28.4 diff --git a/go.sum b/go.sum index 8d9d9403..36b06375 100644 --- a/go.sum +++ b/go.sum @@ -475,8 +475,8 @@ golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= From 4f20be427e5bb394f59c68aa8cf0d8a0812aac57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 08:52:20 +0000 Subject: [PATCH 086/154] build(deps): bump the ci group with 3 updates Bumps the ci group with 3 updates: [korthout/backport-action](https://github.com/korthout/backport-action), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer). Updates `korthout/backport-action` from 2.2.0 to 2.3.0 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/b982d297e31f500652b2246cf26714796312bd23...addffea45a2f0b5682f1d5ba0506f45bc18bf174) Updates `actions/upload-artifact` from 3.1.3 to 4.0.0 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3ad30e3422c9c7b888a15615d19a852ae32...c7d193f32edcb7bfad88892161225aeda64e9392) Updates `sigstore/cosign-installer` from 3.2.0 to 3.3.0 - [Release notes](https://github.com/sigstore/cosign-installer/releases) - [Commits](https://github.com/sigstore/cosign-installer/compare/1fc5bd396d372bee37d608f955b336615edf79c8...9614fae9e5c5eddabb09f90a270fcb487c9f7149) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: sigstore/cosign-installer dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/backport.yaml | 2 +- .github/workflows/ossf.yaml | 2 +- .github/workflows/release.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index d584e25f..54bd0682 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -17,7 +17,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs - uses: korthout/backport-action@b982d297e31f500652b2246cf26714796312bd23 # v2.2.0 + uses: korthout/backport-action@addffea45a2f0b5682f1d5ba0506f45bc18bf174 # v2.3.0 # xref: https://github.com/korthout/backport-action#inputs with: # Use token to allow workflows to be triggered for the created PR diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index 1b343b7a..d1b80c1a 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -28,7 +28,7 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} publish_results: true - name: Upload artifact - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 with: name: SARIF file path: results.sarif diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e936fc03..987ecb81 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -36,7 +36,7 @@ jobs: - name: Setup Syft uses: anchore/sbom-action/download-syft@5ecf649a417b8ae17dc8383dc32d46c03f2312df # v0.15.1 - name: Setup Cosign - uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8 # v3.2.0 + uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Login to GitHub Container Registry @@ -155,7 +155,7 @@ jobs: --path="./flux-system" \ --source=${{ github.repositoryUrl }} \ --revision="${{ github.ref_name }}@sha1:${{ github.sha }}" - - uses: sigstore/cosign-installer@1fc5bd396d372bee37d608f955b336615edf79c8 # v3.2.0 + - uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 - name: Sign manifests env: COSIGN_EXPERIMENTAL: 1 From b93d4a4a17ae21e59d00604a18d6b0afb3aa7846 Mon Sep 17 00:00:00 2001 From: "Stuebinger, Bernd" <41049452+stuebingerb@users.noreply.github.com> Date: Tue, 19 Dec 2023 11:31:47 +0100 Subject: [PATCH 087/154] Fix typo in bootstrap_plain_git.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bernd Stübinger <41049452+stuebingerb@users.noreply.github.com> --- pkg/bootstrap/bootstrap_plain_git.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/bootstrap/bootstrap_plain_git.go b/pkg/bootstrap/bootstrap_plain_git.go index 51a9d2dd..ceb503bc 100644 --- a/pkg/bootstrap/bootstrap_plain_git.go +++ b/pkg/bootstrap/bootstrap_plain_git.go @@ -454,7 +454,7 @@ func (b *PlainGitBootstrapper) ReportGitRepoHealth(ctx context.Context, options b.logger.Failuref(err.Error()) return fmt.Errorf("error while waiting for GitRepository to be ready: '%s'", err) } - b.logger.Successf("GitRepsoitory reconciled successfully") + b.logger.Successf("GitRepository reconciled successfully") return nil } func (b *PlainGitBootstrapper) ReportComponentsHealth(ctx context.Context, install install.Options, timeout time.Duration) error { From 954e682da89d5c8ffdcc376ffb4f34c41342e2a5 Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Tue, 19 Dec 2023 16:47:53 +0000 Subject: [PATCH 088/154] Update toolkit components - helm-controller to v0.37.2 https://github.com/fluxcd/helm-controller/blob/v0.37.2/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 2 +- go.sum | 4 ++-- manifests/bases/helm-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 4e8695f2..50eb3408 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 github.com/fluxcd/cli-utils v0.36.0-flux.2 github.com/fluxcd/go-git-providers v0.19.2 - github.com/fluxcd/helm-controller/api v0.37.1 + github.com/fluxcd/helm-controller/api v0.37.2 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 github.com/fluxcd/kustomize-controller/api v1.2.1 diff --git a/go.sum b/go.sum index 36b06375..0f005e51 100644 --- a/go.sum +++ b/go.sum @@ -131,8 +131,8 @@ github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.19.2 h1:G/O0z4WUlgChV6o3YrZ1GP1ZgZSd8ZJWACIW0ICqxMo= github.com/fluxcd/go-git-providers v0.19.2/go.mod h1:V44pmhFqoZ8heFJEBU1PS+OHTwLWOfoj0nKpFAqik6Y= -github.com/fluxcd/helm-controller/api v0.37.1 h1:cDUX79wGpNoSrDgirQswdN8X6gKmWVrpMMBn1BKdXAc= -github.com/fluxcd/helm-controller/api v0.37.1/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= +github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= diff --git a/manifests/bases/helm-controller/kustomization.yaml b/manifests/bases/helm-controller/kustomization.yaml index 66a1c74d..099cd240 100644 --- a/manifests/bases/helm-controller/kustomization.yaml +++ b/manifests/bases/helm-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.1/helm-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.1/helm-controller.deployment.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.2/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.2/helm-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index a51adb3e..97e8cbcc 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -3,7 +3,7 @@ kind: Kustomization resources: - https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.crds.yaml - https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.1/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.2/helm-controller.crds.yaml - https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.crds.yaml - https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.crds.yaml - https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.crds.yaml From 4b0cda68b1f3359c255b1f753522194ce6e596b9 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Tue, 19 Dec 2023 18:10:05 +0100 Subject: [PATCH 089/154] Update helm-controller to v0.37.2 in tests Signed-off-by: Hidde Beydals --- tests/azure/go.mod | 2 +- tests/azure/go.sum | 4 ++-- tests/integration/go.mod | 2 +- tests/integration/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 785f0760..ac800f0a 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -8,7 +8,7 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.1 + github.com/fluxcd/helm-controller/api v0.37.2 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 github.com/fluxcd/kustomize-controller/api v1.2.1 diff --git a/tests/azure/go.sum b/tests/azure/go.sum index e124edf4..5e184b93 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -67,8 +67,8 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.1 h1:cDUX79wGpNoSrDgirQswdN8X6gKmWVrpMMBn1BKdXAc= -github.com/fluxcd/helm-controller/api v0.37.1/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= +github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 892e5d39..4b361f81 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -6,7 +6,7 @@ require ( cloud.google.com/go/pubsub v1.31.0 github.com/Azure/azure-event-hubs-go/v3 v3.6.0 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.1 + github.com/fluxcd/helm-controller/api v0.37.2 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 github.com/fluxcd/kustomize-controller/api v1.2.1 diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 7268cdd3..c5c1509a 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -122,8 +122,8 @@ github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0n github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.1 h1:cDUX79wGpNoSrDgirQswdN8X6gKmWVrpMMBn1BKdXAc= -github.com/fluxcd/helm-controller/api v0.37.1/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= +github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= +github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= From 3294c7c008ac51ff5defda5fcaed3c6d17d831b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 00:57:55 +0000 Subject: [PATCH 090/154] build(deps): bump the ci group with 2 updates Bumps the ci group with 2 updates: [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `google-github-actions/setup-gcloud` from 2.0.0 to 2.0.1 - [Release notes](https://github.com/google-github-actions/setup-gcloud/releases) - [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/setup-gcloud/compare/825196879a077b7efa50db2e88409f44de4635c2...5a5f7b85fca43e76e53463acaa9d408a03c98d3a) Updates `anchore/sbom-action` from 0.15.1 to 0.15.2 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/5ecf649a417b8ae17dc8383dc32d46c03f2312df...719133684c7d294116626d1344fe64f0d2ff3e9e) --- updated-dependencies: - dependency-name: google-github-actions/setup-gcloud dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/e2e-gcp.yaml | 2 +- .github/workflows/release.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index ae9d5295..1e85a4cc 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -52,7 +52,7 @@ jobs: credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}' token_format: 'access_token' - name: Setup gcloud - uses: google-github-actions/setup-gcloud@825196879a077b7efa50db2e88409f44de4635c2 # v2.0.0 + uses: google-github-actions/setup-gcloud@5a5f7b85fca43e76e53463acaa9d408a03c98d3a # v2.0.1 - name: Setup QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Setup Docker Buildx diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 987ecb81..6dc904d7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@5ecf649a417b8ae17dc8383dc32d46c03f2312df # v0.15.1 + uses: anchore/sbom-action/download-syft@719133684c7d294116626d1344fe64f0d2ff3e9e # v0.15.2 - name: Setup Cosign uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 - name: Setup Kustomize From 128301199d8c37cc1c27ccc2b5296b3503fa825d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 16:54:04 +0000 Subject: [PATCH 091/154] build(deps): bump github.com/cloudflare/circl from 1.3.6 to 1.3.7 Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.6 to 1.3.7. - [Release notes](https://github.com/cloudflare/circl/releases) - [Commits](https://github.com/cloudflare/circl/compare/v1.3.6...v1.3.7) --- updated-dependencies: - dependency-name: github.com/cloudflare/circl dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 50eb3408..a43c6315 100644 --- a/go.mod +++ b/go.mod @@ -92,7 +92,7 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect - github.com/cloudflare/circl v1.3.6 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 0f005e51..8ca1859b 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,8 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= -github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= From 94c9b13fbd9dc8d5d42207187e1855d11779bc61 Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 8 Jan 2024 14:35:20 +0000 Subject: [PATCH 092/154] tests/int: Add separate resource cleanup step Introduce a destroy-only mode in the test runner to run terraform destroy for the respective cloud provider configurations. This can be used to destroy cloud resources without going through the whole provision-test process. Add a new step in github actions workflow to run the test binary in destoy-only mode at the very end irrespective of the result of the previous steps. This ensures that the infrastructure is always destroyed, even if the CI job is cancelled. Signed-off-by: Sunny --- .github/workflows/e2e-azure.yaml | 11 +++++++++++ .github/workflows/e2e-gcp.yaml | 10 ++++++++++ tests/integration/Makefile | 8 ++++++++ tests/integration/README.md | 15 ++++++++++++--- tests/integration/go.mod | 4 ++-- tests/integration/go.sum | 4 ++-- tests/integration/suite_test.go | 15 +++++++++++++++ 7 files changed, 60 insertions(+), 7 deletions(-) diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 67743f3f..87d7dfe1 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -123,3 +123,14 @@ jobs: echo $GITREPO_SSH_PUB_CONTENTS | base64 -d > ./build/ssh/key.pub export GITREPO_SSH_PUB_PATH=build/ssh/key.pub make test-azure + - name: Ensure resource cleanup + if: ${{ always() }} + env: + ARM_CLIENT_ID: ${{ secrets.AZ_ARM_CLIENT_ID }} + ARM_CLIENT_SECRET: ${{ secrets.AZ_ARM_CLIENT_SECRET }} + ARM_SUBSCRIPTION_ID: ${{ secrets.AZ_ARM_SUBSCRIPTION_ID }} + ARM_TENANT_ID: ${{ secrets.AZ_ARM_TENANT_ID }} + TF_VAR_azuredevops_org: ${{ secrets.TF_VAR_azuredevops_org }} + TF_VAR_azuredevops_pat: ${{ secrets.TF_VAR_azuredevops_pat }} + TF_VAR_location: ${{ vars.TF_VAR_azure_location }} + run: source .env && make destroy-azure diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index 1e85a4cc..068968f2 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -90,3 +90,13 @@ jobs: echo $GITREPO_SSH_PUB_CONTENTS | base64 -d > ./build/ssh/key.pub export GITREPO_SSH_PUB_PATH=build/ssh/key.pub make test-gcp + - name: Ensure resource cleanup + if: ${{ always() }} + env: + TF_VAR_gcp_project_id: ${{ vars.TF_VAR_gcp_project_id }} + TF_VAR_gcp_region: ${{ vars.TF_VAR_gcp_region }} + TF_VAR_gcp_zone: ${{ vars.TF_VAR_gcp_zone }} + TF_VAR_gcp_email: ${{ secrets.TF_VAR_gcp_email }} + TF_VAR_gcp_keyring: ${{ secrets.TF_VAR_gcp_keyring }} + TF_VAR_gcp_crypto_key: ${{ secrets.TF_VAR_gcp_crypto_key }} + run: source .env && make destroy-gcp diff --git a/tests/integration/Makefile b/tests/integration/Makefile index a924232f..ddae646a 100644 --- a/tests/integration/Makefile +++ b/tests/integration/Makefile @@ -17,6 +17,14 @@ test-azure: test-gcp: $(MAKE) test PROVIDER_ARG="-provider gcp" +destroy: + go test -timeout $(TEST_TIMEOUT) -v ./ $(GO_TEST_ARGS) $(PROVIDER_ARG) -destroy-only + +destroy-azure: + $(MAKE) destroy PROVIDER_ARG="-provider azure" + +destroy-gcp: + $(MAKE) destroy PROVIDER_ARG="-provider gcp" sops-check: ifeq ($(shell which sops),) diff --git a/tests/integration/README.md b/tests/integration/README.md index db6f8d14..0fa1f3e3 100644 --- a/tests/integration/README.md +++ b/tests/integration/README.md @@ -74,6 +74,10 @@ variables using use the terraform configuration below. Please make sure all the requirements of azure-gh-actions are followed before running it. +**NOTE:** When running the following for a repo under an organization, set the +environment variable `GITHUB_ORGANIZATION` if setting the `owner` in the +`github` provider doesn't work. + ```hcl provider "github" { owner = "fluxcd" @@ -218,7 +222,7 @@ variables using use the terraform configuration below. Please make sure all the requirements of gcp-gh-actions are followed before running it. -**NOTE:** When running the following for a repo under and organization, set the +**NOTE:** When running the following for a repo under an organization, set the environment variable `GITHUB_ORGANIZATION` if setting the `owner` in the `github` provider doesn't work. @@ -345,8 +349,13 @@ We also pull two version of `ghcr.io/stefanprodan/podinfo` image. These images a Container Registry and used to test `ImageRepository` and `ImageUpdateAutomation`. The terraform resources get created and the tests are run. -**IMPORTANT:** In case the terraform infrastructure results in a bad state, maybe due to a crash during the apply, -the whole infrastructure can be destroyed by running terraform destroy in terraform/ directory. +If not configured explicitly to retain the infrastructure, at the end of the +test, the test infrastructure is deleted. In case of any failure due to which +the resources don't get deleted, the `make destroy-*` commands can be run for +the respective provider. This will run terraform destroy in the respective +provider's terraform configuration directory. This can be used to quickly +destroy the infrastructure without going through the provision-test-destroy +steps. ### Debugging the tests diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 4b361f81..3f9a6d70 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -17,9 +17,10 @@ require ( github.com/fluxcd/pkg/git/gogit v0.16.1 github.com/fluxcd/pkg/runtime v0.43.2 github.com/fluxcd/source-controller/api v1.2.3 - github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 + github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa github.com/go-git/go-git/v5 v5.11.0 github.com/google/go-containerregistry v0.16.1 + github.com/hashicorp/terraform-exec v0.18.1 github.com/hashicorp/terraform-json v0.16.0 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/onsi/gomega v1.30.0 @@ -89,7 +90,6 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/hc-install v0.5.0 // indirect - github.com/hashicorp/terraform-exec v0.18.1 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/josharian/intern v1.0.0 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index c5c1509a..06fd3947 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -153,8 +153,8 @@ github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/b github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= -github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916 h1:w9UGknpfAGbiObQALZiuWYGeriAU1wKCFTmI2tj/96M= -github.com/fluxcd/test-infra/tftestenv v0.0.0-20230831142147-627bca8e7916/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= +github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa h1:JdI+rVwGF5gBYt+UBijOVzXtq7aAU80vgksMNXSCCfU= +github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= diff --git a/tests/integration/suite_test.go b/tests/integration/suite_test.go index 0e2b2186..c2052699 100644 --- a/tests/integration/suite_test.go +++ b/tests/integration/suite_test.go @@ -26,6 +26,7 @@ import ( "testing" "time" + "github.com/hashicorp/terraform-exec/tfexec" tfjson "github.com/hashicorp/terraform-json" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/kubernetes/scheme" @@ -197,6 +198,20 @@ func TestMain(m *testing.M) { log.Fatalf("Failed to get provider config for %q", infraOpts.Provider) } + // Run destroy-only mode if enabled. + if infraOpts.DestroyOnly { + log.Println("Running in destroy-only mode...") + envOpts := []tftestenv.EnvironmentOption{ + tftestenv.WithVerbose(infraOpts.Verbose), + // Ignore any state lock in destroy-only mode. + tftestenv.WithTfDestroyOptions(tfexec.Lock(false)), + } + if err := tftestenv.Destroy(ctx, providerCfg.terraformPath, envOpts...); err != nil { + panic(err) + } + os.Exit(0) + } + // Initialize with non-zero exit code to indicate failure by default unless // set by a successful test run. exitCode := 1 From 2924af5074078652ff5b5c28dedfe4e581b10c68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 01:25:22 +0000 Subject: [PATCH 093/154] build(deps): bump the ci group with 4 updates Bumps the ci group with 4 updates: [Azure/login](https://github.com/azure/login), [google-github-actions/auth](https://github.com/google-github-actions/auth), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `Azure/login` from 1.5.1 to 1.6.0 - [Release notes](https://github.com/azure/login/releases) - [Commits](https://github.com/azure/login/compare/de95379fe4dadc2defb305917eaa7e5dde727294...e15b166166a8746d1a47596803bd8c1b595455cf) Updates `google-github-actions/auth` from 2.0.0 to 2.0.1 - [Release notes](https://github.com/google-github-actions/auth/releases) - [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/auth/compare/67e9c72af6e0492df856527b474995862b7b6591...f6de81663f7788d05bd15bcce18f0e57f23f0846) Updates `actions/upload-artifact` from 4.0.0 to 4.1.0 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/c7d193f32edcb7bfad88892161225aeda64e9392...1eb3cb2b3e0f29609092a73eb033bb759a334595) Updates `anchore/sbom-action` from 0.15.2 to 0.15.3 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/719133684c7d294116626d1344fe64f0d2ff3e9e...c7f031d9249a826a082ea14c79d3b686a51d485a) --- updated-dependencies: - dependency-name: Azure/login dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: google-github-actions/auth dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/e2e-azure.yaml | 2 +- .github/workflows/e2e-gcp.yaml | 2 +- .github/workflows/ossf.yaml | 2 +- .github/workflows/release.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 87d7dfe1..14306dd4 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -92,7 +92,7 @@ jobs: env: SOPS_VER: 3.7.1 - name: Authenticate to Azure - uses: Azure/login@de95379fe4dadc2defb305917eaa7e5dde727294 # v1.4.6 + uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.4.6 with: creds: '{"clientId":"${{ secrets.AZ_ARM_CLIENT_ID }}","clientSecret":"${{ secrets.AZ_ARM_CLIENT_SECRET }}","subscriptionId":"${{ secrets.AZ_ARM_SUBSCRIPTION_ID }}","tenantId":"${{ secrets.AZ_ARM_TENANT_ID }}"}' - name: Set dynamic variables in .env diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index 068968f2..256c10c0 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -46,7 +46,7 @@ jobs: env: SOPS_VER: 3.7.1 - name: Authenticate to Google Cloud - uses: google-github-actions/auth@67e9c72af6e0492df856527b474995862b7b6591 # v2.0.0 + uses: google-github-actions/auth@f6de81663f7788d05bd15bcce18f0e57f23f0846 # v2.0.1 id: 'auth' with: credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}' diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index d1b80c1a..fc15b787 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -28,7 +28,7 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} publish_results: true - name: Upload artifact - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 + uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595 # v4.1.0 with: name: SARIF file path: results.sarif diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6dc904d7..9f7c8579 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@719133684c7d294116626d1344fe64f0d2ff3e9e # v0.15.2 + uses: anchore/sbom-action/download-syft@c7f031d9249a826a082ea14c79d3b686a51d485a # v0.15.3 - name: Setup Cosign uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 - name: Setup Kustomize From 83450ab1d2516157e1041ae514bd6150dfe5f39c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 09:56:13 +0000 Subject: [PATCH 094/154] build(deps): bump github.com/cloudflare/circl in /tests/azure Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.6 to 1.3.7. - [Release notes](https://github.com/cloudflare/circl/releases) - [Commits](https://github.com/cloudflare/circl/compare/v1.3.6...v1.3.7) --- updated-dependencies: - dependency-name: github.com/cloudflare/circl dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/azure/go.mod | 2 +- tests/azure/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/azure/go.mod b/tests/azure/go.mod index ac800f0a..98ee8663 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -48,7 +48,7 @@ require ( github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/cloudflare/circl v1.3.6 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/devigned/tab v0.1.1 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 5e184b93..095b8937 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -48,8 +48,8 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ= github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= -github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= From 417e3d02d18a1a1f881d3cbc5ced9850e6398ec4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 11:08:38 +0000 Subject: [PATCH 095/154] build(deps): bump github.com/cloudflare/circl in /tests/integration Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.6 to 1.3.7. - [Release notes](https://github.com/cloudflare/circl/releases) - [Commits](https://github.com/cloudflare/circl/compare/v1.3.6...v1.3.7) --- updated-dependencies: - dependency-name: github.com/cloudflare/circl dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/integration/go.mod | 2 +- tests/integration/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 3f9a6d70..7b69149f 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -52,7 +52,7 @@ require ( github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/cloudflare/circl v1.3.6 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 06fd3947..e3af981d 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -78,8 +78,8 @@ github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiw github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg= -github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= 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= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= From 145fd1c2f2f41fbba5cba2d248d383d77efd3e65 Mon Sep 17 00:00:00 2001 From: Kenny Meador Date: Sun, 21 Jan 2024 11:41:06 -0600 Subject: [PATCH 096/154] Properly detect unexpected arguments Signed-off-by: Kenny Meador --- cmd/flux/uninstall.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/flux/uninstall.go b/cmd/flux/uninstall.go index 0128a833..d82077ea 100644 --- a/cmd/flux/uninstall.go +++ b/cmd/flux/uninstall.go @@ -30,6 +30,7 @@ import ( var uninstallCmd = &cobra.Command{ Use: "uninstall", + Args: cobra.NoArgs, Short: "Uninstall Flux and its custom resource definitions", Long: `The uninstall command removes the Flux components and the toolkit.fluxcd.io resources from the cluster.`, Example: ` # Uninstall Flux components, its custom resources and namespace From 2726da5b856adebfc83925986c462670eaadf66f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 08:01:30 +0000 Subject: [PATCH 097/154] build(deps): bump the ci group with 3 updates Bumps the ci group with 3 updates: [Azure/login](https://github.com/azure/login), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [anchore/sbom-action](https://github.com/anchore/sbom-action). Updates `Azure/login` from 1.6.0 to 1.6.1 - [Release notes](https://github.com/azure/login/releases) - [Commits](https://github.com/azure/login/compare/e15b166166a8746d1a47596803bd8c1b595455cf...cb79c773a3cfa27f31f25eb3f677781210c9ce3d) Updates `actions/upload-artifact` from 4.1.0 to 4.2.0 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/1eb3cb2b3e0f29609092a73eb033bb759a334595...694cdabd8bdb0f10b2cea11669e1bf5453eed0a6) Updates `anchore/sbom-action` from 0.15.3 to 0.15.4 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/c7f031d9249a826a082ea14c79d3b686a51d485a...41f7a6c033dbcdf78917f23b652c8b8146298c85) --- updated-dependencies: - dependency-name: Azure/login dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/e2e-azure.yaml | 2 +- .github/workflows/ossf.yaml | 2 +- .github/workflows/release.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 14306dd4..3f45f046 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -92,7 +92,7 @@ jobs: env: SOPS_VER: 3.7.1 - name: Authenticate to Azure - uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.4.6 + uses: Azure/login@cb79c773a3cfa27f31f25eb3f677781210c9ce3d # v1.4.6 with: creds: '{"clientId":"${{ secrets.AZ_ARM_CLIENT_ID }}","clientSecret":"${{ secrets.AZ_ARM_CLIENT_SECRET }}","subscriptionId":"${{ secrets.AZ_ARM_SUBSCRIPTION_ID }}","tenantId":"${{ secrets.AZ_ARM_TENANT_ID }}"}' - name: Set dynamic variables in .env diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index fc15b787..9c136342 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -28,7 +28,7 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} publish_results: true - name: Upload artifact - uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595 # v4.1.0 + uses: actions/upload-artifact@694cdabd8bdb0f10b2cea11669e1bf5453eed0a6 # v4.2.0 with: name: SARIF file path: results.sarif diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9f7c8579..3945198c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@c7f031d9249a826a082ea14c79d3b686a51d485a # v0.15.3 + uses: anchore/sbom-action/download-syft@41f7a6c033dbcdf78917f23b652c8b8146298c85 # v0.15.4 - name: Setup Cosign uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 - name: Setup Kustomize From 1a0d931ab56aceb57dc5e02e165c855f5351a71b Mon Sep 17 00:00:00 2001 From: Kenny Meador Date: Mon, 22 Jan 2024 19:50:51 -0600 Subject: [PATCH 098/154] detect unexpected args in flux stats command Signed-off-by: Kenny Meador --- cmd/flux/stats.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/flux/stats.go b/cmd/flux/stats.go index 0181ffab..fbb9a66f 100644 --- a/cmd/flux/stats.go +++ b/cmd/flux/stats.go @@ -42,6 +42,7 @@ import ( var statsCmd = &cobra.Command{ Use: "stats", + Args: cobra.NoArgs, Short: "Stats of Flux reconciles", Long: withPreviewNote(`The stats command prints a report of Flux custom resources present on a cluster, including their reconcile status and the amount of cumulative storage used for each source type`), From 933cf9db02b29566aee15b5efa036428bcba0494 Mon Sep 17 00:00:00 2001 From: Kenny Meador Date: Mon, 22 Jan 2024 20:22:48 -0600 Subject: [PATCH 099/154] detect unexpected args on flux check command Signed-off-by: Kenny Meador --- cmd/flux/check.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/flux/check.go b/cmd/flux/check.go index 99ecfd8c..6159e3ef 100644 --- a/cmd/flux/check.go +++ b/cmd/flux/check.go @@ -40,6 +40,7 @@ import ( var checkCmd = &cobra.Command{ Use: "check", + Args: cobra.NoArgs, Short: "Check requirements and installation", Long: withPreviewNote(`The check command will perform a series of checks to validate that the local environment is configured correctly and if the installed components are healthy.`), From cccb044dd170f976f88637347ff1d4bb64fc98ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 00:32:12 +0000 Subject: [PATCH 100/154] build(deps): bump the ci group with 5 updates Bumps the ci group with 5 updates: | Package | From | To | | --- | --- | --- | | [korthout/backport-action](https://github.com/korthout/backport-action) | `2.3.0` | `2.4.1` | | [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.0.1` | `2.1.0` | | [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.0.1` | `2.1.0` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.2.0` | `4.3.0` | | [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.15.4` | `0.15.5` | Updates `korthout/backport-action` from 2.3.0 to 2.4.1 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/addffea45a2f0b5682f1d5ba0506f45bc18bf174...e8161d6a0dbfa2651b7daa76cbb75bc7c925bbf3) Updates `google-github-actions/auth` from 2.0.1 to 2.1.0 - [Release notes](https://github.com/google-github-actions/auth/releases) - [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/auth/compare/f6de81663f7788d05bd15bcce18f0e57f23f0846...5a50e581162a13f4baa8916d01180d2acbc04363) Updates `google-github-actions/setup-gcloud` from 2.0.1 to 2.1.0 - [Release notes](https://github.com/google-github-actions/setup-gcloud/releases) - [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/setup-gcloud/compare/5a5f7b85fca43e76e53463acaa9d408a03c98d3a...98ddc00a17442e89a24bbf282954a3b65ce6d200) Updates `actions/upload-artifact` from 4.2.0 to 4.3.0 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/694cdabd8bdb0f10b2cea11669e1bf5453eed0a6...26f96dfa697d77e81fd5907df203aa23a56210a8) Updates `anchore/sbom-action` from 0.15.4 to 0.15.5 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/41f7a6c033dbcdf78917f23b652c8b8146298c85...24b0d5238516480139aa8bc6f92eeb7b54a9eb0a) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: google-github-actions/auth dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: google-github-actions/setup-gcloud dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/backport.yaml | 2 +- .github/workflows/e2e-gcp.yaml | 4 ++-- .github/workflows/ossf.yaml | 2 +- .github/workflows/release.yaml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/backport.yaml b/.github/workflows/backport.yaml index 54bd0682..e0eead2c 100644 --- a/.github/workflows/backport.yaml +++ b/.github/workflows/backport.yaml @@ -17,7 +17,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Create backport PRs - uses: korthout/backport-action@addffea45a2f0b5682f1d5ba0506f45bc18bf174 # v2.3.0 + uses: korthout/backport-action@e8161d6a0dbfa2651b7daa76cbb75bc7c925bbf3 # v2.4.1 # xref: https://github.com/korthout/backport-action#inputs with: # Use token to allow workflows to be triggered for the created PR diff --git a/.github/workflows/e2e-gcp.yaml b/.github/workflows/e2e-gcp.yaml index 256c10c0..902a24c2 100644 --- a/.github/workflows/e2e-gcp.yaml +++ b/.github/workflows/e2e-gcp.yaml @@ -46,13 +46,13 @@ jobs: env: SOPS_VER: 3.7.1 - name: Authenticate to Google Cloud - uses: google-github-actions/auth@f6de81663f7788d05bd15bcce18f0e57f23f0846 # v2.0.1 + uses: google-github-actions/auth@5a50e581162a13f4baa8916d01180d2acbc04363 # v2.1.0 id: 'auth' with: credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}' token_format: 'access_token' - name: Setup gcloud - uses: google-github-actions/setup-gcloud@5a5f7b85fca43e76e53463acaa9d408a03c98d3a # v2.0.1 + uses: google-github-actions/setup-gcloud@98ddc00a17442e89a24bbf282954a3b65ce6d200 # v2.1.0 - name: Setup QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Setup Docker Buildx diff --git a/.github/workflows/ossf.yaml b/.github/workflows/ossf.yaml index 9c136342..d5dee948 100644 --- a/.github/workflows/ossf.yaml +++ b/.github/workflows/ossf.yaml @@ -28,7 +28,7 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} publish_results: true - name: Upload artifact - uses: actions/upload-artifact@694cdabd8bdb0f10b2cea11669e1bf5453eed0a6 # v4.2.0 + uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 with: name: SARIF file path: results.sarif diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3945198c..3b79d224 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,7 +34,7 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@41f7a6c033dbcdf78917f23b652c8b8146298c85 # v0.15.4 + uses: anchore/sbom-action/download-syft@24b0d5238516480139aa8bc6f92eeb7b54a9eb0a # v0.15.5 - name: Setup Cosign uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 - name: Setup Kustomize From 5e14014e37fec3c0d82055c82a8017f25b328eaa Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Tue, 30 Jan 2024 14:07:35 +0200 Subject: [PATCH 101/154] Update dependencies to Kubernetes v1.28.6 Signed-off-by: Stefan Prodan --- cmd/flux/build_kustomization.go | 4 +- cmd/flux/cluster_info_test.go | 4 +- cmd/flux/events_test.go | 6 +- cmd/flux/tree_kustomization.go | 4 +- go.mod | 146 +++++++++------ go.sum | 313 +++++++++++++++++++------------- internal/build/build.go | 6 +- internal/build/diff.go | 3 +- internal/tree/tree.go | 4 +- internal/utils/apply.go | 7 +- tests/azure/go.mod | 55 +++--- tests/azure/go.sum | 127 ++++++------- tests/integration/go.mod | 42 ++--- tests/integration/go.sum | 102 +++++------ 14 files changed, 461 insertions(+), 362 deletions(-) diff --git a/cmd/flux/build_kustomization.go b/cmd/flux/build_kustomization.go index ea0517c0..dbbf7abc 100644 --- a/cmd/flux/build_kustomization.go +++ b/cmd/flux/build_kustomization.go @@ -21,10 +21,10 @@ import ( "os" "os/signal" - "github.com/fluxcd/pkg/ssa" "github.com/spf13/cobra" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" + ssautil "github.com/fluxcd/pkg/ssa/utils" "github.com/fluxcd/flux2/v2/internal/build" ) @@ -132,7 +132,7 @@ func buildKsCmdRun(cmd *cobra.Command, args []string) (err error) { errChan <- err } - manifests, err := ssa.ObjectsToYAML(objects) + manifests, err := ssautil.ObjectsToYAML(objects) if err != nil { errChan <- err } diff --git a/cmd/flux/cluster_info_test.go b/cmd/flux/cluster_info_test.go index 560c881b..86b94c9c 100644 --- a/cmd/flux/cluster_info_test.go +++ b/cmd/flux/cluster_info_test.go @@ -29,7 +29,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" - "github.com/fluxcd/pkg/ssa" + ssautil "github.com/fluxcd/pkg/ssa/utils" ) func Test_getFluxClusterInfo(t *testing.T) { @@ -37,7 +37,7 @@ func Test_getFluxClusterInfo(t *testing.T) { f, err := os.Open("./testdata/cluster_info/gitrepositories.yaml") g.Expect(err).To(BeNil()) - objs, err := ssa.ReadObjects(f) + objs, err := ssautil.ReadObjects(f) g.Expect(err).To(Not(HaveOccurred())) gitrepo := objs[0] diff --git a/cmd/flux/events_test.go b/cmd/flux/events_test.go index 53fab161..cb27e3eb 100644 --- a/cmd/flux/events_test.go +++ b/cmd/flux/events_test.go @@ -31,7 +31,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1" - "github.com/fluxcd/pkg/ssa" + ssautil "github.com/fluxcd/pkg/ssa/utils" "github.com/fluxcd/flux2/v2/internal/utils" ) @@ -160,7 +160,7 @@ metadata: func Test_getObjectRef(t *testing.T) { g := NewWithT(t) - objs, err := ssa.ReadObjects(strings.NewReader(objects)) + objs, err := ssautil.ReadObjects(strings.NewReader(objects)) g.Expect(err).To(Not(HaveOccurred())) builder := fake.NewClientBuilder().WithScheme(utils.NewScheme()) @@ -244,7 +244,7 @@ func Test_getObjectRef(t *testing.T) { func Test_getRows(t *testing.T) { g := NewWithT(t) - objs, err := ssa.ReadObjects(strings.NewReader(objects)) + objs, err := ssautil.ReadObjects(strings.NewReader(objects)) g.Expect(err).To(Not(HaveOccurred())) builder := fake.NewClientBuilder().WithScheme(utils.NewScheme()) diff --git a/cmd/flux/tree_kustomization.go b/cmd/flux/tree_kustomization.go index e345f0f2..010bd72b 100644 --- a/cmd/flux/tree_kustomization.go +++ b/cmd/flux/tree_kustomization.go @@ -38,7 +38,7 @@ import ( "github.com/fluxcd/cli-utils/pkg/object" helmv2 "github.com/fluxcd/helm-controller/api/v2beta2" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" - "github.com/fluxcd/pkg/ssa" + ssautil "github.com/fluxcd/pkg/ssa/utils" "github.com/fluxcd/flux2/v2/internal/tree" "github.com/fluxcd/flux2/v2/internal/utils" @@ -261,7 +261,7 @@ func getHelmReleaseInventory(ctx context.Context, objectKey client.ObjectKey, ku return nil, fmt.Errorf("failed to decode the Helm storage object for HelmRelease '%s': %w", objectKey.String(), err) } - objects, err := ssa.ReadObjects(strings.NewReader(rls.Manifest)) + objects, err := ssautil.ReadObjects(strings.NewReader(rls.Manifest)) if err != nil { return nil, fmt.Errorf("failed to read the Helm storage object for HelmRelease '%s': %w", objectKey.String(), err) } diff --git a/go.mod b/go.mod index a43c6315..2b549450 100644 --- a/go.mod +++ b/go.mod @@ -7,55 +7,55 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Masterminds/semver/v3 v3.2.1 - github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e + github.com/ProtonMail/go-crypto v1.0.0 github.com/cyphar/filepath-securejoin v0.2.4 - github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 - github.com/fluxcd/cli-utils v0.36.0-flux.2 - github.com/fluxcd/go-git-providers v0.19.2 + github.com/distribution/distribution/v3 v3.0.0-alpha.1 + github.com/fluxcd/cli-utils v0.36.0-flux.3 + github.com/fluxcd/go-git-providers v0.19.3 github.com/fluxcd/helm-controller/api v0.37.2 github.com/fluxcd/image-automation-controller/api v0.37.0 github.com/fluxcd/image-reflector-controller/api v0.31.1 github.com/fluxcd/kustomize-controller/api v1.2.1 github.com/fluxcd/notification-controller/api v1.2.3 - github.com/fluxcd/pkg/apis/event v0.6.0 - github.com/fluxcd/pkg/apis/meta v1.2.0 - github.com/fluxcd/pkg/git v0.16.0 - github.com/fluxcd/pkg/git/gogit v0.16.1 - github.com/fluxcd/pkg/kustomize v1.5.0 - github.com/fluxcd/pkg/oci v0.33.3 - github.com/fluxcd/pkg/runtime v0.43.2 - github.com/fluxcd/pkg/sourceignore v0.4.0 - github.com/fluxcd/pkg/ssa v0.35.0 - github.com/fluxcd/pkg/ssh v0.10.0 + github.com/fluxcd/pkg/apis/event v0.7.0 + github.com/fluxcd/pkg/apis/meta v1.3.0 + github.com/fluxcd/pkg/git v0.17.0 + github.com/fluxcd/pkg/git/gogit v0.17.0 + github.com/fluxcd/pkg/kustomize v1.6.0 + github.com/fluxcd/pkg/oci v0.35.0 + github.com/fluxcd/pkg/runtime v0.44.0 + github.com/fluxcd/pkg/sourceignore v0.5.0 + github.com/fluxcd/pkg/ssa v0.36.0 + github.com/fluxcd/pkg/ssh v0.11.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 github.com/fluxcd/source-controller/api v1.2.3 github.com/go-git/go-git/v5 v5.11.0 - github.com/go-logr/logr v1.3.0 + github.com/go-logr/logr v1.4.1 github.com/gonvenience/bunt v1.3.5 github.com/gonvenience/ytbx v1.4.4 github.com/google/go-cmp v0.6.0 - github.com/google/go-containerregistry v0.17.0 + github.com/google/go-containerregistry v0.19.0 github.com/hashicorp/go-cleanhttp v0.5.2 github.com/homeport/dyff v1.6.0 github.com/lucasb-eyer/go-colorful v1.2.0 github.com/manifoldco/promptui v0.9.0 github.com/mattn/go-shellwords v1.0.12 github.com/olekukonko/tablewriter v0.0.5 - github.com/onsi/gomega v1.30.0 + github.com/onsi/gomega v1.31.1 github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/theckman/yacspin v0.13.12 - golang.org/x/crypto v0.17.0 - golang.org/x/term v0.15.0 + golang.org/x/crypto v0.18.0 + golang.org/x/term v0.16.0 golang.org/x/text v0.14.0 - k8s.io/api v0.28.4 - k8s.io/apiextensions-apiserver v0.28.4 - k8s.io/apimachinery v0.28.4 - k8s.io/cli-runtime v0.28.4 - k8s.io/client-go v0.28.4 - k8s.io/kubectl v0.28.4 + k8s.io/api v0.28.6 + k8s.io/apiextensions-apiserver v0.28.6 + k8s.io/apimachinery v0.28.6 + k8s.io/cli-runtime v0.28.6 + k8s.io/client-go v0.28.6 + k8s.io/kubectl v0.28.6 sigs.k8s.io/controller-runtime v0.16.3 sigs.k8s.io/kustomize/api v0.16.0 sigs.k8s.io/kustomize/kyaml v0.16.0 @@ -63,47 +63,50 @@ require ( ) require ( - code.gitea.io/sdk/gitea v0.17.0 // indirect + code.gitea.io/sdk/gitea v0.17.1 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect github.com/BurntSushi/toml v1.3.2 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/aws/aws-sdk-go-v2 v1.24.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.26.1 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5 // indirect + github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect + github.com/aws/aws-sdk-go-v2/config v1.26.6 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.24.7 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect github.com/aws/smithy-go v1.19.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bshuster-repo/logrus-logstash-hook v1.0.0 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/distribution/reference v0.5.0 // indirect github.com/docker/cli v24.0.0+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/docker v24.0.7+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect github.com/docker/go-metrics v0.0.1 // indirect - github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 // indirect github.com/drone/envsubst v1.0.3 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -111,22 +114,22 @@ require ( github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect github.com/fatih/color v1.13.0 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.3.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-errors/errors v1.5.1 // indirect github.com/go-fed/httpsig v1.1.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.0.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/gomodule/redigo v1.8.2 // indirect github.com/gonvenience/neat v1.3.12 // indirect github.com/gonvenience/term v1.0.2 // indirect github.com/gonvenience/text v1.0.7 // indirect @@ -137,10 +140,11 @@ require ( github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect - github.com/gorilla/mux v1.8.0 // indirect + github.com/gorilla/mux v1.8.1 // indirect github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.5 // indirect @@ -154,7 +158,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.16.5 // indirect + github.com/klauspost/compress v1.17.4 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -177,12 +181,15 @@ require ( github.com/opencontainers/image-spec v1.1.0-rc3 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect github.com/prometheus/client_model v0.5.0 // indirect github.com/prometheus/common v0.45.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect + github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 // indirect + github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 // indirect + github.com/redis/go-redis/v9 v9.1.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect @@ -191,27 +198,46 @@ require ( github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/vbatts/tar-split v0.11.3 // indirect github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect - github.com/xanzy/go-gitlab v0.95.1 // indirect + github.com/xanzy/go-gitlab v0.96.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xlab/treeprint v1.2.0 // indirect + go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.44.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/sdk v1.21.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect + go.opentelemetry.io/proto/otlp v1.0.0 // indirect go.starlark.net v0.0.0-20231121155337-90ade8b19d09 // indirect golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.16.0 // indirect + golang.org/x/tools v0.17.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/grpc v1.59.0 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.7.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/component-base v0.28.4 // indirect + k8s.io/component-base v0.28.6 // indirect k8s.io/klog/v2 v2.110.1 // indirect k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect diff --git a/go.sum b/go.sum index 8ca1859b..d2be5976 100644 --- a/go.sum +++ b/go.sum @@ -1,18 +1,18 @@ -code.gitea.io/sdk/gitea v0.17.0 h1:8JPBss4+Jf7AE1YcfyiGrngTXE8dFSG3si/bypsTH34= -code.gitea.io/sdk/gitea v0.17.0/go.mod h1:ndkDk99BnfiUCCYEUhpNzi0lpmApXlwRFqClBlOlEBg= +code.gitea.io/sdk/gitea v0.17.1 h1:3jCPOG2ojbl8AcfaUCRYLT5MUcBMFwS0OSK2mA5Zok8= +code.gitea.io/sdk/gitea v0.17.1/go.mod h1:aCnBqhHpoEWA180gMbaCtdX9Pl6BWBAuuP2miadoTNM= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 h1:fb8kj/Dh4CSwgsOzHeZY4Xh68cFVbzXx+ONXGMY//4w= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0/go.mod h1:uReU2sSxZExRPBAg3qKzmAucSi51+SP1OhohieR821Q= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 h1:d81/ng9rET2YqdVkVwkb6EXeRrLJIwyGnJcAlAWKwhs= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 h1:WpB/QDNLpMw72xHJc34BNNykqSOeEJDAWkhf0u12/Jk= -github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -23,38 +23,38 @@ github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYr github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= -github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= +github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= +github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/aws/aws-sdk-go-v2 v1.24.0 h1:890+mqQ+hTpNuw0gGP6/4akolQkSToDJgHfQE7AwGuk= -github.com/aws/aws-sdk-go-v2 v1.24.0/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= -github.com/aws/aws-sdk-go-v2/config v1.26.1 h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o= -github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg= -github.com/aws/aws-sdk-go-v2/credentials v1.16.12 h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU= -github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 h1:v+HbZaCGmOwnTTVS86Fleq0vPzOd7tnJGbFhP0stNLs= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9/go.mod h1:Xjqy+Nyj7VDLBtCMkQYOw1QYfAEZCVLrfI0ezve8wd4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 h1:N94sVhRACtXyVcjXxrwK1SKFIJrA9pOJ5yu2eSHnmls= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9/go.mod h1:hqamLz7g1/4EJP+GH5NBhcUMLjW+gKLQabgyz6/7WAU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= -github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5 h1:wLPDAUFT50NEXGXpywRU3AA74pg35RJjWol/68ruvQQ= -github.com/aws/aws-sdk-go-v2/service/ecr v1.24.5/go.mod h1:AOHmGMoPtSY9Zm2zBuwUJQBisIvYAZeA1n7b6f4e880= +github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU= +github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= +github.com/aws/aws-sdk-go-v2/config v1.26.6 h1:Z/7w9bUqlRI0FFQpetVuFYEsjzE3h7fpU6HuGmfPL/o= +github.com/aws/aws-sdk-go-v2/config v1.26.6/go.mod h1:uKU6cnDmYCvJ+pxO9S4cWDb2yWWIH5hra+32hVh1MI4= +github.com/aws/aws-sdk-go-v2/credentials v1.16.16 h1:8q6Rliyv0aUFAVtzaldUEcS+T5gbadPbWdV1WcAddK8= +github.com/aws/aws-sdk-go-v2/credentials v1.16.16/go.mod h1:UHVZrdUsv63hPXFo1H7c5fEneoVo9UXiz36QG1GEPi0= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 h1:c5I5iH+DZcH3xOIMlz3/tCKJDaHFwYEmxvlh2fAcFo8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUtUnOhydaMHtiK/1NZ0Otc9lIb6O0Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10/go.mod h1:6UV4SZkVvmODfXKql4LCbaZUpF7HO2BX38FgBf9ZOLw= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 h1:n3GDfwqF2tzEkXlv5cuy4iy7LpKDtqDMcNLfZDu9rls= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/service/ecr v1.24.7 h1:3iaT/LnGV6jNtbBkvHZDlzz7Ky3wMHDJAyFtGd5GUJI= +github.com/aws/aws-sdk-go-v2/service/ecr v1.24.7/go.mod h1:mtzCLxk6M+KZbkJdq3cUH9GCrudw8qCy5C3EHO+5vLc= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 h1:Nf2sHxjMJR8CSImIVCONRi4g0Su3J+TSTbS7G0pUeMU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9/go.mod h1:idky4TER38YIjr2cADF1/ugFMKvZV7p//pVeV5LZbF0= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5/go.mod h1:W+nd4wWDVkSUIox9bacmkBP5NMFQeTJ/xqNabpzSR38= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNICmcgKPAO1CER25Wg= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 h1:DBYTXwIGQSGs9w4jKm60F5dmCQ3EEruxdc0MFh+3EY4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10/go.mod h1:wohMUQiFdzo0NtxbBg0mSRGZ4vL3n0dKjLTINdcIino= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= +github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 h1:QPMJf+Jw8E1l7zqhZmMlFw6w1NmfkfiSK8mS4zOx3BA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7/go.mod h1:ykf3COxYI0UJmxcfcxcVuz7b6uADi1FkiUz6Eb7AgM8= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= +github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -63,7 +63,13 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/bsm/ginkgo/v2 v2.7.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= +github.com/bsm/ginkgo/v2 v2.9.5 h1:rtVBYPs3+TC5iLUVOis1B9tjLTup7Cj5IfzosKtvTJ0= +github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= +github.com/bsm/gomega v1.26.0/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= @@ -79,6 +85,8 @@ github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vc github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -91,8 +99,12 @@ 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= github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= -github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41 h1:vlGNYFw1NB27Gk5tIwJpiog1Ti6FKOUI+DoFZKoCDZo= -github.com/distribution/distribution/v3 v3.0.0-20230823142118-4f7424c8eb41/go.mod h1:WREzLx07iIFUGvbm6tBoqGt40zOC3whiM1qkcWOMFrs= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/distribution/distribution/v3 v3.0.0-alpha.1 h1:jn7I1gvjOvmLztH1+1cLiUFud7aeJCIQcgzugtwjyJo= +github.com/distribution/distribution/v3 v3.0.0-alpha.1/go.mod h1:LCp4JZp1ZalYg0W/TN05jarCQu+h4w7xc7ZfQF4Y/cY= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/docker/cli v24.0.0+incompatible h1:0+1VshNwBQzQAx9lOl+OYCTCEAD8fKs/qeXMx3O0wqM= github.com/docker/cli v24.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= @@ -106,8 +118,6 @@ github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= github.com/elazarl/goproxy v0.0.0-20231117061959-7cc037d33fb5 h1:m62nsMU279qRD9PQSWD1l66kmkXzuYcnVJqL4XLeV2M= @@ -124,13 +134,13 @@ github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSY github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fluxcd/cli-utils v0.36.0-flux.2 h1:7nlXfAJ7iaDF34IdbyId+wBf7beL2qvzDBLmVBJSDVo= -github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po3pzAtk3NQmQEN5l8= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fluxcd/cli-utils v0.36.0-flux.3 h1:5CQTOc08UnabfwluIYxIhlhpCCTplWBn/xpjVr560J0= +github.com/fluxcd/cli-utils v0.36.0-flux.3/go.mod h1:9lShvUz7uRPIjYZ6phr5AOuORkRDmaUgf/sZN7SDcpo= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/go-git-providers v0.19.2 h1:G/O0z4WUlgChV6o3YrZ1GP1ZgZSd8ZJWACIW0ICqxMo= -github.com/fluxcd/go-git-providers v0.19.2/go.mod h1:V44pmhFqoZ8heFJEBU1PS+OHTwLWOfoj0nKpFAqik6Y= +github.com/fluxcd/go-git-providers v0.19.3 h1:G70yZR6biRgOE7FJVnSTLran642K9rm645wlXPNxLvw= +github.com/fluxcd/go-git-providers v0.19.3/go.mod h1:NyHogwOJXUflL8IX05ycVjXwmvxqql0WgbVkmoj+iiE= github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= @@ -143,29 +153,29 @@ github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= -github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= -github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= -github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= -github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= -github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= -github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= -github.com/fluxcd/pkg/git v0.16.0/go.mod h1:ZsaxXDBHIUjNeRf+3qDGyHD22KpqbjuNPCbHy2Xid5U= -github.com/fluxcd/pkg/git/gogit v0.16.1 h1:byimVk7VLbERRxJDkVktithN03GC0y7fyc8Ur9Uka8U= -github.com/fluxcd/pkg/git/gogit v0.16.1/go.mod h1:nx3PumOFe5e3fMsh2HPLSlAeOk2wC+jVg7H9BTRKEmg= -github.com/fluxcd/pkg/gittestserver v0.9.0 h1:OthMahtKmmpwCRw8LmSGrceqVhHywGg/QiytxHGSgeY= -github.com/fluxcd/pkg/kustomize v1.5.0 h1:Q2kynQzF4coKlOJq/XaLM+gVmVloaInkoa+vsor6Hho= -github.com/fluxcd/pkg/kustomize v1.5.0/go.mod h1:QgFwpteTedb7oio5+yN+h+rhSgm253OIjmtoTow+a5c= -github.com/fluxcd/pkg/oci v0.33.3 h1:dj5IuF2O9/0r37tOWoOoKX/0emytjEiJ6sXy9FUkHww= -github.com/fluxcd/pkg/oci v0.33.3/go.mod h1:6+vIgdqP6AkFitvlyGx2W9f4s8q5Oguw9SNeN494MCY= -github.com/fluxcd/pkg/runtime v0.43.2 h1:xH2BvttUqJ7wS0zjuBETr2pLXG62QY6f0mdxg5UQKio= -github.com/fluxcd/pkg/runtime v0.43.2/go.mod h1:dhhNV45B3tekg7qPzATFTuWOulvUzMoO1bV+vc2pSts= -github.com/fluxcd/pkg/sourceignore v0.4.0 h1:99Ikoi8qMirlBK4yjnoKa5vx9YFQ/BSSK3Axi+yDg9s= -github.com/fluxcd/pkg/sourceignore v0.4.0/go.mod h1:j1BRQE+R0TJmPYPUnEd/0gm8KcpajlX6mDv3z7s8YFQ= -github.com/fluxcd/pkg/ssa v0.35.0 h1:8T3WY4P9SQWApa2hq1rU1u2WE8oqP3MMTsAiEWwhmfo= -github.com/fluxcd/pkg/ssa v0.35.0/go.mod h1:rhVh0EtYVUOznKXlz6E7JOSgdc8xWbIwA4L5HVtJRLA= -github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= -github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= +github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= +github.com/fluxcd/pkg/apis/event v0.7.0/go.mod h1:zdqe8SVXjFQ/Nfuk51c2SJe0NkyNwYOxSFtN6SmikVs= +github.com/fluxcd/pkg/apis/kustomize v1.3.0 h1:qvB46CfaOWcL1SyR2RiVWN/j7/035D0OtB1ltLN7rgI= +github.com/fluxcd/pkg/apis/kustomize v1.3.0/go.mod h1:PCXf5kktTzNav0aH2Ns3jsowqwmA9xTcsrEOoPzx/K8= +github.com/fluxcd/pkg/apis/meta v1.3.0 h1:KxeEc6olmSZvQ5pBONPE4IKxyoWQbqTJF1X6K5nIXpU= +github.com/fluxcd/pkg/apis/meta v1.3.0/go.mod h1:3Ui8xFkoU4sYehqmscjpq7NjqH2YN1A2iX2okbO3/yA= +github.com/fluxcd/pkg/git v0.17.0 h1:eHL8IazeX2HXwXzT6zLdzGaX3H37n/ipkdd1+byyzUM= +github.com/fluxcd/pkg/git v0.17.0/go.mod h1:lBeHCTtVt9py9mMGj5sKs4+aFpMWGjH73gx5i818i6o= +github.com/fluxcd/pkg/git/gogit v0.17.0 h1:X8C+q/Nm/MjBKAoqw9NPpnJh0B3IxVLtqPgH+wT9NEg= +github.com/fluxcd/pkg/git/gogit v0.17.0/go.mod h1:qyRSCQy41wG0FwUwKQtfSnwqkrJg5XB4UdMvrHjIcFY= +github.com/fluxcd/pkg/gittestserver v0.10.0 h1:joqfczQNtguZFGxTuRL535ymDW/9clA1jBWa3d8B6WU= +github.com/fluxcd/pkg/kustomize v1.6.0 h1:LIZ0BkpGLkyj33yzJ3HUsNzJ20wcLSxkUFcZg9kpg34= +github.com/fluxcd/pkg/kustomize v1.6.0/go.mod h1:LitgZWd9+2X9g+Y4JeyZJewel+E10OIkUaUw4t4YWM8= +github.com/fluxcd/pkg/oci v0.35.0 h1:VPFeEsF9U2O5Vg/l/cD0d6+MHzQUJGpT3OBSGEXpN8U= +github.com/fluxcd/pkg/oci v0.35.0/go.mod h1:B5Q+Rb4zfQ9GR24FjUsCNmQMWXNRfsC0ovHxFXrpUCo= +github.com/fluxcd/pkg/runtime v0.44.0 h1:0BEPSpcsYXOiswKG5TWkin8fhCDHb0nDdAtq/5VrCSI= +github.com/fluxcd/pkg/runtime v0.44.0/go.mod h1:s1AhSOTCEBPaTfz/GdBD/Ws66uOByIuNP4Znrq+is9M= +github.com/fluxcd/pkg/sourceignore v0.5.0 h1:8ffSJCRIKsMpxXjGPVeRK3xhGUjuk+tFILf/+EODCVg= +github.com/fluxcd/pkg/sourceignore v0.5.0/go.mod h1:cJsXn+wYmRY3VamrtG9I3MBL2wjtns2bS7ARIht2XAQ= +github.com/fluxcd/pkg/ssa v0.36.0 h1:h9FB6SrrdVlxNQtfG+Fb/Roe1e61EPgtmJ5ORlAxwkU= +github.com/fluxcd/pkg/ssa v0.36.0/go.mod h1:FJj4xznwBvRM+9h02lGGC0CGYGucPeXO7P6NEPphbys= +github.com/fluxcd/pkg/ssh v0.11.0 h1:7WDDrcB0cNimzZjrpkzYBrizkrUgyM4Zr2cd9z9aqpU= +github.com/fluxcd/pkg/ssh v0.11.0/go.mod h1:K8YgH8KM0GV5DWuRErX3iKgpoHlYh08SBK+U5Q0teJc= github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= @@ -189,8 +199,12 @@ github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lK github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +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-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= @@ -202,12 +216,14 @@ github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogB github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= -github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= +github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -217,8 +233,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= -github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/gonvenience/bunt v1.3.5 h1:wSQquifvwEWtzn27k1ngLfeLaStyt0k1b/K6TrlCNAs= github.com/gonvenience/bunt v1.3.5/go.mod h1:7ApqkVBEWvX04oJ28Q2WeI/BvJM6VtukaJAU/q/pTs8= github.com/gonvenience/neat v1.3.12 h1:xwIyRbJcG9LgcDYys+HHLH9DqqHeQsUpS5CfBUeskbs= @@ -242,8 +256,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.17.0 h1:5p+zYs/R4VGHkhyvgWurWrpJ2hW4Vv9fQI+GzdcwXLk= -github.com/google/go-containerregistry v0.17.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= +github.com/google/go-containerregistry v0.19.0 h1:uIsMRBV7m/HDkDxE/nXMnv1q+lOOSPlQ/ywc5JbB8Ic= +github.com/google/go-containerregistry v0.19.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= github.com/google/go-github/v57 v57.0.0 h1:L+Y3UPTY8ALM8x+TV0lg+IEBI+upibemtBD8Q9u7zHs= github.com/google/go-github/v57 v57.0.0/go.mod h1:s0omdnye0hvK/ecLvpsGfJMiRt85PimQh4oygmLIxHw= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= @@ -254,15 +268,17 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs= 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.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -274,7 +290,6 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M= github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= -github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= @@ -304,8 +319,8 @@ github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4 github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= 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.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= -github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= 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= @@ -370,9 +385,9 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo/v2 v2.13.2 h1:Bi2gGVkfn6gQcjNjZJVO8Gf0FHzMPf2phUei9tejVMs= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= +github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= 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.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= @@ -384,8 +399,8 @@ github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1H github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -394,8 +409,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= @@ -409,6 +424,13 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 h1:EaDatTxkdHG+U3Bk4EUr+DZ7fOGwTfezUiUJMaIcaho= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5/go.mod h1:fyalQWdtzDBECAQFBJuQe5bzQ02jGd5Qcbgb97Flm7U= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 h1:EfpWLLCyXw8PSM2/XNJLjI3Pb27yVE+gIAfeqp8LUCc= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5/go.mod h1:WZjPDy7VNzn77AAfnAfVjZNvfJTYfPetfZk5yoSTLaQ= +github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= +github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= +github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= @@ -435,7 +457,6 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -451,8 +472,8 @@ github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RV github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 h1:JwtAtbp7r/7QSyGz8mKUbYJBg2+6Cd7OjM8o/GNOcVo= github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74/go.mod h1:RmMWU37GKR2s6pgrIEB4ixgpVCt/cf7dnJv3fuH1J1c= -github.com/xanzy/go-gitlab v0.95.1 h1:rQjcmX5Au2Lz9bc3QLTdtSK5ZHdTXLnmhz3CAB/G5So= -github.com/xanzy/go-gitlab v0.95.1/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= +github.com/xanzy/go-gitlab v0.96.0 h1:LGkZ+wSNMRtHIBaYE4Hq3dZVjprwHv3Y1+rhKU3WETs= +github.com/xanzy/go-gitlab v0.96.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= @@ -460,6 +481,38 @@ github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 h1:dEZWPjVN22urgYCza3PXRUGEyCB++y1sAqm6guWFesk= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0/go.mod h1:sTt30Evb7hJB/gEk27qLb1+l9n4Tb8HvHkR0Wx3S6CU= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/sdk/metric v1.21.0 h1:smhI5oD714d6jHE6Tie36fPx4WDFIg+Y6RfAY4ICcR0= +go.opentelemetry.io/otel/sdk/metric v1.21.0/go.mod h1:FJ8RAsoPGv/wYMgBdUJXOm+6pzFY3YdljnXtv1SBE8Q= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.starlark.net v0.0.0-20231121155337-90ade8b19d09 h1:hzy3LFnSN8kuQK8h9tHl4ndF6UruMj47OqwqsS+/Ai4= go.starlark.net v0.0.0-20231121155337-90ade8b19d09/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -471,12 +524,12 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -496,11 +549,12 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= 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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -508,8 +562,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -524,7 +578,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -532,20 +585,24 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -553,6 +610,7 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= @@ -564,8 +622,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= -golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= 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= @@ -574,10 +632,17 @@ gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -598,24 +663,24 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 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= -k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= -k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= -k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= -k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM= -k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= -k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= -k8s.io/cli-runtime v0.28.4 h1:IW3aqSNFXiGDllJF4KVYM90YX4cXPGxuCxCVqCD8X+Q= -k8s.io/cli-runtime v0.28.4/go.mod h1:MLGRB7LWTIYyYR3d/DOgtUC8ihsAPA3P8K8FDNIqJ0k= -k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= -k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= -k8s.io/component-base v0.28.4 h1:c/iQLWPdUgI90O+T9TeECg8o7N3YJTiuz2sKxILYcYo= -k8s.io/component-base v0.28.4/go.mod h1:m9hR0uvqXDybiGL2nf/3Lf0MerAfQXzkfWhUY58JUbU= +k8s.io/api v0.28.6 h1:yy6u9CuIhmg55YvF/BavPBBXB+5QicB64njJXxVnzLo= +k8s.io/api v0.28.6/go.mod h1:AM6Ys6g9MY3dl/XNaNfg/GePI0FT7WBGu8efU/lirAo= +k8s.io/apiextensions-apiserver v0.28.6 h1:myB3iG/3v3jqCg28JDbOefu4sH2/erNEXgytRzJKBOo= +k8s.io/apiextensions-apiserver v0.28.6/go.mod h1:qlp6xRKBgyRhe5AYc81TQpLx4kLNK8/sGQUOwMkVjRk= +k8s.io/apimachinery v0.28.6 h1:RsTeR4z6S07srPg6XYrwXpTJVMXsjPXn0ODakMytSW0= +k8s.io/apimachinery v0.28.6/go.mod h1:QFNX/kCl/EMT2WTSz8k4WLCv2XnkOLMaL8GAVRMdpsA= +k8s.io/cli-runtime v0.28.6 h1:bDH2+ZbHBK3NORGmIygj/zWOkVd/hGWg9RqAa5c/Ev0= +k8s.io/cli-runtime v0.28.6/go.mod h1:KFk67rlb7Pxh15uLbYGBUlW7ZUcpl7IM1GnHtskrcWA= +k8s.io/client-go v0.28.6 h1:Gge6ziyIdafRchfoBKcpaARuz7jfrK1R1azuwORIsQI= +k8s.io/client-go v0.28.6/go.mod h1:+nu0Yp21Oeo/cBCsprNVXB2BfJTV51lFfe5tXl2rUL8= +k8s.io/component-base v0.28.6 h1:G4T8VrcQ7xZou3by/fY5NU5mfxOBlWaivS2lPrEltAo= +k8s.io/component-base v0.28.6/go.mod h1:Dg62OOG3ALu2P4nAG00UdsuHoNLQJ5VsUZKQlLDcS+E= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ= k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/kubectl v0.28.4 h1:gWpUXW/T7aFne+rchYeHkyB8eVDl5UZce8G4X//kjUQ= -k8s.io/kubectl v0.28.4/go.mod h1:CKOccVx3l+3MmDbkXtIUtibq93nN2hkDR99XDCn7c/c= +k8s.io/kubectl v0.28.6 h1:46O3gGJYlpqy7wtwYlggieemyIcuZqmflnQVDci3MgY= +k8s.io/kubectl v0.28.6/go.mod h1:FS5ugZhi3kywpMQSCnp8MN+gctdFHJACzC6mH3fZ6lc= k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= diff --git a/internal/build/build.go b/internal/build/build.go index 201cc83b..227c3891 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -29,7 +29,6 @@ import ( "sync" "time" - "github.com/fluxcd/pkg/ssa" "github.com/theckman/yacspin" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -45,6 +44,7 @@ import ( kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/kustomize" runclient "github.com/fluxcd/pkg/runtime/client" + ssautil "github.com/fluxcd/pkg/ssa/utils" "sigs.k8s.io/kustomize/kyaml/filesys" "github.com/fluxcd/flux2/v2/internal/utils" @@ -251,13 +251,13 @@ func (b *Builder) Build() ([]*unstructured.Unstructured, error) { return nil, fmt.Errorf("kustomize build failed: %w", err) } - objects, err := ssa.ReadObjects(bytes.NewReader(resources)) + objects, err := ssautil.ReadObjects(bytes.NewReader(resources)) if err != nil { return nil, fmt.Errorf("kustomize build failed: %w", err) } if m := b.kustomization.Spec.CommonMetadata; m != nil { - ssa.SetCommonMetadata(objects, m.Labels, m.Annotations) + ssautil.SetCommonMetadata(objects, m.Labels, m.Annotations) } return objects, nil diff --git a/internal/build/diff.go b/internal/build/diff.go index b84037c2..3aad9d10 100644 --- a/internal/build/diff.go +++ b/internal/build/diff.go @@ -41,6 +41,7 @@ import ( "github.com/fluxcd/cli-utils/pkg/object" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" "github.com/fluxcd/pkg/ssa" + ssautil "github.com/fluxcd/pkg/ssa/utils" "github.com/fluxcd/flux2/v2/pkg/printers" ) @@ -145,7 +146,7 @@ func (b *Builder) Diff() (string, bool, error) { createdOrDrifted = true } for _, object := range staleObjects { - output.WriteString(writeString(fmt.Sprintf("â–º %s deleted\n", ssa.FmtUnstructured(object)), bunt.OrangeRed)) + output.WriteString(writeString(fmt.Sprintf("â–º %s deleted\n", ssautil.FmtUnstructured(object)), bunt.OrangeRed)) } } } diff --git a/internal/tree/tree.go b/internal/tree/tree.go index fad06426..75c7ffd1 100644 --- a/internal/tree/tree.go +++ b/internal/tree/tree.go @@ -23,7 +23,7 @@ import ( "strings" "github.com/fluxcd/cli-utils/pkg/object" - "github.com/fluxcd/pkg/ssa" + ssautil "github.com/fluxcd/pkg/ssa/utils" ) const ( @@ -74,7 +74,7 @@ func (t *objMetadataTree) AddTree(tree ObjMetadataTree) { } func (t *objMetadataTree) Text() string { - return ssa.FmtObjMetadata(t.Resource) + return ssautil.FmtObjMetadata(t.Resource) } func (t *objMetadataTree) Items() []ObjMetadataTree { diff --git a/internal/utils/apply.go b/internal/utils/apply.go index 94767623..5867287c 100644 --- a/internal/utils/apply.go +++ b/internal/utils/apply.go @@ -33,6 +33,7 @@ import ( "github.com/fluxcd/cli-utils/pkg/kstatus/polling" runclient "github.com/fluxcd/pkg/runtime/client" "github.com/fluxcd/pkg/ssa" + ssautil "github.com/fluxcd/pkg/ssa/utils" "github.com/fluxcd/flux2/v2/pkg/manifestgen/kustomization" ) @@ -62,7 +63,7 @@ func Apply(ctx context.Context, rcg genericclioptions.RESTClientGetter, opts *ru var stageTwo []*unstructured.Unstructured for _, u := range objs { - if ssa.IsClusterDefinition(u) { + if ssautil.IsClusterDefinition(u) { stageOne = append(stageOne, u) } else { stageTwo = append(stageTwo, u) @@ -108,7 +109,7 @@ func readObjects(root, manifestPath string) ([]*unstructured.Unstructured, error if err != nil { return nil, err } - return ssa.ReadObjects(bytes.NewReader(resources)) + return ssautil.ReadObjects(bytes.NewReader(resources)) } ms, err := os.Open(manifestPath) @@ -117,7 +118,7 @@ func readObjects(root, manifestPath string) ([]*unstructured.Unstructured, error } defer ms.Close() - return ssa.ReadObjects(bufio.NewReader(ms)) + return ssautil.ReadObjects(bufio.NewReader(ms)) } func newManager(rcg genericclioptions.RESTClientGetter, opts *runclient.Options) (*ssa.ResourceManager, error) { diff --git a/tests/azure/go.mod b/tests/azure/go.mod index 98ee8663..fdf7a510 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -13,10 +13,10 @@ require ( github.com/fluxcd/image-reflector-controller/api v0.31.1 github.com/fluxcd/kustomize-controller/api v1.2.1 github.com/fluxcd/notification-controller/api v1.2.3 - github.com/fluxcd/pkg/apis/event v0.6.0 - github.com/fluxcd/pkg/apis/meta v1.2.0 - github.com/fluxcd/pkg/git v0.16.0 - github.com/fluxcd/pkg/git/gogit v0.16.1 + github.com/fluxcd/pkg/apis/event v0.7.0 + github.com/fluxcd/pkg/apis/meta v1.3.0 + github.com/fluxcd/pkg/git v0.17.0 + github.com/fluxcd/pkg/git/gogit v0.17.0 github.com/fluxcd/source-controller/api v1.2.3 github.com/go-git/go-git/v5 v5.11.0 github.com/hashicorp/hc-install v0.5.2 @@ -24,9 +24,9 @@ require ( github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/stretchr/testify v1.8.4 go.uber.org/multierr v1.11.0 - k8s.io/api v0.28.4 - k8s.io/apimachinery v0.28.4 - k8s.io/client-go v0.28.4 + k8s.io/api v0.28.6 + k8s.io/apimachinery v0.28.6 + k8s.io/client-go v0.28.6 k8s.io/klog/v2 v2.110.1 sigs.k8s.io/controller-runtime v0.16.3 ) @@ -46,7 +46,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect + github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect @@ -57,26 +57,28 @@ require ( github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect - github.com/fluxcd/pkg/ssh v0.10.0 // indirect + github.com/fluxcd/pkg/ssh v0.11.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-logr/logr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-logr/zapr v1.3.0 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/terraform-json v0.15.0 // indirect - github.com/imdario/mergo v0.3.15 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect @@ -90,31 +92,30 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.45.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/skeema/knownhosts v1.2.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + go.uber.org/zap v1.26.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.14.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.4.0 // indirect - golang.org/x/tools v0.16.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.17.0 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.28.4 // indirect - k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect + k8s.io/apiextensions-apiserver v0.28.6 // indirect + k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 095b8937..36b0fa72 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -35,8 +35,8 @@ github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYr github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= -github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= +github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= +github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= @@ -79,25 +79,26 @@ github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= -github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= +github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= +github.com/fluxcd/pkg/apis/event v0.7.0/go.mod h1:zdqe8SVXjFQ/Nfuk51c2SJe0NkyNwYOxSFtN6SmikVs= github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= -github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= -github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= -github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= -github.com/fluxcd/pkg/git v0.16.0/go.mod h1:ZsaxXDBHIUjNeRf+3qDGyHD22KpqbjuNPCbHy2Xid5U= -github.com/fluxcd/pkg/git/gogit v0.16.1 h1:byimVk7VLbERRxJDkVktithN03GC0y7fyc8Ur9Uka8U= -github.com/fluxcd/pkg/git/gogit v0.16.1/go.mod h1:nx3PumOFe5e3fMsh2HPLSlAeOk2wC+jVg7H9BTRKEmg= -github.com/fluxcd/pkg/gittestserver v0.9.0 h1:OthMahtKmmpwCRw8LmSGrceqVhHywGg/QiytxHGSgeY= -github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= -github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= +github.com/fluxcd/pkg/apis/meta v1.3.0 h1:KxeEc6olmSZvQ5pBONPE4IKxyoWQbqTJF1X6K5nIXpU= +github.com/fluxcd/pkg/apis/meta v1.3.0/go.mod h1:3Ui8xFkoU4sYehqmscjpq7NjqH2YN1A2iX2okbO3/yA= +github.com/fluxcd/pkg/git v0.17.0 h1:eHL8IazeX2HXwXzT6zLdzGaX3H37n/ipkdd1+byyzUM= +github.com/fluxcd/pkg/git v0.17.0/go.mod h1:lBeHCTtVt9py9mMGj5sKs4+aFpMWGjH73gx5i818i6o= +github.com/fluxcd/pkg/git/gogit v0.17.0 h1:X8C+q/Nm/MjBKAoqw9NPpnJh0B3IxVLtqPgH+wT9NEg= +github.com/fluxcd/pkg/git/gogit v0.17.0/go.mod h1:qyRSCQy41wG0FwUwKQtfSnwqkrJg5XB4UdMvrHjIcFY= +github.com/fluxcd/pkg/gittestserver v0.10.0 h1:joqfczQNtguZFGxTuRL535ymDW/9clA1jBWa3d8B6WU= +github.com/fluxcd/pkg/ssh v0.11.0 h1:7WDDrcB0cNimzZjrpkzYBrizkrUgyM4Zr2cd9z9aqpU= +github.com/fluxcd/pkg/ssh v0.11.0/go.mod h1:K8YgH8KM0GV5DWuRErX3iKgpoHlYh08SBK+U5Q0teJc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= @@ -108,13 +109,16 @@ github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3c github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= +github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -129,6 +133,7 @@ github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= @@ -142,8 +147,8 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= @@ -157,8 +162,8 @@ github.com/hashicorp/terraform-exec v0.18.1 h1:LAbfDvNQU1l0NOQlTuudjczVhHj061fNX github.com/hashicorp/terraform-exec v0.18.1/go.mod h1:58wg4IeuAJ6LVsLUeD2DWZZoc/bYi6dzhLHzxM41980= github.com/hashicorp/terraform-json v0.15.0 h1:/gIyNtR6SFw6h5yzlbDbACyGvIhKtQi8mTsbkNd79lE= github.com/hashicorp/terraform-json v0.15.0/go.mod h1:+L1RNzjDU5leLFZkHTFTbJXaoqUC6TqXlFgDoOXrtvk= -github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= -github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= @@ -199,21 +204,18 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= -github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= @@ -249,7 +251,8 @@ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4 github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -257,10 +260,11 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -279,18 +283,18 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0= -golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -305,37 +309,38 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/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.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= -golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= -golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= 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= @@ -343,8 +348,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= @@ -364,18 +369,18 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= -k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= -k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= -k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM= -k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= -k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= -k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= -k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= +k8s.io/api v0.28.6 h1:yy6u9CuIhmg55YvF/BavPBBXB+5QicB64njJXxVnzLo= +k8s.io/api v0.28.6/go.mod h1:AM6Ys6g9MY3dl/XNaNfg/GePI0FT7WBGu8efU/lirAo= +k8s.io/apiextensions-apiserver v0.28.6 h1:myB3iG/3v3jqCg28JDbOefu4sH2/erNEXgytRzJKBOo= +k8s.io/apiextensions-apiserver v0.28.6/go.mod h1:qlp6xRKBgyRhe5AYc81TQpLx4kLNK8/sGQUOwMkVjRk= +k8s.io/apimachinery v0.28.6 h1:RsTeR4z6S07srPg6XYrwXpTJVMXsjPXn0ODakMytSW0= +k8s.io/apimachinery v0.28.6/go.mod h1:QFNX/kCl/EMT2WTSz8k4WLCv2XnkOLMaL8GAVRMdpsA= +k8s.io/client-go v0.28.6 h1:Gge6ziyIdafRchfoBKcpaARuz7jfrK1R1azuwORIsQI= +k8s.io/client-go v0.28.6/go.mod h1:+nu0Yp21Oeo/cBCsprNVXB2BfJTV51lFfe5tXl2rUL8= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e h1:snPmy96t93RredGRjKfMFt+gvxuVAncqSAyBveJtr4Q= -k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ= +k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 7b69149f..5114dfd7 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -11,23 +11,23 @@ require ( github.com/fluxcd/image-reflector-controller/api v0.31.1 github.com/fluxcd/kustomize-controller/api v1.2.1 github.com/fluxcd/notification-controller/api v1.2.3 - github.com/fluxcd/pkg/apis/event v0.6.0 - github.com/fluxcd/pkg/apis/meta v1.2.0 - github.com/fluxcd/pkg/git v0.16.0 - github.com/fluxcd/pkg/git/gogit v0.16.1 - github.com/fluxcd/pkg/runtime v0.43.2 + github.com/fluxcd/pkg/apis/event v0.7.0 + github.com/fluxcd/pkg/apis/meta v1.3.0 + github.com/fluxcd/pkg/git v0.17.0 + github.com/fluxcd/pkg/git/gogit v0.17.0 + github.com/fluxcd/pkg/runtime v0.44.0 github.com/fluxcd/source-controller/api v1.2.3 github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa github.com/go-git/go-git/v5 v5.11.0 - github.com/google/go-containerregistry v0.16.1 + github.com/google/go-containerregistry v0.19.0 github.com/hashicorp/terraform-exec v0.18.1 github.com/hashicorp/terraform-json v0.16.0 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 - github.com/onsi/gomega v1.30.0 + github.com/onsi/gomega v1.31.1 google.golang.org/grpc v1.56.3 - k8s.io/api v0.28.4 - k8s.io/apimachinery v0.28.4 - k8s.io/client-go v0.28.4 + k8s.io/api v0.28.6 + k8s.io/apimachinery v0.28.6 + k8s.io/client-go v0.28.6 sigs.k8s.io/controller-runtime v0.16.3 ) @@ -50,7 +50,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e // indirect + github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect @@ -66,7 +66,7 @@ require ( github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect - github.com/fluxcd/pkg/ssh v0.10.0 // indirect + github.com/fluxcd/pkg/ssh v0.11.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect @@ -82,7 +82,7 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.4 // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/googleapis/gax-go/v2 v2.11.0 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect @@ -115,16 +115,16 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/zclconf/go-cty v1.13.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.16.0 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/api v0.126.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect @@ -135,7 +135,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.28.4 // indirect + k8s.io/apiextensions-apiserver v0.28.6 // indirect k8s.io/klog/v2 v2.110.1 // indirect k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index e3af981d..3c8a01c9 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -13,7 +13,7 @@ cloud.google.com/go/pubsub v1.31.0 h1:aXdyyJz90kA+bor9+6+xHAciMD5mj8v15WqFZ5E0se cloud.google.com/go/pubsub v1.31.0/go.mod h1:dYmJ3K97NCQ/e4OwZ20rD4Ym3Bu8Gu9m/aJdWQjdcks= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/Azure/azure-amqp-common-go/v4 v4.2.0 h1:q/jLx1KJ8xeI8XGfkOWMN9XrXzAfVTkyvCxPvHCjd2I= github.com/Azure/azure-amqp-common-go/v4 v4.2.0/go.mod h1:GD3m/WPPma+621UaU6KNjKEo5Hl09z86viKwQjTpV0Q= github.com/Azure/azure-event-hubs-go/v3 v3.6.0 h1:UXRi5KewXYoTiekVjrj0gyGfbyGvtbYdot6/4IMf4I4= @@ -57,8 +57,8 @@ github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= -github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e h1:NfjGPY2A8SSRJvXny111ZPoB57LT5lWgX4XiUjW10eY= -github.com/ProtonMail/go-crypto v0.0.0-20231012073058-a7379d079e0e/go.mod h1:K4vciqCJaZ1Ghw/SvtJbEAM4soEtwDCNVqkdQIIujwU= +github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= +github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= @@ -134,21 +134,21 @@ github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo= -github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A= +github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= +github.com/fluxcd/pkg/apis/event v0.7.0/go.mod h1:zdqe8SVXjFQ/Nfuk51c2SJe0NkyNwYOxSFtN6SmikVs= github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= -github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8= -github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc= -github.com/fluxcd/pkg/git v0.16.0 h1:xgfMpgsVaxGLechKNaSUif9jnt2Ji/HkwIwxXeDoADk= -github.com/fluxcd/pkg/git v0.16.0/go.mod h1:ZsaxXDBHIUjNeRf+3qDGyHD22KpqbjuNPCbHy2Xid5U= -github.com/fluxcd/pkg/git/gogit v0.16.1 h1:byimVk7VLbERRxJDkVktithN03GC0y7fyc8Ur9Uka8U= -github.com/fluxcd/pkg/git/gogit v0.16.1/go.mod h1:nx3PumOFe5e3fMsh2HPLSlAeOk2wC+jVg7H9BTRKEmg= -github.com/fluxcd/pkg/gittestserver v0.9.0 h1:OthMahtKmmpwCRw8LmSGrceqVhHywGg/QiytxHGSgeY= -github.com/fluxcd/pkg/runtime v0.43.2 h1:xH2BvttUqJ7wS0zjuBETr2pLXG62QY6f0mdxg5UQKio= -github.com/fluxcd/pkg/runtime v0.43.2/go.mod h1:dhhNV45B3tekg7qPzATFTuWOulvUzMoO1bV+vc2pSts= -github.com/fluxcd/pkg/ssh v0.10.0 h1:JFz0u/CPEf3hXvmrEvUvXsc70eKh8xphqjXxZuSby9g= -github.com/fluxcd/pkg/ssh v0.10.0/go.mod h1:1lFTj3MhU9xQuaJ5PJJoh/FyRYzK54ll9NY/s2KqOZM= +github.com/fluxcd/pkg/apis/meta v1.3.0 h1:KxeEc6olmSZvQ5pBONPE4IKxyoWQbqTJF1X6K5nIXpU= +github.com/fluxcd/pkg/apis/meta v1.3.0/go.mod h1:3Ui8xFkoU4sYehqmscjpq7NjqH2YN1A2iX2okbO3/yA= +github.com/fluxcd/pkg/git v0.17.0 h1:eHL8IazeX2HXwXzT6zLdzGaX3H37n/ipkdd1+byyzUM= +github.com/fluxcd/pkg/git v0.17.0/go.mod h1:lBeHCTtVt9py9mMGj5sKs4+aFpMWGjH73gx5i818i6o= +github.com/fluxcd/pkg/git/gogit v0.17.0 h1:X8C+q/Nm/MjBKAoqw9NPpnJh0B3IxVLtqPgH+wT9NEg= +github.com/fluxcd/pkg/git/gogit v0.17.0/go.mod h1:qyRSCQy41wG0FwUwKQtfSnwqkrJg5XB4UdMvrHjIcFY= +github.com/fluxcd/pkg/gittestserver v0.10.0 h1:joqfczQNtguZFGxTuRL535ymDW/9clA1jBWa3d8B6WU= +github.com/fluxcd/pkg/runtime v0.44.0 h1:0BEPSpcsYXOiswKG5TWkin8fhCDHb0nDdAtq/5VrCSI= +github.com/fluxcd/pkg/runtime v0.44.0/go.mod h1:s1AhSOTCEBPaTfz/GdBD/Ws66uOByIuNP4Znrq+is9M= +github.com/fluxcd/pkg/ssh v0.11.0 h1:7WDDrcB0cNimzZjrpkzYBrizkrUgyM4Zr2cd9z9aqpU= +github.com/fluxcd/pkg/ssh v0.11.0/go.mod h1:K8YgH8KM0GV5DWuRErX3iKgpoHlYh08SBK+U5Q0teJc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= @@ -224,8 +224,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.16.1 h1:rUEt426sR6nyrL3gt+18ibRcvYpKYdpsa5ZW7MA08dQ= -github.com/google/go-containerregistry v0.16.1/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= +github.com/google/go-containerregistry v0.19.0 h1:uIsMRBV7m/HDkDxE/nXMnv1q+lOOSPlQ/ywc5JbB8Ic= +github.com/google/go-containerregistry v0.19.0/go.mod h1:u0qB2l7mvtWVR5kNcbFIhFY1hLbf8eeGapA+vbFDCtQ= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -234,8 +234,8 @@ github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= @@ -315,9 +315,9 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= +github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= 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.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= @@ -330,7 +330,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= @@ -396,9 +396,9 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -429,13 +429,13 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= 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= @@ -444,8 +444,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -471,17 +471,17 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -490,7 +490,7 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= @@ -505,8 +505,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= -golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= 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= @@ -574,14 +574,14 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY= -k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0= -k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU= -k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM= -k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8= -k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg= -k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY= -k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4= +k8s.io/api v0.28.6 h1:yy6u9CuIhmg55YvF/BavPBBXB+5QicB64njJXxVnzLo= +k8s.io/api v0.28.6/go.mod h1:AM6Ys6g9MY3dl/XNaNfg/GePI0FT7WBGu8efU/lirAo= +k8s.io/apiextensions-apiserver v0.28.6 h1:myB3iG/3v3jqCg28JDbOefu4sH2/erNEXgytRzJKBOo= +k8s.io/apiextensions-apiserver v0.28.6/go.mod h1:qlp6xRKBgyRhe5AYc81TQpLx4kLNK8/sGQUOwMkVjRk= +k8s.io/apimachinery v0.28.6 h1:RsTeR4z6S07srPg6XYrwXpTJVMXsjPXn0ODakMytSW0= +k8s.io/apimachinery v0.28.6/go.mod h1:QFNX/kCl/EMT2WTSz8k4WLCv2XnkOLMaL8GAVRMdpsA= +k8s.io/client-go v0.28.6 h1:Gge6ziyIdafRchfoBKcpaARuz7jfrK1R1azuwORIsQI= +k8s.io/client-go v0.28.6/go.mod h1:+nu0Yp21Oeo/cBCsprNVXB2BfJTV51lFfe5tXl2rUL8= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ= From 976f40b6421651ffb904c9f4c36141aeceab6026 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 00:56:55 +0000 Subject: [PATCH 102/154] build(deps): bump the ci group with 3 updates Bumps the ci group with 3 updates: [anchore/sbom-action](https://github.com/anchore/sbom-action), [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request). Updates `anchore/sbom-action` from 0.15.5 to 0.15.8 - [Release notes](https://github.com/anchore/sbom-action/releases) - [Commits](https://github.com/anchore/sbom-action/compare/24b0d5238516480139aa8bc6f92eeb7b54a9eb0a...b6a39da80722a2cb0ef5d197531764a89b5d48c3) Updates `sigstore/cosign-installer` from 3.3.0 to 3.4.0 - [Release notes](https://github.com/sigstore/cosign-installer/releases) - [Commits](https://github.com/sigstore/cosign-installer/compare/9614fae9e5c5eddabb09f90a270fcb487c9f7149...e1523de7571e31dbe865fd2e80c5c7c23ae71eb4) Updates `peter-evans/create-pull-request` from 5.0.2 to 6.0.0 - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/153407881ec5c347639a548ade7d8ad1d6740e38...b1ddad2c994a25fbc81a28b3ec0e368bb2021c50) --- updated-dependencies: - dependency-name: anchore/sbom-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci - dependency-name: sigstore/cosign-installer dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yaml | 6 +++--- .github/workflows/update.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3b79d224..f7953b27 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,9 +34,9 @@ jobs: id: buildx uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Setup Syft - uses: anchore/sbom-action/download-syft@24b0d5238516480139aa8bc6f92eeb7b54a9eb0a # v0.15.5 + uses: anchore/sbom-action/download-syft@b6a39da80722a2cb0ef5d197531764a89b5d48c3 # v0.15.8 - name: Setup Cosign - uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 + uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 # v3.4.0 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Login to GitHub Container Registry @@ -155,7 +155,7 @@ jobs: --path="./flux-system" \ --source=${{ github.repositoryUrl }} \ --revision="${{ github.ref_name }}@sha1:${{ github.sha }}" - - uses: sigstore/cosign-installer@9614fae9e5c5eddabb09f90a270fcb487c9f7149 # v3.3.0 + - uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 # v3.4.0 - name: Sign manifests env: COSIGN_EXPERIMENTAL: 1 diff --git a/.github/workflows/update.yaml b/.github/workflows/update.yaml index ec619fcd..a3da9736 100644 --- a/.github/workflows/update.yaml +++ b/.github/workflows/update.yaml @@ -84,7 +84,7 @@ jobs: - name: Create Pull Request id: cpr - uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2 + uses: peter-evans/create-pull-request@b1ddad2c994a25fbc81a28b3ec0e368bb2021c50 # v6.0.0 with: token: ${{ secrets.BOT_GITHUB_TOKEN }} commit-message: | From a30020a6d621a71c5c8b6368ef4cd0a30fe474ce Mon Sep 17 00:00:00 2001 From: fluxcdbot Date: Mon, 5 Feb 2024 09:19:05 +0000 Subject: [PATCH 103/154] Update toolkit components - helm-controller to v0.37.4 https://github.com/fluxcd/helm-controller/blob/v0.37.4/CHANGELOG.md - kustomize-controller to v1.2.2 https://github.com/fluxcd/kustomize-controller/blob/v1.2.2/CHANGELOG.md - source-controller to v1.2.4 https://github.com/fluxcd/source-controller/blob/v1.2.4/CHANGELOG.md - notification-controller to v1.2.4 https://github.com/fluxcd/notification-controller/blob/v1.2.4/CHANGELOG.md - image-reflector-controller to v0.31.2 https://github.com/fluxcd/image-reflector-controller/blob/v0.31.2/CHANGELOG.md - image-automation-controller to v0.37.1 https://github.com/fluxcd/image-automation-controller/blob/v0.37.1/CHANGELOG.md Signed-off-by: GitHub --- go.mod | 12 +++++----- go.sum | 24 +++++++++---------- .../bases/helm-controller/kustomization.yaml | 4 ++-- .../kustomization.yaml | 4 ++-- .../kustomization.yaml | 4 ++-- .../kustomize-controller/kustomization.yaml | 4 ++-- .../kustomization.yaml | 4 ++-- .../source-controller/kustomization.yaml | 4 ++-- manifests/crds/kustomization.yaml | 12 +++++----- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 2b549450..6d9a5159 100644 --- a/go.mod +++ b/go.mod @@ -12,11 +12,11 @@ require ( github.com/distribution/distribution/v3 v3.0.0-alpha.1 github.com/fluxcd/cli-utils v0.36.0-flux.3 github.com/fluxcd/go-git-providers v0.19.3 - github.com/fluxcd/helm-controller/api v0.37.2 - github.com/fluxcd/image-automation-controller/api v0.37.0 - github.com/fluxcd/image-reflector-controller/api v0.31.1 - github.com/fluxcd/kustomize-controller/api v1.2.1 - github.com/fluxcd/notification-controller/api v1.2.3 + github.com/fluxcd/helm-controller/api v0.37.4 + github.com/fluxcd/image-automation-controller/api v0.37.1 + github.com/fluxcd/image-reflector-controller/api v0.31.2 + github.com/fluxcd/kustomize-controller/api v1.2.2 + github.com/fluxcd/notification-controller/api v1.2.4 github.com/fluxcd/pkg/apis/event v0.7.0 github.com/fluxcd/pkg/apis/meta v1.3.0 github.com/fluxcd/pkg/git v0.17.0 @@ -29,7 +29,7 @@ require ( github.com/fluxcd/pkg/ssh v0.11.0 github.com/fluxcd/pkg/tar v0.4.0 github.com/fluxcd/pkg/version v0.2.2 - github.com/fluxcd/source-controller/api v1.2.3 + github.com/fluxcd/source-controller/api v1.2.4 github.com/go-git/go-git/v5 v5.11.0 github.com/go-logr/logr v1.4.1 github.com/gonvenience/bunt v1.3.5 diff --git a/go.sum b/go.sum index d2be5976..47b58c6e 100644 --- a/go.sum +++ b/go.sum @@ -141,16 +141,16 @@ github.com/fluxcd/cli-utils v0.36.0-flux.3/go.mod h1:9lShvUz7uRPIjYZ6phr5AOuORkR github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= github.com/fluxcd/go-git-providers v0.19.3 h1:G70yZR6biRgOE7FJVnSTLran642K9rm645wlXPNxLvw= github.com/fluxcd/go-git-providers v0.19.3/go.mod h1:NyHogwOJXUflL8IX05ycVjXwmvxqql0WgbVkmoj+iiE= -github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= -github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= -github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= -github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= -github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= -github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= -github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk= -github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= -github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm/CsJaM9yjNJzRdI0JMs= -github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= +github.com/fluxcd/helm-controller/api v0.37.4 h1:rkBMqYXexyf1s5BS8QpxGi691DsCi+yugIFCM5fNKLU= +github.com/fluxcd/helm-controller/api v0.37.4/go.mod h1:KFdP5Lbrc4Vv+Jt4xRj6UUo3qiwdBqBPl1xiiAnBe9c= +github.com/fluxcd/image-automation-controller/api v0.37.1 h1:zi1VfPoGuHsNtyTpueKbr4b/c+Ms7HjFocTAmixmYno= +github.com/fluxcd/image-automation-controller/api v0.37.1/go.mod h1:7p0woxB275YzhdctzbxVMck0/hZt45bm0K12A0ABldo= +github.com/fluxcd/image-reflector-controller/api v0.31.2 h1:s16ewwfuLBYuh8hENuVgU8SYsSNxRaA4f+AD60/+les= +github.com/fluxcd/image-reflector-controller/api v0.31.2/go.mod h1:tV7g+KXQL3W8w5+fRJU7ubVGc4QAfx1C7XI5qrQvA3U= +github.com/fluxcd/kustomize-controller/api v1.2.2 h1:LXRa2181usLsDkAJ86i/CnvCyPwhLcFUw9jBnXxTFJ4= +github.com/fluxcd/kustomize-controller/api v1.2.2/go.mod h1:dfAaPQuuoWfExyWaeO7Kj2ZtfKQ4nDcJrt7AeAFlLZs= +github.com/fluxcd/notification-controller/api v1.2.4 h1:H/C8XW5boncf8rzJjSe/MCr186Hgvw+arPat9XOaRlw= +github.com/fluxcd/notification-controller/api v1.2.4/go.mod h1:LeHtKKTI3ew+FXY0oYtYqM68UYOArfBa/cy4pxAzN4M= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= @@ -180,8 +180,8 @@ github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg= github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= -github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= +github.com/fluxcd/source-controller/api v1.2.4 h1:XjKTWhSSeLGsogWnTcLl5sUnyMlC5TKDbbBgP9SyJ5c= +github.com/fluxcd/source-controller/api v1.2.4/go.mod h1:j3QSHpIPBP5sjaGIkVtsgWCx8JcOmcsutRmdJmRMOZg= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= diff --git a/manifests/bases/helm-controller/kustomization.yaml b/manifests/bases/helm-controller/kustomization.yaml index 099cd240..e663a4c3 100644 --- a/manifests/bases/helm-controller/kustomization.yaml +++ b/manifests/bases/helm-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.2/helm-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.2/helm-controller.deployment.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.4/helm-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.4/helm-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/image-automation-controller/kustomization.yaml b/manifests/bases/image-automation-controller/kustomization.yaml index a89e9847..5e24e1ce 100644 --- a/manifests/bases/image-automation-controller/kustomization.yaml +++ b/manifests/bases/image-automation-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.crds.yaml -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.deployment.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.1/image-automation-controller.crds.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.1/image-automation-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/image-reflector-controller/kustomization.yaml b/manifests/bases/image-reflector-controller/kustomization.yaml index f8aef1e6..a3d4aa9e 100644 --- a/manifests/bases/image-reflector-controller/kustomization.yaml +++ b/manifests/bases/image-reflector-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.crds.yaml -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.deployment.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.2/image-reflector-controller.crds.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.2/image-reflector-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/kustomize-controller/kustomization.yaml b/manifests/bases/kustomize-controller/kustomization.yaml index c25d9209..6fb1a2d2 100644 --- a/manifests/bases/kustomize-controller/kustomization.yaml +++ b/manifests/bases/kustomize-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.deployment.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.2/kustomize-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.2/kustomize-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/notification-controller/kustomization.yaml b/manifests/bases/notification-controller/kustomization.yaml index af3abbc1..6a3b1657 100644 --- a/manifests/bases/notification-controller/kustomization.yaml +++ b/manifests/bases/notification-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.deployment.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.4/notification-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.4/notification-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/bases/source-controller/kustomization.yaml b/manifests/bases/source-controller/kustomization.yaml index 538fc18b..13195e87 100644 --- a/manifests/bases/source-controller/kustomization.yaml +++ b/manifests/bases/source-controller/kustomization.yaml @@ -1,8 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.crds.yaml -- https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.deployment.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.4/source-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.4/source-controller.deployment.yaml - account.yaml transformers: - labels.yaml diff --git a/manifests/crds/kustomization.yaml b/manifests/crds/kustomization.yaml index 97e8cbcc..a376de1a 100644 --- a/manifests/crds/kustomization.yaml +++ b/manifests/crds/kustomization.yaml @@ -1,9 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- https://github.com/fluxcd/source-controller/releases/download/v1.2.3/source-controller.crds.yaml -- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.1/kustomize-controller.crds.yaml -- https://github.com/fluxcd/helm-controller/releases/download/v0.37.2/helm-controller.crds.yaml -- https://github.com/fluxcd/notification-controller/releases/download/v1.2.3/notification-controller.crds.yaml -- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.1/image-reflector-controller.crds.yaml -- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.0/image-automation-controller.crds.yaml +- https://github.com/fluxcd/source-controller/releases/download/v1.2.4/source-controller.crds.yaml +- https://github.com/fluxcd/kustomize-controller/releases/download/v1.2.2/kustomize-controller.crds.yaml +- https://github.com/fluxcd/helm-controller/releases/download/v0.37.4/helm-controller.crds.yaml +- https://github.com/fluxcd/notification-controller/releases/download/v1.2.4/notification-controller.crds.yaml +- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.31.2/image-reflector-controller.crds.yaml +- https://github.com/fluxcd/image-automation-controller/releases/download/v0.37.1/image-automation-controller.crds.yaml From 9c06883ccf55a90550e7ac76ca40029a7f87bb9d Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Mon, 5 Feb 2024 14:10:09 +0200 Subject: [PATCH 104/154] Update dependencies Signed-off-by: Stefan Prodan --- Dockerfile | 2 +- go.mod | 2 +- go.sum | 4 ++-- tests/azure/go.mod | 14 +++++++------- tests/azure/go.sum | 28 ++++++++++++++-------------- tests/integration/go.mod | 16 ++++++++-------- tests/integration/go.sum | 32 ++++++++++++++++---------------- 7 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Dockerfile b/Dockerfile index 65feaa66..9b66c043 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM alpine:3.19 as builder RUN apk add --no-cache ca-certificates curl ARG ARCH=linux/amd64 -ARG KUBECTL_VER=1.28.4 +ARG KUBECTL_VER=1.28.6 RUN curl -sL https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VER}/bin/${ARCH}/kubectl \ -o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl && \ diff --git a/go.mod b/go.mod index 6d9a5159..34b1937e 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/fluxcd/pkg/git/gogit v0.17.0 github.com/fluxcd/pkg/kustomize v1.6.0 github.com/fluxcd/pkg/oci v0.35.0 - github.com/fluxcd/pkg/runtime v0.44.0 + github.com/fluxcd/pkg/runtime v0.44.1 github.com/fluxcd/pkg/sourceignore v0.5.0 github.com/fluxcd/pkg/ssa v0.36.0 github.com/fluxcd/pkg/ssh v0.11.0 diff --git a/go.sum b/go.sum index 47b58c6e..287a45d1 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,8 @@ github.com/fluxcd/pkg/kustomize v1.6.0 h1:LIZ0BkpGLkyj33yzJ3HUsNzJ20wcLSxkUFcZg9 github.com/fluxcd/pkg/kustomize v1.6.0/go.mod h1:LitgZWd9+2X9g+Y4JeyZJewel+E10OIkUaUw4t4YWM8= github.com/fluxcd/pkg/oci v0.35.0 h1:VPFeEsF9U2O5Vg/l/cD0d6+MHzQUJGpT3OBSGEXpN8U= github.com/fluxcd/pkg/oci v0.35.0/go.mod h1:B5Q+Rb4zfQ9GR24FjUsCNmQMWXNRfsC0ovHxFXrpUCo= -github.com/fluxcd/pkg/runtime v0.44.0 h1:0BEPSpcsYXOiswKG5TWkin8fhCDHb0nDdAtq/5VrCSI= -github.com/fluxcd/pkg/runtime v0.44.0/go.mod h1:s1AhSOTCEBPaTfz/GdBD/Ws66uOByIuNP4Znrq+is9M= +github.com/fluxcd/pkg/runtime v0.44.1 h1:XuPTcNIgn/NsoIo/A6qfPZaD9E7cbnJTDbeNw8O1SZQ= +github.com/fluxcd/pkg/runtime v0.44.1/go.mod h1:s1AhSOTCEBPaTfz/GdBD/Ws66uOByIuNP4Znrq+is9M= github.com/fluxcd/pkg/sourceignore v0.5.0 h1:8ffSJCRIKsMpxXjGPVeRK3xhGUjuk+tFILf/+EODCVg= github.com/fluxcd/pkg/sourceignore v0.5.0/go.mod h1:cJsXn+wYmRY3VamrtG9I3MBL2wjtns2bS7ARIht2XAQ= github.com/fluxcd/pkg/ssa v0.36.0 h1:h9FB6SrrdVlxNQtfG+Fb/Roe1e61EPgtmJ5ORlAxwkU= diff --git a/tests/azure/go.mod b/tests/azure/go.mod index fdf7a510..50a1be48 100644 --- a/tests/azure/go.mod +++ b/tests/azure/go.mod @@ -8,16 +8,16 @@ replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 require ( github.com/Azure/azure-event-hubs-go/v3 v3.6.1 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.2 - github.com/fluxcd/image-automation-controller/api v0.37.0 - github.com/fluxcd/image-reflector-controller/api v0.31.1 - github.com/fluxcd/kustomize-controller/api v1.2.1 - github.com/fluxcd/notification-controller/api v1.2.3 + github.com/fluxcd/helm-controller/api v0.37.4 + github.com/fluxcd/image-automation-controller/api v0.37.1 + github.com/fluxcd/image-reflector-controller/api v0.31.2 + github.com/fluxcd/kustomize-controller/api v1.2.2 + github.com/fluxcd/notification-controller/api v1.2.4 github.com/fluxcd/pkg/apis/event v0.7.0 github.com/fluxcd/pkg/apis/meta v1.3.0 github.com/fluxcd/pkg/git v0.17.0 github.com/fluxcd/pkg/git/gogit v0.17.0 - github.com/fluxcd/source-controller/api v1.2.3 + github.com/fluxcd/source-controller/api v1.2.4 github.com/go-git/go-git/v5 v5.11.0 github.com/hashicorp/hc-install v0.5.2 github.com/hashicorp/terraform-exec v0.18.1 @@ -56,7 +56,7 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.3.0 // indirect github.com/fluxcd/pkg/ssh v0.11.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect diff --git a/tests/azure/go.sum b/tests/azure/go.sum index 36b0fa72..244d405d 100644 --- a/tests/azure/go.sum +++ b/tests/azure/go.sum @@ -67,22 +67,22 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= -github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= -github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= -github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= -github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= -github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= -github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk= -github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= -github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm/CsJaM9yjNJzRdI0JMs= -github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= +github.com/fluxcd/helm-controller/api v0.37.4 h1:rkBMqYXexyf1s5BS8QpxGi691DsCi+yugIFCM5fNKLU= +github.com/fluxcd/helm-controller/api v0.37.4/go.mod h1:KFdP5Lbrc4Vv+Jt4xRj6UUo3qiwdBqBPl1xiiAnBe9c= +github.com/fluxcd/image-automation-controller/api v0.37.1 h1:zi1VfPoGuHsNtyTpueKbr4b/c+Ms7HjFocTAmixmYno= +github.com/fluxcd/image-automation-controller/api v0.37.1/go.mod h1:7p0woxB275YzhdctzbxVMck0/hZt45bm0K12A0ABldo= +github.com/fluxcd/image-reflector-controller/api v0.31.2 h1:s16ewwfuLBYuh8hENuVgU8SYsSNxRaA4f+AD60/+les= +github.com/fluxcd/image-reflector-controller/api v0.31.2/go.mod h1:tV7g+KXQL3W8w5+fRJU7ubVGc4QAfx1C7XI5qrQvA3U= +github.com/fluxcd/kustomize-controller/api v1.2.2 h1:LXRa2181usLsDkAJ86i/CnvCyPwhLcFUw9jBnXxTFJ4= +github.com/fluxcd/kustomize-controller/api v1.2.2/go.mod h1:dfAaPQuuoWfExyWaeO7Kj2ZtfKQ4nDcJrt7AeAFlLZs= +github.com/fluxcd/notification-controller/api v1.2.4 h1:H/C8XW5boncf8rzJjSe/MCr186Hgvw+arPat9XOaRlw= +github.com/fluxcd/notification-controller/api v1.2.4/go.mod h1:LeHtKKTI3ew+FXY0oYtYqM68UYOArfBa/cy4pxAzN4M= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= github.com/fluxcd/pkg/apis/event v0.7.0/go.mod h1:zdqe8SVXjFQ/Nfuk51c2SJe0NkyNwYOxSFtN6SmikVs= -github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= -github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= +github.com/fluxcd/pkg/apis/kustomize v1.3.0 h1:qvB46CfaOWcL1SyR2RiVWN/j7/035D0OtB1ltLN7rgI= +github.com/fluxcd/pkg/apis/kustomize v1.3.0/go.mod h1:PCXf5kktTzNav0aH2Ns3jsowqwmA9xTcsrEOoPzx/K8= github.com/fluxcd/pkg/apis/meta v1.3.0 h1:KxeEc6olmSZvQ5pBONPE4IKxyoWQbqTJF1X6K5nIXpU= github.com/fluxcd/pkg/apis/meta v1.3.0/go.mod h1:3Ui8xFkoU4sYehqmscjpq7NjqH2YN1A2iX2okbO3/yA= github.com/fluxcd/pkg/git v0.17.0 h1:eHL8IazeX2HXwXzT6zLdzGaX3H37n/ipkdd1+byyzUM= @@ -94,8 +94,8 @@ github.com/fluxcd/pkg/ssh v0.11.0 h1:7WDDrcB0cNimzZjrpkzYBrizkrUgyM4Zr2cd9z9aqpU github.com/fluxcd/pkg/ssh v0.11.0/go.mod h1:K8YgH8KM0GV5DWuRErX3iKgpoHlYh08SBK+U5Q0teJc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= -github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= +github.com/fluxcd/source-controller/api v1.2.4 h1:XjKTWhSSeLGsogWnTcLl5sUnyMlC5TKDbbBgP9SyJ5c= +github.com/fluxcd/source-controller/api v1.2.4/go.mod h1:j3QSHpIPBP5sjaGIkVtsgWCx8JcOmcsutRmdJmRMOZg= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 5114dfd7..6ae6d819 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -6,17 +6,17 @@ require ( cloud.google.com/go/pubsub v1.31.0 github.com/Azure/azure-event-hubs-go/v3 v3.6.0 github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.2 - github.com/fluxcd/image-automation-controller/api v0.37.0 - github.com/fluxcd/image-reflector-controller/api v0.31.1 - github.com/fluxcd/kustomize-controller/api v1.2.1 - github.com/fluxcd/notification-controller/api v1.2.3 + github.com/fluxcd/helm-controller/api v0.37.4 + github.com/fluxcd/image-automation-controller/api v0.37.1 + github.com/fluxcd/image-reflector-controller/api v0.31.2 + github.com/fluxcd/kustomize-controller/api v1.2.2 + github.com/fluxcd/notification-controller/api v1.2.4 github.com/fluxcd/pkg/apis/event v0.7.0 github.com/fluxcd/pkg/apis/meta v1.3.0 github.com/fluxcd/pkg/git v0.17.0 github.com/fluxcd/pkg/git/gogit v0.17.0 - github.com/fluxcd/pkg/runtime v0.44.0 - github.com/fluxcd/source-controller/api v1.2.3 + github.com/fluxcd/pkg/runtime v0.44.1 + github.com/fluxcd/source-controller/api v1.2.4 github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa github.com/go-git/go-git/v5 v5.11.0 github.com/google/go-containerregistry v0.19.0 @@ -65,7 +65,7 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect + github.com/fluxcd/pkg/apis/kustomize v1.3.0 // indirect github.com/fluxcd/pkg/ssh v0.11.0 // indirect github.com/fluxcd/pkg/version v0.2.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 3c8a01c9..b79cc99c 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -122,22 +122,22 @@ github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0n github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.2 h1:tkLezpRdqPDz7HoKHFu92sV+ppOCVDxkjFTh8/lpff8= -github.com/fluxcd/helm-controller/api v0.37.2/go.mod h1:BuXZhAX9blQviil6yUN5zNM4RB753yhyBTJXxXff7Mo= -github.com/fluxcd/image-automation-controller/api v0.37.0 h1:0L8kzX3zaYfg4wQ2Mx3G56atLMNeDGjy5qMGP4tDKRs= -github.com/fluxcd/image-automation-controller/api v0.37.0/go.mod h1:B2EbmiY69mE2bGOENPNUXr6klwrVe7FwVoB2iE1q08E= -github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw= -github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc= -github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk= -github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc= -github.com/fluxcd/notification-controller/api v1.2.3 h1:vXVMg2PmTjmRC5+ULZfbmBEm/CsJaM9yjNJzRdI0JMs= -github.com/fluxcd/notification-controller/api v1.2.3/go.mod h1:A0VkH3mswQAeGKsmzq81jAUN+zNJt9SPXjwe8mvnnaw= +github.com/fluxcd/helm-controller/api v0.37.4 h1:rkBMqYXexyf1s5BS8QpxGi691DsCi+yugIFCM5fNKLU= +github.com/fluxcd/helm-controller/api v0.37.4/go.mod h1:KFdP5Lbrc4Vv+Jt4xRj6UUo3qiwdBqBPl1xiiAnBe9c= +github.com/fluxcd/image-automation-controller/api v0.37.1 h1:zi1VfPoGuHsNtyTpueKbr4b/c+Ms7HjFocTAmixmYno= +github.com/fluxcd/image-automation-controller/api v0.37.1/go.mod h1:7p0woxB275YzhdctzbxVMck0/hZt45bm0K12A0ABldo= +github.com/fluxcd/image-reflector-controller/api v0.31.2 h1:s16ewwfuLBYuh8hENuVgU8SYsSNxRaA4f+AD60/+les= +github.com/fluxcd/image-reflector-controller/api v0.31.2/go.mod h1:tV7g+KXQL3W8w5+fRJU7ubVGc4QAfx1C7XI5qrQvA3U= +github.com/fluxcd/kustomize-controller/api v1.2.2 h1:LXRa2181usLsDkAJ86i/CnvCyPwhLcFUw9jBnXxTFJ4= +github.com/fluxcd/kustomize-controller/api v1.2.2/go.mod h1:dfAaPQuuoWfExyWaeO7Kj2ZtfKQ4nDcJrt7AeAFlLZs= +github.com/fluxcd/notification-controller/api v1.2.4 h1:H/C8XW5boncf8rzJjSe/MCr186Hgvw+arPat9XOaRlw= +github.com/fluxcd/notification-controller/api v1.2.4/go.mod h1:LeHtKKTI3ew+FXY0oYtYqM68UYOArfBa/cy4pxAzN4M= github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= github.com/fluxcd/pkg/apis/event v0.7.0/go.mod h1:zdqe8SVXjFQ/Nfuk51c2SJe0NkyNwYOxSFtN6SmikVs= -github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA= -github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M= +github.com/fluxcd/pkg/apis/kustomize v1.3.0 h1:qvB46CfaOWcL1SyR2RiVWN/j7/035D0OtB1ltLN7rgI= +github.com/fluxcd/pkg/apis/kustomize v1.3.0/go.mod h1:PCXf5kktTzNav0aH2Ns3jsowqwmA9xTcsrEOoPzx/K8= github.com/fluxcd/pkg/apis/meta v1.3.0 h1:KxeEc6olmSZvQ5pBONPE4IKxyoWQbqTJF1X6K5nIXpU= github.com/fluxcd/pkg/apis/meta v1.3.0/go.mod h1:3Ui8xFkoU4sYehqmscjpq7NjqH2YN1A2iX2okbO3/yA= github.com/fluxcd/pkg/git v0.17.0 h1:eHL8IazeX2HXwXzT6zLdzGaX3H37n/ipkdd1+byyzUM= @@ -145,14 +145,14 @@ github.com/fluxcd/pkg/git v0.17.0/go.mod h1:lBeHCTtVt9py9mMGj5sKs4+aFpMWGjH73gx5 github.com/fluxcd/pkg/git/gogit v0.17.0 h1:X8C+q/Nm/MjBKAoqw9NPpnJh0B3IxVLtqPgH+wT9NEg= github.com/fluxcd/pkg/git/gogit v0.17.0/go.mod h1:qyRSCQy41wG0FwUwKQtfSnwqkrJg5XB4UdMvrHjIcFY= github.com/fluxcd/pkg/gittestserver v0.10.0 h1:joqfczQNtguZFGxTuRL535ymDW/9clA1jBWa3d8B6WU= -github.com/fluxcd/pkg/runtime v0.44.0 h1:0BEPSpcsYXOiswKG5TWkin8fhCDHb0nDdAtq/5VrCSI= -github.com/fluxcd/pkg/runtime v0.44.0/go.mod h1:s1AhSOTCEBPaTfz/GdBD/Ws66uOByIuNP4Znrq+is9M= +github.com/fluxcd/pkg/runtime v0.44.1 h1:XuPTcNIgn/NsoIo/A6qfPZaD9E7cbnJTDbeNw8O1SZQ= +github.com/fluxcd/pkg/runtime v0.44.1/go.mod h1:s1AhSOTCEBPaTfz/GdBD/Ws66uOByIuNP4Znrq+is9M= github.com/fluxcd/pkg/ssh v0.11.0 h1:7WDDrcB0cNimzZjrpkzYBrizkrUgyM4Zr2cd9z9aqpU= github.com/fluxcd/pkg/ssh v0.11.0/go.mod h1:K8YgH8KM0GV5DWuRErX3iKgpoHlYh08SBK+U5Q0teJc= github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8= -github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI= +github.com/fluxcd/source-controller/api v1.2.4 h1:XjKTWhSSeLGsogWnTcLl5sUnyMlC5TKDbbBgP9SyJ5c= +github.com/fluxcd/source-controller/api v1.2.4/go.mod h1:j3QSHpIPBP5sjaGIkVtsgWCx8JcOmcsutRmdJmRMOZg= github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa h1:JdI+rVwGF5gBYt+UBijOVzXtq7aAU80vgksMNXSCCfU= github.com/fluxcd/test-infra/tftestenv v0.0.0-20240108135005-b58e0c4e0cfa/go.mod h1:liFlLEXgambGVdWSJ4JzbIHf1Vjpp1HwUyPazPIVZug= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= From 8fdfbcd25106e2b6f07e70e7d3218288443faf0c Mon Sep 17 00:00:00 2001 From: Taka Nishida Date: Fri, 16 Feb 2024 16:59:48 +0900 Subject: [PATCH 105/154] Fix typo Signed-off-by: Taka Nishida --- internal/build/build.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/build/build.go b/internal/build/build.go index 227c3891..30784b6a 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -103,7 +103,7 @@ func WithTimeout(timeout time.Duration) BuilderOptionFunc { func WithProgressBar() BuilderOptionFunc { return func(b *Builder) error { - // Add a spiner + // Add a spinner cfg := yacspin.Config{ Frequency: 100 * time.Millisecond, CharSet: yacspin.CharSets[59], @@ -361,7 +361,7 @@ func (b *Builder) generate(kustomization kustomizev1.Kustomization, dirPath stri } // a scanner will be used down the line to parse the list - // so we have to make sure to unclude newlines + // so we have to make sure to include newlines ignoreList := strings.Join(b.ignore, "\n") gen := kustomize.NewGeneratorWithIgnore("", ignoreList, unstructured.Unstructured{Object: data}) @@ -375,7 +375,7 @@ func (b *Builder) generate(kustomization kustomizev1.Kustomization, dirPath stri func (b *Builder) do(ctx context.Context, kustomization kustomizev1.Kustomization, dirPath string) (resmap.ResMap, error) { fs := filesys.MakeFsOnDisk() - // acuire the lock + // acquire the lock b.mu.Lock() defer b.mu.Unlock() @@ -562,9 +562,9 @@ func maskSopsDataInStringDataSecret(stringDataMap map[string]string, mask string } // Cancel cancels the build -// It restores a clean reprository +// It restores a clean repository func (b *Builder) Cancel() error { - // acuire the lock + // acquire the lock b.mu.Lock() defer b.mu.Unlock() From 43437bf2d51662291378cebef6aa1e773d8e7cf5 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Wed, 21 Feb 2024 10:02:31 +0200 Subject: [PATCH 106/154] Update equinix runners Signed-off-by: Stefan Prodan --- .github/runners/README.md | 22 ++++++++++++---------- .github/runners/prereq.sh | 10 +++++----- .github/runners/runner-setup.sh | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.github/runners/README.md b/.github/runners/README.md index 440c6865..8dc738f1 100644 --- a/.github/runners/README.md +++ b/.github/runners/README.md @@ -4,16 +4,18 @@ The Flux ARM64 end-to-end tests run on Equinix Metal instances provisioned with ## Current instances -| Repository | Runner | Instance | Location | -|-----------------------------|------------------|------------------------|---------------| -| flux2 | equinix-arm-dc-1 | flux-equinix-arm-dc-01 | Washington DC | -| flux2 | equinix-arm-dc-2 | flux-equinix-arm-dc-01 | Washington DC | -| flux2 | equinix-arm-da-1 | flux-equinix-arm-da-01 | Dallas | -| flux2 | equinix-arm-da-2 | flux-equinix-arm-da-01 | Dallas | -| source-controller | equinix-arm-dc-1 | flux-equinix-arm-dc-01 | Washington DC | -| source-controller | equinix-arm-da-1 | flux-equinix-arm-da-01 | Dallas | -| image-automation-controller | equinix-arm-dc-1 | flux-equinix-arm-dc-01 | Washington DC | -| image-automation-controller | equinix-arm-da-1 | flux-equinix-arm-da-01 | Dallas | +| Repository | Runner | Instance | Location | +|-----------------------------|------------------|----------------|---------------| +| flux2 | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC | +| flux2 | equinix-arm-dc-2 | flux-arm-dc-01 | Washington DC | +| flux2 | equinix-arm-da-1 | flux-arm-da-01 | Dallas | +| flux2 | equinix-arm-da-2 | flux-arm-da-01 | Dallas | +| flux-benchmark | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC | +| flux-benchmark | equinix-arm-da-1 | flux-arm-da-01 | Dallas | +| source-controller | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC | +| source-controller | equinix-arm-da-1 | flux-arm-da-01 | Dallas | +| image-automation-controller | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC | +| image-automation-controller | equinix-arm-da-1 | flux-arm-da-01 | Dallas | Instance spec: - Ampere Altra Q80-30 80-core processor @ 2.8GHz diff --git a/.github/runners/prereq.sh b/.github/runners/prereq.sh index 043876eb..e1e497f4 100755 --- a/.github/runners/prereq.sh +++ b/.github/runners/prereq.sh @@ -18,11 +18,11 @@ set -eu -KIND_VERSION=0.17.0 -KUBECTL_VERSION=1.24.0 -KUSTOMIZE_VERSION=4.5.7 -HELM_VERSION=3.10.1 -GITHUB_RUNNER_VERSION=2.298.2 +KIND_VERSION=0.22.0 +KUBECTL_VERSION=1.29.0 +KUSTOMIZE_VERSION=5.3.0 +HELM_VERSION=3.14.1 +GITHUB_RUNNER_VERSION=2.313.0 PACKAGES="apt-transport-https ca-certificates software-properties-common build-essential libssl-dev gnupg lsb-release jq pkg-config" # install prerequisites diff --git a/.github/runners/runner-setup.sh b/.github/runners/runner-setup.sh index b13d87e2..e7e1d332 100755 --- a/.github/runners/runner-setup.sh +++ b/.github/runners/runner-setup.sh @@ -22,7 +22,7 @@ RUNNER_NAME=$1 REPOSITORY_TOKEN=$2 REPOSITORY_URL=${3:-https://github.com/fluxcd/flux2} -GITHUB_RUNNER_VERSION=2.298.2 +GITHUB_RUNNER_VERSION=2.313.0 # download runner curl -o actions-runner-linux-arm64.tar.gz -L https://github.com/actions/runner/releases/download/v${GITHUB_RUNNER_VERSION}/actions-runner-linux-arm64-${GITHUB_RUNNER_VERSION}.tar.gz \ From 1e7dc1b392514abc24560a20592fc32bac4cfba8 Mon Sep 17 00:00:00 2001 From: Rishikesh Nair Date: Mon, 26 Feb 2024 20:14:36 +0530 Subject: [PATCH 107/154] Fix a typo in `--force` flag description Signed-off-by: Rishikesh Nair --- cmd/flux/bootstrap.go | 2 +- cmd/flux/install.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/flux/bootstrap.go b/cmd/flux/bootstrap.go index de02154a..7f0024f2 100644 --- a/cmd/flux/bootstrap.go +++ b/cmd/flux/bootstrap.go @@ -135,7 +135,7 @@ func init() { bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.commitMessageAppendix, "commit-message-appendix", "", "string to add to the commit messages, e.g. '[ci skip]'") - bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.force, "force", false, "override existing Flux installation if it's managed by a diffrent tool such as Helm") + bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.force, "force", false, "override existing Flux installation if it's managed by a different tool such as Helm") bootstrapCmd.PersistentFlags().MarkHidden("manifests") rootCmd.AddCommand(bootstrapCmd) diff --git a/cmd/flux/install.go b/cmd/flux/install.go index bf0ee758..92665265 100644 --- a/cmd/flux/install.go +++ b/cmd/flux/install.go @@ -102,7 +102,7 @@ func init() { installCmd.Flags().StringVar(&installArgs.clusterDomain, "cluster-domain", rootArgs.defaults.ClusterDomain, "internal cluster domain") installCmd.Flags().StringSliceVar(&installArgs.tolerationKeys, "toleration-keys", nil, "list of toleration keys used to schedule the components pods onto nodes with matching taints") - installCmd.Flags().BoolVar(&installArgs.force, "force", false, "override existing Flux installation if it's managed by a diffrent tool such as Helm") + installCmd.Flags().BoolVar(&installArgs.force, "force", false, "override existing Flux installation if it's managed by a different tool such as Helm") installCmd.Flags().MarkHidden("manifests") rootCmd.AddCommand(installCmd) From 51b0cbfe2869e1c4d8d1e35dec3dca4c469f748e Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Thu, 7 Mar 2024 22:25:01 +0200 Subject: [PATCH 108/154] Remove deprecated e2e tests Signed-off-by: Stefan Prodan --- .github/workflows/e2e-azure.yaml | 47 +- Makefile | 1 - tests/azure/README.md | 57 -- tests/azure/azure_test.go | 960 ------------------ tests/azure/go.mod | 123 --- tests/azure/go.sum | 393 ------- tests/azure/terraform/aks/.terraform.lock.hcl | 81 -- tests/azure/terraform/aks/aks.tf | 35 - tests/azure/terraform/aks/azuredevops.tf | 21 - tests/azure/terraform/aks/event-hub.tf | 26 - tests/azure/terraform/aks/keyvault.tf | 37 - tests/azure/terraform/aks/main.tf | 52 - tests/azure/terraform/aks/outputs.tf | 80 -- .../azure/terraform/aks/service-principal.tf | 52 - tests/azure/terraform/aks/shared.tf | 32 - .../terraform/shared/.terraform.lock.hcl | 61 -- tests/azure/terraform/shared/acr.tf | 6 - tests/azure/terraform/shared/keyvault.tf | 43 - tests/azure/terraform/shared/main.tf | 39 - tests/azure/terraform/shared/outputs.tf | 18 - .../terraform/shared/service-principal.tf | 105 -- tests/azure/terraform/shared/variables.tf | 0 tests/azure/util_test.go | 457 --------- 23 files changed, 1 insertion(+), 2725 deletions(-) delete mode 100644 tests/azure/README.md delete mode 100644 tests/azure/azure_test.go delete mode 100644 tests/azure/go.mod delete mode 100644 tests/azure/go.sum delete mode 100644 tests/azure/terraform/aks/.terraform.lock.hcl delete mode 100644 tests/azure/terraform/aks/aks.tf delete mode 100644 tests/azure/terraform/aks/azuredevops.tf delete mode 100644 tests/azure/terraform/aks/event-hub.tf delete mode 100644 tests/azure/terraform/aks/keyvault.tf delete mode 100644 tests/azure/terraform/aks/main.tf delete mode 100644 tests/azure/terraform/aks/outputs.tf delete mode 100644 tests/azure/terraform/aks/service-principal.tf delete mode 100644 tests/azure/terraform/aks/shared.tf delete mode 100644 tests/azure/terraform/shared/.terraform.lock.hcl delete mode 100644 tests/azure/terraform/shared/acr.tf delete mode 100644 tests/azure/terraform/shared/keyvault.tf delete mode 100644 tests/azure/terraform/shared/main.tf delete mode 100644 tests/azure/terraform/shared/outputs.tf delete mode 100644 tests/azure/terraform/shared/service-principal.tf delete mode 100644 tests/azure/terraform/shared/variables.tf delete mode 100644 tests/azure/util_test.go diff --git a/.github/workflows/e2e-azure.yaml b/.github/workflows/e2e-azure.yaml index 3f45f046..c05d39c8 100644 --- a/.github/workflows/e2e-azure.yaml +++ b/.github/workflows/e2e-azure.yaml @@ -21,52 +21,7 @@ permissions: contents: read jobs: - e2e-amd64-aks: - runs-on: ubuntu-22.04 - defaults: - run: - working-directory: ./tests/azure - # This job is currently disabled. Remove the false check when Azure subscription is enabled. - if: false && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]' - steps: - - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Setup Go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: 1.20.x - cache-dependency-path: tests/azure/go.sum - - name: Setup Flux CLI - run: | - make build - mkdir -p $HOME/.local/bin - mv ./bin/flux $HOME/.local/bin - working-directory: ./ - - name: Setup SOPS - run: | - mkdir -p $HOME/.local/bin - wget https://github.com/mozilla/sops/releases/download/v3.7.1/sops-v3.7.1.linux -O $HOME/.local/bin/sops - chmod +x $HOME/.local/bin/sops - - name: Setup Terraform - uses: hashicorp/setup-terraform@a1502cd9e758c50496cc9ac5308c4843bcd56d36 # v2 - with: - terraform_version: 1.2.8 - terraform_wrapper: false - - name: Setup Azure CLI - run: | - curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash - - name: Run Azure e2e tests - env: - ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }} - ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} - ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} - ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} - run: | - ls $HOME/.local/bin - az login --service-principal -u ${ARM_CLIENT_ID} -p ${ARM_CLIENT_SECRET} -t ${ARM_TENANT_ID} - go test -v -coverprofile cover.out -timeout 60m . - - refactored-e2e-amd64-aks: + e2e-aks: runs-on: ubuntu-22.04 defaults: run: diff --git a/Makefile b/Makefile index 44317f17..9d024880 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,6 @@ all: test build tidy: go mod tidy -compat=1.20 - cd tests/azure && go mod tidy -compat=1.20 cd tests/integration && go mod tidy -compat=1.20 fmt: diff --git a/tests/azure/README.md b/tests/azure/README.md deleted file mode 100644 index 7a51fd5d..00000000 --- a/tests/azure/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Azure E2E - -The test suite goal is to verify that Flux integration with Azure services are working properly. - -## Architecture - -The tests are run with the help of pre-configured Azure subscriptions and Azure DevOps organization. -Access to those accounts are currently limited to Flux maintainers. -* [Azure Subscription](https://portal.azure.com/#@weaveworksendtoend.onmicrosoft.com/resource/subscriptions/71e8dce4-9af6-405a-8e96-425f5d3c302b/overview) -* [Azure DevOps organization](https://dev.azure.com/flux-azure/) - -All infrastructure is and should be created with Terraform. There are two separate Terraform states. -All state should be configured to use remote state in Azure. -They should all be placed in the [same container](https://portal.azure.com/#@weaveworksendtoend.onmicrosoft.com/resource/subscriptions/71e8dce4-9af6-405a-8e96-425f5d3c302b/resourceGroups/terraform-state/providers/Microsoft.Storage/storageAccounts/terraformstate0419/containersList) -but use different keys. - -The [shared](./terraform/shared) Terraform creates long running cheaper infrastructure that is used across all tests. -This includes a Key Vault which contains an ssh key and Azure DevOps Personal Access Token -which cannot be created automatically. It also includes an Azure Container Registry which the -forked [podinfo](https://dev.azure.com/flux-azure/e2e/_git/podinfo) repository pushes -a Helm Chart and Docker image to. - -The [aks](./terraform/aks) Terraform creates the AKS cluster and related resources to run the tests. -It creates the AKS cluster, Azure DevOps repositories, Key Vault Key for Sops, and Azure EventHub. -The resources should be created and destroyed before and after every test run. Currently, -the same state is reused between runs to make sure that resources are left running after each test run. - -## Tests - -Each test run is initiated by running `terraform apply` on the aks Terraform, it does this by using the library -[terraform-exec](https://github.com/hashicorp/terraform-exec). It then reads the output of the Terraform to get -credentials and ssh keys, this means that a lot of the communication with the Azure API is offset to -Terraform instead of requiring it to be implemented in the test. - -The following tests are currently implemented: - -- [x] Flux can be successfully installed on AKS using the CLI e.g.: -- [x] source-controller can clone Azure DevOps repositories (https+ssh) -- [x] image-reflector-controller can list tags from Azure Container Registry image repositories -- [x] kustomize-controller can decrypt secrets using SOPS and Azure Key Vault -- [x] image-automation-controller can create branches and push to Azure DevOps repositories (https+ssh) -- [x] notification-controller can send commit status to Azure DevOps -- [x] notification-controller can forward events to Azure Event Hub -- [x] source-controller can pull charts from Azure Container Registry Helm repositories - -## Give User Access - -There are a couple of steps required when adding a new user to get access to the Azure portal and Azure DevOps. -To begin with add the new user to[Azure AD](https://portal.azure.com/#blade/Microsoft_AAD_IAM/UsersManagementMenuBlade/MsGraphUsers), -and add the user to the [Azure AD group flux-contributors](https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupDetailsMenuBlade/Overview/groupId/24e0f3f6-6555-4d3d-99ab-414c869cab5d). -The new users should now go through the invite process, and be able to sign in to both the Azure Portal and Azure DevOps. - -After the new user has signed into Azure DevOps you will need to modify the users permissions. -This cannot be done before the user has signed in a first time. -In the [organization users page](https://dev.azure.com/flux-azure/_settings/users) -chose "Manage User" and set the "Access Level" to basic -and make the user "Project Contributor" of the "e2e" Azure DevOps project. diff --git a/tests/azure/azure_test.go b/tests/azure/azure_test.go deleted file mode 100644 index 889af1ad..00000000 --- a/tests/azure/azure_test.go +++ /dev/null @@ -1,960 +0,0 @@ -/* -Copyright 2021 The Flux authors - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package test - -import ( - "bytes" - "context" - b64 "encoding/base64" - "encoding/json" - "fmt" - "io" - "log" - "os" - "path/filepath" - "strings" - "testing" - "time" - - eventhub "github.com/Azure/azure-event-hubs-go/v3" - giturls "github.com/chainguard-dev/git-urls" - install "github.com/hashicorp/hc-install" - "github.com/hashicorp/hc-install/fs" - "github.com/hashicorp/hc-install/product" - "github.com/hashicorp/hc-install/src" - "github.com/hashicorp/terraform-exec/tfexec" - "github.com/microsoft/azure-devops-go-api/azuredevops" - "github.com/microsoft/azure-devops-go-api/azuredevops/git" - "github.com/stretchr/testify/require" - "go.uber.org/multierr" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" - "k8s.io/klog/v2/klogr" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - runtimeLog "sigs.k8s.io/controller-runtime/pkg/log" - - automationv1beta1 "github.com/fluxcd/image-automation-controller/api/v1beta1" - reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" - kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" - notiv1 "github.com/fluxcd/notification-controller/api/v1" - notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" - eventv1 "github.com/fluxcd/pkg/apis/event/v1beta1" - "github.com/fluxcd/pkg/apis/meta" - sourcev1 "github.com/fluxcd/source-controller/api/v1" - extgogit "github.com/go-git/go-git/v5" - "github.com/go-git/go-git/v5/plumbing" -) - -const ( - aksTerraformPath = "./terraform/aks" - azureDevOpsKnownHosts = "ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H" -) - -type config struct { - kubeconfigPath string - kubeClient client.Client - - azdoPat string - idRsa string - idRsaPub string - knownHosts string - fleetInfraRepository repoConfig - applicationRepository repoConfig - - fluxAzureSp spConfig - sopsId string - acr acrConfig - eventHubSas string -} - -type spConfig struct { - tenantId string - clientId string - clientSecret string -} - -type repoConfig struct { - http string - ssh string -} - -type acrConfig struct { - url string - username string - password string -} - -var cfg config - -func TestMain(m *testing.M) { - exitVal, err := setup(m) - if err != nil { - log.Printf("Received an error while running setup: %v", err) - os.Exit(1) - } - os.Exit(exitVal) -} - -func setup(m *testing.M) (exitVal int, err error) { - ctx := context.TODO() - runtimeLog.SetLogger(klogr.New()) - // Setup Terraform binary and init state - log.Println("Setting up Azure test infrastructure") - i := install.NewInstaller() - // Find Terraform binary path - execPath, err := i.Ensure(ctx, []src.Source{ - &fs.AnyVersion{Product: &product.Terraform}, - }) - if err != nil { - return 0, fmt.Errorf("terraform exec path not found: %v", err) - } - tf, err := tfexec.NewTerraform(aksTerraformPath, execPath) - if err != nil { - return 0, fmt.Errorf("could not create terraform instance: %v", err) - } - log.Println("Init Terraform") - err = tf.Init(ctx, tfexec.Upgrade(true)) - if err != nil { - return 0, fmt.Errorf("error running init: %v", err) - } - - // Always destroy the infrastructure before exiting - defer func() { - log.Println("Tearing down Azure test infrastructure") - if ferr := tf.Destroy(ctx); ferr != nil { - err = multierr.Append(fmt.Errorf("could not destroy Azure infrastructure: %v", ferr), err) - } - }() - - // Check that we are starting from a clean state - log.Println("Checking for an empty Terraform state") - state, err := tf.Show(ctx) - if err != nil { - return 0, fmt.Errorf("could not read state: %v", err) - } - if state.Values != nil { - return 0, fmt.Errorf("expected an empty state but got existing resources") - } - - // Apply Terraform and read the output values - log.Println("Applying Terraform") - err = tf.Apply(ctx) - if err != nil { - return 0, fmt.Errorf("error running apply: %v", err) - } - state, err = tf.Show(ctx) - if err != nil { - return 0, fmt.Errorf("could not read state: %v", err) - } - outputs := state.Values.Outputs - kubeconfig := outputs["aks_kube_config"].Value.(string) - aksHost := outputs["aks_host"].Value.(string) - aksCert := outputs["aks_client_certificate"].Value.(string) - aksKey := outputs["aks_client_key"].Value.(string) - aksCa := outputs["aks_cluster_ca_certificate"].Value.(string) - azdoPat := outputs["shared_pat"].Value.(string) - idRsa := outputs["shared_id_rsa"].Value.(string) - idRsaPub := outputs["shared_id_rsa_pub"].Value.(string) - fleetInfraRepository := outputs["fleet_infra_repository"].Value.(map[string]interface{}) - applicationRepository := outputs["application_repository"].Value.(map[string]interface{}) - fluxAzureSp := outputs["flux_azure_sp"].Value.(map[string]interface{}) - sharedSopsId := outputs["sops_id"].Value.(string) - acr := outputs["acr"].Value.(map[string]interface{}) - eventHubSas := outputs["event_hub_sas"].Value.(string) - - // Setup Kubernetes clients for test cluster - log.Println("Creating Kubernetes client") - kubeconfigPath, kubeClient, err := getKubernetesCredentials(kubeconfig, aksHost, aksCert, aksKey, aksCa) - if err != nil { - return 0, fmt.Errorf("error create Kubernetes client: %v", err) - } - defer func() { - if ferr := os.RemoveAll(filepath.Dir(kubeconfigPath)); ferr != nil { - err = multierr.Append(fmt.Errorf("could not clean up kubeconfig file: %v", ferr), err) - } - }() - - // Install Flux in the new cluster - cfg = config{ - kubeconfigPath: kubeconfigPath, - kubeClient: kubeClient, - azdoPat: azdoPat, - idRsa: idRsa, - idRsaPub: idRsaPub, - knownHosts: azureDevOpsKnownHosts, - fleetInfraRepository: repoConfig{ - http: fleetInfraRepository["http"].(string), - ssh: fleetInfraRepository["ssh"].(string), - }, - applicationRepository: repoConfig{ - http: applicationRepository["http"].(string), - ssh: applicationRepository["ssh"].(string), - }, - fluxAzureSp: spConfig{ - tenantId: fluxAzureSp["tenant_id"].(string), - clientId: fluxAzureSp["client_id"].(string), - clientSecret: fluxAzureSp["client_secret"].(string), - }, - sopsId: sharedSopsId, - acr: acrConfig{ - url: acr["url"].(string), - username: acr["username"].(string), - password: acr["password"].(string), - }, - eventHubSas: eventHubSas, - } - err = installFlux(ctx, kubeClient, kubeconfigPath, cfg.fleetInfraRepository.http, azdoPat, cfg.fluxAzureSp) - if err != nil { - return 0, fmt.Errorf("error installing Flux: %v", err) - } - - // Run tests - log.Println("Running Azure e2e tests") - result := m.Run() - return result, nil -} - -func TestFluxInstallation(t *testing.T) { - ctx := context.TODO() - require.Eventually(t, func() bool { - err := verifyGitAndKustomization(ctx, cfg.kubeClient, "flux-system", "flux-system") - if err != nil { - return false - } - return true - }, 60*time.Second, 5*time.Second) -} - -func TestAzureDevOpsCloning(t *testing.T) { - ctx := context.TODO() - branchName := "feature/branch" - tagName := "v1" - - tests := []struct { - name string - refType string - cloneType string - }{ - { - name: "https-feature-branch", - refType: "branch", - cloneType: "http", - }, - { - name: "https-v1", - refType: "tag", - cloneType: "http", - }, - { - name: "ssh-feature-branch", - refType: "branch", - cloneType: "ssh", - }, - { - name: "ssh-v1", - refType: "tag", - cloneType: "ssh", - }, - } - - t.Log("Creating application sources") - repo, _, err := getRepository(cfg.applicationRepository.http, branchName, true, cfg.azdoPat) - require.NoError(t, err) - - files := make(map[string]io.Reader) - for _, tt := range tests { - manifest := fmt.Sprintf(` - apiVersion: v1 - kind: ConfigMap - metadata: - name: foobar - namespace: %s - `, tt.name) - name := fmt.Sprintf("cloning-test/%s/configmap.yaml", tt.name) - files[name] = strings.NewReader(manifest) - } - - err = commitAndPushAll(repo, files, branchName) - require.NoError(t, err) - err = createTagAndPush(repo, branchName, tagName, cfg.azdoPat) - require.NoError(t, err) - - t.Log("Verifying application-gitops namespaces") - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - ref := &sourcev1.GitRepositoryRef{ - Branch: branchName, - } - if tt.refType == "tag" { - ref = &sourcev1.GitRepositoryRef{ - Tag: tagName, - } - } - url := cfg.applicationRepository.http - secretData := map[string]string{ - "username": "git", - "password": cfg.azdoPat, - } - if tt.cloneType == "ssh" { - url = cfg.applicationRepository.ssh - secretData = map[string]string{ - "identity": cfg.idRsa, - "identity.pub": cfg.idRsaPub, - "known_hosts": cfg.knownHosts, - } - } - - namespace := corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: tt.name, - }, - } - _, err := controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &namespace, func() error { - return nil - }) - gitSecret := &corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: "git-credentials", - Namespace: namespace.Name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, gitSecret, func() error { - gitSecret.StringData = secretData - return nil - }) - source := &sourcev1.GitRepository{ObjectMeta: metav1.ObjectMeta{Name: tt.name, Namespace: namespace.Name}} - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, source, func() error { - source.Spec = sourcev1.GitRepositorySpec{ - Reference: ref, - SecretRef: &meta.LocalObjectReference{ - Name: gitSecret.Name, - }, - URL: url, - } - return nil - }) - require.NoError(t, err) - kustomization := &kustomizev1.Kustomization{ObjectMeta: metav1.ObjectMeta{Name: tt.name, Namespace: namespace.Name}} - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, kustomization, func() error { - kustomization.Spec = kustomizev1.KustomizationSpec{ - Path: fmt.Sprintf("./cloning-test/%s", tt.name), - SourceRef: kustomizev1.CrossNamespaceSourceReference{ - Kind: sourcev1.GitRepositoryKind, - Name: tt.name, - Namespace: namespace.Name, - }, - Interval: metav1.Duration{Duration: 1 * time.Minute}, - Prune: true, - } - return nil - }) - require.NoError(t, err) - - // Wait for configmap to be deployed - require.Eventually(t, func() bool { - err := verifyGitAndKustomization(ctx, cfg.kubeClient, namespace.Name, tt.name) - if err != nil { - return false - } - nn := types.NamespacedName{Name: "foobar", Namespace: namespace.Name} - cm := &corev1.ConfigMap{} - err = cfg.kubeClient.Get(ctx, nn, cm) - if err != nil { - return false - } - return true - }, 120*time.Second, 5*time.Second) - }) - } -} - -func TestImageRepositoryACR(t *testing.T) { - ctx := context.TODO() - name := "image-repository-acr" - repoUrl := cfg.applicationRepository.http - oldVersion := "1.0.0" - newVersion := "1.0.1" - manifest := fmt.Sprintf(` - apiVersion: apps/v1 - kind: Deployment - metadata: - name: podinfo - namespace: %s - spec: - selector: - matchLabels: - app: podinfo - template: - metadata: - labels: - app: podinfo - spec: - containers: - - name: podinfod - image: %s/container/podinfo:%s # {"$imagepolicy": "%s:podinfo"} - readinessProbe: - exec: - command: - - podcli - - check - - http - - localhost:9898/readyz - initialDelaySeconds: 5 - timeoutSeconds: 5`, name, cfg.acr.url, oldVersion, name) - - repo, _, err := getRepository(repoUrl, name, true, cfg.azdoPat) - require.NoError(t, err) - files := make(map[string]io.Reader) - files["podinfo.yaml"] = strings.NewReader(manifest) - err = commitAndPushAll(repo, files, name) - require.NoError(t, err) - - err = setupNamespace(ctx, cfg.kubeClient, repoUrl, cfg.azdoPat, name) - require.NoError(t, err) - acrSecret := corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "acr-docker", Namespace: name}} - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &acrSecret, func() error { - acrSecret.Type = corev1.SecretTypeDockerConfigJson - acrSecret.StringData = map[string]string{ - ".dockerconfigjson": fmt.Sprintf(` - { - "auths": { - "%s": { - "auth": "%s" - } - } - } - `, cfg.acr.url, b64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", cfg.acr.username, cfg.acr.password)))), - } - return nil - }) - require.NoError(t, err) - imageRepository := reflectorv1beta2.ImageRepository{ - ObjectMeta: metav1.ObjectMeta{ - Name: "podinfo", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &imageRepository, func() error { - imageRepository.Spec = reflectorv1beta2.ImageRepositorySpec{ - Image: fmt.Sprintf("%s/container/podinfo", cfg.acr.url), - Interval: metav1.Duration{ - Duration: 1 * time.Minute, - }, - SecretRef: &meta.LocalObjectReference{ - Name: acrSecret.Name, - }, - } - return nil - }) - require.NoError(t, err) - imagePolicy := reflectorv1beta2.ImagePolicy{ - ObjectMeta: metav1.ObjectMeta{ - Name: "podinfo", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &imagePolicy, func() error { - imagePolicy.Spec = reflectorv1beta2.ImagePolicySpec{ - ImageRepositoryRef: meta.NamespacedObjectReference{ - Name: imageRepository.Name, - }, - Policy: reflectorv1beta2.ImagePolicyChoice{ - SemVer: &reflectorv1beta2.SemVerPolicy{ - Range: "1.0.x", - }, - }, - } - return nil - }) - require.NoError(t, err) - imageAutomation := automationv1beta1.ImageUpdateAutomation{ - ObjectMeta: metav1.ObjectMeta{ - Name: "podinfo", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &imageAutomation, func() error { - imageAutomation.Spec = automationv1beta1.ImageUpdateAutomationSpec{ - Interval: metav1.Duration{ - Duration: 1 * time.Minute, - }, - SourceRef: automationv1beta1.CrossNamespaceSourceReference{ - Kind: "GitRepository", - Name: name, - }, - GitSpec: &automationv1beta1.GitSpec{ - Checkout: &automationv1beta1.GitCheckoutSpec{ - Reference: sourcev1.GitRepositoryRef{ - Branch: name, - }, - }, - Commit: automationv1beta1.CommitSpec{ - Author: automationv1beta1.CommitUser{ - Email: "imageautomation@example.com", - Name: "imageautomation", - }, - }, - }, - } - return nil - }) - require.NoError(t, err) - - // Wait for image repository to be ready - require.Eventually(t, func() bool { - _, repoDir, err := getRepository(repoUrl, name, false, cfg.azdoPat) - if err != nil { - return false - } - b, err := os.ReadFile(filepath.Join(repoDir, "podinfo.yaml")) - if err != nil { - return false - } - if bytes.Contains(b, []byte(newVersion)) == false { - return false - } - return true - }, 120*time.Second, 5*time.Second) -} - -func TestKeyVaultSops(t *testing.T) { - ctx := context.TODO() - name := "key-vault-sops" - repoUrl := cfg.applicationRepository.http - secretYaml := `apiVersion: v1 -kind: Secret -metadata: - name: "test" - namespace: "key-vault-sops" -stringData: - foo: "bar"` - - repo, tmpDir, err := getRepository(repoUrl, name, true, cfg.azdoPat) - err = runCommand(ctx, 5*time.Minute, tmpDir, "mkdir -p ./key-vault-sops") - require.NoError(t, err) - err = runCommand(ctx, 5*time.Minute, tmpDir, fmt.Sprintf("echo \"%s\" > ./key-vault-sops/secret.enc.yaml", secretYaml)) - require.NoError(t, err) - err = runCommand(ctx, 5*time.Minute, tmpDir, fmt.Sprintf("sops --encrypt --encrypted-regex '^(data|stringData)$' --azure-kv %s --in-place ./key-vault-sops/secret.enc.yaml", cfg.sopsId)) - require.NoError(t, err) - - r, err := os.Open(fmt.Sprintf("%s/key-vault-sops/secret.enc.yaml", tmpDir)) - require.NoError(t, err) - - files := make(map[string]io.Reader) - files["key-vault-sops/secret.enc.yaml"] = r - err = commitAndPushAll(repo, files, name) - require.NoError(t, err) - - err = setupNamespace(ctx, cfg.kubeClient, repoUrl, cfg.azdoPat, name) - require.NoError(t, err) - - source := &sourcev1.GitRepository{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: name}} - require.Eventually(t, func() bool { - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, source, func() error { - source.Spec = sourcev1.GitRepositorySpec{ - Reference: &sourcev1.GitRepositoryRef{ - Branch: name, - }, - SecretRef: &meta.LocalObjectReference{ - Name: "https-credentials", - }, - URL: repoUrl, - } - return nil - }) - if err != nil { - return false - } - return true - }, 10*time.Second, 1*time.Second) - kustomization := &kustomizev1.Kustomization{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: name}} - require.Eventually(t, func() bool { - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, kustomization, func() error { - kustomization.Spec = kustomizev1.KustomizationSpec{ - Path: "./key-vault-sops", - SourceRef: kustomizev1.CrossNamespaceSourceReference{ - Kind: sourcev1.GitRepositoryKind, - Name: source.Name, - Namespace: source.Namespace, - }, - Interval: metav1.Duration{Duration: 1 * time.Minute}, - Prune: true, - Decryption: &kustomizev1.Decryption{ - Provider: "sops", - }, - } - return nil - }) - if err != nil { - return false - } - return true - }, 10*time.Second, 1*time.Second) - - require.Eventually(t, func() bool { - nn := types.NamespacedName{Name: "test", Namespace: name} - secret := &corev1.Secret{} - err = cfg.kubeClient.Get(ctx, nn, secret) - if err != nil { - return false - } - return true - }, 120*time.Second, 5*time.Second) -} - -func TestAzureDevOpsCommitStatus(t *testing.T) { - ctx := context.TODO() - name := "commit-status" - repoUrl := cfg.applicationRepository.http - manifest := fmt.Sprintf(` - apiVersion: v1 - kind: ConfigMap - metadata: - name: foobar - namespace: %s - `, name) - - c, _, err := getRepository(repoUrl, name, true, cfg.azdoPat) - require.NoError(t, err) - - files := make(map[string]io.Reader) - files["configmap.yaml"] = strings.NewReader(manifest) - - err = commitAndPushAll(c, files, name) - require.NoError(t, err) - - err = setupNamespace(ctx, cfg.kubeClient, repoUrl, cfg.azdoPat, name) - require.NoError(t, err) - - kustomization := &kustomizev1.Kustomization{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: name}} - require.Eventually(t, func() bool { - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, kustomization, func() error { - kustomization.Spec.HealthChecks = []meta.NamespacedObjectKindReference{ - { - APIVersion: "v1", - Kind: "ConfigMap", - Name: "foobar", - Namespace: name, - }, - } - return nil - }) - if err != nil { - return false - } - return true - }, 10*time.Second, 1*time.Second) - - require.Eventually(t, func() bool { - err := verifyGitAndKustomization(ctx, cfg.kubeClient, name, name) - if err != nil { - return false - } - return true - }, 10*time.Second, 1*time.Second) - - secret := corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: "azuredevops-token", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &secret, func() error { - secret.StringData = map[string]string{ - "token": cfg.azdoPat, - } - return nil - }) - provider := notiv1beta3.Provider{ - ObjectMeta: metav1.ObjectMeta{ - Name: "azuredevops", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &provider, func() error { - provider.Spec = notiv1beta3.ProviderSpec{ - Type: "azuredevops", - Address: repoUrl, - SecretRef: &meta.LocalObjectReference{ - Name: "azuredevops-token", - }, - } - return nil - }) - require.NoError(t, err) - alert := notiv1beta3.Alert{ - ObjectMeta: metav1.ObjectMeta{ - Name: "azuredevops", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &alert, func() error { - alert.Spec = notiv1beta3.AlertSpec{ - ProviderRef: meta.LocalObjectReference{ - Name: provider.Name, - }, - EventSources: []notiv1.CrossNamespaceObjectReference{ - { - Kind: "Kustomization", - Name: name, - Namespace: name, - }, - }, - } - return nil - }) - require.NoError(t, err) - - u, err := giturls.Parse(repoUrl) - require.NoError(t, err) - id := strings.TrimLeft(u.Path, "/") - id = strings.TrimSuffix(id, ".git") - comp := strings.Split(id, "/") - orgUrl := fmt.Sprintf("%s://%s/%v", u.Scheme, u.Host, comp[0]) - project := comp[1] - repoId := comp[3] - - repo, err := extgogit.PlainOpen(c.Path()) - require.NoError(t, err) - - ref, err := repo.Reference(plumbing.NewBranchReferenceName(name), false) - require.NoError(t, err) - - rev := ref.Hash().String() - connection := azuredevops.NewPatConnection(orgUrl, cfg.azdoPat) - client, err := git.NewClient(ctx, connection) - require.NoError(t, err) - getArgs := git.GetStatusesArgs{ - Project: &project, - RepositoryId: &repoId, - CommitId: &rev, - } - require.Eventually(t, func() bool { - statuses, err := client.GetStatuses(ctx, getArgs) - if err != nil { - return false - } - if len(*statuses) != 1 { - return false - } - return true - }, 500*time.Second, 5*time.Second) -} - -func TestEventHubNotification(t *testing.T) { - ctx := context.TODO() - name := "event-hub" - - // Start listening to eventhub with latest offset - hub, err := eventhub.NewHubFromConnectionString(cfg.eventHubSas) - require.NoError(t, err) - c := make(chan string, 10) - handler := func(ctx context.Context, event *eventhub.Event) error { - c <- string(event.Data) - return nil - } - runtimeInfo, err := hub.GetRuntimeInformation(ctx) - require.NoError(t, err) - require.Equal(t, 1, len(runtimeInfo.PartitionIDs)) - listenerHandler, err := hub.Receive(ctx, runtimeInfo.PartitionIDs[0], handler, eventhub.ReceiveWithLatestOffset()) - require.NoError(t, err) - - // Setup Flux resources - repoUrl := cfg.applicationRepository.http - manifest := fmt.Sprintf(` - apiVersion: v1 - kind: ConfigMap - metadata: - name: foobar - namespace: %s - `, name) - - repo, repoDir, err := getRepository(repoUrl, name, true, cfg.azdoPat) - require.NoError(t, err) - err = addFile(repoDir, "configmap.yaml", manifest) - files := make(map[string]io.Reader) - files["configmap.yaml"] = strings.NewReader(manifest) - require.NoError(t, err) - err = commitAndPushAll(repo, files, name) - require.NoError(t, err) - - err = setupNamespace(ctx, cfg.kubeClient, repoUrl, cfg.azdoPat, name) - require.NoError(t, err) - - secret := corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &secret, func() error { - secret.StringData = map[string]string{ - "address": cfg.eventHubSas, - } - return nil - }) - provider := notiv1beta3.Provider{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &provider, func() error { - provider.Spec = notiv1beta3.ProviderSpec{ - Type: "azureeventhub", - Address: repoUrl, - SecretRef: &meta.LocalObjectReference{ - Name: name, - }, - } - return nil - }) - require.NoError(t, err) - alert := notiv1beta3.Alert{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &alert, func() error { - alert.Spec = notiv1beta3.AlertSpec{ - ProviderRef: meta.LocalObjectReference{ - Name: provider.Name, - }, - EventSources: []notiv1.CrossNamespaceObjectReference{ - { - Kind: "Kustomization", - Name: name, - Namespace: name, - }, - }, - Summary: "cluster: test-1", - } - return nil - }) - require.NoError(t, err) - - kustomization := &kustomizev1.Kustomization{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: name}} - require.Eventually(t, func() bool { - _, err := controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, kustomization, func() error { - kustomization.Spec.HealthChecks = []meta.NamespacedObjectKindReference{ - { - APIVersion: "v1", - Kind: "ConfigMap", - Name: "foobar", - Namespace: name, - }, - } - return nil - }) - if err != nil { - return false - } - return true - }, 10*time.Second, 1*time.Second) - - require.Eventually(t, func() bool { - err := verifyGitAndKustomization(ctx, cfg.kubeClient, name, name) - if err != nil { - return false - } - return true - }, 60*time.Second, 5*time.Second) - - // Wait to read even from event hub - require.Eventually(t, func() bool { - select { - case eventJson := <-c: - event := &eventv1.Event{} - err := json.Unmarshal([]byte(eventJson), event) - if err != nil { - t.Logf("the received event type does not match Flux format, error: %v", err) - return false - } - - if event.InvolvedObject.Kind == kustomizev1.KustomizationKind && - strings.Contains(event.Message, "Health check passed") { - return true - } - - t.Logf("event received from '%s/%s': %s", - event.InvolvedObject.Kind, event.InvolvedObject.Name, event.Message) - return false - default: - return false - } - }, 60*time.Second, 1*time.Second) - err = listenerHandler.Close(ctx) - require.NoError(t, err) - err = hub.Close(ctx) - require.NoError(t, err) -} - -// TODO: Enable when source-controller supports Helm charts from OCI sources. -/*func TestACRHelmRelease(t *testing.T) { - ctx := context.TODO() - - // Create namespace for test - namespace := corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "acr-helm-release", - }, - } - err := kubeClient.Create(ctx, &namespace) - require.NoError(t, err) - defer func() { - kubeClient.Delete(ctx, &namespace) - require.NoError(t, err) - }() - - // Copy ACR credentials to new namespace - acrNn := types.NamespacedName{ - Name: "acr-helm", - Namespace: "flux-system", - } - acrSecret := corev1.Secret{} - err = kubeClient.Get(ctx, acrNn, &acrSecret) - require.NoError(t, err) - acrSecret.ObjectMeta = metav1.ObjectMeta{ - Name: acrSecret.Name, - Namespace: namespace.Name, - } - err = kubeClient.Create(ctx, &acrSecret) - require.NoError(t, err) - - // Create HelmRepository and wait for it to sync - helmRepository := sourcev1.HelmRepository{ - ObjectMeta: metav1.ObjectMeta{ - Name: "acr", - Namespace: namespace.Name, - }, - Spec: sourcev1.HelmRepositorySpec{ - URL: "https://acrappsoarfish.azurecr.io/helm/podinfo", - Interval: metav1.Duration{ - Duration: 5 * time.Minute, - }, - SecretRef: &meta.LocalObjectReference{ - Name: acrSecret.Name, - }, - PassCredentials: true, - }, - } - err = kubeClient.Create(ctx, &helmRepository) - require.NoError(t, err) -}*/ diff --git a/tests/azure/go.mod b/tests/azure/go.mod deleted file mode 100644 index 50a1be48..00000000 --- a/tests/azure/go.mod +++ /dev/null @@ -1,123 +0,0 @@ -module github.com/fluxcd/flux2/tests/azure - -go 1.20 - -// Fix CVE-2022-28948 -replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 - -require ( - github.com/Azure/azure-event-hubs-go/v3 v3.6.1 - github.com/chainguard-dev/git-urls v1.0.2 - github.com/fluxcd/helm-controller/api v0.37.4 - github.com/fluxcd/image-automation-controller/api v0.37.1 - github.com/fluxcd/image-reflector-controller/api v0.31.2 - github.com/fluxcd/kustomize-controller/api v1.2.2 - github.com/fluxcd/notification-controller/api v1.2.4 - github.com/fluxcd/pkg/apis/event v0.7.0 - github.com/fluxcd/pkg/apis/meta v1.3.0 - github.com/fluxcd/pkg/git v0.17.0 - github.com/fluxcd/pkg/git/gogit v0.17.0 - github.com/fluxcd/source-controller/api v1.2.4 - github.com/go-git/go-git/v5 v5.11.0 - github.com/hashicorp/hc-install v0.5.2 - github.com/hashicorp/terraform-exec v0.18.1 - github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 - github.com/stretchr/testify v1.8.4 - go.uber.org/multierr v1.11.0 - k8s.io/api v0.28.6 - k8s.io/apimachinery v0.28.6 - k8s.io/client-go v0.28.6 - k8s.io/klog/v2 v2.110.1 - sigs.k8s.io/controller-runtime v0.16.3 -) - -require ( - dario.cat/mergo v1.0.0 // indirect - github.com/Azure/azure-amqp-common-go/v4 v4.2.0 // indirect - github.com/Azure/azure-sdk-for-go v65.0.0+incompatible // indirect - github.com/Azure/go-amqp v1.0.0 // indirect - github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.28 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect - github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect - github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect - github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect - github.com/Azure/go-autorest/logger v0.2.1 // indirect - github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/Masterminds/semver/v3 v3.2.1 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.0.0 // indirect - github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/cloudflare/circl v1.3.7 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/devigned/tab v0.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/emirpasic/gods v1.18.1 // indirect - github.com/evanphx/json-patch/v5 v5.7.0 // indirect - github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect - github.com/fluxcd/pkg/apis/kustomize v1.3.0 // indirect - github.com/fluxcd/pkg/ssh v0.11.0 // indirect - github.com/fluxcd/pkg/version v0.2.2 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-logr/zapr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.20.0 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.4 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.5.0 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/terraform-json v0.15.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect - github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/jpillora/backoff v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/sergi/go-diff v1.3.1 // indirect - github.com/skeema/knownhosts v1.2.1 // indirect - github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/zclconf/go-cty v1.13.0 // indirect - go.uber.org/zap v1.26.0 // indirect - golang.org/x/crypto v0.18.0 // indirect - golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/term v0.16.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.17.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.28.6 // indirect - k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect - k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect -) diff --git a/tests/azure/go.sum b/tests/azure/go.sum deleted file mode 100644 index 244d405d..00000000 --- a/tests/azure/go.sum +++ /dev/null @@ -1,393 +0,0 @@ -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/Azure/azure-amqp-common-go/v4 v4.2.0 h1:q/jLx1KJ8xeI8XGfkOWMN9XrXzAfVTkyvCxPvHCjd2I= -github.com/Azure/azure-amqp-common-go/v4 v4.2.0/go.mod h1:GD3m/WPPma+621UaU6KNjKEo5Hl09z86viKwQjTpV0Q= -github.com/Azure/azure-event-hubs-go/v3 v3.6.1 h1:vSiMmn3tOwgiLyfnmhT5K6Of/3QWRLaaNZPI0hFvZyU= -github.com/Azure/azure-event-hubs-go/v3 v3.6.1/go.mod h1:i2NByb9Pr2na7y8wi/XefEVKkuA2CDUjCNoWQJtTsGo= -github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw= -github.com/Azure/azure-sdk-for-go v65.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-amqp v1.0.0 h1:QfCugi1M+4F2JDTRgVnRw7PYXLXZ9hmqk3+9+oJh3OA= -github.com/Azure/go-amqp v1.0.0/go.mod h1:+bg0x3ce5+Q3ahCEXnCsGG3ETpDQe3MEVnOuT2ywPwc= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= -github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= -github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/adal v0.9.21 h1:jjQnVFXPfekaqb8vIsv2G1lxshoW+oGv4MDlhRtnYZk= -github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 h1:iM6UAvjR97ZIeR93qTcwpKNMpV+/FTWjwEbuPD495Tk= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 h1:LXl088ZQlP0SBppGFsRZonW6hSvwgL5gRByMbvUbx8U= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= -github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= -github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= -github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= -github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= -github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= -github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ= -github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o= -github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= -github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/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= -github.com/devigned/tab v0.1.1 h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA= -github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= -github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= -github.com/elazarl/goproxy v0.0.0-20231117061959-7cc037d33fb5 h1:m62nsMU279qRD9PQSWD1l66kmkXzuYcnVJqL4XLeV2M= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= -github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= -github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= -github.com/fluxcd/helm-controller/api v0.37.4 h1:rkBMqYXexyf1s5BS8QpxGi691DsCi+yugIFCM5fNKLU= -github.com/fluxcd/helm-controller/api v0.37.4/go.mod h1:KFdP5Lbrc4Vv+Jt4xRj6UUo3qiwdBqBPl1xiiAnBe9c= -github.com/fluxcd/image-automation-controller/api v0.37.1 h1:zi1VfPoGuHsNtyTpueKbr4b/c+Ms7HjFocTAmixmYno= -github.com/fluxcd/image-automation-controller/api v0.37.1/go.mod h1:7p0woxB275YzhdctzbxVMck0/hZt45bm0K12A0ABldo= -github.com/fluxcd/image-reflector-controller/api v0.31.2 h1:s16ewwfuLBYuh8hENuVgU8SYsSNxRaA4f+AD60/+les= -github.com/fluxcd/image-reflector-controller/api v0.31.2/go.mod h1:tV7g+KXQL3W8w5+fRJU7ubVGc4QAfx1C7XI5qrQvA3U= -github.com/fluxcd/kustomize-controller/api v1.2.2 h1:LXRa2181usLsDkAJ86i/CnvCyPwhLcFUw9jBnXxTFJ4= -github.com/fluxcd/kustomize-controller/api v1.2.2/go.mod h1:dfAaPQuuoWfExyWaeO7Kj2ZtfKQ4nDcJrt7AeAFlLZs= -github.com/fluxcd/notification-controller/api v1.2.4 h1:H/C8XW5boncf8rzJjSe/MCr186Hgvw+arPat9XOaRlw= -github.com/fluxcd/notification-controller/api v1.2.4/go.mod h1:LeHtKKTI3ew+FXY0oYtYqM68UYOArfBa/cy4pxAzN4M= -github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= -github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8= -github.com/fluxcd/pkg/apis/event v0.7.0 h1:QN/gz9i5kZ3GlfTOE6SCjjnSXrSPUU75MCVRwN8U+qo= -github.com/fluxcd/pkg/apis/event v0.7.0/go.mod h1:zdqe8SVXjFQ/Nfuk51c2SJe0NkyNwYOxSFtN6SmikVs= -github.com/fluxcd/pkg/apis/kustomize v1.3.0 h1:qvB46CfaOWcL1SyR2RiVWN/j7/035D0OtB1ltLN7rgI= -github.com/fluxcd/pkg/apis/kustomize v1.3.0/go.mod h1:PCXf5kktTzNav0aH2Ns3jsowqwmA9xTcsrEOoPzx/K8= -github.com/fluxcd/pkg/apis/meta v1.3.0 h1:KxeEc6olmSZvQ5pBONPE4IKxyoWQbqTJF1X6K5nIXpU= -github.com/fluxcd/pkg/apis/meta v1.3.0/go.mod h1:3Ui8xFkoU4sYehqmscjpq7NjqH2YN1A2iX2okbO3/yA= -github.com/fluxcd/pkg/git v0.17.0 h1:eHL8IazeX2HXwXzT6zLdzGaX3H37n/ipkdd1+byyzUM= -github.com/fluxcd/pkg/git v0.17.0/go.mod h1:lBeHCTtVt9py9mMGj5sKs4+aFpMWGjH73gx5i818i6o= -github.com/fluxcd/pkg/git/gogit v0.17.0 h1:X8C+q/Nm/MjBKAoqw9NPpnJh0B3IxVLtqPgH+wT9NEg= -github.com/fluxcd/pkg/git/gogit v0.17.0/go.mod h1:qyRSCQy41wG0FwUwKQtfSnwqkrJg5XB4UdMvrHjIcFY= -github.com/fluxcd/pkg/gittestserver v0.10.0 h1:joqfczQNtguZFGxTuRL535ymDW/9clA1jBWa3d8B6WU= -github.com/fluxcd/pkg/ssh v0.11.0 h1:7WDDrcB0cNimzZjrpkzYBrizkrUgyM4Zr2cd9z9aqpU= -github.com/fluxcd/pkg/ssh v0.11.0/go.mod h1:K8YgH8KM0GV5DWuRErX3iKgpoHlYh08SBK+U5Q0teJc= -github.com/fluxcd/pkg/version v0.2.2 h1:ZpVXECeLA5hIQMft11iLp6gN3cKcz6UNuVTQPw/bRdI= -github.com/fluxcd/pkg/version v0.2.2/go.mod h1:NGnh/no8S6PyfCDxRFrPY3T5BUnqP48MxfxNRU0z8C0= -github.com/fluxcd/source-controller/api v1.2.4 h1:XjKTWhSSeLGsogWnTcLl5sUnyMlC5TKDbbBgP9SyJ5c= -github.com/fluxcd/source-controller/api v1.2.4/go.mod h1:j3QSHpIPBP5sjaGIkVtsgWCx8JcOmcsutRmdJmRMOZg= -github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= -github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= -github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= -github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= -github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= -github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= -github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/protobuf v1.1.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.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -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/hc-install v0.5.2 h1:SfwMFnEXVVirpwkDuSF5kymUOhrUxrTq3udEseZdOD0= -github.com/hashicorp/hc-install v0.5.2/go.mod h1:9QISwe6newMWIfEiXpzuu1k9HAGtQYgnSH8H9T8wmoI= -github.com/hashicorp/terraform-exec v0.18.1 h1:LAbfDvNQU1l0NOQlTuudjczVhHj061fNX5H8XZxHlH4= -github.com/hashicorp/terraform-exec v0.18.1/go.mod h1:58wg4IeuAJ6LVsLUeD2DWZZoc/bYi6dzhLHzxM41980= -github.com/hashicorp/terraform-json v0.15.0 h1:/gIyNtR6SFw6h5yzlbDbACyGvIhKtQi8mTsbkNd79lE= -github.com/hashicorp/terraform-json v0.15.0/go.mod h1:+L1RNzjDU5leLFZkHTFTbJXaoqUC6TqXlFgDoOXrtvk= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -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/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -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/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= -github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 h1:YH424zrwLTlyHSH/GzLMJeu5zhYVZSx5RQxGKm1h96s= -github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5/go.mod h1:PoGiBqKSQK1vIfQ+yVaFcGjDySHvym6FM1cNYnwzbrY= -github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= -github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= -github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= -github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= -github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= -github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= -github.com/zclconf/go-cty v1.13.0 h1:It5dfKTTZHe9aeppbNOda3mN7Ag7sg6QkBNm6TkyFa0= -github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= -golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= -golang.org/x/text v0.3.0/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.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -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.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -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= -gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/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-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-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.28.6 h1:yy6u9CuIhmg55YvF/BavPBBXB+5QicB64njJXxVnzLo= -k8s.io/api v0.28.6/go.mod h1:AM6Ys6g9MY3dl/XNaNfg/GePI0FT7WBGu8efU/lirAo= -k8s.io/apiextensions-apiserver v0.28.6 h1:myB3iG/3v3jqCg28JDbOefu4sH2/erNEXgytRzJKBOo= -k8s.io/apiextensions-apiserver v0.28.6/go.mod h1:qlp6xRKBgyRhe5AYc81TQpLx4kLNK8/sGQUOwMkVjRk= -k8s.io/apimachinery v0.28.6 h1:RsTeR4z6S07srPg6XYrwXpTJVMXsjPXn0ODakMytSW0= -k8s.io/apimachinery v0.28.6/go.mod h1:QFNX/kCl/EMT2WTSz8k4WLCv2XnkOLMaL8GAVRMdpsA= -k8s.io/client-go v0.28.6 h1:Gge6ziyIdafRchfoBKcpaARuz7jfrK1R1azuwORIsQI= -k8s.io/client-go v0.28.6/go.mod h1:+nu0Yp21Oeo/cBCsprNVXB2BfJTV51lFfe5tXl2rUL8= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ= -k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= -k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= -sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/azure/terraform/aks/.terraform.lock.hcl b/tests/azure/terraform/aks/.terraform.lock.hcl deleted file mode 100644 index cc3c7846..00000000 --- a/tests/azure/terraform/aks/.terraform.lock.hcl +++ /dev/null @@ -1,81 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/azuread" { - version = "2.28.0" - constraints = "2.28.0" - hashes = [ - "h1:22zcPLrP6T0FAGzhkx44Oc3SreGpzttng34JSYhoknE=", - "zh:0e8b008417d74f7d7f931effe48c0719f20789440c9c5932c2b1cf4110348f41", - "zh:1c3e89cf19118fc07d7b04257251fc9897e722c16e0a0df7b07fcd261f8c12e7", - "zh:2a2e4408fc1dc902553ff6a5751924c5e9a59df30f0668b55aa6c07264537c03", - "zh:2ab09b735888a7402bdd8e74f75a053ac102e0a01b876b0608a0c240dff57b2e", - "zh:2ac1f45bb1597726ff6822e1f9a7bc7227179c10b0b51533849b44ab278a05ed", - "zh:601a7821c7fbef870a1a2165a684e4fb4f4c84f6b85e0ce51ef7783a581cf594", - "zh:7f8e4dd03a3d4259e06b498ed0b04c6911aa99cf5f01018e2092899cd135c6e5", - "zh:8408143a24baaf4ad527aeecfaf11dfcd0fb6f25648958f2c94464717f776206", - "zh:bc836c1389f7b01537eb71ec709ea9d1cb4180814b70992ce3004356ce28d173", - "zh:d4b5571c96c2bafdf79494265f508dbe569f6fb16a5ddc41f22da22e9be029e9", - "zh:f1c2a1a13fe3725ba84b57a418adb1bd8c93db09dd880658a468cbd4832f9224", - "zh:f39b090d45674395fecb39add1260dd4565661e38eb40c4017c3fd84c8af1717", - ] -} - -provider "registry.terraform.io/hashicorp/azurerm" { - version = "3.20.0" - constraints = "3.20.0" - hashes = [ - "h1:heH/4bYgajEFQ+fwSV9Zduvpyb7eTCQUv+gl201EFg8=", - "zh:0d534bb2fed67b5b58d3adb2b0be7a9986f62b34f40eae450dafc9454fb54db8", - "zh:19f6d5f196a35500e0f1ae9d9baee44f49b90858524338a7b8aaec06d3e3a047", - "zh:1d042648d2eaffde8858a8006b944374599c5e8c2f834ae74b97adedd1468142", - "zh:278ebac38cf3c1e6df4bc5de00e931bfc04298607f428aa84a932bbf26dee421", - "zh:48f29b802e2de7e6dd2452a012c633686fce5d7ad3eadb490a7b8c0967a9ebfa", - "zh:731bf2e97c4a519723682beb2e85e065bf0bf53b2f50e2ff7b15b39ea74e37ff", - "zh:7c8187ebca19ca8f6ef82d3d79a418ccfa6574bb99e63cc930fa46ff938a7921", - "zh:82fdb2052601f6fa925195e77506fb609ce8bb4a6f6e94cf6a5058252ef570d4", - "zh:995ca23bb3765a16c6b3138b468d920acff5742b22492324c836579e3344ea40", - "zh:a970131232ad41203382f6fa3f0014a22767cbfe28cd7562346184ea6e678d63", - "zh:bf5036675a7f0b8691fe393e2782a76c7943ba17eec7255e16a31c7547436a48", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - ] -} - -provider "registry.terraform.io/hashicorp/random" { - version = "3.4.3" - hashes = [ - "h1:xZGZf18JjMS06pFa4NErzANI98qi59SEcBsOcS2P2yQ=", - "zh:41c53ba47085d8261590990f8633c8906696fa0a3c4b384ff6a7ecbf84339752", - "zh:59d98081c4475f2ad77d881c4412c5129c56214892f490adf11c7e7a5a47de9b", - "zh:686ad1ee40b812b9e016317e7f34c0d63ef837e084dea4a1f578f64a6314ad53", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:84103eae7251384c0d995f5a257c72b0096605048f757b749b7b62107a5dccb3", - "zh:8ee974b110adb78c7cd18aae82b2729e5124d8f115d484215fd5199451053de5", - "zh:9dd4561e3c847e45de603f17fa0c01ae14cae8c4b7b4e6423c9ef3904b308dda", - "zh:bb07bb3c2c0296beba0beec629ebc6474c70732387477a65966483b5efabdbc6", - "zh:e891339e96c9e5a888727b45b2e1bb3fcbdfe0fd7c5b4396e4695459b38c8cb1", - "zh:ea4739860c24dfeaac6c100b2a2e357106a89d18751f7693f3c31ecf6a996f8d", - "zh:f0c76ac303fd0ab59146c39bc121c5d7d86f878e9a69294e29444d4c653786f8", - "zh:f143a9a5af42b38fed328a161279906759ff39ac428ebcfe55606e05e1518b93", - ] -} - -provider "registry.terraform.io/microsoft/azuredevops" { - version = "0.2.2" - constraints = "0.2.2" - hashes = [ - "h1:oKfPQ5Tp9WNeacY08gMifP3G9I//o3LW6qTLsveJwi0=", - "zh:016142d26ec662949ba95b6c84672b243b54bbdca04cf8714fe0b4318783a72d", - "zh:0337b3c4e023bb56b23a5d2d9abe917f197eed378fa69803e9d0b11a36211e15", - "zh:240c9636660292eeb99bd892602eafe2e5c22b469b082de6963e31dab9e0092e", - "zh:439151590a489a7c0cde50ee701fdbf254e67bdbeaa2acd2a99d005c4051d518", - "zh:6086f5eab87662678eef7bc83041eab5667e92189eb3089b966aeb2cdb58d299", - "zh:94a64223905bb3cef2c38e163ae56ef841422e6511a79f8e60272edd7f8fc67f", - "zh:9d9545445607c5ba6482da0137464d5de4c3459ae1671e6ff94e337e5943c0eb", - "zh:a53bfdea73985ed31acbadd200b295745662a4a54e8c37f050faf71dab7deb8b", - "zh:aa6943db7093b2556fcc2ee5b8b5a8a48e625ded2b063183fbc5a52c94d133f2", - "zh:af4729e8fe8ec255e4c4ca0e6dd4cf43d855bfe4c45b2aa6e47d8c35be55813d", - "zh:bdf8752a6cd12ba3a33597bf7519825000a498b655c72be8c8df504bb9f70fe5", - "zh:c760fa7bc5c62d56c54ef41b4b03b0ae391149f46f36c8c8a55d2511e7f8e599", - ] -} diff --git a/tests/azure/terraform/aks/aks.tf b/tests/azure/terraform/aks/aks.tf deleted file mode 100644 index aab1a0cf..00000000 --- a/tests/azure/terraform/aks/aks.tf +++ /dev/null @@ -1,35 +0,0 @@ -resource "azurerm_kubernetes_cluster" "this" { - name = "aks-${local.name_suffix}" - location = azurerm_resource_group.this.location - resource_group_name = azurerm_resource_group.this.name - - dns_prefix = "aks${local.name_suffix}" - - default_node_pool { - name = "default" - node_count = 2 - vm_size = "Standard_B2s" - os_disk_size_gb = 30 - } - - identity { - type = "SystemAssigned" - } - - role_based_access_control_enabled = true - - network_profile { - network_plugin = "kubenet" - network_policy = "calico" - } - - tags = { - environment = "e2e" - } -} - -resource "azurerm_role_assignment" "aks_acr_pull" { - scope = data.azurerm_container_registry.shared.id - role_definition_name = "AcrPull" - principal_id = azurerm_kubernetes_cluster.this.kubelet_identity[0].object_id -} diff --git a/tests/azure/terraform/aks/azuredevops.tf b/tests/azure/terraform/aks/azuredevops.tf deleted file mode 100644 index dd1ebc50..00000000 --- a/tests/azure/terraform/aks/azuredevops.tf +++ /dev/null @@ -1,21 +0,0 @@ -data "azuredevops_project" "e2e" { - name = "e2e" -} - -resource "azuredevops_git_repository" "fleet_infra" { - project_id = data.azuredevops_project.e2e.id - name = "fleet-infra-${local.name_suffix}" - default_branch = "refs/heads/main" - initialization { - init_type = "Clean" - } -} - -resource "azuredevops_git_repository" "application" { - project_id = data.azuredevops_project.e2e.id - name = "application-${local.name_suffix}" - default_branch = "refs/heads/main" - initialization { - init_type = "Clean" - } -} diff --git a/tests/azure/terraform/aks/event-hub.tf b/tests/azure/terraform/aks/event-hub.tf deleted file mode 100644 index 13162d29..00000000 --- a/tests/azure/terraform/aks/event-hub.tf +++ /dev/null @@ -1,26 +0,0 @@ -resource "azurerm_eventhub_namespace" "this" { - name = "ehns-${local.name_suffix}" - location = azurerm_resource_group.this.location - resource_group_name = azurerm_resource_group.this.name - sku = "Standard" - capacity = 1 -} - - -resource "azurerm_eventhub" "this" { - name = "eh-${local.name_suffix}" - namespace_name = azurerm_eventhub_namespace.this.name - resource_group_name = azurerm_resource_group.this.name - partition_count = 1 - message_retention = 1 -} - -resource "azurerm_eventhub_authorization_rule" "this" { - name = "flux" - resource_group_name = azurerm_resource_group.this.name - namespace_name = azurerm_eventhub_namespace.this.name - eventhub_name = azurerm_eventhub.this.name - listen = true - send = true - manage = false -} diff --git a/tests/azure/terraform/aks/keyvault.tf b/tests/azure/terraform/aks/keyvault.tf deleted file mode 100644 index 9133306a..00000000 --- a/tests/azure/terraform/aks/keyvault.tf +++ /dev/null @@ -1,37 +0,0 @@ -resource "azurerm_key_vault" "this" { - name = "kv-${random_pet.suffix.id}" - resource_group_name = azurerm_resource_group.this.name - location = azurerm_resource_group.this.location - tenant_id = data.azurerm_client_config.current.tenant_id - sku_name = "standard" -} - -resource "azurerm_key_vault_access_policy" "sops_write" { - key_vault_id = azurerm_key_vault.this.id - tenant_id = data.azurerm_client_config.current.tenant_id - object_id = data.azurerm_client_config.current.object_id - - key_permissions = [ - "Encrypt", - "Decrypt", - "Create", - "Delete", - "Purge", - "Get", - "List", - ] -} - -resource "azurerm_key_vault_key" "sops" { - depends_on = [azurerm_key_vault_access_policy.sops_write] - - name = "sops" - key_vault_id = azurerm_key_vault.this.id - key_type = "RSA" - key_size = 2048 - - key_opts = [ - "decrypt", - "encrypt", - ] -} diff --git a/tests/azure/terraform/aks/main.tf b/tests/azure/terraform/aks/main.tf deleted file mode 100644 index 0e70f4a1..00000000 --- a/tests/azure/terraform/aks/main.tf +++ /dev/null @@ -1,52 +0,0 @@ -terraform { - backend "azurerm" { - resource_group_name = "terraform-state" - storage_account_name = "terraformstate0419" - container_name = "aks-tfstate" - key = "prod.terraform.tfstate" - } - - required_version = "1.2.8" - - required_providers { - azurerm = { - source = "hashicorp/azurerm" - version = "3.20.0" - } - azuread = { - source = "hashicorp/azuread" - version = "2.28.0" - } - azuredevops = { - source = "microsoft/azuredevops" - version = "0.2.2" - } - } -} - -provider "azurerm" { - features {} -} - -provider "azuredevops" { - org_service_url = "https://dev.azure.com/${local.azure_devops_org}" - personal_access_token = data.azurerm_key_vault_secret.shared_pat.value -} - -data "azurerm_client_config" "current" {} - -resource "random_pet" "suffix" {} - -locals { - azure_devops_org = "flux-azure" - name_suffix = "e2e-${random_pet.suffix.id}" -} - -resource "azurerm_resource_group" "this" { - name = "rg-${local.name_suffix}" - location = "West Europe" - - tags = { - environment = "e2e" - } -} diff --git a/tests/azure/terraform/aks/outputs.tf b/tests/azure/terraform/aks/outputs.tf deleted file mode 100644 index 21a8f1de..00000000 --- a/tests/azure/terraform/aks/outputs.tf +++ /dev/null @@ -1,80 +0,0 @@ -output "aks_kube_config" { - sensitive = true - value = azurerm_kubernetes_cluster.this.kube_config_raw -} - -output "aks_host" { - value = azurerm_kubernetes_cluster.this.kube_config[0].host - sensitive = true -} - -output "aks_client_certificate" { - value = base64decode(azurerm_kubernetes_cluster.this.kube_config[0].client_certificate) - sensitive = true -} - -output "aks_client_key" { - value = base64decode(azurerm_kubernetes_cluster.this.kube_config[0].client_key) - sensitive = true -} - -output "aks_cluster_ca_certificate" { - value = base64decode(azurerm_kubernetes_cluster.this.kube_config[0].cluster_ca_certificate) - sensitive = true -} - -output "shared_pat" { - sensitive = true - value = data.azurerm_key_vault_secret.shared_pat.value -} - -output "shared_id_rsa" { - sensitive = true - value = data.azurerm_key_vault_secret.shared_id_rsa.value -} - -output "shared_id_rsa_pub" { - sensitive = true - value = data.azurerm_key_vault_secret.shared_id_rsa_pub.value -} - -output "fleet_infra_repository" { - value = { - http = azuredevops_git_repository.fleet_infra.remote_url - ssh = "ssh://git@ssh.dev.azure.com/v3/${local.azure_devops_org}/${azuredevops_git_repository.fleet_infra.project_id}/${azuredevops_git_repository.fleet_infra.name}" - } -} - -output "application_repository" { - value = { - http = azuredevops_git_repository.application.remote_url - ssh = "ssh://git@ssh.dev.azure.com/v3/${local.azure_devops_org}/${azuredevops_git_repository.application.project_id}/${azuredevops_git_repository.application.name}" - } -} - -output "flux_azure_sp" { - value = { - tenant_id = data.azurerm_client_config.current.tenant_id - client_id = azuread_service_principal.flux.application_id - client_secret = azuread_service_principal_password.flux.value - } - sensitive = true -} - -output "event_hub_sas" { - value = azurerm_eventhub_authorization_rule.this.primary_connection_string - sensitive = true -} - -output "sops_id" { - value = azurerm_key_vault_key.sops.id -} - -output "acr" { - value = { - url = data.azurerm_container_registry.shared.login_server - username = azuread_service_principal.flux.application_id - password = azuread_service_principal_password.flux.value - } - sensitive = true -} diff --git a/tests/azure/terraform/aks/service-principal.tf b/tests/azure/terraform/aks/service-principal.tf deleted file mode 100644 index db46718b..00000000 --- a/tests/azure/terraform/aks/service-principal.tf +++ /dev/null @@ -1,52 +0,0 @@ -resource "azuread_application" "flux" { - display_name = "flux-${local.name_suffix}" - - required_resource_access { - resource_app_id = "00000003-0000-0000-c000-000000000000" - - resource_access { - id = "df021288-bdef-4463-88db-98f22de89214" - type = "Role" - } - } - - required_resource_access { - resource_app_id = "00000002-0000-0000-c000-000000000000" - - resource_access { - id = "1cda74f2-2616-4834-b122-5cb1b07f8a59" - type = "Role" - } - resource_access { - id = "78c8a3c8-a07e-4b9e-af1b-b5ccab50a175" - type = "Role" - } - } -} - -resource "azuread_service_principal" "flux" { - application_id = azuread_application.flux.application_id -} - -resource "azuread_service_principal_password" "flux" { - service_principal_id = azuread_service_principal.flux.object_id -} - -resource "azurerm_role_assignment" "acr" { - scope = data.azurerm_container_registry.shared.id - role_definition_name = "AcrPull" - principal_id = azuread_service_principal.flux.object_id -} - -resource "azurerm_key_vault_access_policy" "sops_decrypt" { - key_vault_id = azurerm_key_vault.this.id - tenant_id = data.azurerm_client_config.current.tenant_id - object_id = azuread_service_principal.flux.object_id - - key_permissions = [ - "Encrypt", - "Decrypt", - "Get", - "List", - ] -} diff --git a/tests/azure/terraform/aks/shared.tf b/tests/azure/terraform/aks/shared.tf deleted file mode 100644 index 30fccf5f..00000000 --- a/tests/azure/terraform/aks/shared.tf +++ /dev/null @@ -1,32 +0,0 @@ -locals { - shared_suffix = "oarfish" -} - -data "azurerm_resource_group" "shared" { - name = "e2e-shared" -} - -data "azurerm_container_registry" "shared" { - name = "acrapps${local.shared_suffix}" - resource_group_name = data.azurerm_resource_group.shared.name -} - -data "azurerm_key_vault" "shared" { - resource_group_name = data.azurerm_resource_group.shared.name - name = "kv-credentials-${local.shared_suffix}" -} - -data "azurerm_key_vault_secret" "shared_pat" { - key_vault_id = data.azurerm_key_vault.shared.id - name = "pat" -} - -data "azurerm_key_vault_secret" "shared_id_rsa" { - key_vault_id = data.azurerm_key_vault.shared.id - name = "id-rsa" -} - -data "azurerm_key_vault_secret" "shared_id_rsa_pub" { - key_vault_id = data.azurerm_key_vault.shared.id - name = "id-rsa-pub" -} diff --git a/tests/azure/terraform/shared/.terraform.lock.hcl b/tests/azure/terraform/shared/.terraform.lock.hcl deleted file mode 100644 index 03a5e2fe..00000000 --- a/tests/azure/terraform/shared/.terraform.lock.hcl +++ /dev/null @@ -1,61 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/azuread" { - version = "2.28.0" - constraints = "2.28.0" - hashes = [ - "h1:22zcPLrP6T0FAGzhkx44Oc3SreGpzttng34JSYhoknE=", - "zh:0e8b008417d74f7d7f931effe48c0719f20789440c9c5932c2b1cf4110348f41", - "zh:1c3e89cf19118fc07d7b04257251fc9897e722c16e0a0df7b07fcd261f8c12e7", - "zh:2a2e4408fc1dc902553ff6a5751924c5e9a59df30f0668b55aa6c07264537c03", - "zh:2ab09b735888a7402bdd8e74f75a053ac102e0a01b876b0608a0c240dff57b2e", - "zh:2ac1f45bb1597726ff6822e1f9a7bc7227179c10b0b51533849b44ab278a05ed", - "zh:601a7821c7fbef870a1a2165a684e4fb4f4c84f6b85e0ce51ef7783a581cf594", - "zh:7f8e4dd03a3d4259e06b498ed0b04c6911aa99cf5f01018e2092899cd135c6e5", - "zh:8408143a24baaf4ad527aeecfaf11dfcd0fb6f25648958f2c94464717f776206", - "zh:bc836c1389f7b01537eb71ec709ea9d1cb4180814b70992ce3004356ce28d173", - "zh:d4b5571c96c2bafdf79494265f508dbe569f6fb16a5ddc41f22da22e9be029e9", - "zh:f1c2a1a13fe3725ba84b57a418adb1bd8c93db09dd880658a468cbd4832f9224", - "zh:f39b090d45674395fecb39add1260dd4565661e38eb40c4017c3fd84c8af1717", - ] -} - -provider "registry.terraform.io/hashicorp/azurerm" { - version = "3.20.0" - constraints = "3.20.0" - hashes = [ - "h1:heH/4bYgajEFQ+fwSV9Zduvpyb7eTCQUv+gl201EFg8=", - "zh:0d534bb2fed67b5b58d3adb2b0be7a9986f62b34f40eae450dafc9454fb54db8", - "zh:19f6d5f196a35500e0f1ae9d9baee44f49b90858524338a7b8aaec06d3e3a047", - "zh:1d042648d2eaffde8858a8006b944374599c5e8c2f834ae74b97adedd1468142", - "zh:278ebac38cf3c1e6df4bc5de00e931bfc04298607f428aa84a932bbf26dee421", - "zh:48f29b802e2de7e6dd2452a012c633686fce5d7ad3eadb490a7b8c0967a9ebfa", - "zh:731bf2e97c4a519723682beb2e85e065bf0bf53b2f50e2ff7b15b39ea74e37ff", - "zh:7c8187ebca19ca8f6ef82d3d79a418ccfa6574bb99e63cc930fa46ff938a7921", - "zh:82fdb2052601f6fa925195e77506fb609ce8bb4a6f6e94cf6a5058252ef570d4", - "zh:995ca23bb3765a16c6b3138b468d920acff5742b22492324c836579e3344ea40", - "zh:a970131232ad41203382f6fa3f0014a22767cbfe28cd7562346184ea6e678d63", - "zh:bf5036675a7f0b8691fe393e2782a76c7943ba17eec7255e16a31c7547436a48", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - ] -} - -provider "registry.terraform.io/hashicorp/random" { - version = "3.3.2" - hashes = [ - "h1:H5V+7iXol/EHB2+BUMzGlpIiCOdV74H8YjzCxnSAWcg=", - "zh:038293aebfede983e45ee55c328e3fde82ae2e5719c9bd233c324cfacc437f9c", - "zh:07eaeab03a723d83ac1cc218f3a59fceb7bbf301b38e89a26807d1c93c81cef8", - "zh:427611a4ce9d856b1c73bea986d841a969e4c2799c8ac7c18798d0cc42b78d32", - "zh:49718d2da653c06a70ba81fd055e2b99dfd52dcb86820a6aeea620df22cd3b30", - "zh:5574828d90b19ab762604c6306337e6cd430e65868e13ef6ddb4e25ddb9ad4c0", - "zh:7222e16f7833199dabf1bc5401c56d708ec052b2a5870988bc89ff85b68a5388", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:b1b2d7d934784d2aee98b0f8f07a8ccfc0410de63493ae2bf2222c165becf938", - "zh:b8f85b6a20bd264fcd0814866f415f0a368d1123cd7879c8ebbf905d370babc8", - "zh:c3813133acc02bbebddf046d9942e8ba5c35fc99191e3eb057957dafc2929912", - "zh:e7a41dbc919d1de800689a81c240c27eec6b9395564630764ebb323ea82ac8a9", - "zh:ee6d23208449a8eaa6c4f203e33f5176fa795b4b9ecf32903dffe6e2574732c2", - ] -} diff --git a/tests/azure/terraform/shared/acr.tf b/tests/azure/terraform/shared/acr.tf deleted file mode 100644 index a339feed..00000000 --- a/tests/azure/terraform/shared/acr.tf +++ /dev/null @@ -1,6 +0,0 @@ -resource "azurerm_container_registry" "this" { - name = "acrapps${random_pet.suffix.id}" - resource_group_name = azurerm_resource_group.this.name - location = azurerm_resource_group.this.location - sku = "Standard" -} diff --git a/tests/azure/terraform/shared/keyvault.tf b/tests/azure/terraform/shared/keyvault.tf deleted file mode 100644 index baf1eca0..00000000 --- a/tests/azure/terraform/shared/keyvault.tf +++ /dev/null @@ -1,43 +0,0 @@ -resource "azurerm_key_vault" "this" { - name = "kv-credentials-${random_pet.suffix.id}" - resource_group_name = azurerm_resource_group.this.name - location = azurerm_resource_group.this.location - tenant_id = data.azurerm_client_config.current.tenant_id - sku_name = "standard" -} - -resource "azurerm_key_vault_access_policy" "admin" { - key_vault_id = azurerm_key_vault.this.id - tenant_id = data.azurerm_client_config.current.tenant_id - object_id = data.azurerm_client_config.current.object_id - - key_permissions = [ - "Backup", - "Create", - "Decrypt", - "Delete", - "Encrypt", - "Get", - "Import", - "List", - "Purge", - "Recover", - "Restore", - "Sign", - "UnwrapKey", - "Update", - "Verify", - "WrapKey", - ] - - secret_permissions = [ - "Backup", - "Delete", - "Get", - "List", - "Purge", - "Recover", - "Restore", - "Set", - ] -} diff --git a/tests/azure/terraform/shared/main.tf b/tests/azure/terraform/shared/main.tf deleted file mode 100644 index 36623f6b..00000000 --- a/tests/azure/terraform/shared/main.tf +++ /dev/null @@ -1,39 +0,0 @@ -terraform { - backend "azurerm" { - resource_group_name = "terraform-state" - storage_account_name = "terraformstate0419" - container_name = "shared-tfstate" - key = "prod.terraform.tfstate" - } - - required_version = "1.2.8" - - required_providers { - azurerm = { - source = "hashicorp/azurerm" - version = "3.20.0" - } - azuread = { - source = "hashicorp/azuread" - version = "2.28.0" - } - } -} - -provider "azurerm" { - features {} -} - -resource "random_pet" "suffix" { - length = 1 - separator = "" -} - -data "azurerm_client_config" "current" {} - -data "azurerm_subscription" "current" {} - -resource "azurerm_resource_group" "this" { - name = "e2e-shared" - location = "West Europe" -} diff --git a/tests/azure/terraform/shared/outputs.tf b/tests/azure/terraform/shared/outputs.tf deleted file mode 100644 index ff0e09f4..00000000 --- a/tests/azure/terraform/shared/outputs.tf +++ /dev/null @@ -1,18 +0,0 @@ -output "azure_devops_sp" { - value = { - client_id = azuread_service_principal.azure_devops.application_id - client_secret = azuread_application_password.azure_devops.value - } - sensitive = true -} - -output "github_sp" { - value = { - tenant_id = data.azurerm_client_config.current.tenant_id - subscription_id = data.azurerm_client_config.current.subscription_id - client_id = azuread_service_principal.github.application_id - client_secret = azuread_application_password.github.value - } - sensitive = true -} - diff --git a/tests/azure/terraform/shared/service-principal.tf b/tests/azure/terraform/shared/service-principal.tf deleted file mode 100644 index eaed3a6e..00000000 --- a/tests/azure/terraform/shared/service-principal.tf +++ /dev/null @@ -1,105 +0,0 @@ -# Service Principal used by Azure DevOps to push OCI and Helm Charts -resource "azuread_application" "azure_devops" { - display_name = "azure-devops-${random_pet.suffix.id}" - - required_resource_access { - resource_app_id = "00000003-0000-0000-c000-000000000000" - - resource_access { - id = "df021288-bdef-4463-88db-98f22de89214" - type = "Role" - } - } - - required_resource_access { - resource_app_id = "00000002-0000-0000-c000-000000000000" - - resource_access { - id = "1cda74f2-2616-4834-b122-5cb1b07f8a59" - type = "Role" - } - resource_access { - id = "78c8a3c8-a07e-4b9e-af1b-b5ccab50a175" - type = "Role" - } - } -} - -resource "azuread_application_password" "azure_devops" { - display_name = "password" - application_object_id = azuread_application.azure_devops.object_id -} - -resource "azuread_service_principal" "azure_devops" { - application_id = azuread_application.azure_devops.application_id -} - -resource "azurerm_role_assignment" "azure_devops_acr" { - scope = azurerm_container_registry.this.id - role_definition_name = "Contributor" - principal_id = azuread_service_principal.azure_devops.object_id -} - -# Service Principal that is used to run the tests in GitHub Actions -resource "azuread_application" "github" { - display_name = "github-${random_pet.suffix.id}" - - required_resource_access { - resource_app_id = "00000003-0000-0000-c000-000000000000" - - resource_access { - id = "df021288-bdef-4463-88db-98f22de89214" - type = "Role" - } - } - - required_resource_access { - resource_app_id = "00000002-0000-0000-c000-000000000000" - - resource_access { - id = "1cda74f2-2616-4834-b122-5cb1b07f8a59" - type = "Role" - } - resource_access { - id = "78c8a3c8-a07e-4b9e-af1b-b5ccab50a175" - type = "Role" - } - } -} - -resource "azuread_application_password" "github" { - display_name = "password" - application_object_id = azuread_application.github.object_id -} - -resource "azuread_service_principal" "github" { - application_id = azuread_application.github.application_id -} - -data "azurerm_storage_account" "terraform_state" { - resource_group_name = "terraform-state" - name = "terraformstate0419" -} - -resource "azurerm_role_assignment" "github_resource_group" { - scope = data.azurerm_subscription.current.id - role_definition_name = "Contributor" - principal_id = azuread_service_principal.github.object_id -} - -resource "azurerm_role_assignment" "github_acr" { - scope = azurerm_container_registry.this.id - role_definition_name = "Owner" - principal_id = azuread_service_principal.github.object_id -} - -resource "azurerm_key_vault_access_policy" "github_keyvault_secret_read" { - key_vault_id = azurerm_key_vault.this.id - tenant_id = data.azurerm_client_config.current.tenant_id - object_id = azuread_service_principal.github.object_id - - secret_permissions = [ - "Get", - "List", - ] -} diff --git a/tests/azure/terraform/shared/variables.tf b/tests/azure/terraform/shared/variables.tf deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/azure/util_test.go b/tests/azure/util_test.go deleted file mode 100644 index ededf2d9..00000000 --- a/tests/azure/util_test.go +++ /dev/null @@ -1,457 +0,0 @@ -/* -Copyright 2021 The Flux authors - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package test - -import ( - "context" - "fmt" - "io" - "os" - "os/exec" - "path/filepath" - "strings" - "time" - - corev1 "k8s.io/api/core/v1" - apimeta "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - - helmv2beta1 "github.com/fluxcd/helm-controller/api/v2beta2" - automationv1beta1 "github.com/fluxcd/image-automation-controller/api/v1beta1" - reflectorv1beta2 "github.com/fluxcd/image-reflector-controller/api/v1beta2" - kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" - notiv1 "github.com/fluxcd/notification-controller/api/v1" - notiv1beta3 "github.com/fluxcd/notification-controller/api/v1beta3" - "github.com/fluxcd/pkg/apis/meta" - "github.com/fluxcd/pkg/git" - "github.com/fluxcd/pkg/git/gogit" - "github.com/fluxcd/pkg/git/repository" - sourcev1 "github.com/fluxcd/source-controller/api/v1" - sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" - extgogit "github.com/go-git/go-git/v5" - gitconfig "github.com/go-git/go-git/v5/config" - "github.com/go-git/go-git/v5/plumbing" - "github.com/go-git/go-git/v5/plumbing/object" - "github.com/go-git/go-git/v5/plumbing/transport/http" -) - -const defaultBranch = "main" - -// getKubernetesCredentials returns a path to a kubeconfig file and a kube client instance. -func getKubernetesCredentials(kubeconfig, aksHost, aksCert, aksKey, aksCa string) (string, client.Client, error) { - tmpDir, err := os.MkdirTemp("", "*-azure-e2e") - if err != nil { - return "", nil, err - } - kubeconfigPath := fmt.Sprintf("%s/kubeconfig", tmpDir) - os.WriteFile(kubeconfigPath, []byte(kubeconfig), 0750) - kubeCfg := &rest.Config{ - Host: aksHost, - TLSClientConfig: rest.TLSClientConfig{ - CertData: []byte(aksCert), - KeyData: []byte(aksKey), - CAData: []byte(aksCa), - }, - } - err = sourcev1b2.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = sourcev1.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = kustomizev1.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = helmv2beta1.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = reflectorv1beta2.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = automationv1beta1.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = notiv1beta3.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - err = notiv1.AddToScheme(scheme.Scheme) - if err != nil { - return "", nil, err - } - kubeClient, err := client.New(kubeCfg, client.Options{Scheme: scheme.Scheme}) - if err != nil { - return "", nil, err - } - return kubeconfigPath, kubeClient, nil -} - -// installFlux adds the core Flux components to the cluster specified in the kubeconfig file. -func installFlux(ctx context.Context, kubeClient client.Client, kubeconfigPath, repoUrl, azdoPat string, sp spConfig) error { - namespace := corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "flux-system", - }, - } - _, err := controllerutil.CreateOrUpdate(ctx, cfg.kubeClient, &namespace, func() error { - return nil - }) - - azureSp := &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "azure-sp", Namespace: "flux-system"}} - _, err = controllerutil.CreateOrUpdate(ctx, kubeClient, azureSp, func() error { - azureSp.StringData = map[string]string{ - "AZURE_TENANT_ID": sp.tenantId, - "AZURE_CLIENT_ID": sp.clientId, - "AZURE_CLIENT_SECRET": sp.clientSecret, - } - return nil - }) - if err != nil { - return err - } - - //// Install Flux and push files to git repository - repo, _, err := getRepository(repoUrl, defaultBranch, true, azdoPat) - if err != nil { - return fmt.Errorf("error cloning repositoriy: %w", err) - } - - kustomizeYaml := ` -resources: - - gotk-components.yaml - - gotk-sync.yaml -patchesStrategicMerge: - - |- - apiVersion: apps/v1 - kind: Deployment - metadata: - name: kustomize-controller - namespace: flux-system - spec: - template: - spec: - containers: - - name: manager - envFrom: - - secretRef: - name: azure-sp - - |- - apiVersion: apps/v1 - kind: Deployment - metadata: - name: source-controller - namespace: flux-system - spec: - template: - spec: - containers: - - name: manager - envFrom: - - secretRef: - name: azure-sp -` - - files := make(map[string]io.Reader) - files["clusters/e2e/flux-system/kustomization.yaml"] = strings.NewReader(kustomizeYaml) - files["clusters/e2e/flux-system/gotk-components.yaml"] = strings.NewReader("") - files["clusters/e2e/flux-system/gotk-sync.yaml"] = strings.NewReader("") - err = commitAndPushAll(repo, files, defaultBranch) - if err != nil { - return fmt.Errorf("error committing and pushing manifests: %w", err) - } - - bootstrapCmd := fmt.Sprintf("flux bootstrap git --url=%s --password=%s --kubeconfig=%s"+ - " --token-auth --path=clusters/e2e --components-extra image-reflector-controller,image-automation-controller", - repoUrl, azdoPat, kubeconfigPath) - if err := runCommand(context.Background(), 10*time.Minute, "./", bootstrapCmd); err != nil { - return fmt.Errorf("error running bootstrap: %w", err) - } - - return nil -} - -func runCommand(ctx context.Context, timeout time.Duration, dir, command string) error { - timeoutCtx, cancel := context.WithTimeout(ctx, timeout) - defer cancel() - cmd := exec.CommandContext(timeoutCtx, "bash", "-c", command) - cmd.Dir = dir - output, err := cmd.CombinedOutput() - if err != nil { - return fmt.Errorf("failure to run command %s: %v", string(output), err) - } - return nil -} - -// verifyGitAndKustomization checks that the gitrespository and kustomization combination are working properly. -func verifyGitAndKustomization(ctx context.Context, kubeClient client.Client, namespace, name string) error { - nn := types.NamespacedName{ - Name: name, - Namespace: namespace, - } - source := &sourcev1.GitRepository{} - err := kubeClient.Get(ctx, nn, source) - if err != nil { - return err - } - if apimeta.IsStatusConditionPresentAndEqual(source.Status.Conditions, meta.ReadyCondition, metav1.ConditionTrue) == false { - return fmt.Errorf("source condition not ready") - } - kustomization := &kustomizev1.Kustomization{} - err = kubeClient.Get(ctx, nn, kustomization) - if err != nil { - return err - } - if apimeta.IsStatusConditionPresentAndEqual(kustomization.Status.Conditions, meta.ReadyCondition, metav1.ConditionTrue) == false { - return fmt.Errorf("kustomization condition not ready") - } - return nil -} - -func setupNamespace(ctx context.Context, kubeClient client.Client, repoUrl, password, name string) error { - namespace := corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - } - _, err := controllerutil.CreateOrUpdate(ctx, kubeClient, &namespace, func() error { - return nil - }) - secret := corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: "https-credentials", - Namespace: name, - }, - } - _, err = controllerutil.CreateOrUpdate(ctx, kubeClient, &secret, func() error { - secret.StringData = map[string]string{ - "username": "git", - "password": password, - } - return nil - }) - source := &sourcev1.GitRepository{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace.Name}} - _, err = controllerutil.CreateOrUpdate(ctx, kubeClient, source, func() error { - source.Spec = sourcev1.GitRepositorySpec{ - Interval: metav1.Duration{ - Duration: 1 * time.Minute, - }, - Reference: &sourcev1.GitRepositoryRef{ - Branch: name, - }, - SecretRef: &meta.LocalObjectReference{ - Name: "https-credentials", - }, - URL: repoUrl, - } - return nil - }) - if err != nil { - return err - } - kustomization := &kustomizev1.Kustomization{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace.Name}} - _, err = controllerutil.CreateOrUpdate(ctx, kubeClient, kustomization, func() error { - kustomization.Spec = kustomizev1.KustomizationSpec{ - SourceRef: kustomizev1.CrossNamespaceSourceReference{ - Kind: sourcev1.GitRepositoryKind, - Name: source.Name, - Namespace: source.Namespace, - }, - Interval: metav1.Duration{ - Duration: 1 * time.Minute, - }, - Prune: true, - } - return nil - }) - if err != nil { - return err - } - return nil -} - -func getRepository(repoURL, branchName string, overrideBranch bool, password string) (*gogit.Client, string, error) { - checkoutBranch := defaultBranch - if overrideBranch == false { - checkoutBranch = branchName - } - - tmpDir, err := os.MkdirTemp("", "*-repository") - if err != nil { - return nil, "", err - } - c, err := gogit.NewClient(tmpDir, &git.AuthOptions{ - Transport: git.HTTPS, - Username: "git", - Password: password, - }) - if err != nil { - return nil, "", err - } - - _, err = c.Clone(context.Background(), repoURL, repository.CloneConfig{ - CheckoutStrategy: repository.CheckoutStrategy{ - Branch: checkoutBranch, - }, - }) - if err != nil { - return nil, "", err - } - - err = c.SwitchBranch(context.Background(), branchName) - if err != nil { - return nil, "", err - } - - return c, tmpDir, nil -} - -func addFile(dir, path, content string) error { - err := os.WriteFile(filepath.Join(dir, path), []byte(content), 0777) - if err != nil { - return err - } - return nil -} - -func commitAndPushAll(client *gogit.Client, files map[string]io.Reader, branchName string) error { - repo, err := extgogit.PlainOpen(client.Path()) - if err != nil { - return err - } - - wt, err := repo.Worktree() - if err != nil { - return err - } - - err = wt.Checkout(&extgogit.CheckoutOptions{ - Branch: plumbing.NewBranchReferenceName(branchName), - Force: true, - }) - if err != nil { - return err - } - - f := repository.WithFiles(files) - _, err = client.Commit(git.Commit{ - Author: git.Signature{ - Name: "git", - Email: "test@example.com", - When: time.Now(), - }, - Message: "add file", - }, f) - - if err != nil { - return err - } - - err = client.Push(context.Background(), repository.PushConfig{}) - if err != nil { - return err - } - - return nil -} - -func createTagAndPush(client *gogit.Client, branchName, newTag, password string) error { - repo, err := extgogit.PlainOpen(client.Path()) - if err != nil { - return err - } - - ref, err := repo.Reference(plumbing.NewBranchReferenceName(branchName), false) - if err != nil { - return err - } - - tags, err := repo.TagObjects() - if err != nil { - return err - } - - err = tags.ForEach(func(tag *object.Tag) error { - if tag.Name == newTag { - err = repo.DeleteTag(tag.Name) - if err != nil { - return err - } - } - - return nil - }) - if err != nil { - return err - } - - sig := &object.Signature{ - Name: "git", - Email: "test@example.com", - When: time.Now(), - } - - _, err = repo.CreateTag(newTag, ref.Hash(), &extgogit.CreateTagOptions{ - Tagger: sig, - Message: "create tag", - }) - if err != nil { - return err - } - - auth := &http.BasicAuth{ - Username: "git", - Password: password, - } - - po := &extgogit.PushOptions{ - RemoteName: "origin", - Progress: os.Stdout, - RefSpecs: []gitconfig.RefSpec{gitconfig.RefSpec("refs/tags/*:refs/tags/*")}, - Auth: auth, - } - if err := repo.Push(po); err != nil { - return err - } - - return nil -} - -func getTestManifest(namespace string) string { - return fmt.Sprintf(` -apiVersion: v1 -kind: Namespace -metadata: - name: %s ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: foobar - namespace: %s -`, namespace, namespace) -} From d48cbe3fcbe44295cad42713092ec25a160f552c Mon Sep 17 00:00:00 2001 From: adamkenihan Date: Thu, 4 Jan 2024 15:28:19 +0000 Subject: [PATCH 109/154] Create CDEvents RFC Signed-off-by: adamkenihan Create CDEvents RFC Signed-off-by: adamkenihan Update README.md Signed-off-by: adamkenihan Add files via upload Signed-off-by: adamkenihan Edits to diagrams Signed-off-by: adamkenihan Update README.md Signed-off-by: adamkenihan Add files via upload Signed-off-by: adamkenihan Update README.md Signed-off-by: adamkenihan Improvements to rfcs/NNNN-cdevents/README.md Signed-off-by: adamkenihan Add CDEvents Receiver RFC Signed-off-by: adamkenihan Add CDEvents Receiver RFC Signed-off-by: adamkenihan Add CDEvents Receiver RFC Signed-off-by: adamkenihan Small tweaks to cdevents RFC Signed-off-by: adamkenihan change cdevents RFC yaml example format Signed-off-by: adamkenihan Add CDEvents Receiver RFC Signed-off-by: adamkenihan Create CDEvents RFC Signed-off-by: adamkenihan Signed-off-by: adamkenihan Change RFC number Signed-off-by: adamkenihan Update rfcs/0006-cdevents/README.md Signed-off-by: adamkenihan Update README.md Signed-off-by: adamkenihan Update rfcs/0006-cdevents/README.md Signed-off-by: adamkenihan Update rfcs/0006-cdevents/README.md Signed-off-by: adamkenihan Co-Authored-By: Sunny Co-Authored-By: souleb --- .../CDEvents-Flux-RFC-Adapter.png | Bin 0 -> 181315 bytes .../CDEvents-Flux-RFC-Broker.png | Bin 0 -> 748787 bytes rfcs/0006-cdevents/Flux-CDEvents-RFC.png | Bin 0 -> 39957 bytes rfcs/0006-cdevents/README.md | 135 ++++++++++++++++++ rfcs/0006-cdevents/cdevents-flux-tekton.png | Bin 0 -> 665010 bytes 5 files changed, 135 insertions(+) create mode 100644 rfcs/0006-cdevents/CDEvents-Flux-RFC-Adapter.png create mode 100644 rfcs/0006-cdevents/CDEvents-Flux-RFC-Broker.png create mode 100644 rfcs/0006-cdevents/Flux-CDEvents-RFC.png create mode 100644 rfcs/0006-cdevents/README.md create mode 100644 rfcs/0006-cdevents/cdevents-flux-tekton.png diff --git a/rfcs/0006-cdevents/CDEvents-Flux-RFC-Adapter.png b/rfcs/0006-cdevents/CDEvents-Flux-RFC-Adapter.png new file mode 100644 index 0000000000000000000000000000000000000000..270a98a8d1faef5be58a530c52077de38cd0178d GIT binary patch literal 181315 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�L5tehr z8MgIJ*|cQA7;-kV(SB{^C_fjgQXGP8V_tVel(4K$(`Esrood1J3^h1Zm_b>QfeEF-##rfx55C`mikoJfvL?Xsd zOW>Fh%<6@|Le$?AGv`l>Km6h5xcu_V5%Z1nfdS0>0hKK}4i z>Z@LV^EGkZb=Sp&2@~Rxe>@gr#*T@N-oHUS_Sj?bsZV_>_TTS=vBt{pjFnbfK3@3m zOR?%2E6cfF^ZV=K=0DyTd+fPK9DD3>al&yYDbQjDsY_(zmlz-KSmT{>=N)&-7=X+j zH*Q=!`oQDbhvKsK^*8)yt9I3ND@$=2k^Z&QP8N#!q96VwKK{v%$|##7>T*39`HeT; z7&l#ab8PV5jpN5Zzc9Xh{BezQHNE7|fBAFlx!-PaO zqijE7)X+pNPql_|XB}9poIjfrznsmQnnv{xn`AD&IQTPjHm-+~@I5@g`)+J zw*Sy(@%&RS#ozw;XzX^xHj4nw{-4qA|DV6?x#Vk;20r+OUF6u1E^KEs{G3Gu7{i0j z(r5BJ{St~6IQ9^@YaKLMHu00Eq)}a?QVieaE%X-y5%VJ*V< zIATZ8M4dbv9ClOI9)y~pYJ;9l4meh&f&MfVf?4wx5$@1u%}CxahZQ!VuDvGye8=4}dci)#QGb*FE-w2WA!b0ec%Hhh`a8(EAG4N@3HRs?@^UN zy{U+}`IejFzQ5fY`|h=0to^S4N#&)|Q! z-t(UK#G{Ws8h^g!FR{TU>&N*&I8UG|8BCl?v%Zk zSYiof`uE@cca`92;jqUrwio{R2Qlr9>G83T0I5J$zZ?-Otg>vJ{;e~VxnB0m-^QMM z?pdf+We7tHnOm!2@o&o(;;7rg@9B7Esbotvh4&lbUfTtqe@}10E@;w9q3UoRYdhy` z5(lB|N)CjKu}pj@ALyPWpJQ}?-HWx&V2z>r;hgIVl*K4mQ~;MlhYnGdt)}*{FF2nB z{{Czw79)nL{H=2N=wZ5VNt{9<0vprfvO0qnEs5z#!-nWg^Eq{v?2Of%aBkIu*RjWz zt|j2$zNntL=gxc80)(pQieOaQ--$43g2OI8?Prm z=Bd9u6Vs;5kXZk-kG`PHb*IC&e0$NtKR)5|fjvGkQO>j7jJM&pI+LUY3%}4e;s}w4 zBRFI>#iLyzVw2!Pckth zn9n@>jQILDPZg?|k}o>9Yp=VOIH;g<4dR(Qdv3gc(@o=%M<0&IA9_lq<9EI1ow43} z>&3N`Zj5DDT1xBJ-`^h_ZM1Pb{P08SBl3UrNx8Obue?E7C;*hHuT71857;~I{>$C5 z%{JS_RhM5QM?mI!<4rfjuYU3CIQT;c>3(KRpBek_yMNsD#~ZuQ!r%Yi1@YO>eI_Pu zJ25W*-J}@So0Sf@rCV*gg}(ct`yYHuUaR*sh8-t)?s?~^pSs6RdkY+AY6SQ4 z&2N5F+~74=qK^1qmC2@7cMKW{r252CQY6c&;955SZU=Ib(Xf@al82Iy?>Di$Uz6?{p0k1 zec7+$=>Iz=PW$?4>8N5L?)&>aqV7OXdi0UUbdN3z<6I9szB4rrvF_DsI@Pe81ViNsr&3E%@;SALjcr6tLA3KGIH$@a zAsPT$l}esX`0SP7v`i))#0Aq+Hz)I&y}{_sU>3ho|>|l*>6&& z3^rAe!BB*G31;P5G|mvbN>NM`>!c)fImN4}v7ug81q?Y7wJ)A|?D=@<+1Fy1!?%n_ z?s__&dGxurzbs7Vy6;gtb*U0*0cXvNX;Ws2q&##uN;9)^4r4Wq#+#G!)Yu7~#j{Z` zQkAlh`-EgXDxU&Cp!P0MK=$;UHRFiL<}yP~Wfb1SPUFF|pdv=oiyStjA=w*!Ru9y* zM3~F9HD}gpH7>{2kq?`PpA*UQZz(aM%2fKFgQ>}INVM=wmnbC`fq_c&#l|rzj^8&~ zU!e!#SeuPr#!BU3N}w540YC)xiv!4KxmSyE!boaR{lbtT;JLKH77frty0!W29Uyp< z*UsJI89WE}fTa3bWpu9Vx@&HT-S*feKJ%&1#`za~PnXK)Zas0!_}ky_7a->O=bzW# z;`q-y_j_^7@khsbXP+M*|MRs)zr|kr?kTNY(79`@_KtY)p$FCHd*?gfDR9x) zQR9@6pLXWg;=AX4H{S7%cj&$J~qr zHRAsJ{-$8?;eR|5JM6ZdIJJD{Dl4xNH{N(tOr83AOnH5ZIHZ66^PiJmHM1{1{LzEs z`Wvo`RaadtcHDkP?dL16nk1o$(@y5qs>ryMAZq`pcjFI(FG{*QPv)^LgwakH>EN?JRoD zR$FeZz~YgIAC5oV@&{3UZomC@adI(o`|h)ET=n~_^xkn}#;Y9n(8CYLcDrm7OD(mO zO6lVk9~b|6>e<+S=ZW#`v(LoF8*dVuZn9~-{>GGm%Ea1Sd+l|iPH~>k|Ka!I_^*7q zDOq#As7A5Jnu-MhC#@C@phq~MPYz9ibqgh*hP*Rxn*TOlfalsCU#N*ZGv>tNOO8=y z$2DZ@>D5610gWchjLS3K){qxCilnBn92!1p z8BJ%YRh~Q486kr!K?=*v^7$$umjM~|@D&0zd9dBfr%tnR4xX2brT)oqX?1hfqYk{5Uy6BlH9= zK#gkn&<=_ZBgovw5*hQqL{!;l8YMKF%dC`Yq`1Ts2hEn8(dZ!SSpt!tpBt<#nt=o5 zIo1N{{EbG5&7P-mWkk3bJjzI>;IIh?6^SUL=bE0@urhgM}7VeNS{@ZX!lU zW%LD$_PJP#>#n&z_Bmj$1}&_fd0&5=_x*F@#IK#8{wj!HXCpto^e6F!FMhu1v3kk~ zVg{$3c3S-LkAI9A(`UqrE3FiJ?zxB1wu>*eM9w;;QZl?Ze*EJf3lIgecV6GTSbOcY z?nnK<#} z6XeJdnpkng6_s(H{I!#%(1dgR=MzuI5@VKB8TdahJQH93@|WY*TW{58Zn626arU`q z$GYpTBOwg9x|(P-q&J3+?2U83b8h_Vx4(*iKJ`>AHfFJ)jQi1!trIu!@H5zg@a8*dt){@7LfdYpCcnQ_(CSH(*&y(r4h#v5%CCw%n;RS!7NoL>T( z6Hfk$oa;{8?UExEtEntC0LIE|AcCjAo>ZB3z{vi`AS+87mI_4NW6I=Z#l@6Cf$-2? zt|&j|gVw`AIA@kC720<0{6RXqGPPtdUgMK%>&oN7mT4dn4gAjVFym&5BcReev-C8tatIP9d3bLB=o!VLq9 zVdp`L3tCh&w2@|^uRB{e;&k185zW*TGA|cgk!MkRYWQiTsqIXV&t&1~e+XFzu&SW( z=xqoTfc|UIh2>y%aaqfIo6K@%pTrr+JlkRkY#Nn_m+S@w`QB4WB&7Z;Zx(l|X+O`VxlAn;XXfJj=rP0)yy++jN7 z3<4Y+@Oe1B#W5@+hv@(h77+1_rM}Xib3jEZ*Zj*A=J4V4E^JVnLwjYkGzmyN=F(N{!L@_p(X4$n-{^p6)_eO??}vS1k} zjTajouTFVY8Tw%#IV`?=*7-#%I}ILUAaUxLvC=+jE9@4RN&nS( zsj*BjDrd&z76rM;Il31JLN)^lwRf03EPMikAUad8Y%AE$xsMVE(?+3kod)!2+6wce zHRyb}`k{PIP4&=wB@#1IAUD(aIOlDqg4;VdHqIN9cm`9g6X-@+?SSqRr|ws6GjQlo zPsT5^cvoiZ>y=0ZAf@r6yRu$B%T+2sm(s>Az$fmF>vPGw8EQUegxYxR7kfhLMj)XJ z8X0?yV|9`vKIuF(;Rm{&UEO=-T;P0pmhCmEDL??uv_B+MSh%UpP=Ev^)rwVoH~WWV zqR#yJZh{vA=6cK^*NE-oGu$VB?(vs2cJAOW?;ihr;8}59w>xCBx7WG;^lOs_4nKJx zeW^1a%^w^CA%2#eLR5bx&g~jgcIemP8N1$Si9u$Yd z@N%LZzSkSbrB-oSizD>VXh%tG4h&a~fCe=;1Bm(3V;VUzz8gLvrEeUFuTO#(l&KKX zC#x%)M8xKz^5jfZKrMvI$0gV+BmOxNJvgim+}s<41H!$T0FF~qX}m!3F{GgDFko!R z`X!Lrl-Vl%Hj_f6zLY}k3Q&4dNvaJ{BLE;{cd1ChN-%V|XOVuCM!1!s+?tnLdafM8 zy3dh45WqEQ9L$0AWfzYg_?@V?qv6H?Ww+APgV1WDMc~A}o0esKh_r;Kb z3?SGil$puqe)#<##X%oDIH%VX{-A=aLNyaej^P!3{ffA~kDVpdjx9NuIZ>o-+_`rG zw88p&{GF;HAa;wSC!f#0^4!uIK-IO+3T}YU%?ydaD!J&K6Tdju0vL(%GD1Ow@6n}D z554AEEE3^Sav1h{(usmcG|77t0OJ6Sy@-A<)Ta7H5G`e+#d8L(2c5GA#1}3oW&VaU z%${HkIlFeetUu?m4q9quvY8-V#|&4sq;VQw2}2&x*d5Ep~5}>v1cLB!uji1gBo3I#_0ZD+n5sV*CuJSYnw3R4Q>& zhTg9-JT$NdFjYnfD#O$iGaNqWD<_dP!9+Dsf_w~mAbW#7;m;C>d3tIWW2!v;B3p8uZ2lIwyp*aXDqZS=V`U)0>AB>+?Z)Bor1le&q zM&a_HaFEVWR6=%{rzkFQZ905q{FRM&0uy?b+0`41jE+rLXFWtdQ^auvz%({9Iem9# zF>KVj?;@3_igM$AB=_nPh7BW!%VN`t$mrXaY+q9*fSyw#f=egO(=-5vv$tXXYR2ODZ_Q|2wb)QkFyrg?dCM-VSD1DZZe_UJL7tuiDX>;Xl)B`JJEIzO12|Ba1nw2$`p-ZtY?l1cq zj3VdzI5-$djCrEK7wTEqfz*4YF$Nx5&tw(`qSGJ3i6TfcKjrGUFX#z~k~nBN?zrQm zm_#2IaL~xnBjfJ7?^d4`t>de&NZ=Fej9e&!0p6zsH8DWOm$MAaITRE#So_2rkc^=S$nf_MppFsH#GCJ3rv70z9f;1ZPuUoF*s0x#qe( zvQ1}jXm5vdQ^fz(4wp{lpD9;@pnCPHCqR^v$HIZ^9~4TL zvK~dZqq;IA9xUI_XApgP)28HECzAC+ zOXHvekw;Q+i4>AZXN3gfbivr`z@T=zbqS_M3bTe}RvhrUAHm-?n#GG}55w~>`Ccj( zwE`5I+(Q@mE`k)EU0Wy|gFrbe=}=^+c@LUHIX_EVjj~G_)0XQ5Kn;%P0u9?HuxK1z zDH)SZ6QuEs8!jta$rTS-2d@mh=HH%@#JvoLT+B5j8|t9NRqCAC7b8Y?WcT=)heq(3 zpe|V}{>>h75X4@-_$L>~&wqJI{PXF53V;P*3Z3DjK6O-#9+RLLIeo6LaQB?eagV&L z?!>uaUniI^OW{qcBuXWs5;Nf5mA%k|tICk=tlwN@hGtWGwvlCR2Ggsqog!Bbc#t52 zGf|`Jbsr^TC1~I*U}V_~HNuxnReVnZi4p``Tn2|kmC9$wm<_dn%0w-KMF9+3h<=`3 zE&QTVW~s`sr%h+_-m>rsjt2v590%*&RmLru7r`sRI6=W+XNu32TrBfYdy|G(CnBcr zvCL$)IL$gR^@zEYWSuP=!1vTVbUBvSX2#-6b!Pv1eJoFCN0uTn3uH&z6L}mU(E`A> zu=ao?vG?9PZnN=wO0`Zv2zGJsiSX@+aImga1sh?ELgT{@xHUj91xMHGtC`bN609mj zb{VOtJxUflY-m>&JebbA*Av^r*)^4k^*3#lvvkq%zm3CB**E_F$H&xj-(v3#7O{(O zm1EU;M_YLBBe$1hWpNwMq{ftWv~_v2QCc;x&KpR2v}N=f8{QNRm)oSbJA1y!{B>lO zMlhl9IBh#(Hna{0C*v%E#D`UyjmC8n29QbBa%Wh_9ZhG1OjToSmr@Rfgx`_% z5K*&tbDtpzm*cpaX-rj#)7NjPze?isQzw<|l4xAcRi(2L83Zj{DB%&8!&TOrQ8aHW zy=74cn0hiKMM9{4Xp9!L3@Kmb=&HIG6pEDdBBj3fnI0LR* zHj+Q=F9Yd^4oQjy^LND?&okmPS@-E&y5#rb;4k0l2l`rTbgLy#aR{tin{q?16M!XL zR-A~Z;#dXA*=9Y}g&>g^L1nwg&CmH;p0|{Qiqe{|&4B?`3C?L-`L4sgPl_Op9;aW+ z&MI)H+E7g=)3cp6Cl#l_f>bRA{<}@vv0ahofC^(-YA0x@?UpNk=JGer5OE+TS%JA2 zpVc*&Xt~~67Ewt@k(uQ^v>`Mtt>8$cm<5fgrzh=enOiM8T#(AFkD)!P;JrM3kxZ8N z)7qLwE3A~z-E*%+XMT3-m9fj=TdC(tS^5KeZtzz6(nUVI=ZDAqdf?-y?JpFpZ&FH4 zRq2PHyRKbFMczP;&RLL}qESb$4Fa;F+^|U~QU_F zi4H&b(yXV((6)783I`0JBYOFJ_Ub=BgH@q zy@>ND$}#GVwL~I}Z07I8dmA%C zInSAWT|9U@2A-2jjKha!DQ=0;a%}En@^5ic$(DLLXUcSz8o*@C2G^;o2Eo_RUR6O@ z`*tNp_zVlb3?!hduKw_EOBRaNK(GbBzJH<#x)RjHdYQ-Ck_rL)`Gw+KjDDlf*uy-3U-X~f*v+#8Xmbb8Ijk~nw= zVor&M`>i*acY+mUEb+!?I+~Z0e+77cH}RXlRZsVonfhL7#uh*pSttgq271V_c(TMu z9P!8mn5kUff#>tN0yedVu)91C0=Pyfx@<2&aij}rr1tbEV|6(x`%UoavJK$pZ)K@E zLRKWs`;{T`{+t2nk~Du~baL%*YF=G!aI&P`LFuxe`Fwts$mn^Jj58pM`&1S{iMT4^ zu^s~TEX-_|;E58Kh1uQCAQ-TyI`22CUV|)(mMlTU{|gyR7Dl;^Gh&16K-L+v#+Ol5 z83p(%!6wqHUWhW(LV4BHh1s>D82j)D7ZPsZ|jG>r!!kA_@Sz#EsfIq%b69lQ$V%1{dKQ@!Y5 zHR?0ZUaIj0M)mW2jN?Ej9X$f>8Qt~vOFUJrc?O@HK~-VOz;{=bR6Qy(twJKBTm0HA zA$;9O7QO?ASCx`8vFRYnu`8xPVz-@%TR@0%d;tN|p*KLV00z3O^6K)Vg3pyLG; zq>_&0Yid^|x$o;PzAZM{X}x&*!T-e4D=!)AY`*5(>s&AV@^1zX{pw!o{*e7pVyrU+ zE|NvXz&2>IGUQe&H-&m4L)4cP4I^a-)7!OiW^=odZmmsvTa<1Di0Vx$jFf{!%1({a zIvW&|7Srt%}fh~X|gp92yHxjd$gK+nvAS9e44nWkGLRq1IV{iiq zXPki!OVy9#aHwB2tT)CjHAZC-BPX*gmOuhtDQh`5o0dfDog15jN>j; zpqc_v15spf7Nmg}#fP4l?uqeLdH-`})d{@6Rt98QDG+9TfleS9{1CI?|GOxePU!kGIYDT4f%>uy(@8iln=jut$H z>!t49^Sp30#>(MvZMoW9{68u+v?6G)EX2k!Lw8}mw^TP&y6r7; zo8`;uq$jZ&Fa$!5-e){PMxgA6Xn)t(6auq)>JBzSEwlOklJ#r@$l5{|s!9U%tEQM? z_qpbqF1<6BS$Qc1x+}hOnOJ+1cf7sM^~YcR-M~Ia?GOw4vc%Mu+#~y}r4d~c@*rF` z;9RmmIG2KR52CkQjR&eXyvvC;)+`PWiUX}7#G{9+JfxCdDcebzY4OfTD#OOxQ6`H9 z!f>hLl>AgN+LT4uNFrM^_GweX=lM9q@ND^Ax@F9)ql zB%+jbEc+&I^6dFC{MI}6v#Wc@7+j+6raV4mi1bALYS4_zCP2ofV`Xi-_E=GEF@Q&k zUG6o(DQrdKR>0x#(6bW~k*P7FJ#_#Q{G0%RJywHEq{mxO&gv@`eQ5QgiV6+a%d=*G z_*zxcor;tkJ;G5<`K=+xV^Bs9S0F@?!_W#jkW#I{xM+@Ok}9Mo`L`XAOJ~3K~y_Mi71rbv_U#9 z9dbYHeLmMM53+9Ur7hKE>RugyIiVPS-8Jcmda*z5ZFj7mNIBt+E6W)(tqSnQw$+n6@JEC z3v0v~Y6r`k}z{96iD zg@d2=C4$VQ+n2ujW6OP6jXkWeyKmq;XrKQdwAyb{TlMxqv( zP;ao}H2VF%NsOV(Jb+X@){WnbykDYjzL&#Id5jHKPsLElcj}x)oPz;KY-%DMqD=P& zRMskG34ebQ;8XvY--%z!#xFe}_dq%#0GW9Rjy^jF4lITf>g{PttfqzNAfZm;4PW)t zd^pHnfbLs1k^Y&fO{V|gav=Pyn%)-_iGs{_X$;4LLBy-%A@B5Oxkrz=vPgu2mH7)qi=wPn53Bbx5g2Ir zQ0+AwR*or5P9!}a_Fb*)(>;`hDi4VUPgJ*GaCVv1it{q!)8|22 z(4!cmm8EzbPJp&d}xH2Zb~O}5W{a!u?7 z(TYGlgNvX=vtVJDTm^%mX`xV0Z*sRiTiGPD8@|~8&5ytQd|3Wc@)4{PWj<`+G;Ba zM(9j4ax^=bHnXE_o?ptHg+A8~)SHawl)Wc1fPDUZ581ttlNBkwaV`Q8W!3}uj04DX zR0dt4PHS|zzt8+TJ5laI<>=xJy`Q-!3`o1Yt$D*0D!K+#QGS)iHPeOY0aG$9Mo?6Z zx&2KREWAKz9XM!N=fuL&w>JXY;32NBU4E?j zr2LzEV&78naoLsU#XbQ+?ToL3p%~pvk&%yVSHkJl8JfAgJWuz_0U^~Kc<&!<%EEz# zqHNW6%>fpz1fCJ);F>q8y<7T_s+ho=9ty6byET#}-f3MeBU9bl{ZJew0U9m5dh$$u zR|-)O1d!MeLny1S^qSjk41=H=j05_>CD`Y^oPD>@{2ghVag6D>2_A9&2F^K9kYg?2 zJqP44H-@w-6Ba@tV5wVXvT1M35nyV+MjlPe$UUpe&qm&sukBiSbRP=YU!b z>MBbtH@4{!N}h~}ZtSA{mcj0Ud!i%+r%YVqLCVYAe*=*(ha**Wk|-~9Xr%xp(8l~U zrmhBvGmD@_s~l^ZAksq&!SZf3Eyfn;41$iYOI>>=?!g19V4kJRrFS@5B+GaCY< zI_vHLsuKB#b7b8;q`~*9684<=LCb)wPWN4K1nlp+Ja3Q~XQs}!O<%xx(H@WyD|*8i zPPa^i-kvirmRPm}3~_4$G_{SMpJ^=;VaLjMaj*4WHFuPI=9wlZb50_&=OwCF8C#hI zmBC9^aCoUijIq#^8C0lx8&op^H0XZIOJbx`{i`#=O%w~w3+~JoHG?3raUC7(y4LB(cG^kluo1gw7)aVY&H_PIU9Ir5GE;)n+g-yoF-@Bry>RHL0>vO_But)^ivC-+AU0$-Ev}tH# zh)15;H|t#EU^@16x>VQPp0QGwvwu0(QgJfYgguGP8ot;tRYF`P;xpSoP=7aTLD|`D z6Wc@k-<&?_3h#B~M5$1{ov)rtzj4*T zHv4Z9E3K7YeK6XJGK_(AB+77x^s0Qp!mw!8xb)_$Ic6>=^4Sk^+0ANRm#Tk_DL z0V8g`89209IhVa%BIbZ&h`A0jT1vTyBsj8eBY5k@cGM8)AEjkF#qf$}gzqt+q6#^k%Dqj_;If*bx zQn8a&net)q8uw}hHGl6cxGlBG^Fpo?6(6!TKAY#x=iqF4-Y(NQVyz9A(7g=arVLlK zZZ(KtdWw%IlVWbB#)x%`MDU!*25~C2G$W20#VXIXWIu6z1Wne{We>NJ%kHycFl*#F z`}&PnX9<;Ci>t`tgVT}vi9V>0zjIEq#5in5iuWS-WzRqsxTT1*{F#n;-LfWMloP90a z>`jWn;1JvJuwX1wJ#E3|7pcq?gs1zM;(1nJ9cQ;}4jflU?r@Hb4Vy{^l1VJcvLP@b z1K#P|!1)tUq+{g;KuF;keKME;hiV#y$=3A#pHjJ=-v0j z5G}bvPS>dqIL|r2=;vOdkfZr?IFMYSR5IXDJ7M^Gj=>RCI9#lgI5IT3X z94Xh2V^Qymq2I-!xt*X4t=vN@7|qtc7_(#sc6PSB$-y4Zit0%X3`mWsqS09nB+Mp2E5PldK;--uV<)1yFBW&VPvAcGP& z7=77=pq}B}W@hSh!)FUn12w4t8f}~@(Kd9ofxLg5bR87&JeB>l6od$%$i&&dO_nJD zU(&{S4rH`OVv~uRw&MMpJ^J1lI-*xY2->JvuK~CX`j1p+s8n^3<8a0;1fteb5prQonwH7Ssfp|?)Suzfv;k|ZfhOxL7*KnK z`**MncUQrG31YBWIoJZEe+OeQ<%Mb5zwUh-(8fIrgokuwQROqGPbl}-+4n>Aw??0H zoes!pH@K?N(8q@M3g}t)S@9z?rq0qDTi2k?U$6JF+7IyC7aOjCnCt%c!_UVfcRv-c zJokDW@r@65*|z$ey;c8~bKPQ}4P*R-#Z?-ij$a#B4583hV@GIV%`v0=gwf)miDx)! zsQO^tsIwe^+b$=j6U{k&e5MW}1JjwnP=4k{z7FuffDSqf%lDIU)|mtm8t-p6_cgC^ z+8mYBELBL~7oKNb{*e*sO@$epqkFaOtkIj8jl+g@^hC6T!4*BF^x6hP^1WHsX#s2; zn>Vw0z@|W1ce9S#j_Lf=+402E=o|9?#d(Up< zK9!|ZYD4P1X;KEQh!m?}{S?j9`zy{CBgQrH9ln3JG58zyZk_S--W-iJQbt+--P0op zLId|2nZ07z6eO1HU%gwR`~se9%48KFtcmi=z;9odO0?B^WbFwII1f$6J5azb{R_KL z%|3HD1)ft590z2EPzXU_$GCD|0zvg8($vUwK7(LGjui?Mbh%RUi!V-l(r>Sgt*a&6HnsP(wk{P}TEzo{YAD$Le zHLzU$%-0Bv#>#$bjY@VY^_*Ew);4o_WRZ**krs@|}A1YSDE0pJ}N)1SJvU9YutHc9aLb<*U$eTcGI2nBh zMa(rw3t-CZrfrrPYo7+icxZ(yjj95aHi`TG1_#n>z5kX+qi=R!?0&?yjf~}6om8yNtN`_^Bg}~2O;}0GqmV6#liJ@ zzOzO)L)qw`J717^iN4c2QU7QlNzkQy!uQZu#aX!zA)Xdv*(zWL2bKHeAhjX>7Ktz? zPMh)NnaZqiL=D|#kbY>FQccM$-FK`fzj!lZoLD;%_SH*9Gq`(@L6&y9<%A1RYf>5$I>7qF9~HXs<9Qxk7@gr#W+;O8HDPAH)9v(3K=B%Xf>_?5I4Uz%| z=G^jc_O2Z+=al{%dzruI`%~a$QN3s~R@T`R3sd9xU+EB!8`(HAixYTIg^>ONxMkp3 z?=_V~i=E-K66n(%X!{vr|8hvcKvL|A+^I8G?9`jJGSojuqOeTQ;_rFZH3ce5ywjV} zf3;(CLegk;OColDED64(1Z7@R*(BDgs6=6-*=IasS29cu>O$)eM7;iT_u4l>9oc#{ ze$Ms;`^djpSN4GcZtQo06!s20*q#AO(ZyMp3Le2fSc(juQmJ11_u^v)PLYD7#tXtTVhN(Hb`XOhr1v(yno8nKD!Fbs5-@=q zIXS~Gp&JCBAtWR=>IhWPtEA@S+Ktp1tZIlv{Y&; zRis2=LZI)KtdpY9w48rYWnM)hP>= z`n@N!h1e}Tk-d1p zc=T#hvw)Y+WW$Omv^drq8|C|V8_?A1@i%+~_VB$fW#;WgLLEpvZlp!hUzRD|uWEkqd^h6_BXG5Uj=qS%r@_t5# z(gWgsesAi=&QGUP9IHVoJV=Zc58r*#+Sw`VdU5(9_|R)M+o0{^j*EEgDErBLl2t6 zI%SqnpmoOEkj<+eMj~MQbw4#)md!|Su6DSTf^mvJ^cy4g+N?$;sy5_Y z1MhK!o?x?%o~Vt0%Ck6vQr>;D!>vGqJuxeVF*qn$ZYsc>GP{@ekQIV7HSnxH%otXQ zXOt*E3Gn$dgP>|ap8vL~wv6wT2{V&rq~5}!FFYhECn)UnW)NZSUas@-rpIo~0A8gI zKIhHuk7-kiK5HeC;c^(y(+YX9RuJ7*zHVx7r0F)&Cay}=) z9*F*WzGah%j_L3W#ak^ia_v}U1dD=H?VLDg$dGccEX82{)Jo~lGT$sD8}KCK|7OU{ivew9b9*lkj$B{QG--( zYFZ(CF~>Y+d7bqnv*mg@_uf11fl>mm_k^Ew*MuW_oKt3M*adq?wufLvQj|zS63mWl z+B2*r$XxNK3;Nz*E#IqVN4F|?{!DC-Sr+~-fn4DxGvc!FsO1BSbS&?av!}{998Cor zYtHi~AeVBOD3FPfnDW9KG5Py9$Li~>9NQhd>09kf7y102pPYF4z^)(NDwbP)>CAk} zqFJ9++{2e<=mFPoZXOZ`2H=W+ZfP+3bk4f6%#<5}16TKD*iarW&Xw^X)w?W?D&hV) z`J~;GLuf!H$|~|R2tosk3#46&Oo~LS3_)3U%9GKfaF)Ra#SsVv>-mQC9;YUG-y4*u zOX%8uGMoPXgoHEt~Bb1qB1{NGl&2+6agYnXdLhfjp%7G4Y z==iyxi5;u6XrX$?XXGjhMFGmxhm*f&?Jy`f45L14w5Ka0bpYWL;Zj~*BIb88Lrks|&1Ut~Uzwq-!+3(G@2qJ*S!RB-Im>UR z)?<+j_1{b8+$QAPxZz02;_VoDCIpp~jcvrtBW){4sT@6rq4%ABdV<23ev?!n(Qt4W zgCK(~`Pan-FC{?*wM%q6Rt?+${SQZ8Q+5!ePf(?wp8;_ga>|sN$y>&rUHq^MWC)BDyd716BECYat_2!9rvNl>9JEI4m|CdzE1*g%bnTHt#(51HrIb&xdBIYruQm^=4c_c_sSCK}FCdS^5pjsW9WOSVz=A{(h? z5Y@XZ{Y)Xii+BQuvF`K8iI%~|LTZ-ka;yT7B+Abve!izha@yHoK&{#9=h6fQ z)npAjYhwhwc8Hy;3|~;2Hf~+OphgvjVGtRZIj9oIs?uETtaIlxGpK>W)U8T2SlM$h z3RdmdZA5K^Y9pe1Dm{LI46A)6U=iiiA=wiaN3{s0v;OWUcQWSA1Q=zph+-6t-Q?Gn zk%&E6j`lvIGzY4dAh4mFm7o{^6laIOHz2Maq2{$GXsFl84kIaGDZ20VQ!Aw6^Jef4 z7NXPg;J?*l9~j6UyRs|L_H(+vN7;}wRx-rJhNrWp<;CXj=lHPtb7 z&F6JZwvvC)V9?3S;zNb?68lSf|A&bSqt{_bP*xy-OXAS94ydQN`XTO?kZ_Bu(RK zPddTi;anwcR~)|AnJR*NpAt$agB@yBD`%_#$P8Ez`Mf~#o0+cYwzm4=c5Ll(YCDUT z6ChY>zrugnF3OfaWw$|D9)MlV#3N$p3+-nWoUYr$iAEi^q`i}$of5I0ZjI}2&R$st21UY_35u=cFvx16(FlM3ma6f*O|3b z09>jo7IR=P!}0dt59TmHn8L?a@3{yXXoMIFaYeq+&rbm$TH2LxNdmY^#_ZlNoL5S( z6`)Pk9?7`^Uh7PwYCBf1GkY9+#67XkMVTri&}w8Y**$B8BemVq+5URRl2ygxtsiXdY>+-f5U#>m92T%rnBYSWCrclz{%A9e)2Y0~KnsH~aqO(>HD7;hnaA z`~RXdG3E&==k7heD*%CdYS5+yN4J1C8vvo2eW^t0(vDBsm4Zd;`-iG!0}nR+v@^&r zX-2}yQ9?LR%rK0jgX2MH5QIlyj2)QHx|~;d4(abox->CD9E&g?Byc$GV|w+euVaKc zCcF1rFw?Ig6j;C_juBH>w0P@QVGT_i=Nys%00c-$L_t&od?8FvJOQh?J1|8R1SalMsQ2>PQoFPiC)w~KCc*PC zmt}W41m!AEeF9%NZAFs@qcs#L7#W+%kC{%TiGjU+IuuP{SYN*lECbd?tJ#vW2w~<` zLLmF3j5<>w+u}})v2z#rWqYs9&*O#aa5I1h0H|nfd9_bEKo|wq1)UgEF~AIoaAiIF zWUUY?Vc2GDb9zF;Y|)3PHbZSM_Gd=x`xT|Llf2tr>n^Rll~Rc{h2#@`cK~^L>R!&*0$blx25GpIdmCy zOD6J6knPy+h%v=yW3DZ(Ea-00%r#Q&1!Nu%7A*egAf=U0YurSext=1wL*K zjZ$b6akLAO0#9+bN(_!KKqwV9(Q^u~N?GuO{lS$H3ZOtG&Yu%6>h2Hm497fP?#Q`w zWdGnTZKaUYF>4h%_3M5|VMUG?_Irc#40*&4U3=)d%Zo?(Y6G7-u6%;3`X4Ohm5c53 zhiSWhb4?Zm6efdRXg@oLGxxI+tdkT@;jycjYe|F1gmip}_i=0W>3{p=Lhxq#V|AL_f>w|dJN`!{ zO0j@DJF9T_A$UQKr~)FGndx2qPzu)`G11yslcq4G?T^zg7isOM+|Q$!9yRSc&6(<} z(I9EZBkCq%W=4YPCQq6n?b$Tx_Rz5Wm?%kN!aKh2M@W?VpL811BuO`-pXua=JWth$ zBgV-FaKHMKn@%=$o=Gy0o23#KDiBlZcT`Ee!dER-z{JP@gP~00Y(`9@{Ghp`&Jxs5 z8O*+hs&iYsLwFC<`q2)UxjiU=J&40mCp!h2(MhB<46|(v76!x9JN1Mh;63k5SL#GD zZF3;}#HoWC2<(qKqkX|45R3O)0oZd5`!Ccd+(R)rY#4Ll1Tb9{B*N!1NBb8mOr*184%f7p84mhyUi<=I-DeyDFUXq!0000DqW?o^qs5p-us*Zu;3%=iA>1RE_KQH_HEwAn`Q) zE34yjiTm|mL%xAcV1GYmby4TpKgS>tg8c`C{0BrjF!DFbKooex(0@TR7X5R4T;{{S zFQ|=A-F5Nbh=BhK0+;$90~r1rWx+SK9`*}-UKH_P3G9CY-qT|Nk!WK1066|j-!dY?b z88`-vnKi)Y5wKmahTvPhg17NI@8a%&Zwe{rl-uLeSQ1!q77s@+(x(THDB#Pr5Jg6U z2V{eg9Z>mwF`lGZ7Vi7$q*v9qQ__yACtXEciZL%oJPlPT0t-v0XxV1 zHGmUOWvO?Rb%7SKhSr~8)3Q_oh1ke|9eGQH`6J?aVdV1C=T>*@J*fgYfa9{$7GmWT zOmHgr6LQ-F-_-Q7Rbd0xA!Mkvz@A+%pJUryaRQr8;x|cH0tO@Ccq~J7y45&MY0mOK z#kGS;5OnaD93|Br3IWuQ&39k}0%8di_#ygV@B@q90W|X~{QJ<|nZf-G7^Vf{EW!#UIPNTP2iY>5Vdw&dvW|fA85Lv$SmF3*H$*4J(@0`k z%rL3YHINI77d2k2uY@XzyS!kdfBmpi^W!W7pW>xGz60WJT{lVU= z%EbE06Z3fW;|Ga`Ue{gVG?a#PLP@gA&dO0;e4SwZx<}#8S|t8BE%)SS!PJmQ;^RV!-ZgyQrDgsfG$I%Xw_ru!~b!c`%Bp zelI@V*E>i%Ya#G3?6jPgdbeW7c|w0nG%cvw?q_Ka_7VDPOWT1k@=l=d$(2-)0eSJS z5|$?JU{+te$KbECP3S^>cf9Ak6EbcXc(;4~r-=a)5%HkSk$j^xGzauV0%@_#>j_wd z-stER*Xg|a4$flfjuJPRMspd{75&vJCryDWvag$%`VW7aFxl!Dh`ubH>|mouy#q<> z7T5)wz4s@zcPDKYuU(W0xRZc7k#rUm@u(D-WFb@fu&Z|4P^=jFXg{b!73*`&L zF1W()y&g*B-lxyWg8q@L0q-puaYVx1A&`@>=OX%gw&pf~+yzzXj`Iz~WWBadDC8kz z))X1t^3qw&Ysq-DbeS5I@8x5Az#61f0tO6$<@)*&A8JUyQfI6+@55m|!uWZzT`sLN zpAw{*JG^~^V|DOX)ToyR(LG3)B5B#cPq}UudUtXGcu+S*yJ9I<%wB9O-2#Wj@Eh1A z2wF!2JCD{OaO+n>SqLnOk{D|hMPGE;YT$B!?1UsXv5M65y!_th120m#j}IzqZb71c zIqN?+u&kcW1Vm!o__tY_GvAd3n1MJ5-^SP)oAXdz3Ff+J;Ido5%1sn&;?L zkyFFIEZ(U2X@8;hm7=my;e>k>GMn7e!BSGH9y9+sDHK0zW(?H}FJw}@{Q=>5x8Qm2 zSEQc?zU=Gnp0U4}5SZp`U7A;3f?@ON4L48K>vJ>&_d0r))JfB+5XUM4`%+^_(Z)7T^n$A-y>Jd;{P=w6 zY%p)^d7NuGciHY5I(TW2a`7RXy=~X8Ru1~b58^Z7=A+qKhQp0a$9TE6iCFVE`Z|=% zYkpKfr-;^8txSGtcQkQiYBm$Ss#btzDowdHRq2}|p!4ybOFP`-buUx7^n;q;$B}c- z@pS%fYL>cSy1HmB3KM1$yyBXPW4AA@)wAPhWc0U1d5>R&UjqxOuN3901*vz1_l7`9 zNd1;2c(H}{*Sy+i&K+e&udgJRLbSo<$X1Qq({fy8@~TBNeJY~GI!z7&vVL^mGzorD zKgizP=V5${sT62hS!|-=83)ms30+ zdF2-*A6`#bQ8~2ttOAkk=IN&LbmBK(z-ixE{bVMM6|-3@X?AJEXiQQee_1TzRAf=@ zHTkH$QP5-T;XA2)xjg);vrwWS*kbW*_Ty^CuMNMR`XnbutXCqL$_j2;U1hAkhP=fU zq}_dJxgtKa>v{4QE!;vC5ssgAX$>j*6BJlst~#qHx>*4U5)SYn=H$^W#|h-1Pl z__kLq49MZ=NaGU%9TL)I@@R=$EKVC%y0i;~ifID;U^go}qNm@_&YQwdpR3PzME1Bu zX9}hrbm6`gbq8$Azt8`jE=j_7+_~V@6o7}2L;qX7k=nlI?2kCBjy&h5sV zu@K_3BK(U+CKGwx5*>z%7UO##bo?*5KHMBJu&90nzfv`YcueaPjR8Scb2KNx>)>49 z^u8{Anu1GpupestY#Q_sD{)g5We!KT8aPiTrF5HWxk!rh<_b4Nf_t9V*L2S*B4j6{ z`3(^@{ug=>?}x^VN+kzTELiTgjrZsaq}yd|2PoN_wZ0PJ)$|6Xo!agNrOB_Jqb z`hu+O*@uxf1`vI63!M9A4J>C3lN`i*<>eEwA>o@;Oy5$~v$uo)q7lpArIGmc>oI?f zblKDmc4>e%x2iy28NjwpY@^t$XT{)8_K2QYkpAiUSN>7fYx%OK*G92E)vk_+ z@nVlF5BC_u6~c`}?mXq?kY8q&d|l%ggUulRwM9r~R>meT-0eS_m3cPfGq8&|1lb^{ z<$`z_0V%T2Q7zA`3xmiw<}`iICFyQDKg`9!RMPF;6(0SSswbc}EI)WX#xj1MF!)Sgdg*O}gt=@^>(K)+poM<_?WE7`dEv;;ax6Q|f%#kmk{C5@E z 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%0D4LuGhJejn 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

f?&H1$t`)P3`#ax<)(aeV_Cl`jw;v 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

rftjb32ziJA&hegPV!35p-F2KQ;(^Y< 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 Ohwh6*;v8?>#&ohyj`UirIMN_TI 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

H<#i)+fGB>P4DAbQwYGYLRd(+V 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� zo7-}eMkX0Z!hUK`#I2xFC?nqA-1gA?CnH>nq?QcF)=k+4#$fW@kb9b6`CYA|JkB5_z z1}z6vYh!iu?6c|HHQ>1=*Tk^&h+c)dw1SsuORYhK_AvFwgJq+es7u^uuao0V)vZt7 zB&m%X0ju<(^eF72)d+HZiK7HB8U=kS7cES(R5TA-3^x(b&P27xh4yR!)%^(ghcG&) zr6WB>D@q7-HrT~I+b=1^F{D*bPgnlCHa0fu*hC|s24>i~q^Ygxe1YPAB6`5a>m2I> zh?;KQJ=gYU|2>%mKxeu!HJzyr+xIsP&lMyWCj#Cs#}*Daj}VZnKrOII2$Q^3YND3< z=M6)>al_i@2o3wJb(W$1M4ZQwO5c&~ySER|$)440A7pKjd_L@Sp~W}qYdvT$f4pLr zyj76+nQd!B*+UpeBnEIdIz z-1*YAycl&qH{sSN$|4o}!&y%r1Q-fh4tkbdp!o9DQ-szVEMLeUFdoxN=NjsY9%|{f z^rJ#T&IS*@u+UwoVYt$Iy&bHLlA2p!DCiSO-%rrI937d5wT2Q>JWmSj+gaXSIW6FU zFjOX|S0jiYhD+AX9q9*1QF**3$%_fEqT8NY2pao^ee$;N-=4_jbNs@uw-bQL=16>i z&6bDHIeEyoLAhoo&T&YQakp~RBz~YAJTZC;#L^eJ0I3SUXo zc?yi?nmm5V0<8*b8it)@Y&5J#BM9R;WVmKV78%7l&`@G+VhqBOZs;lGW?KTkF|cKs za;4VTAl2t5JQ2=jnNFKE{&N><1#?2`Xjcj;zN$#gw1KN9sm<^o+#aq>w6KyLQU9<& zNv16|o2!rU>LhbyJ!QG}^aKQ0Du7moGcqk5EmN4(tkG~@JSb*1%@xgEVNX93{6t_G zXd`4|l+e7zF|Bt<{N7r4nElQ9#h7??oH;fo!`9T+bg2X}UAuITGq%f=aFC{Md2>H!1K8X_n{Q`lvI$iWt)Y7S4*lz?deMpV5Si` zsq^7CyP8K+gq8!T?^)^j%%052;LtR3;b+NVML$R1v-JY4;Nie@d|&1aP_$TTST@ej z2C`sJlnv8CYzPbXaG+x#Nmw*rHvXgd5odWBBIe z+qtD9GnF(==-S;gF;H;#EUMV5=OG)Aq;{poiwI02(tl0XPB6(PrCPy?WSwXKW9EZw>Ip#D5w5-(D>Z`C4jwo-)pC1`Mc=xA>FOHyKI{@?rc0omdU$?FcoqWQ2Ld3uKc%!g-6nD=>>2Mtle64 zX#q3s0?D_KSp!5ruzY>fpAFBF&WuvotU!6TI6tusg^3M(v8UyTVqKWJ<0DKym8bk1 zOR4d>n`cHN(Rrf>d)3oSN9r2V$Vr0@cHH#GSWZj@{@V;$#dcUrT5k(msrlkQ4+*6I zU0>t*^!W+EKA3AJ1l+6{wNlsM!3jOi z{MSK7k#%`2YfaRJJe1orcOlVO z=|mP;SU3x^LDZo7{(Ou;B@1~DfPHWuD@pswp5@1)CU{-Y&*{hO5f(i4)U{b7i0}c@ z`0GSn;`{bG8MPv$SRgh0F7D6oj7sDrIf51_ogK^*_HF!b0)QL}+!|IGRsa)0i7kn` zgqb6n+nVR>dVky5e}DTomoR5kUv~1X8&4j7dO(c!ymaU$2P4xhti$)VS}F;CP+ylU z3I(*M7f8Y(^&$CfTN*#)cFwXTY*XnYI0vQNYzJ#!$!(JcdcI_^^?lhA)rp|8!NCuq zxUvk(CRxsd2bn#x1_3#f8gNFq+M=~p%*Vz{3W z*$9X~DNzz*4>N|?Nf8Y8oVfvlDME{l@j6c=gP}5s_WCCU;p_Fa$snLgx1}FvNKY8v zxn=j3F%idE4g$Yxc`#n3Pb^2mAj@N5uJFeTEQ!q)I^l_aYunbVTy(!8rJNg7bWIfi?`5uINp{)zWtE!Sdmd(bg6}121|i=J z`|@s`n`8wUQg5fKu^iVS;V%+(3B%jvPkMLL*FcKTIgZ0bd&A)}3SR(&O4K(^#$2;; z^Dk_rlp%h}^W)5o*;&F>YfFDkAbcjwk6^JYQfe70S{C+XKfuRi;fw;o90K}*O`@3ojJfro z)X&3^A|qM?;$+%KcLqL(`S4g=t^8aHXcg z3?=sWQ)=Iz8|pkIYPNexzrAPkA6|KD?8NJ;K5ZAhX0VR*TML@iu|3!)f7d_S_entU ze4;90ygW^RZcoobz_Hz`d#25Lno1!R9ubIZte2<{>t8Jqch~#LDzkq_`m3nva~ff4 zP@y;8!gxnPxwCB*Ax-H%*g;PaAulF^2{_%BdK3{#IY{0ZF;OV_c>VBtW5>nt9i^Oy zfy5gn68|5fd~4JWL7#ruJu)#E%lBn2q5|C$lQ_>->io(-i(Qp0gxT7JjqHJnle(Gc z39k`_q8*pXKO>rYKr5QrPdL-Ck* zH1K5u=nO-rcrGG9w&Iv-A>gKRO>kALPi*4ozN3x(j#=DSbZsW3{!*g!nKeNwbA{&H zXP@cFTtix4o0o+tr}%u-ZC%@jslx?U%KVYFA8Ov&TuWv2ARx3nUG?+|hQRyqdFCU= zWTkxAR@#gTx)iI4#7`4-39~@)#}kHLsrstW`CFU5f>L}b;;8AP2YWDHgG7o%R%xw& z*D!2?vF7+!L8js1Ydo{Ort%J3<<7J>T~AtkQ8>kR@~Hw0^=DfXLo491xZ%9S3Z7rA zuP}e#l5M$NgL|$jqd?e*sXIEa9~VHs2t(MJpAIOZ*00xlrk<4>?8n>exMh_3j}emL z%E}?<(8lm$fcN(m!>=a|ciQpYo1ftF?uzb7AMf{Z!$0$sHY?Ukfxoc|^5*;;Gj-qU!B7J_}TH`^qNp{}4@4^-+E-kfc|PlFy3=FzvbwOpW4-3OrNC;ZsP zhn!ABDW-?@3R1?EfJCx(Jlmg{kEu!lE(C!K0ztO+Z4+F|KZZbog$wtc!;yoWfZI_b z0^}zw!igys*`vH(0*K$S@J@689hueSmc~}>MGB%+`L=0q)A_;`a}=s26KWVs zY_mEqUVm=>veN3>LRVqNDI+~4W+QGxYN3qC#r1>hO+wpjYm|3ctE8xqoNjHL0YWAd z)rmW7A|Tb8xu?YKqsv~0=7*J{-7C2Ph93t6u~gk_1^1ZymK#T>52BYjo@ z%?k=29`AWQS1N7g-_kFL%%U;$KBShDz{6psd(USa9tjJb8SNX)KR^OoE4wNm<6@TK zE}j>ENbq1@4fhA=n7!!>QR7XZ;3*50H*q=Qtt9jzA)F_Jd4qZQ5--;-%?vCoJJO?2 z!*T=>c*YuGC&I}Tfq7wM7jwDUrb+|NwJ0#pB8v(oT;kTI>rsf$fe;IA-{-YT3?fTF zie2%c@kc_=9fluXAa##T%C=-P_iE5JRE>Ap`}D@xG^rU~3b(UC z9-w^87iKc!zTpx(cm@~!G{RPn89i%1x)BIRYfvv*>nui7=)9UCgxp>~)Hr&$%vnbg z7yjh6RgVFQznR5o-M|6;Z#m~tBS+t|x9NQ5`xLZdKS1-s7^TW?{e;%~AK?p3WmD4} z5GScnkjrFgK)5tdMc5w?)*=EoIRc*=8yc+BZD|AFX$WOWID0@ypVm1&DNsZ;FkYOC zuDCZo%;Wo*z`Z@g@Rw{DF2Gd;33#!rh)lIy1S2O;;%kCL!1v)rW3oN|ga*ji(zG|& zr#6zn?P1}EtsPshR#fJ4n0Y&sF-P$zA^fPs?xijBxCY%BR?1|E9eY!S`2n6t zgjy#6{%8jg-@x{XWBIHGath>xjm$koR9NOjVCA^Mp4uZH6CAx-0hI{$7~27Weu?VD z?2-utVH!HP)N*@#81YJt^etOL=j}b{mt?=M0G`U(9Mbv@0NN7U1x?B0B^*&|r9Lz^PKvgp}Lrht`{gpf^UfTtG_C zaJ5=7-dD2rxG5Yw!9!tnxt5O1QcXacez^AvrtMCwcE|Mq03ZNKL_t)&_MA6K96i54 zt#2f2;zmU1tvxhC%fdG^Z@*jr$G`8cT{rVW$DWJTh$Z5I@It&fn`Y~z4m*H*1M`*} zg@}CK1$RnNmFq~?bg?oam5RP_-_=CXWNk7~l5Wa2UG9Lqov3h+eIKlPsA33n?f3w8 zm~Kn27gD?zu8bIK4xkgP3b<)M=3Pf{q1O5vmIq=u%G!Md0XoK2CD>BJREC=OHqX#X zCzCbFTZ1uzg;a>H2kM!Y9Oh-=*%roCg~wg3)>)rFf82Zw1$Kwwt*LD4G9+ZE&L*o? z$U&kcyiY=8UI}NuExi;3;NIrF^DVEdxh;JY3HZFs<)>S9XwSY#EhE&Mf{D(c0mK5- zw6X-T!{T#9CEkmM$4@lX0hq^@Jf@u(Nupt~)HG+DU*Y%Or_5>%x}zbiMD44GMyq4f zZ1vLI6N&{yrb=sUG>jK${gBN>_`3C2^uDWlfJjS_$fo0-vUywcBoK6FPUr8p)i=YF z99FiO0RCzBH`i)-MS^_}i^=2G^d&43NQiT71l?c&rkV;x# zm(%&_)-EKoJ97~@FpJSS_L$xnm0pR*K>eHB(+gP2|Hm7jnQc|Hx9;8g1+CoMx(m6P z7O`WhJv~QP3ZyOZkTQM77e71FdE_oz`QO@+zDjAh0d;YK#r;`0_^1F_8dlJ6Zf{

(GlX=eVsV4wLptR{flh2aScaSz*KhGM)2nNAa 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

UH< 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 Date: Wed, 13 Mar 2024 20:14:40 +0200 Subject: [PATCH 110/154] Improve the RFC specifications Signed-off-by: Stefan Prodan --- .../CDEvents-Flux-RFC-Broker.png | Bin 748787 -> 0 bytes rfcs/0006-cdevents/README.md | 102 +++++++----------- 2 files changed, 38 insertions(+), 64 deletions(-) delete mode 100644 rfcs/0006-cdevents/CDEvents-Flux-RFC-Broker.png diff --git a/rfcs/0006-cdevents/CDEvents-Flux-RFC-Broker.png b/rfcs/0006-cdevents/CDEvents-Flux-RFC-Broker.png deleted file mode 100644 index 2d1ab50ebe5d8c4daeb348f197e1226f6a3948f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748787 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 z 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%0D4LuGhJejn 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

f?&H1$t`)P3`#ax<)(aeV_Cl`jw;v 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

rftjb32ziJA&hegPV!35p-F2KQ;(^Y< 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 Ohwh6*;v8?>#&ohyj`UirIMN_TI z+FAaqE&F!&^P4CfX0qEY!pG13!~2mJ1RDr;;!oZ~HWgECc8%r_-l2~zf?KN2()G}0 zOsR^`e*+ZpZ|e|p!RVfJV0S$4@w1l#%d<1{r#M6m_XS{3z56o-0~9H1F>d)&hrc;I z!hZSuYLTfaVffv99q){3i~@F~Qh#)OWwMwo+MLj5mkO&N5u>dx>5+;ba!Nk7{$rgm z!E>^Wc?b&JetSE@YJW4yUCWYDEj_STnH0_{+gZ&GQywj&po;EDBR*V#(M4c~qh{Dj zRCAA+%CEwxwz#9Dpq{-i1SAwU5!!0lLPKF~4=j*3Y4h;v@o3=xV&fBU!=V3d5Ld`N zWS$QndrwF>*!>LFyZS>BLyaLx$|-FZnTDlZ8DO@HBi#->){R?DkYWdDkd)s-IpqK^ zBuvIImdFy76J~EP;YbpwE1_{SbMww~xx>u@Ki3%@wFi&R;t<0qk`csOddd#A_8~Ka z9dh=Pr|9AgKL~2Ks0t~olIH8e3n(?%zFCIz54b`5$q(yAw9{Lf@l?E{Rm*@`A@R9o{J)02q>5}EfkM^yFg7eHLkEBRGhy-B&%=es|IYesuY?~nnx;fm{ zfp}#0>U#2tZ*Qq!opY8m(+Gm$y2lyM?Q89ieDE^ygyR~5HYb&W6B6x0xQ-=LK_sX4 zkI`CIgvYr#6w9J11;-l(9wP2Wa7~d+>RBxVu(cC~vk-t;^n)q*xK+{~Km0ZE$d@BmI$w0IbqoOUN98g93O+X&IA(n`Enj0~PoJ`AST$WfMDGcYhG{yj&31h<4 zB&FwgVpc?1iFg*iewODXh7BA>Q3}qw73Vhv)-7W?Kso2q3nFcD*ZGe6XK($o zcD7>6H9K)}fy8#ThN10UJgUmlA7!#mcDn`|YXkLO`UA<_gaJ;Dx zLmln~ulXbS3f0r~mQXi_BZAe4PMwosSXP?;0>M(sc9lCj)d%z!r}H~&`bBxN<$bJNMfmelc%MjI)!mwqujqI}t9E{D5oDa&!7 zqL4O<#$jW44;@Xl=7&q_J-LHf+u0+^wln7a*nuZn=FyaarggVm6@NCUl|we3 z<~r%#cB+BMWwU!&UGJaL^)CzEa|%^;J<6!k3%jbh3(H+uY@bnBJieuz2{(eKs^j~l zmwsMKRKv>G@*J1g@)AeQrpl3R@6?s4v=cW>&0iLk51C)KNmUE~^e|h?q#qb5_xAaw zK~mtcYIC@A=@8CRNVnuO?GwGLk9^|lJ{3`CJOCT}KDXiP;t`R!xlnz0bff(7&2Q^T zR8?C#cll3(!M9g#@k}wm#b{G8{JEr&-1W^HE6<=RCHR!N>p>burtW>xVU!+kJg)4% zhlw1Gd+Plu#yN#(vskW)M`<_R+Cd9Sz}WtIY2Jz3g=CSZ+`_uA{4&OC2{2ay}msY)k5PM*mnc2Y|ImpIsxn!WobiXIWx-$ z+(k8IvourSGX0BFpxt>|;stPZrOC;GSLORUDhWqI##Lk?GzO<1UY77b2h~K!xo_ld zyB!wRWPN=mk=idKTC)>pjBmmZ2IEQ{7U(vQQJHhKUonfkE4fV0RWUtEmvcwHTyB?J z^Z<)|)#=W1=9Aw>*>LhchF~gOY`{jYOzNC2nc&2hd>Ccd zEU=@&&)?tZDsj+KXhs)NE)`cjc^yo$HcwY>sqp={wU_t$4&#-6Lt9VOyvjsexuaF@ zAh_T7fY+Is>Pot4L8BxD-0=P`;YeHHOA+yh4Groy0+qB#rEB2f6kfWiOVk0TdGpD6 z{6hQq>mg@ItBja0XNbb>YxvWTLx8~%FI)*&zK9x7eAhEM+|$Gi@n_v){l}6c^}BFc zSxI4A4*yR7KZqgirKE^vZuf}(TuOm40N=Gj|C}?f>xBHaWk~BN*P*^11*X@Ep0H-^ zr0WKdKQu!3?l6mVH$FIn%pPMjZY{639sOK0UB@mi-gUBi*VoIDHJO>3~ZhQopl%)c92O?po$9 zV5jm&loz7IudhX6^oXy2m(DoX6jD)Bh5EiUf&UY#gmVIyOq+Rgv`wMIty4BjkINg6tEep6mzS&ZwSP}_iejMAA|ZT=QPY% zHqRu2x1VTV?VrOo2v2YN$%PEXPuOn0xZA*-j)iDzNSeP-Nb9~`mxYJ*@UF>-d+75_ z{GM)o@M-7*Q8cNKmXynX*0y>xD=^jQk?r~1$M5Ky za6Y^v^eJ_T3(2URv%q=}nDM_SKNUAb?eajQwR;M?ULxXrOzur5uj;RH>p*ePt(Wi0_mjc`1S=Z z5>ByQyoN#D7x-Et;~n9*=GC9>>FPdqyi?a!537$)5t0itiC@C>UCkA?`|^) zs$qKEWnOLqUObDmVa{gWnM%*s3bxQCS2H+${kDHIiS03HjOv+&88%X6o<;!LK%9cj zHp5g=Ejy$|C87c`@7`VNkQ^30lpt>mO}}Tg=(a z7NGXFuR8)H=C;y;$|*2`1iC8b1+;5tF>1{?i&k|loHOFq`+Y8oQ?JFiheOoneOBNZ zJ_j6!ttD13o`0HU(m%SiZ)cG%@nsf_Z&tf^ewBmZ!w5_+NnvvsV&b$Z&V6kzU3^k# zn|+$QjI#y3hl6>)h;n!3`~V%3^K#@YH-%i6EyA#vbM5AG?k?Rkl%&T~-d@1!*~9qt z)JH4el(@ol3fE;{G~$Hz!{pGXsSXR*X)}aB;?IY9Q+b8qKw)FCoTYf+t_Wn2Z>@Q--Y}qR^ z;acNEdrBLjOOlrlW-O7@PDhO1nqb$;b=2Z*XYyN|JZ<&?JS z{V?az&}z)hOblr~Z}X4wZ|~SFzdf@T!QBZ%Ut>a_iyGSle7@$#vFyvS7Rsi22|fSn z-g)rc%cnjB4SPegZD^2p>dOU>r`==5JHwiJW(2=qST zf6u2S&U>)8fPVRvhlrgPU6b`&pQc-e{>F=!``c0ROZ-PF>RX55&8b?$fbl$pp?mu4 zjZD6mjWMKBz%WO0^1V~^IbbEf%I;Ou@a!4ncy5c_?q1iMl&|RV?p}DGWeQ{9tL>#+ zUH(9NbVH{K36(9K9TXTwg#rdgu>*DpvhisMdAs4&LKgJlR(vYpId8AC4fOT(H zH$tD%^c2~*uB7o6Xg62Vlcr?;9JeCLlTf`t`1D41YJeTp;@}^1i0s#O_$b)8HCJWeq4M8 zNpAd1kHZAaK0UzOZXN$-?EKsD_wjysdR6dPX*xyh51JEunfZdt4Xa#3zx{KE!o52H(UX(#+K6d({xmDkQ@)kB z^+H8T(_VS4AF+So-l^ymq1&3tZ0KC^^e;GD~vo>v4`^Z z&iqK{*y)2m>Dv4hXM^Oh$AK%M_v=>o>OE|`{9$yPe?(c!sGv-T`A}MYsGh&QwDQ!L z2URnZfTvy9*M5GO!fGZXWiD-c?M_rbzCS~Lg`T1qe0PwlSjTzfrGImk>|_-#7ho^C z*-KyCa)DY1pNAwviHB+`b9TYULh zsNXT+6g$DYOp~?T=QmMEe%L9;DT3E~$@}hPzo~tVPstY$i6pfV>3k@0mwLKrh|+%YcC)*w8tcI!_<4NMZB-}V^^fw;=xvI5^f)!~(&vfb z`JD^kl>K!dO8`>v1JCt*!t|W_NQ3D z{_PyR7H|eUg}FbS`4spe!KDU{YFzHT?J$KM=9$a=`CVUX_o4H)l9* zCwHD?-{w2tXzAJMmveq*WBA3QHhBNrGA^3D51F*Ovs6L3y$ZY4L2DW%1>qq0K4T5E zTfTJv_!aujFS+g<2rEN$%C?&Oe5>g=%n=fnv*7bru#VQ!?BhilB;muSN07~djd=F_ zve@V<>yzHNp}DvYpi{kCtdd(hLqT^Oz5L~MS0yZdF}u$_3%DP#bR2$`e@Jw_M7_Rw zniBN69=M4>^ZJnQvs{-)WLyK}8Lx6?1LB!?NB^NjGrFY0A$Gk*_MZaKUq>UnLC55d z%flnn{(7IT_(OcZRw3sC=SrFdUpLH@RT-P`r!slLrM<{9k3CO1?U@|0UnhwltVlC21IPFT*su(f%n`ORCRAo=shZPu%1@($I1%tt?tkT z84TQ`fp;!m9V0w=z()ft*d?v}KR}0+n}{2D`I)*7U8%U9&;-`m9p+=N3G^C6pLkKm)a+{F)Y65qB6y6u3k-p=D zTAp_{+{Y!$F!ywn|JQ2VTnvJ&G#jB`T->C13_?&~o|?x4$K}0;(yKSwlYBpMJfwr> zO=bjr3szt+axh)r&7Xni9knZ5p~az%6aV$P9X5(?Lb)S@*d7k(cVV9%N|jZMm}#7A zaSd%IhIobbG45_O3{S4FRc6-JjWaHlRwG-+@h)#%$Z#zRifRCUG0`2 zUBqY)V|K61WKorX8kEAc^>Oi84yiKliMrnz#Y<<4V2Gd9fK-aS^<~f(#0RQNzQs#c zfKF80uxbACRhFG3E?_RK^?y`0Ea;}6wBzEu(w`x$1+e7AR14)##tGhhRRL2f+EIjC zVbnSJ)ld^gg5A~df!aEdh##zaxPEgy961q{;z}8!AG_MQng4qhAPz~b-v?$_)9tFN z)UCzB=Sz(E+IM^A;n;LMN`S*kUvAhz<1fIRacR=xsb>C^*ju~m zJ-H)9@xAt+CLd<5q?mfVkXf0Vo}cVHbi}_e4QelAfL4&6F{PTYUoubt2u0>Ti>Ek5 zL>(ha9yn}v`liL>PL9S0hG;2HOU_~~$3_VQUa-)=eeYzx41;(5wLNCXhE zG5O7b&Vn*A>?KqNv*bc)11GhN5xUo$6d(l?NM%DSkRnh=6kw0?+V}96z%fEm>~H<= zk1Nr%W`7&$b2%|B85lnNW9(5P?dUMr-Fc&&9nXy8c#(;U`hgH&Z z9 zt1r7Fo;U#-v{2>c+b!G0H zrWp=R=lVx>$fNQSCY#@8422WW!5^rGJG?^)wQD%L*+<5#BAp^ETDB89G@zPv^fyX0 z;INp|rXZ#veZ|8h$AC&LEM`w6Yj*1hS<1oI2o6hB>U4nlAOD$dtQQBn^YU(ix1XFw zLx0z%It|S|`Rig_U6O2&UnMu{dDAm{z#SnQJ86bca=NeY4-n#SB^UYKucw;W?N3j| zr@YmcUw1~Gc6bXLEpdb|;{;jCb+MX~Jeu~PeL4jkU?;;@_l%}@e+AL=%YdwNF5sHx81)^QR zBOjOiD#tS7>Yoo;Wo-vBC%h-NUl$Q+dU0g0NP+2+e*opds8m*ck*7I#W5?-zU;CrQ z-uz8|uHh+0GeoPm#p_N9J-ZDP*9klDl`=r(?K+Y03<-2|Uz04|N49sYNSofK%)S)8 z*d)`?3IEd+!6cR5wJWT&F>kw3ht8{7WzK0Zdsl-ZKt~oMuBlpybKnXa)(R>aM|cTh z!L{aEnI1a&xk$ck*!OXzc;=WJ!w*X^)*IOSmLx@0MfG>2B5eXbB@<*Vsp{7_=@b$% z8Y}TE!tpedkn!Zc%PV+hHHSgsFVR+Kz6+H_!Wv9?OxVa{p2`}GDQtMhWRh!i11f!j z8C>3sV=^1M5#wP_cl95{`b>ev-W3_yvkhx-RsM6>@`nldzvuJ(Gsz!o^cXi+^?1Y!%?dvL$_hf5ePp;dI(XDT&}I zZp+t6_{pon8+sDwqiuXOb|T~I?|nPLnLG{sr%~$HkF(fSC=;^uG^nV_5%rTqn_3Mt zWM1UUl10~6^^%(VKcmyc2+Sh7LpTKR8d$qIDYF*LX8(-Lr*mA<8Qe^Jlu~Ks{QTAS ze{gr7=j-R_xmvK|K8d%KeXXYG<$1WqhhEV(6|z_xjEffyD7DvaKh;DuK)ET;&GMm# zU(z@d=*iQC2G`d6aW(hAD@{p6v4?HW>!MoGq6x?o7*%T`z|cDHN7d2sf#y1kgd!Uw zaJHm^gyVg66=iY%6ZjM*8`4_vB0=%3{`{zkXp`}gE~>VYR5EHhqX9c)pAGFOhCHCp zFR4I#CQupuGQ112VcqCXC%Sr&NHILADGBVpMvxwzzII^lI$X$!k+4WQ9vCj{QH&Ok zIO_s!E#HWa{~q~FgVG_%L7h=7m-bUwrS4kojZDZhf@>lYYMdkd8JgRktS9!rqhVlM z`hp#Z^R-G24w(juDyqJ;iXXo2ZsL_^J_lK2ORSh}6Rp=~zTDt$5)dKR^Kr98J3=5` z-8Jf5{$0D$h$X@@{6g9jS{Pr`Y2xG-z3s*?+bG8c&Irv@t@V3~8G$?z`0Q3*8~<_y zk_u!`>>orE{nQz}QN$NyI9;e8qJt?`v@Nr-Lo5$(g*v`dFtpg!VjDw88(CfmwyUc; zs<*whk0>))g0`{&HD)Icw>20ihPO2qTxjl43kOO_y6l?yU=$ zdE2XB&_B5U_0Z}?HH7~n^0ICF6KbX5`|9L@7M2z@GFx(t!$bN_ibv7)m zrJpRzA-3(f1d4KrTuPZ6PcH0v25Ivg#YQ7XrBFl-v*Y}Osp`{>_qX_ig6z>O+Ve!SHDt&h&|uXiZ}Dm> z3siE30cQ^U6QrsKHx+Y}9)9%zx%OJh=thYK5G42k_9#aCzy@346hvLA-Hw9PA;X|t z97Rh^nb`Fd?}_tED+X9BCv?pY*Rhg53@;P{x33VFE=BD?qJYvKcn~$LNRkgjt(oD4 z`8BQ&9}F*TNZW-2^vMdK-z4Zp0~VQvPJBZ`ln!Nbr{D-Mcg6(o!2c%ZZ;XWVtN_Nm z8;g+;ZgC#gvlGE6Nk*5Dj%daK-kSpKj*IF~tlbA&Ms=sqx_^TT~BOTG&6+oOHbwSNSjz%u z@F2sVy{W8-vQZpPZT>v_ugTo^>$^I;SZNKv%x`eX$xsb639uI|TFw2Otb`3p>iuT^ z{hb*m9x;$Oq ze775V(v8l!Itp^*$13;X9JTwuqtb-`GQlJxM1Ceq2%m^OJpFbgj5&|H@Nv@l?4eWW z>c_u-6m11atoc5bByGv@(@5tlI<6(5ELvi_CGqi?4S)aUVoo;ZL`v3$Q--J={QE02 z%nTIOZ=toJ?$uGrgoi8mN+QL0e{xvYgIPlyaq+VB$W5L;E*cjCj$j0u>@V|oLU|7#OgU-{jdb?s>{ zi2h@qu;TR6g~m3Zmf=rCTy~Z%i?vy&fmi3V@Zi;U1MlQ3gYl`90--vQ;>(GgrDsd; zvR^;X9Cw#u{~;#6fAR|?*{09dbD<+9%8$*Sz+9Pad8#~C1v5ptrW1brx#+`_JV69+ z(hKXbhCsQH)R7*KUUlP4!kEY|6fOK4Nus(G*`? zLa3l0_ft$p*ZUmtQ|o}7U;msRmdbeCVCtJFvNB3OyIW?P6G~s=Z<#|;gOHKptVH!Rj zyj%TfOkl?DM`PCMi+d+KLXc6Pg!)A$+zUfJgC{#+@iQpHiR2}Z@NwL1mr|jD;ww}p zzh>@nVmkb)CeP~@dsmhu!#51b3Jrybf6a1+{q8u8WLk7DXUGXSXJU?6g6#A7Lh;IV z1T<){g*ZVobmVC1b1cYfMu)588Gq$cJGLUcFdU-_iT>OW-#;D|KGrn$?2udpH zm)(i`W(ds-7M8)Y3}Gso=krZRpSF$@DzFz<&MS(10dF7lZ4z&1yo-hsbpRMmJT*a*U-LEN4S!b`n2hK*7CF8;f% z(PG8piqhwlwHhMJ+?GWR#9-5vD>3U8%%Ve5b*E$GhAF9sGMuP=-8|uio-9oPU}NM8 zy=2)fVJ*&;u#rVN>=Ow>!Q&EQo^*R@uILl1Hj_I}{ny#M4A+wJpq5``??=JksElXg zY=CGubcnw-#0bsOQ|1>TuOQ=vqUGl~*sSYYMacWQj>O6ZwLqmn%n2e5Zn+q0;S@~f zDHyUhQ4a!C0C*q<^$Moq(3jNUDc6m)vY{GUWo=(A$=Hre%$*EdF3E^<$|8po@|Fj6 ztf?aEPCyM{Ol>^z2NDAkwo9MqU}4)~^ck;8!q8S>_pO`Cp^nL2u~gx2H96`7utQN1 zPQkBm*NPKpVfk8Y(@hDFLJfJ^C6-`L)FHhE= z%S2U()%74@T8>!oTiAEw%#vtoP&3-}1_469l73m07_>Pn?2GO^adLT6q`d56cW?=C zZ=Fc-T1{^o7{+yli&aZeg9%*?4{U0t0fTnYYWWHAUKu0(R!FwGEcq+h+qs!Y~RP#}K_ zPCEZgu&Z0sNApyI;z@Nnp5!Z@%8I4Aq9ND*I-`>CB)Q7j#kQWZB{WE&iht-4%3Qw$!a(&;o>Yhme!?1<)eDN|cAMQeWMc67O zt>m};eiy+t3=-pUrlJ1eYPD8qXl@<+*F?DXf^~moC&UAdUuYs5+}ErdC2jLaI=g^7 zDvz6pJ<;|2kxARU)=2bi6Ao6cquK3J!%a|w%FGu?tX;}z$W#u*gKFBy2!MKWYMm3dKc5bzI(pzM~8?O7z+ytvF__e_)*2Hql1c_!*$nz`n=H#|pw({{TdXgQy}c zbS-_^uNuf7MoP?-(AUsHXps`i^`9E9WXv>JY51(^B{RO^l9eHp4S(I4!1RmTqi_pe zV^Y|GXm1#;9ArC&y@5dxn2H1b`FSoitJt(PPeJ!kY4SW1v3Idj2;#d!CQvO;v_dc8 z^_K&QwT(a-o;{S6(e{*zT!@~@s|HM*HowwAQu{dFa@wk;GP*KKC+xt=62MG(|52ut zIk@MLYVAON4)+nl8oZLJEJ(`%M;6$3yF;srnldUS`^LVfb%+=h^oRU!qOsu}H{G(; zNSiKLvJZxeg%)zSy-yPoJtKpTsApL|zAiE%Z*NynzHVwoySVWFBx8Z?!Lq-pIp23P z^oVP*21XrqoY-qMU-a)=n8+AO(QmxCbSA;jF6coa)F2iVEctq{^iq}jd*GGBF!p;P zxt0KQKje;(Fn@HR$Ci}`@?%|c$O5<~#AVqYV|y+oBNb?Fuwm~oUsB$G5nrH$ zdc!M&X+HWTX-6{5h>Q@}=bAD~kFk<(acQwv!?33`Ny#hkY2d7ROVhx-9(Tj8SC?bq70M=-(d_3}fhP<*kxSP`osOd_vNI za#k?n$=3d!H7BC`N6IFgCKdtmwb^@Rz^ML_ux_CO8-N$0#TJv~)48O*t~TO(JM%$p z(XxEhj-Nq+)oP9ZLB6V+yxU=WS{)GoXE#1gdIW;WVV^cS3lt6Ddk^-zpqk<=z* zXlq)c+0!LjY6tlpKE4!J3?54O9~xyhH&lm>E8_5l0}L* z37U$TjkmvMJP4~$;*FezHNgE)AH?nNRZGB}B5oLWsmSy}G&C7J9pid;r5CSlz+IIT z*5t}&H49bnAZ%2vQQSwld-SQ(fmc2on#-afF~#p;mgIpzHQk$-^7~J5Xek>-h~I$< z+c{R!QKZ>e&f9eK+aLFTs$rAL2FkfH;rO0EJ~6Kp2CJd+tf4}lC;CwvB*2?md1B>( zQubCc)zHYV?K=Sn{d4Qv5NqRc2w`cAd351(avRf!F&CUVF|fBEt1w_6ovg>Qe@zp= zFQ=cw@(|a4DVN3$;lh`>((ee-vn}?icj1BKiGBd>_vdF<>k;#c6LDr|S0|*Lsv!o) zPkdQwK0W=an-tcA5jRh*M8@Af>e*G;Rm+FN)}|H*#n)QMa;O zkqK%A%l3_nQu3FmpUGWn`eNedxGYWoPJAq83*om3TuspbERqz+e$5R^e~rE;UJ(4T zA>A>B;mj#3EsHNpd-JzGSBE&-Ec(lV89#{Ok)qI4qfJKG9`D*Qw(m009N=N>-}@-i z1u>Fqr9giG> zX~PN&Zn#W_MhN}xAI@MPFk03JHNM^>y-2QteNoqlXcKXJ_J@-wziJWmUy7OuaKDax z`40zEq`GwyOE9^`>YIe4sHt~I;DjK`j_=%7BW%uIm$eSCaIjK?->EheT^&~Ik-xi# z`9X_ow&ej~xR|X(c{pMqeG-1@SWG}eFyZMLj-}nW*N|E1Cf;6Tpi%GS6*lmKZF8_# zg^F+Qci-}eyor8gks;-%Tn!L*MTkYUTA_g>l7!OHXR7gG`UHRt(ZIiRXc>>b*O3=Dw8CjEtgiBG z)xo4`VER8OyZfGaVIE4GiuGD(Kicz3gGM2jKkpoh@B#v;%&WguQYZB}lW>hyjK! zT>0TuZRQKka<&6CiNugm18#8ShArO|WN$jgsm|k3tqQkUS22>Xv2cF~79vl3msM%R zZuZo7F(_ z!?UvrkJa`yZ8XSTQ1oD;sym8=H zn{bLWUa9mP%3M*lZs5p=c6hG+w5ZRi^Xw=2o(RWy2_4CZ#QK^jQ z&>8eM!a@5nET%#}F)>SGH+vnI2xYCnC$*lI2ML&`3e7MvO%Iy-p{K7;Sds!_u4O_c zLBV!!+v5FQx%ihqDr(Tb8utn1%KKK(9veNSFc~XjwYg1-%w9%dgoQbQfI8F z>V7un==*T5T_9^fj84lG zO1Pb=>#p^0Rr6u&40HLD=a%-k)@1R20>Y&^U)8l37DQ7@ng(taWhFEA9Ug9TKKSi% zurkpu5$O=o8NUS=sXfqz44D7yvw|24NkWtAIsDf1eW(4j1f+= zP#wkg>~(VR^a+JK+C+Fc@JX#|+H|H%S)2N+frBI2kB!%FSd&oo###xM=U$9X8Lzp( z1*sdjnjC{P=A;!p>~9v|z3Xwk$#a~dF0>pykAcMt##KMIbzfs&i#}yG%_hp3QQJF4h&KlBu=#GU)e1WTJ*@TeT&sE2F%6^ z)F^_{gXOm@^D}9iNG?dn{{fyrVZWq1aF=RLmU1&r3!Em^nueD8)5&1MowUp%kL7nx z#TVl#Dz|C3*3S(4qjpI~zD#9-g8Z3aJ{A)#VDaW#g@ydPutO1!HN_?>i09?UAYE9nOzJkDbE$lBij`EgQ!>Ovtaw23`v0`;{u-tUZNy0#sFM#rr zRc4ZJ(XffHxwJh&U42c)I>B1a`BcxTcNjJ4%wryHjt@?IzqlFqI? zfhNc*5sPhijI@UWPT@q4MXSv5wBxXLhOXlh1nl-qW}CVz@77$T=k#f|L&7Ah9!1Vx z4ON+rA(05XKv~T}lJquVV3Pba(wUq~vI^*iZrF%4H>GIPsj6B$6`KdZ{7wZ*kjIG1 z-8vYvEcJ0mTC3FoUILD5oJ4Er#nX9C)ZN7&HBOF=p?vy*)d++BO5h@55D5>BJEj`1bUzn-Q=s=uisdDNQED&heB; zYxfe-H5?0ZOFF}h+*(ejIPj!W$VAze?cftueQxL%5W|U<)j#%qY?$J~<($LoR@s-S z=*E78sC?6%q>s%2z-Y(8u1OX#RClmYY|z3003ZNKL_t*UVpUb=@@(d*=)f_u97qy? z%CVKmc{j^!EU!{Kzf&R|yN5Vl*Qs_*A6qe2me#8eEY-5fm?M3lBd!khZ*NDKNgisc7s?1IGHxR>zRFxhd zl_%*%-1dbkMTykzu+NdJq_l?+@PZS$6OULfETOyu(p}7>%(PTy(=o)?0P$ai12wV~ zO^gQxm1QS7j~x3j_Nymx@q3T94XLPEao1T>WTqaIAPuf&$Z|UI9}Bff`0IheR7TKc zAiX5^2|H6J)A%~c8kFUEnO`O1Zyi26xIb#iq*A*3ScEjCPRnUb4F7wRjeVUT}uFWk%2FT z`0eI3Wty|vZB6rb5D?y7l#qT7A-$FXrEQbK8+{+g+WIL_e8mTHJ z@;1bdsdaFI-48rCtyok3@ZPis#g z#~~qqXtHI66oAmJx>h0ZO;&wFW8^c@X z0im*t3_2LDaNJM=C2V;(+(7a$pfr-_c>Q{l%-Cn9CwP%?Ey+V%q z1fjGMz=dw`&a|ytyLNdpWtj~KRPSWN8q)E{IOoH|f#@Wwox<`;MA1H2G2QR?OEq8A zk+>9fr4GhxHF=;Rz7wS3B?a-gv%Vpb(jFqj3kk^%_L5lA^$kwj;+Nlj=_@NPTT7(> zG2*O2O2!@o6v}%+xzF3`7okI~X-I3Aa}Ez7vXz#FTYjf>d^rMjt2Jv#HC#i$C!)e; z2P@3_J7G@+6<$W-zX|(mBuJHZ>2ziT0L7eyg#`Ybrg)imre!^o#2gxH8S8gEAg&FkwDG!I}TGd(~TF`y#C1zmy9caf5>3t~IYnHDqSq2ChrV@vJXc{mo#>99~Cwxv2ysAblY_0KY7y_|$a zeM|l6DrZY{&X-ufPUD+h-&A>SwE*| zUnJl^jrePA8?Tm@jCnVUUMyKRiGg~Kku_$BIu!9urIW|4ip1eR!};ge4t(AlT;*as z{59;byb23B0-T;#DrGVwNL696!(wHs1)RlPBuGsJMI^$uolV&3^7ZAmy;Rz80cy#I z6D`JCetUy21=F?RNba?zjG-Q?>{hF`fQa|nvhl6iR*Vr&7FAJ}GNvrCfW|-f{WIwG zx|bs=Lix5GKe9}O(BE~aYqkZROtl9l=M^kjW+GKJcaK*Y(WgPjdJ9^z{uzd>PtX?@ z$-P^SvR)QkPDsC7n7>Az+s|xjR!WJ*q8Vva&qI^Nt&*h2Ug&g^F(R_(i>`-ig zqTm`1@TRl$CDs(1t}s^H(cU@RQFDJQBHU@X`1EKW({7z;PK*G~R}r91ILLS?>cbJ- zAzz^;(IU$fFP|~0r)iCrF@}^CjKRynyjoL#yuKIfVz2y*@$>`%4T<<8Q!Pcf{y_az ziknSymIKK#s;X;2?OwiMCL=^nQnI00`=P<<3Z6MWsbW{GzhE+v8&EW9QX6y|0tPpxH6q!V*E@F5WgSyta% zKVISNaUxi3DUHHLt0PVYf_EeN?=0}5meNEiR;QEvjVJ5xC&0_080|VoX)7m~%yoJ) zI-u|?sD!FUoP@)|uD_G+8pQK@8HGCjhGfG9obhM%oc?ref0I1kabSBt-L0+xIK`^p ztW6<~rx*K*Cl5ih^hS&)ApQX4*zC{%vwT6!ZylMARSH6VH$q=H5RtNBf7GtAm8EE$ zu2vM+%<772d)4toTG+kW{_geZ(!tmnbkr1Tro&-SxH2sIj)|@Et`8lJITnWe-#Ww6 z@yCRNu%)wQh7}_k(hWCpGJeRBW(o3F_IuNb@)9Wg>qupdz1D};BuX;qs1q+Xq#Ewz zXxvCxaI!R{>Z2UlGD29>ZB3P?*kV*rj3-+WHs?1S-`d(b#S-FT2V++=1*bApp0FGa z`MTj1fJ`KPcBw!jnV3Uh3=R1sQ|xz=j9o3t4-71*pCZN>y0L_iwm6mZL`s`Ql2nx? zQl`q?q|F9Kp&q`T(*~gVtJY*JMmCqYz9iCbv|K+#?w93#q=o{8H6(U4$FI~4n#NRR zriHB1CrF!hf)dV0^ zE!*a#CF`F+z#-0LK-S0tKBG7mG13lc*CNsbpt40)!Y?KOrArYOgioE*{Y!u z&y+}Oi-DN?%}sAUX#q;xqSpn}B124zo?zkKF4v1>z#7W}o(BqZ5ul&5hDu9n!sgt~ z#w#qN$mn*%v^mLOn?GN$Y26lNNHoRnAqLkly<>7PuX1b6+7FTARm5nzWgC=M6I5SD zqHc>sBvOg_1V&}Cuk;CP0u$f`i5@{knPt`Ai9-MORJ*V%3Kc>I`}`Q+%mB1*>ZPgH zT%(eEie>$3Jl;6O=+f7qBk8M4)t&7EWd>vL^X>~r#ODD}w^}pVcXeYiSLvl_g;`r8 zRdPjNhKMoe{YAo$3U;?9i`d8EMR4H?%kG^g7evzfl~v;_)t>6gb;$5L=S17k9G}KH zjP5)rZBi0sip2}SpbZR_Eg`>IJ1U-O<6Eh;$IT8cpM1ffhC^MKsj50N2mALEbhV3x zV0JcTf}ki*612j)*X!;b;A1yEdFOb!@P>@r3am60D97Rh%|byUw^MBq$+1xCIuCX} zZa&tnoQaloZg&hdDtRR1POx#8^ORgBmK&QC(hIH&EPWVF)^UfY#Ib7Ba?>bV~KbKRM z17jbAD!V0pi;1Yaoy}AMx-E_)#$&PST}yy<&KjzQbbJ%%e0SKf7>Bi3mB;0sW-0H& zVh4l|FvWP>S|G%n2O$6CxfKlUhd1qS5dE@tuRotVm17ddH5v~ib zs3$e(FX4WUdQ!1anF8Z5$7WehntTn^vw&=4$X8fw>R&CgCl)&6jGs$hnqJe>Ozs6) zN6dHzfX%m5YC+6!G*$!A>sAetu-L^@k{Id;ITlTcH`m{fq)f=>a*Hj;kW{JloKUNT z%50V&$VAffG6xVuslCc;ys7>!Kz3udk_^*sJs(k781$LSx4B+L;(0_;gO%aA)|?+t z#uoykQs-iZf;>mwePJa>A}dM-3V=|~PpAi-^>d~b@_d$KGpzS4z&ruJ3tjBFP;b*+ zBNwo0*Vi)zJ_uD7YVs1P#O)l6+f~Ii)dKE&j%oulIb6#P`lXf3aaq_o8$Krr^}!SrdSKf$ZIOfQpo8`!~IQ%g;>}rJU;ju zBm5@ltnU`?9)O`vY$S0IgGnm!*`xAKm{>YCjuFgJ2-jBU>#OA$O~zLOP+PZkDblgW zk#J{ zyp5=12ytNp5y8e+mHvGm@sDU8R0}WsA1I-G-jRq?1ObDvk(A> z#p{5u3G>ASCTEUp92o!}#bfK!W&+yn;Gnk2--(a0;VK_}Fu{U5OsruM%B{sxvBAl$ zWulxaq}It0sA?)#$SxoR@v}yNN820#{34-Q+1wbgI_zg9H3RaXxa~|1okTDq{`*eB z7oW)5#ti7C#_+}})kjh653*-hLyQpdN`q#)8&K_Q&wa8?yhNc|;ec{`_wMcQpWv@T zh7YRlla7q20jtz*q7)^-*<7~3RBKZac24O?&n~3@umg!V_e@=@=eTvVwY~LvMf9bb zy4u;N4Gi`-tJncvrx?~m_pYp)#mw5{IW<;7j{G@41pdhH+lB|>BJ}kx_dJDlfLy2l ziNitL0$#)CYx>nrI=z1YLE77y`=U1Hav#hz*A)E6!GARSetFY>C>%O7GmOD>O+(Gp ziu$u{v}V0YYrSb~_&jG1Wm8y!&Byz@#W&1`yVAp|*aGu``IHlR@Z2Z=y6Qw${ytpw z!uWPTTD0`a-OsiabJGn%6Knpq5Gds!DimOpWP8HzryJ6H#2b+-cKEq2Sm$?I$9J(1u{BAF}LvLsR-x`+@hm(oT$QG;=QS?F?^Jn7| zS@B6KqRmwYq|Vk)8I98caF^@a1qZSBw==^(;}kmaWf9XH!)A%|H;8xA)AS%4+!{aN zWZE-}={RF?_CWSF^zdS%&6AEk>Yyue351=9`@Ih;RBtxdH%CVM%z?}<-(|>@OJ` zN;yTAakTfSK#YFsbn|U*wT;#ZE%KM+yR)*ejcBg7-kMmEO7}2vM9Q=qdm$&?;bQzV z4difUP`YtUBrnZ&w9Y4@k6`)eLU-sAT4JI%Au`}!JF2Bj%8+nK!_8D=V|Nc2Jq z-owcJ11Ddx3r0uoiyHa*QcZc>S%X3%tCjKcEyr~CjB|&d8%S1#3Q2SyAZ&3(V(>f# zlSV#>)1!m9kf;IYDNM|DO&t540PX>XCCg#KVJPu5Mc88$=Ud9i|a~B76 z2<;F7K9TSaPd$BbKnAqZWWRPNA$;5YY)F+{9l{GLfRlhcJ2(}iv^q!y8udbISY@i0 z>&R^eFh^RN;(pq!G$Bl!<6!P_MFD-&C=X+LT~x4!B2d<G2F!^T7ua_Qt6!kG%aP44%@^<3n1RZW zpcPEK*iEIv=SkE4gepB4`ZpmF2RYb>@h`vmQ@m8x?~X2|z295yz>^HzMF&2~Ny)zaL1Gl}yzl*i_&r)k3SUYP5#bIU=eQ{xx-pM>w_?TjF(B?MAKn{n4>!ETCGNX+XHbHDv=?JPS~+ zYA?wbGBX%pEcNjoh$hTQG2V)*d#R&4!1VL1Ln;WX=ofi|~ zd_}x;)Xun z6KETl$hVa|f0|<>*n-x>ZNT`wmQdOp)@Hkb%s;FAcmJh%EK@yTmVv;$Nb>sDtHaAl z?;+yKS{yv1*{#g{eq7cbcsKF0y~*CmZjIXW_MY=RPpu_ZtD2hvpP@9A327}5d?Q^& zSaxR8B{6u#VC&0BaB5&oHKs1Qlpx-wTAUk<{_ zIU|P!(3PMeFC=IFV@pVhwKQ6fW)jkyx|6rKJvZNxnZ!t+@QgRhHCkJXt>-Jom7002 zYsl|Ew7;cXE^TDckH_WCflUN2N+yz%U1LfVL&&^>5SBZ*s0=>9W0_J{fix{d$R;{e z4g&$j9Ov61M|kfCG+nh3k-qHM0^zzh7l=+zddUZ(zu%r6FV>aLg9j&GlD@<$Nvxj~ z)Er3A<8jqTu8L6#uf3l=t+!hg zc=3QwY04L z^<#&PwXBX{@{a$J2odaWoT{tsGsnFqx4)PK%ypIwAq=Ad;oL;EjkOP`@(QVo<948s z%dvnwT9g`^vc&NG!Tj~?n=cu|^W8IQ3BQJSFw@WD_PDHo)|hXiUNtp!N?>IZFx26m z!vcEyiBmjSxXM%@rn#KqsM^7H`jV%omZOIZ_*~{?UD>0;-${1F76$!)?tzgvtN=cSgmp)|d!9JwltB9& zY+&AUMEXUlA<*s1L6ntQioxHBjKTSi)+-tC5`*x2H?0cgrJqwuJ?f;CQe@WowGRVU z7E3WjBja>nYyPj0GK;ypkl|WnnioM=n51;KBd~-8u-_amKaQ=aS_OZoQq! zJfChH8<8#@BES1+_f#k82?$s4IRN^hJ6u~F{U@y-E9$06BO+hSt!4xz-c2XJ2|6;k zlMFx8JZyB7>z3`vK0?6%cBtuK@{ZdW^pE56%xob$ULk%;mw0-5M1bU$B2|%^Pe7~V zMW&;VrWz|CnS4if3Im+OKFo2ypKH%dlm)z(%L|>~Mx+641tFnTAV@O(lSm%T`ei3q zwhyfMNC>CI!A!aKJ)ZXgnrEP*hvKq&>-%L$rW(`pB3VZu!M{;?W|i|2 z1o1)ekY@AsF`*a0F1Q_;2NdBc$Lf1#M!qsZpC4Z+$N@8fn>@yiBg0r4`}ucfw}F8} zZUePYD};sd!)aI~-OR{$=@^+WJoG(8M441$Dw?cFLCK7#>K?r?Y7R&=2hm3d)DN8O zng~{|J{YziA9>+Ax!K?6XE-l+_`MG`*S83L+4{RhwLuKC;|hyl1O89xnb4&Xsdx7` zijt-L^3>ZdeBHniW8i?7;N(>8ot9AAOf}s55g*?k{O-Xc4}I&G?|&DW&b|GX#NL6) z{;P$Z2tuc}Q?bB4 zaCEsyf|5sSmsH}wvf~VLmDg9zF5eeci3G`NEzwqqmWncgOvpb|Q>?b{I<&P-5F#KWd0J7{zPcm6E)k$7$7yoF_1_W%4s{y2mBaPk<{0}BNzmJV@A(+X^t`S!8 z6j03dZUp?D^XP`tM|rj+zNZpbVnH(cJnn-t-Bip%h}hgr1mAbf>+so?|MOp|rb?`g z_}3V5VAs&D2i)Xbe8+$+`_AKTjdKw!K=hmV|ShrWR1>~CX&uel+EL<4G&C^P;|df1rC^irn0$Y=Yk zWzVzIPnjGe((PfQgKZWC&(nVbeY5?r<){`=;num_D2jOfs+Yg7Z_;x!T zq1ZNiP|svWzXoeII-86%EEwQcCWsVEau~rRh}`=bcaRp zrPTdpzdYNi3G88naXVoJNEfaVqG}NddBh(H;hqv_Rf*>4%$`ODw#DVzqUwWMv&9(m zV*E1|Pa`m1g{&4->X^)phOkQVDwYo4$E60~M^zGXnJO~ONSKT`f&xW1DYq3 zQnOtolE^z*(_BQo)_Iw2Lsgy&%(qb7fDZNCVXBV3m9L`}E z;&J|Nsn<|lpinJ$sRFt7++Cpfy6*0t>F)dzsF+|U9!DXUJ)04G;x%{>`G@ywpLdNp zDd1u_I}aFm#wi@Sy1M!o%SCA_{ysgd!Vd|&qi_v@7oAnI9odfo@-krD>V{GF(5PX9 zMt*5@V*m~epeBc0(!%3^dbvQH4{q!03ZNKL_t*0tUpFfuS6c4j_kR>`V-)(4=JObj%lAojwX4G zZ@?kgCS9UHYQoPD;{Gb6w=9glxdI9P>HJo5=re|HkZ2G$y|g-GF-s#v-Qj?`OS7b# zm95WjaUG4e_O{EI^f*v@b82XiAtq$P_Y?0uOaPHDtnKap9jv{+50i%9riNEC?ZRo% zrC{KBM;{HmEqECRlg`JTzr%K78OC(i^v-s09+^xqLUYg2-Z}2jx3436u8+KinAgT7 z7}<`@BOp_NrZM*7+O8kr3PSv8oVXU6jV)o<6`mGTZjS9lq93^~g(X!MyB;5f&1Ep6eA@DU?&h49d5<#>ggp8_y1rJE|cdrP1M zu5%JWfmxKHceCV+#*OMu%OCHCNoH#j6B|t|LM2>mCou3QTIy{^rjLv|(o_f_+J%Vh$-!iQ7`tybSVgn|MM6%g^ z=r3i%ZE-b#Y+zdB9Q1IF>+afn_rFZQ0$B=Qs(Z~+7Y||m;bd;|%X*rdK!t_M3NX|! z4we!Cm)3lR>g!E$)0VbE*7`d8)byR=I=(J40%EESy8##Svj9wUTqY(81w?G>InXof zD}OlrO8>q!_2aHf|3c%NgTdeftWs~(uo($1c0Akp+ay5;1D`qdu7+!k zHYe*kUKB|wgRHi@4Vtx%N+~i_1h~cX5{umi5Zt@cvF6VVh9Tp{BOJh8lG4~1j-*z) ziSFKa_KwkIy^(>pRV!ICQs8`q58(_q1&}BM0{Zmf#NkQjg;VOFu?br+mi1xa;e$Z-%Sq>nthq}zc&+E z@8*+LlZF41B^r8s*D%4O&Tka%FH?zmSA2i?Z%{CSEfGThI6Td+2cVV%(%0RdZ3`9l zR-xi!*`fIrZhy=l%-_I1-{XTH#VhPRuxF%J-YRDPc09wmt&n@z7}H+md6&Fk=Gu51 zmXOU!!Oh5Oc2u|usgg--KK~n!m61G1lt9VqxRaSeHjhi(LeIHO(1bQ`^Y84GczBIS zu>T!j5A2j2=}S!fxSJHpT5PnLXuvFT>$AJgVcbY86R-77WV*@_EURQdXKrAHcly3w z>|&a%r9veZBhXhIq|P30!JCiBzl!hK0)#`vf$@W6V6!2~S^sU^cPs}yW29k{njT4u zW!*$PJLw&n;Zz?YVec)ewd%ON)Ozv|-b&S1va-dutO!RJk9JLU{<$!_aT@?W{LO00>wiiq^BwughRnGwK@5i7 z$E~`C&3Xg8(oG7j)E;Yh$8&7O=SOw0S~LHn8Yb8(KIR*hpO`*!M9^%@A85UlJ({4) zW~)0O1kY(^kw?{WCpJorxjs%?w~8qxIqh^@{ej9-0Ds-l45p z^S{RouS5z72^tvgjyInz?|{{2h4@_uDig&{sejK7WcX)Q?q)H6z0vw=mGE}E0hiFJ z0eFU?3dz~paY*d|Q{B)OHUIz&i{}js7^-Ywwt$&j4Q=D;YVaXr;LoE&>q}UhNVaYj zA=sXEn8u;@x41@cD7k$I0lt+Asmc2f{dGX8+*b(2@49+1nDFOkGw^6O_L^9=TzE}) z8rFYGhtNz}qYSE5=;Jdj!-Is9ko5l`8aNuaRP5>6Gt$#)1A~4l-8eQrId zhdxK?ni(`=RzA#S-sBEQ!3|F{M8XlD7TLI$nAtj%ISD;eAO|sTNanL3x^n}+bsYuU zr2x1F3ANAuZZ~ZbV30!kG#Z-aHefNOBdRO3Hgnv~5loPHha&pMsQL;Fl>{f zRyDMm86prcA! zA}E7^g#Ovm(DGC?*=cWGLLLoC)mOsh#ehu&pGI9?*c_7mf`==!5rMknp|&zbVBoWR z8+#|nR4hF7NpN#}9Od8I@$y9qld}x+#t70N5Fi5&Y2craiDkAr-Mt1g(?OgBLWIcE znQ^_7b=wCU@OA?AczmKNWJ3Tmc90o7O?V62A z1bSl0vk|5{h~KFM0vGb<88#Ein6IUV2a`^rj{>Sm8u;r@))7cvQF75<8Z&%M?3!kz za6CEphurvR(iRlNI}nvfAZ$VWTH&?&Ug+M*Y+gt=jkVtk3JO?x{08u^uDv6>wcdz? zkHtgNrBE>j-g21qKq><3jD}y19v;sX+cOS8T}`z#H#I0AQOh%mo;Slt=4?z7m2DSF ztf?~k=MLsR17(=a#EV4MA2t#01mGJKdDGow!A{;km3owbv&RvR#}nd(@0H%4ARE2) z4*E(mjNfCz2OR}Z3U5Yly;A&moY>t~%*^!}PV3iwaOSCDWJSI!bCvP&X7cDEHx;-H$6i93xJDYG6F4*6cX*38#Un3e^E{nNkw+v`8S@}dE&KQydn6frG!>(0J|`#z@q@+<&)+O5Ue z_E#@MQeVtOeLezdgk@j zUf*PtmmEM(a6BnB#}#C)Z~SqPS2IY6;Sz>zpPi5@xs4I`RY{8jUzX%{u6KWbZ~NYJ zH2DuI_SQP;u{01l(NFxaZ^R|!ZavV3*Ep*}wj+BJ5#HtZR5B`UmT0MWEfRD(X>yp& z`#6HB0(8ivQ6gMCPAnMNG}4CCTbb9Sn;(PNy=!xovG+f-Ks$5OL7TD9H-6`SC;60v zaM>?!Bf~#$86M1E4-Mg0tJ&;7GRTlulIxLZlW1>;l(!bYv-d6 z)}zc~KpbXDu+;63ZHL;(U7xQ;Bm}}XG*$!|h z(3I|;?v14AwJI-mA-7I5Q#uCI5VAZPo}!t5IXcYGleL&ZEmT|~W(OqZvK+*!q|Ld) zp3eZ&I0k$;B2gd6UPub38C`zZ!8`=qM+Vm#{^V?Xb`}w|GzW(P ztD3M4$j;n$h46Nj1YUf{20vrUW{Oj7;2=!#DQ9zEe-FKh?4c0?)kJ25kP~nlScS6*97qo>c=i^I}xaJH%>G z)2DWdi|UCyw!LPSYwFn?Tu5vtg@23tSwo*>eVq86>&)GP%(opo(lhg%j|354R>jq8 zb}+-&j%$MKkm;kV8G`rTvkV!!i*21N-2EiAsi=rb+F$0Pa`t!bKdYpB78-zO9MH|a ze`z2he`=79#|LGmG2+=R^)@To9*%8PPa*fDA^2Omp%Q(S@5oMO#Pd<%JZaVii4ri5 zfd?a~7otq`;@&a7@fQNZH{F!n@)8Q!hZW*mE~`4Uy=^Dtj(DEDQydwezv1$~!*yb( zQq}iPsLrX1G;&t3xNkRzJE_}(V2bW>uHj7*{0&8j}^l;4=?$Tnum9!7$s0JBwV z{e;VDm)fLNL>eYh_PjmFYmtXq z;&xP9iQ)#)Qj4QR22pV#;}XB@uW)-=Kz+hU_jbkf0?}glYHVo-u>4>HqFj?SM zB=tRK?~}S7Q2>{?zKTxWk(12SWAQky*7nv3iqwVixJDcEl*GlT@c&XnQbOr=mWry+ z*Ux%<@mv%5)b7ZLH>?oXZBCBQJaHrZ!sRGV~U?-AP+0PTpU zKV%D8;irhK-$rQ4fYD%bvjOwdcwH^Y8xqTsY)H+=4S1%pmZdb6#d)iX1B*+t~izKh^*2f8l1__RIP2 z)FkWvck;z6t_U^-i%&j*nLlta47mx|@Qs3$e(sUyz9t}+S2|ufB}vI~%=`~DhT@YA zi6KFQ=NmLDqfp$Ujj`xgWnh+t9blX>0G{%`CIw7*=o`m|Ux^pVl557yL!3rD=$MwL zN;HN7waty&t@l#l0xLI&!#s-Fd0^m_V+VR>RPwqqn~%@wvzbE%KM%@eTk3;CK{9`c z=_XP@i0Z3O{u7S8C!xVzZhG3*)poV<{kyf#s~zIr`aC;7c!Ui{AeZpwoJ9c5&oz8| zq7*72I(vm8{8w{*OO*GNYtKzU;)`@Z0<+VC(DNX9O~+EPjLUpS_CbTd>3GLEAm465 z!(VX|uweS9ZzO`lx|bh|1AaJ8mkTzl zN@%)B9%(47mK9F210!i~kR>YkZGlbME=_p2mWQY+96l?wMt}!d*^af97Kl+FeOOCM zJ>@dQLJ!TC6z~rmVb}h@(y{m8CL(WIMP?;9bU0b}awORl|K0#^!0xzTM<7T;i$fp% z58#gNgwt$e;Kk8l=2DPRiL;F6-;55?<>7VS4t(69O%BJ%XO)uWSQNgL_QjLK>A)FR0W!49T4(&eEaN4w8%ioV3FeQS<7}IZbDAft4LTdmicids% z3O43$Al%?4s+Iuh>xBsXw|F>xAhY7Z>BiAQx3pia2U|xeUy0m(=cxKoKbP{*{2{a>HGx8+`8%1InrG$C7aQp?5#H|C>L3<+59@9`wCI1JxRL;19BS zaR~ta#5D`$xgn&P%>Gwf!uK9NXJ-~(YRau>BD2Li+9LGa<3^zcCP>jLlNxtU>8R3JWs z#1rb88~H+Zn?ZQDD)PYsO7u1Ye9RSO_C5>Z9b^h&U%$xq;6&aIfcbd5L9Q!zC-{7Q zAJuo7I}8NTS>=sL>ffn`RG@^h`PsOZ7+#Kd@%I+8*J?T3`!u`xq<{n+7MY(bacP1Ya3hA7t|in8;{<0wBOK-LvkTVdor- zz5dVkttn4(stZfX1h`vaVvX~$+jxayZVez%SH5d;L>v#Zvg1B@d+m*x7jJCsduQK; ze%YUEjQNH;oCf)%sf`HLQvfTsRx}kDf8h2a39M((i@?xxsbMJ#3JZZZVqbXG$(`lU zKqZj-;LYZS7V&OdIa&zuxh#I2?Dr+ki@0w~Lq#?zlYfOcQJKU8&Xc(B;J!vdMCN2Y6ys&2}Dbr$5sv_wZ)oE!1zwOsS<5s z?NB~n?)EgF0%CPi_H#r*Zme4mOn1?|08%q^GN zKL3aO+^G32Nde$+anE~k&*#CYaRy_|k!vj_HEi=KCj zom8F_Oh)z=@-u`C$b>W8&$YeNHd>eTRf+&Kz@Oxh5qLw)L}ScbaENxL)9C=Q-&1+UNM1pvC&-`d8haeWMN^=cafrA*8CecffJ2<$w!Gec;0og?Nm%ipB_FjYDgtR zEbLNL6*`uv%H~@Ch?zR}w6UH0J6;}I#>8S{uv?Q}<2(;yibjCjl2{W#62i}95o;a> zjW9ck4JhOmYBndu1AV2SPlC5q14pt9`#BTe#tb!NXjes2WewzCh!@E+88F&>NqOqa z@hs83#oV2m;abml5&blb;aEnXmpd3pRswMuhV>llSs2NcZC+Jr3j_RWbQptSGgmur z*`S%LwD|Ubt|ixvrE_E_l{T7#Kr;P);u;R2UuU90_)|P&cyHIp#)0W!mE2B=BtpO&w8t|Yc0YJstrB6<=lMs!GtZHC+lskO@y{fD_7(sDmU{d( zF27ES^zJ@KH#6gbmc~jWL$c;%Ix(stC0$?N8r`Y91PBfv8``rfDqe!l)l5R~tIZ9~ zHe@--`zFa_)BMicU?yf=D{(cN7ilv zL1XAcsaU3;$g~i66%(#$sc-pX7?m=OnTMnAZ%vIj%Od85blInGtswIERmK0b@3|b6 zx|hqPHR+Siw(E}dk^`;)13z+$;QmAVPwFl8?m))x#y#scxSHW+<*A3E|3P|S=#z}uH#$U`Odn}!YO#?>Asu=%FdT_@(FN#-3T86EeAh6LXSS`7 zd&(dj>dbd8l)X$Q3neJ6)vT*!heBIKUa7T_CWeifvXoZldp+aLb%&O4$}C=NI+0IY z;b`w|2itCBt*=!8+guYUkk!*pZS?<+ZW=9=YdH*fLq-i*Oo&xQen4P^n>?@5zzZTL zctRQU{4+zjbpEYZPKQKdHN;>Rp_*ZuVMs9Yt|&_3K=xWBoS<3Hal8Zp2O7{b5$K7k z$%Kt(FwM&M=0}v;fLeU1^3_!Ly_a5psj0TMWfNU$KFM30khC>Bl|qu>ty8tw1wsalE{c3lg~slSIdm6<1tNE-ss^90Dd>s*s@Y=GIo71Fdq=grpK&z z#eAkca|03Ft394OCd}!xdv<75P)f~klLgxtQ)&f(-r;h5LvZABM0}!(0}xO(FYr9x zaz>ahYh&M-Zv+KX-Sc20Cji%L=3TAB*Y z&)G<)GH!*KtlmCP1e=g>*KyC290CT%!F}PO?Ji1|W;PEB@=*g79c%)FJ5x=mC^PoI zkv0Pr6O3(XY`NDxj}qx)7|yCm)+}~=w$yu|SV+##IY?a~t;MyV&EHyv2cA0l5|9je zv@Sug)TKWNn1~Hc_F2z&67Fz+vQV#hbd{*cfZ=|v^^*dk2`ppzy8+B#U~X?27DR+e zqu1BI!~pJ#PxA$42ta4N@xdF@uRQ%qn@68(&n#kuli(0Wkw8HcCL_?xstjiVaf+(l zG{6+M56gXqgkP$q+F6c59!w8mnE_tmXt?2fvf03<1hd`XAusvcT7M2%&2uqL4qnI1 z2YL?ltgj4ia=Q^Kxta1hvxV#|k#H+Wtaiho;6BeSG;Er%5$C$sDn3gfl0&17rLmy0 zV(kWV+`759n475CT$t=zJIj$@t&*kOyE`74XV>!f>=Hs~>g_2nuH^VyHo~W|kD3<2 z%Y;pUI1!QGHeIk?o_%TZcNdO61|&+5U@Z)<$wVNyfa`FE^Stlt-1kXemltX>tDO(u z%B7j-fPqHz)GF7=$aZF@f`*TpIy2i@XRJ*GR8@48z(JL#mMMaN#T63LFQU?&r6f=^6d=HmcDSW^1z7V!POl1BjS$$Ui0s?F?B_eOTySSP5%ohmp zTJ(a>mB4=LN;Lu`7{b6WI@I&N5B3ew$I6Qsu$PI~MjdbQjQB?I>kFitWgpCrte~sM zcAK92qt5zU`P11m6PZB!C4Yx_$mE9cJnwEcEEzn~^|nQN@O@ezM<|OgiV&7);2$2B z@3X`J42jd-L?Wo!7fB^7-*%noz!S(TLMfunrm`et#2Mhx z&s&C8U{f}ulVAb+{(_d_XWA^+5b?hQk-icg&WrhZ#^`gsa(Viwlh3w!Q-PMAB-g8o z1}ukGBOLg!001BWNkls-Jb6XG!!VCn; z$ALB3H(pL*O=1%P>~@n%Ijni z3?_BSg-r0CHu^!=NRSu{0ys0oX9qxq&fFEid~ezJ*E&g&y(bIV)rMgN^nuwi@P~~n z$u;C>iianZ`_3k$5n4>;p+CU>zoO*_7|>bYIX{xhgu&M?vO;LGr9x>fv+fU?7RF@l zGNoR`jK4}Z1zp3?^Y8!?_9+{^&fSwijxgSZOwm-&cH9d!+ezV@&adPSCZgi z$d}e7`%ZFFlRby_oaB{BA}hWjUUZpIpOEN3UfcD7zT!IjHmavEWIZ4WWFn&Bicgaj zFE!ficJV<0((HJ1{>d%iwg_j>VP=l$fjA6&1H2XCKs$$KI7 zcNt6Z(%7>a@tks)0lX3r{}_*cvXZP+{Z7{UAL%gr(SlgOTtldS7xy{Z=MivdTw)je zEq@mx|HO5d3xz#>-$5mw_o_`jTWp<;phl+ZQzFH*(ywgCp2uS5m zXd`>X`tJ9B6;m_wOd~o^{28ef{ks-7@dSA%7w}1i zTvOhlklu=`i^MuY0$J2brp$-r?*v(*Y6%jyn=aTO#g`?UYrUEn_PIu*Rm>y?NTYE; zsoP&JYrecsua{;q;85e6b#5(|&t7Z2Od&6Ilv8`1tQtb!=KE%v%N@0AgzrBDWWMhj zLt&$JD+mZCT#Lhd{|YeXIzsPR7h#hxv|h?gbHU(3H@yrSGtv}%A^!U=$JZdwu4J;e zjRr8YH1IDSbjC`fOWltuf?qhcKrmS;?Ih-(#-C9O4n#hW2_J~2v_Y(l5HuG$U)b9p zygm5+qwfkeS)`cJGcJuQ4R0C$pmojvBsYJU8B~*Bmrg` z!#{HkacR~V!Xe14i^sa2mfBd-1CI3^T?&Y$0p$U!MvMru8wF-a2$y3Y74Zi0owgx< zZe6nP496P?pHaCV>-iu@4HJRuF!FVMh^IOl@ZNW_7w9qymt(m*bV@Ww+3(#P0&6O{ z%pqOd2Q%9pJo0vWYHlVl4?6O!coNIy0S^E{e^&fN%itCZQ2THG?tt`fKF&Tq>f%o9 zXWiL0j*Y%7o^_t@$j&zaC#Pf0XGuRm<{`<3+6Q8gxmyw7Rs%fODU+PE84%x!TQUS< z#EhQ;4GY|)FyEfJ!4Q5?DK$6B6c3aOvl;LR6Yq=?06Hzmvd~grfv*Y8S2Nt5fW$1f z?)*0zuYI07vXc!#3mSaHB@hHLO{R)p62#~5of^z+_n!X!?kgvB_a+uFVnX-mHBrh( zF+Yic&rkMA&T$8E*`EQ-9gO(2yUuOJ*7LQ7Y04vcMx*B`P}1;tq##}|gpe*r=7Bz$ zMX|c{Y6WE&ed$zVsBp-?cW5b5WQVo?1WT`D0nuqQ-0omOu z_$+J*U;zLgDI0&i`}=Jj*{KHkJkLwc7u(XB7w-QA0DavaMoH1p8$LQ^FA()7rf-SY zPCl?>-QG$dI&%2%;SG@lppd!M0CroI00g*?^!xFyatwg{ZS2;I$4QmBl7Ni_tzarv?_7(^Fz>+bRHfM}<$ z9&bccHkKyTO-n&^nh(BAL~WPCW@s6ljYy9=|CfB4kwhi#Q?{#{UeRma%lg*sw`8Hu4%IaJ&HP{ zp}h1FqDuCn(7_C&fJc_P+({?dWd@UKXc2fz;7_mwMm~@Ga717X7V*qR0_<_dYAfsL zJ+?#+BgwMX?qKRv4a(FjwbXLRV~E0O1OO}2fNi6*bzV6+lP?goNnDSC2CF- z@-q#XbXP+q57AOq2bo!<=p$v&@^Jmz=91N@IlwsB)8#eMp}W2HPC~rV^AeFXID0Vr zF(|`4B6_?k=dYNb$6(GSQahW61{6Y(x)aj{rJB+-ktBtZ$tgmz28JE3u@ZcKHXrum zJ=`x&C(Pnr3q+wAu zJWqpO>j;we{X&Lv33=Cqp7BSG@&9LZ)7Yr%7z9_tBrlN^qN_#Zhxh*@Nc?y4 z8wE1T{5UxvfPx>%lr(yt3YkU7coH0fc}_K9C!OVCF%C{a5$9zx(UaIY-{-zEdakr#e+9krO9+##<>;oA4Q50R;QwAd_&NSPQ`9 zpfR$>AmdF4oNZ~WWK?GD0R=u@bEIZ`G(nMjqR0;cQWdT7zr_YPGN9KtIXTLOwh9lt zl{oIL7l0N_1T=4Szty`V>cST@%Ms*opPn6E`>xE@=;P--&)elBe)irkWELCdCXGB_ zHoGte<8e}yi(~i2QsE(e0f?S;GGdz@X!tT^5>uT_$?g$BW2b*}LrX-U6fe4FoTEU^ zjUattY*;c`$pX#1_O}t(ua8h>pRb}yN>i2K8V$U_t=lrG0yM+1td_b1QW&YU%gV{Z zB0H3f3TRE%=Sp0MObQu3PI!CX1YVS&4o7l zijcx?i;@6}rZyt0U2cNqfH#Wa*-=gD@7R6FHWigbOT0I#KDA2ZXm))Z0{0-pa6tUM z+jDJq9B3P}{%X2uto?oK6D;vMHvDIIn2_)9Y2S0XM|2lzvo)$MECdM`prOt2=qO7A zW*%vb`I;PhT`UVDdU4u&uF!f11Kp&!JlpXO!lw2E(!i^Mx-~*S4Lpg*mI6~rsbI=# zKNA7L0FKrkFBK(Ac#Wn2@F~pjusa~xi6qhnpS3V0qU&V6YKSwLLFAo(vo*)wKlS%d z7`PP#$`&?;tm?%x8|8Vdk}bCH`6MeP%8j49>o4jiM&6{5ceuP|=fy^Zz0D03s%2ZD z?Ha@W7c}!ScaXRASJHBr`%7F!W(oMj|8~(P;X(W%0?1cM{0?MpMTOUUO0RG^ysnNo zK2|1I%s$2%_EkyP?YaqPrW#TLF|u_)NSB_=eraC%q_gb(X!ENPZ(zfZI3-B{TC3d{ z_gPwt55rP4NUV5eR0nW2NdNuH5DF_1#q zdmnHKFuv^MrJ453jh>>R%w`Dm^gb<3AlWmi2=f^5Bqm*Y^I9BLL{q6&)WiMo{~Y1yiS)lYzTgyu8(;yWumKL zmLjz|%GfOKy+9j1!Fc9rM*$Cg@Y5NfnS8ay*#az34(P+FPze&OC0S8?d;|@BJN`UM zy-!FJC`pT5zHa8go_kTL&v@^>H(}JM3xnrL{K<%CCv-v-9#$SIiXq`|ppTncMg%cS z_GjBOYZx(^Zc5K{-wPTEe7y#appjud>RgXtb2RyWyKOKe^c2l7$Wz{QLH*TL3+tA9N4;@V{0_i^N${5R;9z;f^w&ay-4sG-VfJ^X z8iP!_kUqH*KtJa;Z~1=Eb@gW`pEos!_-IQ4BbWg`MBUNwbGG@a?BiVN;>$#jx?vn5 zDmIvRg~neG{dGXU-hPh~@oyZ-IGFsZr3moWv4)-vu0t3Q&fa|-fq$23tVq|g9a)j{ zMd8D8=um(HU)bcPTH(U75C}e0>h>2nSw*(6=XL~jD;k>N4oLRB7ISm8F&~akCi0zm zA>NJZ*4;DZ(3OAvr6#Vao6Tqvq|^p?!v_ROk`AGGFE<3&2B%RGU~6kG>(lH>uh`W^AcPw zntUgRlY@^3YP&J~%;+#`M-&Py@)g!wqWetX3rSdF82S$^51bzFc8Pl1Z)= z0*}_re;U&?CX#dIJF~0Vz=u)MTz8#q7r(cAJ0id0CYtupsBsP;4`U5$BY%bU%h>6q zWUmI#Xf~U~Ap(Ii)V23e+?O_q4V|Bab z5(YdvpgdrWyPo#Fwr6Joa0|SHQ)B`pP%82gcd;>rGMYy!Q3$zP0O58tI5Yk{+Nd8O zYH4hVfDmEigpfj`Lu0l*dl?YSW@M}SkiQ)i8hR1{Zm4Y3drsA$W;4Li5|_3_#aGZZ zJ(~~WL?;un5;-FqFhB30V8Q>Jy$=9BQ}*=(t^t|r$jEblJb2=x9(hs#{wCF!dd@!g zg}v8l(D!RkS4knx z`l>Vk#DA~>irLH1@R!i24US5gFJ>kg&7Y(?Z=nN)h3}~ z*D~Xy5pYKoA_OzoKx?`wy(?O`3R#)@ezJ6|G%Z?p17Ona%q*Tt+W?cvcbQ5%kt;cc zVjn4Cjriwe${xsAg;Y79cM&iS(!F|l47elD!-ttTH#+pAx-3$y&0ic<(nif3E3HDt zx8p!N+dM{^j)32C`_umS_J5?*)4Pokq8N;DkCZ0L$2Ie-V?q*lwj(z4fdHQ%>n8yMNP$AXYNa&&4mDZi;$dO zCc&XqKaEJ=jZ>e6BCZhq=K6|iB#i!=i#EG*Y|xMw z0GQW*F&op%o{jLaP5EpgyBZLZ>4xX6LEZ0KGDdc+-Y_V3?6ptrx! z+N%rq07O%r?d!4&s~WYP*)zfL28FQ2#s7p^nBx@C*W>nqTp_nsUT3O4B@H|sLU`s8 zz=t$(Q4mM*K-j9Hd#aG~!PffUmfFTKwqb;?H&s3u{j^e7zr&hgvJ3hl_ylD{<&z2mnhZ4%bYL zB&(K~jrS&0^2w3)BWg9sD(%5}6}0f3(dUc z8}m@Sj>&dprO|#a8G6d?1-1qRl!3wyM<}-Z5ymM9@PDq>4!!YH0HC`TYPY%gAZf^# z$~~eii=dlfqxG{@WN_KXz$`StKZ>h21#U_RlMTZoRo+vHbYf08KXa&>*v-JdarQd< znFJo+;pwKdjd=ps8k;|ox8L{Px!D*PWte{v72}pXi#y`RVu>L@!X`HSfe-%E zvHZK+44VrTnXkKiA}girMghUR>VnwC`v}G?CiGT0Z-mXAEVkXltVa-ee{uL}d*~n- zK?tRUu6f!W#;swO`IClVr4)a5s-pBFLcn9mo|P`v#dc{lEYaGmbkwhK!FU9Wg@F}ipVc1PY&WQe<{M*bRKLU;C#SPFU3+GS zB~UhwUK=ZP79ikohq?|n5H&%A{&L(W*jC7j?DCS@1kXEdaDboA7xSN$BGpr{&K-K} z=OTJ`hAaEl^qm+L6@@+b0n=wRTDd_mk*rHh1%}4Z=U2%PE9BN7a(gm6-r(a91$q?yk`#!O4-54N9uF>|9~xXssQsiUlhkc7>Qwh2=4g>`19qUII= z+Uevo)~HV~R;fhf)e7&k*~r+EB?xC;w1i&?LOK2tv2@Zn-G!B7*#(jajw?rQws^|En;nZiuoQ*x8+yg;f@zg1$CZRFEtBU{W%3sCW+!2?VSx+46hIl+f_+IBQVYa0{@Y4os6fI}% zFL#tw`&t7)$(=P`&Ggd-pJvx6Sr4g(b`wGrvz4=J1l)rqe`)IEpn({C&YA6iSS2kE zJJ}0;HqW}EB-ddN{MR7hhAIMLd#gzFhB`=}&3&v*Y%|EOj&7_>aKb6?odEQ_Q_Waj zg5re)+^!L}M%3v-?m7m(56UnrJtCk!2VQOzkjwAfULeI=L!bI>U@E?_K=D$u8Ij(q z@}bLQg!ydb^3v3>vjgI`6dGV!WPfp4*%q=_%=pXh&ue5PlpKv0 z!%vQC3Yuzxk^~-$PtWB0!F`U~NYQUoLv3ca{mOJ?<`U8ANVp=J7_?`XfPzLMZ=svW z%2ZAP&X!E`A;?=T!y{;*Jq$qtK$IsbQ9mN@98elCJ8CMvl|2nSUL)C+j)X0BNKLV3 z9wDAwF8Qn6b0!cZ08EGE-$1cc$Sh{Y#$01y6S42LGkYd7&PG5XlG#a`{k`{%%kby!9?4x zr%ZE+pz;5)b>{I=mDm42=R9{N0Yp$C32~`QRgy^nm$oj|YFjPtT6eADhJx&%vdIoA z0sr< zJ?Hazf4aL%OHMrE#O7#y{krMm$e^^^5Ii@$B32W$HJoaM zW{bdTpBovE6IH=YOK1D~=qRxGO0K$>V(yX>2>;_V9^II1(fFLcIkpj{)~*1gzxZ=N z40%%pVIM-Ub~Fu|(EyO-%&X*+6`p3p8D4ea{M~G?0mOIG&iu@#(0$J)A(gJ(~!M^4jd2zhn(g4k~ z$H((2R-)Vkfd6UlY+tPs@EBS-0T9X%@iDJfi!(;o3CY{udK5{p<#HiekV|0K_^wKxd@M(x|%IbB&VG5BvilKFSq3tiAcC*T=r!f<1A z;|*Z=E6DHPf!uFpp zRQ~v_t6HzPf)Pdmz#H{dQSh|t?mN5os?6!{UZ&L8+;AySPzS(3CV0wMq8r;A&j;pn zncVFi4D*;xaRDI@<5XBv+KQMx;wkq5cLftc9K(r-L-Kze5_AD15=k9 zofyoa#%*l&7gj&ujlmTH@*6Lw+q7-dvDr*!mGeQw8?yiY#L6v(`2jC;io8xZh(Nl6 z%Chez)UVdOWF4_DD>EuY5vOn~qAacae_FE}_g0>U{+^yfaCzXFpi+%E=R z@MAan{Dp@E@v~fIP8S|sEKfs&w~)|})8L4FbAB8Wo*bB9g_o~5nH0deg7~KYoNlUe`M~IH8t*E`zR~?;CwY~c>Vfa^{sG|L3rfMlJQ-?(ue8~r=Cci!dYoqCxO;L{2D2fi@nHYJctySsZP z>wzM**j|SSqt(0XFSz=wjKPU0W@BR1kDk*RlJZ))O_5l(2^ArBFN3uU&flTZ61B|$M2SJ#W>Y!Ysk|LYo$s-RL z=>TBPrzvJVko+`PS^s?eZ$||fJcul>)yDoe*D151f=Q}a-1~Q(r6_|8XQDMTeZ|;c zBmtzD?kLBe%&BC9=lt_8v=yA!E3>=o4qru&eY>*(@H1n~ay{fn{&KgLY7ltZSM^n5 zoG$?Ld|@ztejA8Lqpw`_m#z^)JdMb#NmGNptUI0i8CeMI148nPy4c&}4z$8IxxC)W zUhij7$C;tib_aVVYCdap>A)3A;m!@~rIg0jld%9!2J4_H&Of&=RQOW=_;b2(t_%l2 zm;(qaz1%&bF2fW6YV?KL`2Q|LKvP>)t8g^;Q*6%PhX#Y1irmaZ@zYWmqks%V^H8Ef z(yVH*UlPEsQfKMuRQGi;g7nYD6z^CA0Ymc>B}-%p zzjzy>BILT%%->=QcO~$#*5Y-lju4V{Y5!Xc!a2Kt=K*7mI_jt{_jg+h4}rj* zx?yz=qN6`CC{MdRze`&cRJkAwBjTu^MrWI{FaivHE>=GAd%o_^WZ*&(e8m@U9oHh@ zH5U1=^_BIH>Fel4P?%Tk-{EiC{?2h67(It2_BNG956TQug`tvXT>&kA&iA2UpGYHj z;kG=yu6l%?o7_)qDY;*S+v|pnaGrbTkItBRD(}oyfsn2Hs!xe<|dQD}`%kFz> zYdDn!7X#5^zi#OMpezGI*|E=dulGgSIL~v1#z1;;jy~LJtq^)MxwWBD{Gzg$I*P*J}CR=qecL+ zlZ0`TKgSeyY`zG|j2Gy+t8UndZrnR5X?NKJf*KJvLSwO_*KaA@Lxe}wRJgp~CoRm7msNtH#T%Dv+HoXVwn~u zkYynYf8>jTZanE(fM^+kD6b)j98~*;<Gts&QN6 zv5@8E2xg;SEOb%p2D%jjYJ?DuFvdKS%DKD=SVs5D_P;|HEa#OPJZLEhhPh#N37Jqg z29w2WnYo=2wrhph$rTt*Lo%DabV{WjrGeeL>3{6KR;rl?ks}#Z9!#73gx5osA-q@* z&VA$tt;IRoG9H3M?$Lnr2vQKNL6TQ%E9;+223%|5A_5vIV4Gj8eCZjDR#6Fth#3rq z4;03?d$TK}cnBo(Bk%Q#e6RK!2xg_fV7bX*OKQ~rb9%A%IZz(8tOsufxQY<}?5i>E zaw0I#0JPOq_F~sR+V#;vd%N~52ch?Bht;mo_y5MWHx3@0Iq(q|UsF9IsRl)dG;@!j zsM**iAe z3?>rslRhL_pFOgiWw`jUcVQ%dBDE&`;JNKvHmsbFnT!GWoO|%T?SNA0z{Pa^0F* zi*p#b(sx$2wB<*Hf|GTl+3)wiO+x1agim|PZ$wpui&5Zxf5>wSS!-blB9;%YaDGrX zPTV0IHS&VL=M@r#9h+|hW4=DHoF{x?@Q9s$o)z1QTD46i-0p9-H=ZxT69b!>u2fJ3 zaWK-U8YfkrDS!IdLyq08|Ifh#$Se|;7yYKw@zT&=h+dGHaAb401 zU-p*)_cwPGPNx9IBAciEMOI}-XkdiwOL;b0n!d(p7ZCDXe_{T|mMzCW_siDC@-qDB zrYp}pJz$nsKK!4>N{(9*Ww0^uW3NVtNZw_SfZ)$-heg@8?(@6s#b7!ZNa7*3I3Enp zV1@-=_84RPHAlC}7tvfcu5@VuaI*&*xM+>GoW_A2DJ*}kKQxk_>Aa^bJ}4H}_(PsT ztxRZU1H-4EfByN(gjo>9tthZb$>uJXuCSwU4H&ozEKK#X>^m6HTn1?RcJt9rikE=(`!sb$>p2-WGL&r6X;)C<>CP%Pn|1P$y5Sttf{Pf zSm$Hx&sKQdk=Dw3Zxx7Qak?M2%s=$r(f2>iAKujivk39OnM~OVKhJz_=sxaJ`@=r> znc9kXiO6wfnXXLOQrp#VPBD=$Gc~s|q6t4z%5W!=$ z6%lnfULTj!ezJH~W&!hsR_#QwVoTR@G?|Hw-zHQr6YTn7SwsjaI0QMBeXo&&`gw&bVSYk1-O+Ff z1m-*xd?xAiM%}*IP)7IU4$3(gp=N;s%XK|cn(7N%5!i_rBFIOzm34Z7@OGr>AUwRT zYDA*?a7rHLTgy!^<<)0pBf@LxbC`O~5U|s8A)L1!%p4*7x3tSDFV&Aa?{K|{EKIzY zEyeRt3uSDdOBatF>638`meb@UD?5%gNt3I*wOSIT7L9356_Brq#TOJ7rt_AK zITHl73ySgT9*y`CvR8=U>%JinDGY`x)joknZf*YO5KH9`1CVyeJ0W)=gNnXq%I zk6_UY7Bk;$&@}lAUK}&EMi8FyQv3KEHBAM8OstU|PS)+lWNX0zI(L_L&(;_g{rnaE zD%JzRJ3ez)_wj&e0ULO=ZfIng)9m?y0|zWo@Lsw&@NWCNqe`}0Z7wQVb%kD6RAf6( zSeoI}2sGw8buGnZXn<-eac zfXf}5Ps{{nGPBh@dZ!rC^|iczcCKX+FtFGwQFKgXx`TxvxVxjOW3h)`YSG0o%s`Tr z{(RD?aas&V7ps~kCJG6c!3^^(y0y&h1qxe2kP84^GO^n(D~|&d%_00#1&{sQH$wwdEdn`4;I$m9D%v zNsqV8+ao`ru_9~TW`3Bzm}eVL-@Tta0=74V-YtUd zTShbUxq`A=dgNjC-o~A}^B8$sT}9m!x`@SDq$^P5vvibzo5TXc(U^PF8D=g+P3$13 zq?vk9h^3q>5%~iTj&M;YDBlKxmVrYCZ9E(!GM_tWm;>$uq}}O7ys4vUEZgwR{*?!e zJqnNN(gQXy%r)3ITguHnkt>AdCw{S4|DXiHHJWV|c7~7k`gt8rzHZ;%t{F)zk4D3o z@F8G+)8~$Ag$x95L1SikiCeT$<>v~}{-Nits|WzAbYa!!DPX>aD8>YtC%oz*&fL|m z+MoM`v+F@Aln~s&~XgpD@Ob9vr z#mMTBt`h7D0sY~ALP{#MI!_UCJY{Hg%^@{!#+%|mD|Rg~Xi+R#Pkg?tgz)RSL!&vZ zQgZ?r&FHdmojmfLmUnUi1S?!OxvIt~LG<8kOK|^pU+fs8@mZ6vKl3qRsb|^IAhc(= zMft@5s{6PUmL>s&2mbzFg=3oD-+SW2Q_t=fKjW(f@arO=5;5m>(w~@yyiNd>=KDkp zBDn$8?=FzQWz=sqv}TCye*yxbj{Rkt!=I6bVN==uUp$Dpr$=t7UXa9EzXpxBg z$CDLR_9tLxT9#Q}vEn4$9mVm&cs!T*NmWz$oI3_6_{*{W%}C}%kL_PT)OZO29?`YE zd%Oc!?I;{UPMre3PTMD%I*QlXP`-UYK$DIfTHB(3^TQASP~O>p=wcBJ+bi4W>qhT< zO(EY4hW}JsQST&P`V)c1SYx^pN^VnIafTHc{`sEIXZTCFd;I`r>g9ajzOGe%KB_uJ zP)1m=FL=qR9yGE&nbm1Ef<}`-2Bs;&QW*8M+}u&s3;T00SB{Kl5aEmDpL9OPFM$C!$6aZqWFpr2DArW@YQp83J+~ zGb~KHT`fiZ?uU2n?Yb*jcUrd|%@}H&4g&W)q9CFzZCmtn-$Ot@uBohXnW=GB^-_bl zt0pDiZ|Z0|N!VTu0?nB{WgE16?$#cpYenFZ*AK;(sF4&3q0JoRL zb91^ae}gcM5SE{M`$e&(;bufSmrF3glbjul1nBONd98<*MDsL%mmm%ol)3)-H#Rq% zX$h}G##j97YgRXv@S(uq!=CP~1tuxER0|4VbFdrjDl-1{v)ya05ieCfEIR&%RZ&M71~(!Exf8 zaLx67-|y}E?|ShNu}iIp%KB9~6@B;7o>^HNoq^qjKlcCi`R-k`9>`^;JD5EDh{&_9 zKZTZtiA2GdpmX0W2Ub!$&LJ=j1dg@jz=IBu8Fy+Y6GBH2l&#SsP^505b%LmVP19hyfzM z;5)S%F@}i8X1Ht4@jgRYGlT&SNH^l*F8?h6^tpu588W)C519`_*$~48dfr#~TFqB$ z^mz^snV<7}ndW~B$T4Ci@7Jh!oZKovU$@J(-0nP2m-^v8vEOmwB6W?%q!Xtnr&_S+Sd83YAtAoBGVuPOVl^L=+&{8BhnOH^3$=ig>c;ECr^F` z5Hq=|+?-@$wG^*p;&KE$642#&x23@#_1!FJze)%U*jlfsumE9V0sg(drhf-juOAMq3- z+Ab{F+_0QG&^nnD@EwTIMX}35*W<3hLR$E>FT(nUgp#ETB?5(`G#m-ulg(Q+5^$UFhpQxvBSFW-*|1Emf zg^j|!#Jwmp)-DslH~pcYv8C~RKt5FvxA?_Me>ciibBO+D)d25FiHJBDI=hzn$b8PX`qn+OhBf((QsIE?d|0bC~xU1eCl-W%29_df?wsx!go zbB;aa6xTs4wl-WMLbsJs+0=I;hwI<;y^*B@H-nkwOU5O^{i9{E*`#d1rIO zNfgixB=BxcMbx=|yZP-eWGSm&tru&DMx7160R!_)ElzpwZWNr|Z!s9?YA?1g)PqKx z!#j^T{Jxjt#U9mF5{+Faf!3d>OB~KOh?|DToUzIu+uM-j$V{i zws7A*q3`|V({nPJpl95br{yiT|C8y{qg2vUM!ABuJjO~-6;liS>h;#cKHS!G!n)~a z9TG{nQ9Xew@k*dj5qY`sAxsslw5!)!^s3=6BUiKIbcp$KFJNseb-T!qpZ0{`{3YpKDL9# za2yjDdBm^fu3MDZJr_~>XM(bYdeGRkebcB+kXa54tJ9vqd~05*y%l)NIRWB+{ zMv~w8;;D9@Yg=no>Z-Y?PLAmI;R+lFAs@pAzMI|)5K!X;G#|02K8tswAZdYo=)E#4A> zoI*ekC;53T#hU^6ywLJ=52cDAftnMD<%0NvzE_Pef)Ew~f%;y1y<$rCHgu3)M*P@Q zn~|`+jfG2$uvRZ5u>hpx|K4+HJ z!tDZb=AP1?vD#6KB6-58AbdDvX=(C0(PeNxh<(X_&Zyghw=j!-oQV@ry0r22BsB$&xpIX zHvy7DQ~%dXmL1^I%6SGev-}*_%vC*B`r@UV%TXS^LVb`4Hh3wk^Nb_apuwa`p*iP> za9*`Ww{gMjRYND3NJ+*%4_2=RO@qnQfai6{F-*2;&36nI&TlXn8C z(Ox7Y4|)1&>|dK?jM?ZbXHkWU`^ab90C7N$zuyH=Nf#Q*d|xM#lRjyVslf(fIed6! z?kVkdx$1l;&Sj8;!!A4BWs60!!Mg?IZ|M!tM}r*LGw4na4`@)cI?#duGs~3vrIW>= zxtW>U0^{Nd9OgQTQQ$8lo3%bGEP8egO91GLV&$IX@X=P7Pf-}NR{El690O87c&9&T zxl6Ce$$~?dELks-E;=GfYV1WRB=>0y@}^g^-qldZ$Uu;)euLl*55 ziAFxYTylADK4{}7jh9I%7c%pPbcBpMBqLsFh41lxT$OMm%29E3@pI>s3yfy)q6OLL zUnl;qT%fbHGBf3w`3fQ|H7JYJQ|YqzEZhS`2Q#uRHhzxP0>K2Z`rYN$>SaK?k2WkR zcHR)s50mUg2bSXT*4m{b4;|@11JPJ*m@kNj>?!S;r3Z*4*NpL}b=6TN)xFQQ#>-gj z&4Q4438K#2z=vbv-x@a`#9So8Sp<2@2RAQ}1$1@$)#`6JU{Gn$TtA;&5ei{B7~J3w zX>P%@RH55Dt#(mV{vw@r6|=%kBC>ZpPpZ(WQ6F~hvt17)Afnd7ER{G)Kb)fn zjp#rVKF9zHyGn5GN{&Ti2GRzah-tAQ1Ksx%DW4J=>ms zxnn?A4_-Xs+JmpPKvxGr@T=iNhbR8E==m31XnRd%Zn|zvQRmudjLJv;Fzn`;hLeL- z=c?*7W+8e`&a3DmT;BIS$w+Q~;2IWruYOp4qQ=mQy|A2H>MZqEO%;S9cw$$nXSVm~ z#@POo1cb3aemBX{Rf!&9r}y^9W9LQ@dlCTsAno0ZyG-P;{+SC@s^he5qs zDZqy+IS}w`0m5H~$DUBl;1v-q6grSedOQ=-LFsV&rjCZMG1F|ea<9(aI4(oG9eeyC zO@BZ34J#?sMRX-&zoYRsw){0yS#Kyqra5& zS+e%E)TMD0Ff5Ec-%bway0mPkQNWMX3?1<&_it`KXi<e$!3-7dtNgmIsM z>ry-DOYG%cj9{E%#(kgB{&KTH_>K2UMPo02p%pkE7=Pfqe|izKVy`n`7W>Po^WSCc z)xubb2LD%Ob_xh7&t^5B_5IqImhQfj*8F4?JSjc)9QdOroFGPmfP(MpAzk-;V^Eq#mBc=;$}*h~7OkGYI1^-6 zC5;z%>6P=1$xKa{CJIyoscNrmpXOzd@tn|qA07lj(zuBfUvQ%Zo|cM!It4%$hhmo{ zaUFUQN6-kx2h%V^1#}AY9fY#ppZ6m0A%6o2Urb%34gkv&07?CtPxfYH7ME%>sLj5cWIjO+uPqBnKhYtn4t~1A<_4r-;uu+4Su5(lXqQ_7s}^>fvh2SIgZY| z?S(POaBe9K7mZ3?keb?xE39ZVNNy4u-s-*pEF3lu{MMZ0* zUNGfCGQmb4k><|v!-uH!zRQ!mn?7wim3!=bFnFIIJ9;*|vi-_+gplOPyP_b=L_*U| zr1BRA{uZcjDS*Fv1hqE|D^#GiqBinXeNz0olw^z{e#~o(-QQ?0Ue#mm00bO@ zfIlZgB@rISp)dsSm_KAUcH}P*i`QicRvcGR_m2A@#EQ+|Oi0xoT~VNL-0r>#$azzq z@dHjV<2D4n>Hj3r^0zhKEh5L%R=U9Ts7jzRrwokME{w1XU;anozl9@A32rJ0zd=GL z^+3;4dV_ZXuEU2;2ZZCGjF#x(Co+Hs^AY6Zw#rYI`^ClOej;7Z8JXlS$6H$)jt-Gl zi;Y5-qY!$TtVUx-S(8X-IvTGLYcB+`_xlCdz1IkEas>!1@e@vIcOo#dQ+o3Z-SclN zE(GC&4uPR_)FbP_*`4r9(oz?^fsxNDN{XcpV@df^@9X?yzn&I@o@xrS69&J2IhDwU2C=;5&_#$tf4 z`pF%~kX)5EdMluU1r$v6!?eENd7FSHS+py?oUYJXxD5d>MT2AYBCoGQA&k{$CxkEc z2_%k;;n#}bQa|?97uMyF-tfG7R$>^$6otS6(Sr$mE0Xx#BZ8mVa=UWG;1N4xYVsIC z94w*y&L0R>TETz|2>XJi91sHFGzQkljy8Ac+h^B{@UL^jMm+5g8c}v7EC9sCePvpO z2T;p=RrPaKvS`E7)p`*@G;gIrFi{pNjAZH^ClSrJXFXAGS56OUpoJv_QOrHR^vMj&LX<6ivqbZg0P)1m z&%362*`Qv~24@G~B_P#ExLCix2m)khDv3BvtS+|YSL(q%Em@6ZprRM@rCObxwC0aJ zRRlrW(fc z=?-K#J?yblRKDY6XBO4gu=8N)db&FH1m>GJPc~%EDuKPhUy$6PqBVaX0iw?$b#qFg zDTrDuN>nqhTf;ITV|a$|UOIW9;Ak>tkyit_@xb_11nd`J@SG15-ya9>Ub{JenUeX) z$S?PcU%E16J{JhJ>iUkekF*sY2ck{hm!!WR&$082fhJ#A(?}a6sqd`p9_LjH(H>VE z#~`Qdvt4)k!o&yd9~|4wU8@1gatmZUiX)(nu=8d(vh$cTx^$}0ycaoP59OI1O!e% z>b#BNTN4oBz>s;P=HKN%%^!{> zRC*->!?S)L-rTzR8wSjrjKJ*UQ?mF7j3o=m1kcwDt#OxgcX(^P{C-4Z{oIM@oux$p z_<@(2N8i)tuK=4%wb9@-1V;P-td z`Ie8jREL>xond&X=FrIh7q1cP0byJEGifS=!mirslW}KPob7lCQ68i$UAx>l>$IrXu;k>J$AmQYiol7K)zg-EuZAOobI!>7q8T46A@UJ zob7Zz3(rC!Ey6fzbDW>Ph7i8zFGx`~ENjfs4|5ffdM|$e^#K|s6#uw(NaWRX`J@6D zXhR@vOUSowzLkWAGr=o~*RQQO14NE%uk4tR@(wCj;zVZtS6UwG=6Qgt*mAOV0-+Sj_c~_neU5|dg;<)JP@wg?}9WNQ4ZZ#(KRilEW1e0JHYgq?^MQI ziwTzHanA~g<9BWm#Eb#+TQAKn#`)dpeM}2ufHFY@o=L-|I0)CO&(Yfx-S^Z|yo!;( zNGKn9+gnT_pMuEG`u!=sNRAJC!n;R(VN_9nH-a|y+yu;3h~}?JVa`Ds@rrb`NldUm z2N4^6p;&DJCA~-rWlCY`NpF>Kb1z$Z1OQ!zwToKBPcDvr+S~j$IAYs1%g716lMs$V?m+zmUtQYyMt^XLeWyf2)@a4Ck`Ag%DH&2;& z(Z(QN)T%9qcOcVVknnG{)e#iHdF}dl&jkYqc64^k(hH)K$RSN4qMz(X`ur*~oWVY$SZy*i44GiQ0 zlxO{>tQ!V}vlvl6dprX?ma1ZpK}MwjPEMQ0x3m{0v&e}Y0ajX_ zbcf}7EfxslXCC?zMc5QK#_)wG-oQ!3jAjq+%?>Dg$X9gS_tM@NUpjlMWLk9wfsrBd zWIen#w&$wyBzEeQ0NJ{>3}!DWK`Eb#Lq;*e^G-v<6pU^4e=7eqHY5*nk2 zb~N}0UyX8$OUtG&5oV?dpk{o!tT>T>W*XbeA4i~n)K=C$>OPZ7w8Wn7<38N)YL;jK zQyJh817?L@eDv9wAuz@=R8l~1dr4MASHp*p6f%*LKQ-sSZ4s^~V`k|bi37eL**{!; z%dRa)*)FSH*QdRKJzCfmzCd5hR%WMk@9eIGZWyC}Z4h~{HkBpn{1L(zIlobC3DAYT zyRCB_3U2jL271Wc*RyXT3Vsm)RwRc4_2PmYSW}TxKZyepM2m2KoEWSpp$!QER3S=i zuagj0>OmudO7&YVBG6IQkyNsatqs=+;1!u5JIRk{{hRrg{CGkf#Vl(S9OC8^(-Ji9 zyLYrdx1P2)&J~u5nyQ=@3EWS9NB(LATUBSO4+z%0n`(mz+E3XT&|L4UIV0 zpd4u7vk^VEWrrAfO=EeM|6tPxpMAcs`a2g7nq7Fkaa|t|R9nNP%yhGqWP1G(^&iCK z(X$1Rg+!~XQI}l(dxGB~>5b%x#&7;U1gzLq+C51--|?7o8&&_#1E%^;Ta*WhOH2R{ z4j&rHgJW;`HDrP{Nfo%gFp31u)zJ!M{x?;`aX5G(8K07HpG!dJh?T#kVO32XO=mHO z*BHVV{A(3j3#!c7m8Q(bd(o8uurmmPM|D$eYAK9ikPEnT@1**pPjQzs_gGM$y^$X+ zg*%Dh%Z!l7p`!UvT%dl~|Jm?AGn99r-JT4ZMMUuI@S(kgU%i|Y!s$ZzTMwj*y=s>M zz+MW2jWvhWe5!xb#Rdr6#KLp^flxbb0Q?P%0446y=`Ltp`&I$Ch%rZ5b^h$0(hBX= zrL#o459q!J5e^GOyF?|ku>|`jLJ5Q*J2;Gr8&1x4zyWIkQHh!^hc@s|<@TnBxUt00KRmt;)XN-O@QGFjNc~jwM6? z)?%qspaI?j3{_5U9bXz7TQ{EqV(um1>U~Yv3R~NY=aoRdjf{Ut z!?v`eZy8Pk;n#D+JO`lRW8#ET3wF} z(IO#uBv%p52`xfsr_Thv7NzJS$m1=DTKf_uiEAF9oJpl%ihq5l$^=j<{cn6nve@!Y z4l$T3!moJVKwM4luX}NPbZ}G~znAJIw)I z4;iHGHB~uR@NoY(Ivb4C;{AZG0Z-}piz(!D0p*weavJ&l!-Ys@X}X~9K$@Cws?TXy z6qgb~l+10yqHs?4K3$WA!!TpQasbR{2#X zD4VNY2p1F^_RI#PzosRtdU-&L-$2A&BGLi_;4SKu8(6R!q9}rBVQ(vp1cs?DB)Ky8 zedien!!d^BT`PE^we}TX;dJy=k>eTRFMd;w03Ajpc(Z^E)ncIzZg;s22HwPm3mHpw45)c!kq51%;rxK;f{^*eL>kf7FdfC@ z449?9<@|no;fp;CtK$no;vFrv7S=IHOMO-SeIM@JH2CxGV1hwBBox-%O?L@*8*)gK z8TbWX8FsI&ol2ltgz~blNVsrwqB|gqcjpetxyp+h$j$lhAmN2f;12FFnN4K{3j4tH zBI0~ujGc9dMlg{WA~YF*2TBRo`TV(ff~aI~l#opE2Sx32v&c2ZWZZ$=$$SkCa%zvtjX<`xTI+%h&N@jaK9{V?cJ#7-}bK^tlZ=qQ8m%<-`=EV}f`;Q;WFr%I|cd2jb#h3ho+i2~S>KaB~e z3HN517Tby|WIsvG-?#t$kO8LuBY>!RUx{QllKRMnA@IZjFaUa_Q!fbn5KMboUKk_6 zudyr-rKQb{Z3Vp`hT2h$=d&raXbv(RgBZSCTQ$;ElAUq@V5IGq8J@7K|E?DgBsh~; ze(VctPEKgdR04X=D+lyI!vcqLkIePI?_|}0*N4_FOv{y<+M2#?*?z+iKd*(cs5*;_ zRT9((;H5$61Yi2kzdpX>{PWN6j_23cLEr`=dcs3X)UWZ_%bnXQ4+;K#**6clHh^P~ z5|QJD_SA*awq3aA&vn%!fAwx#*MmR#ec_HzckSJG+f~)a_o=u$e>=>wY*%X$OE({} zqLLg#CV0*l+T0-%adru;f)m`ci{`}U8xeyG7$<8J_AOa?PkeU~(@cweH?9yOKD zPwLbxk+09(CIWx5$lz&POW?zHN} zMKl1;BQQ(S(3oOtUN`t84|7X<@#c{ETN%jC@$WNUBUWpdISn0&BbnwA$WJ|8TMJ+! z_FKSqUGC6Pj#3)0JrjW7OQn6KscQX*!AL7vMAbUIhXj?%vpq+PO@5xl2cjE5AY(A| zXeul3a({(=(| zPCL(9cTbDD!tY%9(Xk<)ExC+kJt<*~O7xyJ|| zCRtqX_i`V#glfxRdDicn+UY|vyK=*#h^}btHB3V=b>-Re>7JFb<>R-jZ6-4hjro+@ zd9kO@Mi&A(0ip;Y=Lc?TEnde6moabxmTGKmyq6`c1Vgiv{a(AQ98O3VI`#LXJWJV= z_FWe=-cDe6T{=U#t#CRDEHMUO96mIH`*d_{8Q5-1TI_K^HTNBB>=eScEz9rIK6a&q zBEnJK+;gug)nelEBnGG=B#l&hFL@@-4YzCbRtP*!$N1kq_}j4q2Mky$B7KP2TX$_e zI_xezNCYp}#6(vuK=wCfV?azbA^%DX*!kxC4Tek$APi*TP$lSYoOCpf0f8gM${R_H zpv!TE1x6 z#c7?0G}ou*s20lY-qK<~Zmy}UU*<^v+Y6&GfLn#(-`Q z@sNr;(F>M{J&yrC4UChuJ9({J6SOlXk}dnZY@QbIqs~}%9f$BzUEC#aYA#&P0iI7t z3OjOGzEI-!CJN+@r8KdakwtX(B6PkX<=dq!;ymjVRGq43UpW#dy?@Ntnw5Ka}rKY5R{ zQ&9n5uXfT>sr0CJKb7C1mIP+#b_ob^!6W*+g$IG5%UeZUL=@m@7~so3(>tcMYXpqO zY96mpY)#Sy0m8JjmR>T4gAB$X6e}7(q5d$0z-`n<|H!WxG*FoSpM>+ zwQ5T{9+$j!`=tQze0jFB^1Ksfo<|HPYvm+;AZ}=BxS3Q&LHMZp=X7CK6DtC~@nYqR z%QY6oEp{rgg>Xzj=HDSpw@%PP%jPivloNno_}02UbPmFq4A7uq-p;68Gh_?}^dBzq zaR{iHgznNBBfY-~2!HpIAeB<~JG^WT0uJSJn6DlrM^!|gZb;^*jn=M8MR=42c;Cx- z^?)28ZVy2!3F#BxvQ`NRSh$9Sf9IhB`DL*-9RS*c0?NJ9D_FF$dS_}g^%Ol27i;W7mHV@-URcWre8 zv(efI{6X4H*yh4$AQ{6fdQkY6Tdey9>Ua255C;W8@Vz8ByE#9bh!SF5RHew=E-2L) zhClRKq|s(myb_SF>)uzIdg9S>n0b3qbExhL0$Fzakh-@t!U7E{mGf8ob;GY9#`8=d z8}DBC%TYgpnFjG<9?k7tnwYCXtOJS(26TgI9Yq-JI2Mr z_=0wT+*m%WpLR5d5aLJvFzcS5QeMkhWyqUrtLj_^TQn!~b97^_ud1Ky7OM8fGg(+k zk-zf(E%*8L@F8%51^Y8!Sc$Rw$06Zo+1=S^bW?Fe)!{?#6NIq7sy>lo#@SxWNZ?0) z18r>2&lRT1Tvg7!w*JK7_75|#E5i7HZ`zSRmkmxdDEFG6{69UVt})C|3Ign^8Cv%& zAVd=S?S)Y)BWB=+blz8^W*8G3(bm{8MZrSu|F#ycA%IcV%I^~zu!~ue%gVDd)d$|Y z%}y6v!qK3cSXCrli!S%9-es-aIrxRb2T)*yFf8!Cu&p}_Bg1Z3#4In>r-G|BhDL-g z0pMR~bvXua%+sCAA}{ii*T#;*HEiXovP}784}j7jcT1#^4GJ=G5FrPJI=DM^_#)kC1?>z0{B06gAI;sH910(8qc5y!)mD`x1ZI(!Q$@sWxn3_#`}TA_=4H^0 z+cq65*{sHcy;oaN`;g0%Y|T&B@4mLO?smVSx=g!JyI5iv;RRR3a%+^#wjwLilu-{j zAvDjX$%^iRD=^q+gu47Rz$?slsYu2rB~THz3_ zuW&swPEkLp!~5?IR|sN0Esu<%Meq_7^FeE6>r*P7bMiRE+mST%2VVAjk?tEIhATib zTjRKrh(Zq6YiFrc3Lo(@FXvAuJW^2Z){BQ*d#cM9qXCoI9UU;^ec&oVIY(GF`od5o z#e>0!rk^q4t18KIW3RPvukORGP3<#uj=Jti|FUU-IE=(39XUNSluF%7$qgA`r5^GW zG*{kTb{`d>rg?MtPTnZqlW#*szF`>mK6wDFv+qJP`#r;2kFCe03Ji0X_j_Y`g(H*i} z9-x~K^3TkGwtl*nWXt#UpVymbx%naxb7RStmYs0e3C{YIZ_AG}LSG_d9`tY-M?LP! z-l|=40{ipc!dl^8EuO!);iYLw-m>N;vs@ZlJJo}o;&aF>02-K;>{2bt#_QR|2yhOh zyn+fT42-!)Y-y%1jx@FuCNRL4A%tlj%#`xeendo%`E$hoMMjS@Q{{qyvx)aIvLwMn zi1Ktg{;1GWctlWkc*$)fd4wA^9xZ(lYiMq`!w{WmAh=hHEl$N#fp=JtV-VbYN(wv0 z9mPw~$Zbq8P0s;|0!(nHr`g8)6KR&I0JitB8bs9MqZ#>M+N4k*m_g`fz}xWyNST#;FD1?j=PBC;>I&jhfT$raO+^Ny1jOV2_9N0fC17iWcP@Aoh= z{@bhi+}v{#YRJ|Nt5^A@`zbaTmkDwv{cqa&?(DbkUIrP^mF-%1^1&y6=8E?grYnK} z^WC4XO)OH8H2Qo%`nYpj=XX`suN_?$TwoycKoUi^y)Y63RCNgiL9n5Z5~w*pnFvOO zz?$~Z9`6O~04d2rb#WaC=Yrt({dvuujhGgQk-w+sPJE8MJ0Mx<^TQ)ryNuJKZZ@`! zIe90BOAvXxkHL$c_2w&t=qME2m5Vqp*4aD=Zy_p8uZ=Ia5&X<7K$7;_iaNcpN9TyP zhUp~K2R0QKw$z@OC2N16*0Z=suQ5rx`|TTWpU&}*b~PNdw~N*Tk$Tt@GP<4(EaO)Q zp{rB6pH(|p!$%EAn=-r?go?RgIp-PQ(z^L5Ml%is#228Pw>=Cs!+BpEk(M-6RPxLK zU&vMDCaGN}^4sJ2Wavk}BOBQ)0`)R~(7CO1t+#II=g)wdjeuR{Wj)J}I_QL5@mQ?| z6y5ipORN%cv7v5QT{8AulZVVivUZ+7M<^&u0CR?9v+nKc`Ocj&{6;ZUi55TDk6|zg z1-{hNQ<|M3vsV(JM#*V5?++HgI`&RLJOh`!I`%?AeD>_xtHvDEzhX2X{U#j-uHGI5 zsSt3Ui~o(l3p7g)8eQ3*WuEe?RUXXZ%?#X*f@O`BjZfFK)LcS_P8F2@^*3cl^dz{A zfZiW$2S1_}PnAYmhMh=wFk9~M`Ez$U)(x}5I%koKGRozDYBDFGa2zo3*2>}QCj8Y{+K?c<0P{_qW#jd&^&}D%5 z!#)A$t@*VK(C#l7@usX&$XwU-Xb7<~2+A?R(FuQ}y}0KY#L50hRM4F<4}X-u2{7{n^;t zu?RuFOnZMs`v?1n7%T>$`?kxZ>uTKxEMLn6kLxw{l1nhK)rPQhZ(r}@`|Y}4q#bvj zL^*Oh&xVsA!x$F%b9qLmPA5?0T1L3jdkNmlzqfk@r|u>)PFAB50x)J0l6iN#hcNH5 zolXa#Klo|-#~U*B#SrHZz)SUUk>svZ*L!smR;UU3Isf(O(2A1;> zK<%(@fE%=9tsOQK;O#7q0O_WOdhe@hKu|WPYg$($POxsXiVFXQN+Im2>6>5jQn*gA z`NB zCX=&DIe#jPvi43C_@|F>$+ovB^y2_9FvWM#qlG=YQ02wjbr?HZnh0<)Fy9Y#=5@%! zMP$^44i#YF(K30aW<1^k1b=QE(LWiA{6=tOMY6Kg;f%70@lZ1Gp7+scmM9Wk#zk1z zI4YU|_|Fs&&L)wM{e9tV00N6e;G?FxCYRY89T4Pn0=~@yI!g3Q%P%T1y8L$%!FeM5 zp2`Lz!fy6P2HaUt=K6_ZG!>+4izd8b{O||>6-~8BCG4s=DP_&+lp0yaJoLYlE7VLoqm{D$6mpekrV@#X7MN23uh?V9 z@!z^@&R}4p9 z$NS0wCvH7z&!{EhAd5U%8woDr3-NL?!NcXM4C#C#!2ZVtE1Dapb+)-*DjGYueymY>l{p*~L(&{>H1 zWU2VlCV(-waFkWLHvICUj{%a9%rZNCDsI6*jHkt~rPUGsA|C)bHRfy2c2~v7oUou>#A> zh*1G4;-u-W_{`)pR}#a)6{)IeezN1sY)#MaV=_d0Hi~5VQ$id(Gw#1 zetYYQ0z3@>uPp&%q9*-=1h^f&R3rO@rP61yD*uB*m@I%_c6N8(>mwf=9h&e|3#`ow zm&2-)O0`3P!56l(uIL1<2n($6t$r{6|0QPs*SZz|-ZKng+D+AJ(!X(XVMEm>jQ z0hFliCu-LC1 zYddmFEC@E%Hab~*bf07tjyEP>(>2+DUoM}yRza3M-}FrL2aNdhyP6Qj+dytsR!QrZ z@6}1F;#xsQGC@hk98XHm5#b(Fow%=lhx&~U_yfgzK4dvLAc$Y9d;Vl^s z3>Gpyg$^(@z!n@s>C5}aC~Ye^h; zc`q}6=4%LdJ+y%)d<242Fo8;uKZ_57vvt7n{ie;gYJ`n`ElEbBqpH}zOUmO>1!YfP za1jeyG?@2i5_g}j&s<^*9$lHLp1j+T-8MzBl%f>%S3LAl53(G(;oep$%2MB0((Cs_ zV)Hf3vI|t;B2TDx4b;Hg2_UaE)J8F5{@$zXslLiL)z)oTca*i^^~T^GV~0idF!!7g z?I)~Ys5s}lBl`=tj-l9eO0)FA`v zCgFmYEYFU+Whc~ ztw2Fx0ewBiM-!=p#-eEE&l`SIjuH79p1T{F;2OOV;;}XY+X50+_##ugOvd2p8tsxw zq#i0Q%uYH7$05LM%Z~63_xEp@VIm&3A1r` z`8os8VbO)nZq=Jhz&0bAKbQO8vhCTqg#BG~y_hanP54xmB5K!YZ9b#YlLG-sp$iUX zpwS3L=$kJjoju?5E%6JBj<+`j-^~Rb!P%kn^>FT{XNU{M;6KW{N%2%iCCM-QDY4V1 z8*P`%?qJ}zezEXfLm-;zWi63s0QVA*f0s8LoG~8lGDLXNUw?m?1ET*^X@u*%m_RYx zpLLJuzNd6JTAw|X0{VrpeZyxwIuK6*7qiH}e72Nc1Lt$hr=E0v+S+uidspxSsux6y z^k3^l+2lc`oRx_1eR)8(^CuXbCWud~Kf%Fv1TWF-xNhma*MmqR08^z(C^{QQMjiKf zBDoaNJW@W<)oz@SoT=YqgkR7DiGmw|p#gy_!%$YMmfjVQi5)aU~G=`)M2|t(k-$_pR@{r#}cicNC+XjRGI|gP4;-vK%5nRZK3D z$$58MJ6bOV;-iZNd)0eKbKJ${k&$lQM#MEr~B(4 zLj_g{;VX?J8XwbwLaEwDaF``GC3pV4xCygFL`sLlXrpr!z)Pv@-qpZ*TeKQw^05!I zR=GQec%w05=u3%y)%G``RO!_%Z=eZ@7!4 z`D)WwLw@M};ZA059XE2E^VCI)wN9IOl4cFcMqHuI1(h<2$iV@~Jdd4^d`WVf1-Yvf zd*$FRG7kYiuCMJ!uPYhQ7_%1=uDkz<{L;}igT6lFXJa=owYOU7-9SZJ9R#~y$WXX2 zl#UMr>b+;>Z@N|^!q+Qj{`B-HBXsy<1n{|1@Emr%(08GLROof`&v-P!sd|h>{^Pr| z`kub%{GxW7-FBY|;8`zSi`G-Q#|l5~l_c){cjUBa8X4!`aU2hDGZN;d%Z1Z#jV2S> zW{z?ghZU2>RobkKlpBfrEy!P+;>}Nia6vM-lmG@ZyT}hmVUP1rr-Q)GLhc%Vmfe^= z4vH`{fr;zK)QoWrhqw`Nu>kD_U|-V%uJgN8CGSJT*UOt_?w)GTKFY+OH`YXe6L+8F zvolfP2uhjhN^#eNIT)VF41Xw>UTNV@0%sQz;Z=JL+skF1I_X|VcCHe)E0R?=>;4oG zpXF-H;d@OZ_bO!%uI>78Pg@M`K;qT@Af9!NDjB>vCR6M0bXn0rSE2~@NpZ#Ab$fs5 zyh6!Ast_5hAA{dd9ND}R7qbluO(VxU3A<~SnSw^CRcfK(shZjK*;6op3xRRIKRCE> zcfezem>ayGP@kvJ;uV1KYGX|-C3K)LJ`fD)=i64grz79-`6Om$DZ(V0p6*8&Jnbjn zPM+E^OatQ&0)Tt{VN8o30B8u2Z}gEHj%bT~DI)eDphgG06E{gOuqc1>etT_*Q;OyR z!4J?0i@Y>7^3#%%z*EK;J-B`nHL&O)B*}V-U{uiYkpR@$E4`~7ET}zml0n!@5H==9 zRIK(ezg$N~|6MuIuC*g` z4gl^Ugddd};+@&Ek>LV=KgRdycobMD3=fpY7sXA?!zrLgyc|;F@FGP*|Fkh)&mJ%W zuhz%0F45r@Co{_}e)1g;6Lc?AOVP3t?Y%8~77|<-f}P=N4W{}Mss zEYB)Y&ou)dsFcy_Wc4aN45%!9LVm(RK&eb_NzGO@L3B8^_X~jIg!uKv9R`w{Zxq2n z6w*R3SJ#Y6L-Zpqqxx%H2rwMqySaDjeq;9Apua<(QG@uiu$QNlTTgV*0W3d*Bra9C zcWm>~>s$v>{pt>k4#*eCL?;19c|bo?H;wNL?gf-L(>3GVYjyiI!lhy{g@~_|Q_P*M zL0me)@}`}lL!L&s0OOwZH4T$=(&%a^loOYU(-#h8YrfU3;oc_MTAjd8C(8m z)5s>bM(VjBfr;q^I4FR`-M)@e&ou~+0Yf*J;5_TIhXH}AG^>c|QC+*DI>;;y!9HB> z5!UG^FpV={=KD1+_Jdwd$zX2%&gO=A}f;6{9@nm zaGzg$_97%aht>SBxVZB@bdgzkzj~X<)BEdO=ZYtx5YwOm% zH831B_)0_>C4vuX@!^PH>gBZZH4yFLb9$^{LIRaC-CPpQ?AXht|+V)>Kne27um z!@nA0`Gb47qD|>^Vd<@)iib3(F`5*~a8BUcP=J$rrFWHfgB4^{VJfa8JrES_N-fCM zEDe;H=B5qtlr+9MRAP5XRZrDrrS3sn_IQghgV0>3FcLSZK{`U^Cth+H2dnEex1ulE z|6sb`*^#}00DfdqZq_2*eXr1p|IVa~_4!Lc=!1sZsH5OO9EK_hq$UJ;&36+WnK0m6 zfN?>3Wcp2aV|M0FK#_w5@MC|F)vvqFs^^D$2;2?sBuFl+E3MjE~83VMIXZpkcJDn z?%>u~qIHE89t(hv`XVb{oX%mf69P!e055(jh&5Onr#xY^O6ozxn}62d?m%A-E2 z#a*W;bpB|9;3i+_sV~ofSsWKXZ$%q&-z*U64KVpY$$#fO7jT9!clJWz3BAWv3h6*H z3@8Tw;-yZ`k8JRKW|+5KC)7n@@Q@fJwAEq80cViql2jvF?A)e!n)Jf7#@!+~j?x}C z?aBHhUX&-yjSJrfEwD}a)#DMWj(FQB}~xC-Sa zrJ8CZBNUuP%)j@N{5ThRF$naf%QhQru3(7QinTo{s9fr%Egdf*=Q zw9AqD4|gu6$k^Ee5T=r;#lKqhx!qzZxcuCjL#rxre*o(EYRgxTzWP$-7klo!WAD!n zt$qfurw|H1T7l^^g?ldnYJamB_CBui^{LDLwpK*`bKf;b{ZbniAf(UG!u0TTXRa%E zA%{HFs2r_aTAa_`u8Pg_4ZwAsgH895p%3auq#cMSyE!|QdO;&2-t}uiyhdHF(OZ4p zg^RUeqKDo>vF}Emb{Gy8`64UMN(+Qh;b@O*0pNTn4Z~Le!x~Txg2llGn>!lb1Ge>O_zFX}6j!L}|uE&I#RZf6h+n$}uCnW!;C%M?o1Fg%)wJ7P58xS%Sy-cO(06v1kirc@x9C(B}% zE)cLa0MuUID0aR&kzIPa`)<$zzyWKjx|_8iN5M5dmpi*5yFV7?I-OLGuZ<>k>pF6$ zg&^k`Ft?VnrX%}+LU7a$*}lks}SlH-l=1KB?qgpS29Yc_Gy3tbCMTEQf%~ z+9kQ#ACPo%tnjXMZPOLLE^_b5O$Fs#D|Wf(7&z~5fQuRB9p6BXbILCUk-vJIi2r#; z-iH7>@-J&`jHca+90<+kA#UkDSt`G@dYOEVy%F~SChjv_$>#c!9?2u_lIGhXoSjmpGKKlzaaH&PU z*-Q1^`dXxwK(O5eFx!z`1PH0dntq92wmqwIzXPO4rYHeF8b+k1Bgzou2&U(*$NJWN zAmFQPM0bAPJtI*u`%__Upf#1qv2iW6QV8GovUrv6>pj+3Cf|>rvxx}ulO2kKC;Esm z2hsuiGek;|DL!n&41~7 z^gfAv*tvTZvQ*=%+I>EE(RjO3b4v5mnUCTsn4-|hwe0|DK$gEB>?)X; zV?jR04Y*VrLs2$u?m9u)lP%2mwM_)!8FU8%cKG~oXJw+QNdP>WLwLOO`lEyR;aHZ_ zu62wa*aZYJ#8*@a<=~|1yS4JaO*{2Rv8lz%G8`r-D@)cBZLA@vWL4FMZY_+UVtvgP ztOOW*>+Ks(8E550FtFUG8f455!J_~GAOJ~3K~&l@Hw8qs^|k3z6q>Vw6<9%>KN!aM z>+6~vm!!2bJB2lyHU=EJd#63yY!K@J`6F*#aS8>-9mq&^v6ol-rh`5c637z6uxe~w z`Wa=CkdQVCKS|f5SLzT=*TRZ?#Z(aaF#_H18;x$?%4bwvaukQ~l-3P?{qkzP%9`rg z8jtvKSL;ckl`BPxv%HGN$^Wg~UoI<;p@pZYmo_lrLz+mSX9{NC6A^c?MZ4M$GhD2t z7|nHlzMP4ZS)aMi1h`v6P2*($dRn`(m#z8ott&t4%;fNu?6c2izIpSAp0MX9^G|um z`9RinWq)eb>@MSWJj~pBAG|3y%2Hgu&N}EGG)#GtO(MnUs0Zkn3Gp;3556 zF`-v;pw@3GY+35%Lk_$_aAAQ9S1ID&-Edv4`-qj>0pK<#Vb)C==>%m2)kivZ=cSFZ zByrC$4Cna|%olkGc({-(D9Il>vddWD2On6j-xr7PE&{<#4Ylb7vE2B0F*2O2RFO%v z_)c`}i&7-`6Mo9s+SYP7BOMI@orA(bzxE5W(|R9~b^+<>ntrL6>m~};$ws(l+u&^j z2LuDI2H_q1qCK6FFed(s_$Y?=W<2#hD6B~#U zirG|~J9PTzx-0;-A~aY?R(twqoLjnp1vWO;HO_LKEL*%vL@EMEE-#-*<~nm%f#toD z$%+~J_nqITa`+0t{+u^`P0ov8!e)&K0I{E_ zNSy@Q$*@KC)rH>2qPRsM>hNml^POcr;p>&qTadzR?L4^%3WZCcNkNqBR?6meoqV8k zB@{<_b@!R`1oCo;BV5*exn?(0VJ<a=_Kb0*?V1BN#LNB!T}J_4KA)^{hED*jQUuXmrLN+=GPu4!qXV#CJ)Gn zH{d1e_0ssCND8M1co`yP&64QeZ&9z)ZVB$aY0Su|6YTs(R+b~-%MCS=w?+>M4B@3( zVkQ!a73yR8wByqe1?;`UhVq}Lo%)HUQI{}vxwUqPNtkC#^wxa#LIgR6C|INtL5*H2 z0^LFYuQ$ZxRQK9Db2lp3DWG6hiFEl*cBo0>G!`C;MRRY%=!Q?S`K&54&L!Z7d@&v$ zWPfGZ{%2gAZ>sm+tFO@4R-~#>P~EJXSTO=JAOxUxXr#>o@*N27yvxYs`zIbb=tVU6 zCu8?G7NK}t2;Y2bZQ%*;kDamNjcqoxn=31^JDH%tTeop8w46$%%!ukr+`6@!>xx$X z#TE>JWG0_i^Sxs8>m$F3lh3&K`d=^-=W)-=9Vn!Js}eNDQJ>jfhM~Dy-@A(|>8P10 zXvdO-3+wClb_J#SSQufj=9>!P8>J1rBeTQ+QbTQ{0(PS4q>&Zcg&u{7Z~6mDydIv4 zf=3|npA?<%qKm@b3}nC;yj%oN|J&B$`J2rkiQHYIdr1aaKjp!{J&&8l<)xwaGYzi7`sPeWK*UR$hbf2}1CHzG#hK z=g9}1QcYWb*ulmqPBmmyO zAmPnAIo7`u%g&mWFbqH$y{DX=1K_9_;N;X8PBBr$^RzZV!vEE&o&r;-p!@-;Bnck& zpUK*e?By2V$lh(elYO^8`uws7kovv>pYn~$I15$58J!+%h?bKt!%->a*vtkj4! zVRAN`DAuPlw-{K+$6LfUk$VL2`SQkwHr4>(ARzd?m%_UJJqYe%fmeN_Sz(ZCJ97^M z)4v<)B7(bnPaUl@7&x7-NnfG&j(f)PYme2;+EDBgjaJe3lfu-MO82!OI>Cxzj%&t* zp_vT|r;Ncyj)7pqlL+aP-#zgARo*x2-cvra6c|fZ0oM=(ISq-fDktn}F^+=G3Frr< zDYe>&IYSF-EA|g2GzN_vZFWdJ6>bTYouW}$?|ziejt@mn(upEM@S<GlBb$xu`-+i{@%amM*yPoDSw=i zS*LKDa*DYgW)0vS%+BiJh7>IwEvFf97KWL+kH&QB8-S3dLT)X|VB1vlZ-JXI|I#@A-L=G%f@Mncat)HXPpZmcY727;6hB)rYZDJL{NfcbIHYH4lH zs;vAVF*4c9h22CK63v03US|8XSG{PX6jX78^q8*!)dGM(KVk#<^ziiKu7>Z(o@xMU zS+K4Eg~$AQ_FmU}b(LJPQeqB(i;5Jy4hTC7-Nn1Tf=(x=Y8@#+_*6NJFrui#=^)l| zElT@Ydv>bA^Pn4M>F^+mOyrvd@UHEcESixX|{5IZnWGKuN_7x9PzVOmH3`=nd2V=GJEqLxVpNkX|JGJ0Wee#qfGU z_-J4__})@reLiLQmx{ zVTjig;5#L_PiJm1iUdCMQZKlZewkn@7=1kOaXnnd^2{@+DtJzM!qdpY-^Pw?a#0)+ zT~78Dfamo=b{+ea;-9ISk(ZRHk}7cooQGiN`Pbxe{JMZEDmuZYYyH;+YZO_aT#3AXLw8~*!;TXxmTIVwI(27LG96ey^ zVr|*(VbByT*bd*#dgYT>Qo9b=`5`F_e%1psSUy8UY$d@1KI<-C2yYVLop%H~vo;Q6 z&$MUmC&WQXNzLdAyS5Gr22KIQT|n?b-x!Ew4aIBpq)moO{)8yP0~(A;%<)?Mcmuft z0T1rBy;tg_Qww((1~Y+WcY}d0!e1($Ur>Ie9Xc|>b3UigO<@YXH){dU1{OgdBr$ zx(2dumrEG5`ve3t3_>Z#N{jcZ(G?F{a9zs>Vp)d&*R}8O}ySH|zD!e*XS=tWMqx z7N1X#>?cUZ9_vbCdiIshM(NNk-{C=S#d&|Ls+f}p=y;$CZ8%jHD$)AGr$ z%P(a96)^q1ab!eW{Ak06I~5DTR5C!;%A>jn#@PEMgtAem_I{!5_h88=M0u;BHu68Z zPBPf@fg_1vbdW8mbo{rdY~t+{H|^WWWL2tT!9IY@q#0gag$-vNJM@uMg?T67J@>WTcd}sHCoJ8s`Kijs9fhmbeAIs0ySXpx5(%i= z*3J1agzpnc9EE^Yfq~whK3lKiOJh#^0l?hF=U39$IYny08w^K z{!nqf2ia)wwG{1aLvXu?OsJQa0QL{d)G@j-83Q|8s~Ilxb${`by@vrRduw{9dRc!Y zFO)r5AX6@d)$B$Z zS3JeCb`LnwuQ{J-p>HKb){_U~4BNQ^xVgHgdT|Lt^F_86t6(Kt`D3|%F!$}6qa$+U=<@{%azqEb4*iX}=xRgvY0PX^Y{#A-c z(8&s-qK= z7XItXz0eUUm5yOhX>_ADW+k@1Otm17mQT6k!_Y9TBf4t3Rt^1bXl+mkW&y$vrouct zcJNpizZ0$R_87uosekXW1iaa0P+Qxf9ymP+g75@J*dd;be5OQBDas@eDME-Z=$@D1OaT4W~@sd>6T$1uVh0qCpB zp2`x?E{<22Ac83yt2SK3991kA0Hu(ZyyQv|2gG8-i1eJ&{iN>;`AUP-I%Y(JJ0Q6A zkZHOgj&!-HF=M&(<(X6W;z$p?mLngN+LHujjh zwcOREuz(Ugr+&u>zUDsvf;1y=HzU4HKzU$3$69%e0y-Q-N!sbZ##X3v5T#c_e5Z7n z>C9fl0w+rmZt-k_NST5=r)wLv`RoP{?r&*x2IOp3t3%xUb%np?(2}{`d(l7nIlaAz*qN7sI7wGtYVZ5@R1HQg391-X8vtcnespt4k%dR0bmYR8}?md z5K|fpqvxb}^0^-XBLMxY#1M$!kh2UzYkf@=8|MDD^Z3Ga;C_F31Pqng0QRQm-o5V# z02qx6U%Y&O0lXhUCZBQORedC?^A!R^kGScff_(y*f-GO8M@Hep?hkyM9WO?XMZqE% zc(*!Po!eH}HW38}52&zrmToxp92h-88}0D@&e3E6PO%~{62eIU^r}DPtnJJy_+mGR zI;>7YqFqlD&^!b5`PiC(FR?R#S zG;7=i6KF8ID;%Peznn-c_jwYPTNom$)K~RK^6j0B0MB9$65?2-0?#c(nKK zy3e#LdkR^+M3V4OdT9F9Tu0^-1Z)CulL;3C5d*BI3gWP^7~Wrs-|5I*0>Vcc=EY-o z8vjx0^|!bD9MGIkQkdbVC<;~rfCIV6E5?l;mr;r_Ss158Ok?0}PeWGe-OsN)>v{s( zolGzt;7SN_fj`_U=}|;RG}JauFP{o&9w#sl6hcmp zNUkn)6n;zu$1CUxL3+F_NH-PNi45RwHJa;tQfWB=9b?(~VV^BM50RuwgX|SfNp`a-x`Ib8Kt{@GAmB{?8pSHOBRAsBcXN!gD2)HvMH%g$^H(Bq2WYPDv zoCbhDmk{qP2M%T1Gxq_?H=d@ee%#7p*n$e;mz18(pK2lu{|45<=D z)I8F(%l6Vn42L|O0(wR_us9@ofdJa--s<`O=UelwXRz=D5Li?`rFLL7fbpoL*xK}8 z*LJitG15$7`?qr0oJwDSq&i*GbgjQ1oF`1^$Y=lZU3cfkaOQ5KcD(qcpALB2+8&+K zRte$bL0>~BCO0<}`J3^K4yg7;0>;(|6whYJe*^f#Kl~>5Q9ir?1&$B7?e}7~oDYHz zxXF%^5=9Qu4J3i`)E+fWpG{r%`a_7={EJhDzCK_8PWBQpcm3NkI=wiUf?#Til&RiV z#)JBx?;7tJQ3_z9!rToY{h{mmwP!Mi$2h=6>>rAoa0j441=kh*dgSAixDqCpI_A28 z3XBH>U#pk6bgfij658{W_NbY;>O)%FnOknzc6mUETYEIun&=o+3fVxOYZ}(HHrLiN z3CJ8)o>>~-kFM(rhHm#AcPDAf=az9C%@Rxg)C;=EYaa-6H8*#VvrawV|d_;Ybp% z2TMrgO+Tq~krDaaEMWO@BAJ}0s)I=GyS3R!qRmQiZ-U@4Z5FDWt+%iHHb(fmL`2oN z3eo5-$b%u>_uRgv((2HLXCdI0>QwPTB{(|k3no+|r^S<-Ot@>>kv&ydb~VPNuo73< z%~miWGZAqpE4*r_M(0nDiaa@oP#*RTVL#c>aCkslsIO^U)sk=7HGn|(7YR^)uj{Uh z!053T13-nK{9W${2XVpTMJU*-@T(Ht*#UrH4gk(BmyfH53QTf=EAVUjz2x4PmP)3y zQT(koyZWT(dM#3ukh;x7;?xh^C#W*L(1N_6Y7&=oxI^DEBilzQw6a22=aD@i=T%gU$BkyRp8{zs_IkwlPqU&*CpNcZnOLk^QoHBHZ#yn{qr z#G=amT~yGzwsrei6JAYXp02O0cMOnRKBxSE!_21dCyyO_SSkL*H7k)WBEZ*5%CzVp zyxgGtX6%TlW{64150>XSY7@wITa9|re9clche}}?gPVo$uY% zhBMvcl_c)(oXAnZkp4YlDbBq-58Wx$eUF4jCwG35SvEMAYnyru=*m5v05w%KT2j;iSRU0Zn zCxNluHN8``dF;L~g%>JkL{&XlCvXU4S4_U&_WmwOlbE7|&WdE!Vn>te$W8=+BQ}{$ zR~$CHe-Y4w698#Q@t?Hwr2Z%9h2{W)*Q^wFLk!RtN=_z8bP`%#lO8$F73rGWDFzP@ zD0s*RXGfv9eGj3?+v(VB9W6xJyMUv-E!PD_o~GD|BS9WIIGTkrAHq2Y4S> zqwxTS%+vllsrQhG&M<*l>0t`)^+(l>}B)$gTJ9V;*k3_a;Pajx*!>_&uj<-Rgk`~?;FtJK9y z#^db7iL6tN;f;TD*mZ&P6t)z{3At#Gc)`^m?ZpyG&Ii%Eg-kQxzz%DyZBk^ni#b9> z?IOKeiX(C$6TX-kH5B} zep(|A;;5E;1Z6{Gd8r)#5t@c4b*f+z{Ea!}85W4^Ijkay-#-YU_xJ9A4wq^^$(*ZV`0yH4#b zC!#UqIkew(ezft|x(Ms_CP95B{?RZZCdO$HyYMbSWpYl*tEXM`K)rhSQ2BGJYnLHB z$cCa}+RtUa&g_l}oU4VK#!;0%ySD7r8X3`8+jzPEn)CY@R2ipc68?3{U9Z0!7<0rG z=MG!U;An^c95!t1``_imrv$caV`+Z_NVX)TeltsPB17lKP`123pl-mg)YtLR`od%k zsL8_C*BHK4n9g$p6X`d9D15oQ#cc-@5=$umt4)~IfBNKw|FnL4+Wt*dYY*CcaPyd9 z(Q_BA5o^vyG`}%T&;%x~^J`Z;MOj`Ru&&-o4DfUV=8ry`H7*`cmXJRZ zq9LXDqpsGIghdZ&*ZD@HZlEIe5M$_j#Ne^gW);b=RQA}Dl;k~HEIBzBNL9M7|8TF( z8nNH=mG{0Atx<4+?d!gJ+%5;WTxtEM^4>lNIKd~&G4rjRtv4adh_N*dx<*QC zzICyPj3l9XzDUxaUz^V@RWf0^CS77EL|JV#pRIkflozaEBgDfE%c?OkB{jaE&l8lh zC`mILhBSN?DSONU5c_PochLFxS@zW?X}Tu;r~)ip1BJsQ5ey2;8{Uhq6B}SyASep2 zb9LJ8b&$KV&mGxw z5pj@!RC6z{u1r=2MJhH6*eVI}uR7II5Bm?Do0>&v2#WnsBkSC>LDzi5kV9_q5_mUJ zMY+RZaPOEAV@jE&PKKM5Il{KPhx-b=;85>P;I_~uBiBXF zxOc$8d@PG>i+}F`?34#l@bBJ!;cB>necCWdf-9_(KFeijg);Lh1V;fG-}{} z{~!?j(|gIaE=7ccndCR#OB~1eT^jkL`#rw;`6J^b4*1q_!^gSYQ8)brb0PqK*;CiE zO7Fe6*))L&Kd2wkSZb0x88Kl6ic}rN7(b+D$C>H_*Wc;jVV15!7KQnh zvNUt~+ z$!MA=cyRAsj#$6Tu*Qvv1h3Q#G1s~3B_%*^6_VS^b7Xh($^zAwX>A4?2}XxQrSYMx!Kxur3o_gV{Z za799Zlc)xsGFK$=O;@N%Huv7B9dal zL_m7EoW$!SAlA+y0w)o38*O{$BmtOg2yQHwnmAd7@ZJRpm+xJ-_q(n;C3KPE(2+2e z9Fcs~6aSR@1XNpi-mg-%+or( zcCrGZBdwKp%B6HpCIxmJiurRX#D4vUhZ&Q&gaMu`zjhyQ__)4UEZoI`+}|`jDj*aN zWI-k{!5>te=H$Yf%`*V7LyO7KzC6 z3oRUXl<)yBYjzKEKDR)`4($E5FlWF0_Um?P0wXigz{}bpQ~7uzVJ;NHHWK3UeAyUS zwLsw+$-0UKC5mG{cZGl)3|(-!7JvFY5yFW8{7-LwkN@`h0`emP$@#@WCwfRhCEIX# zIlXpmJ~vOjk3x7;36mZ{q;59=ultS7P5J-_r0XJ|oBnekn)=~)D&4x=Q~1foPa67) zy|)11YGL^l2~QJ}FGwiZ4!9EK>)yyBFZ)iYdv@EhGgXe5eWUeC4}H<8A|j1d|5php z(3MlE?dfQ7Wy8pZH~i~z8!O7`h`1ps$w%B_rZZbh0y-66??DYwCtD5=!Ormogifjv za25&uvHZ{y7s*EhXmg}#RV0;>xd@b(5pt`aRye|}@ZKRt6m9o@RML;o%tg>**mZoh zAin$F&(Z9Wt+}HjPh*TzHIOiw!CNS3-JE57Mu^(?0jrw?CS{>&Qgg35O4v zR4yaVe3Lnn5^yVmx!Omr)4ub^-o}r&qdb68ZR#K*DY+(xZCt@RkxG`~lgn^#_d4^PkuB zV$Tw0$@&-*4U#utj?;ZOVc;#F?X2$;g^sXRX6d1&6ptX7_eI_OX2Cj6moV zooJTA>Dw}ACI~}IxTAhNr9)FbbBzep_j2D2THvnx`u&k%GC7R^QiU*l&?|0Y@988! zBocl`_cQ0G#iIHt^Xc03EoB^q{XzIJg%nbP{;vLR1-EJQT4QCr#7_^1R_sg!)PuQO zi{pJ*DY-k5ks4t0_%_+rS!F7kL1YLM{-zm|TU z&(!n?tQ5hQe68T_CzZ{0^vxoIT1HstRZp33Gbft>PYXj{HEvWa1#Qn3DonlMo+%B6!YIxZP*cp3&URzI1JqlNPJL)e22uC6t!MNws#i zP7${IQfO~e1=^<_Yep0_`y6Z)ntrdp`yCO$Y%Ul1v8K^Y&&SiE2So7m#=6G2{(f-J zR6ctz3w&D+5{f``c8IFOxDuW;-7tX-W)N^2i5#i1ZDyD$6gmq!k!3`ro)OUjDI$i4 zw~`4y@G%rxTc9zT@qSY|v`_~pDU;M8MJ7aE>hq>^?U@ybChvhgZqM$>EJiY>VMK%T z(YvqZGk1c}cHlg{_X_#mYXsm&MG0?FPvN?*HDj2~bY}Rfy0_Yas^aJQ5VCZV80jUV zN8ABF-*Pa6xq+CLm9j)5kLhkAs1~JX%auT}?DrxNT3FUZT*1uwrr1BI6V;GG<2}|j z#8UB?B0k+JXQM8vYxSQ(0xjdsfk~_yGh&Rh_i6ntEaxD|7AfL`dboD$JBM?$u~pqu zePhWg(Vjh9M22a@DFua9d(`dI6`ujlFK?(uP%YF$^mYd^^_PptJ_RUT=bP7Rg$e>Z zNGvcBtkFqfd{5mVfK?Xkt-6;xKxCnJ8A!k1KDx&;$5@6R8-qI(i}nR=07i{(n4!wL zie$wy-3Mc9q1qQhK>LPf2*(YVW)}FAh}chg<9p%~0X({xDo)mEbPNOBPZ(eJeohB5 z0=kqC+PZB7VAY?ER4Y9*0dNEX-R^zw?m0~)Zo|mx;$;1;?b(GwQdO?visFm#ir&7y z>-O0tZdi2YCZOeA1Zab%7eu74&a6{h|8^Z1)a_@E#E*;s2I65@D z#+36iqqz?d-YwsoAAa-J|4EqSuDIycDJKq03|zT;&0ej04sV#QzP5-EmYG99HAS=< ziX)mw{~gb3GKqc~vJOnA`o7EsBwV!`z39_Avp;8!^p^1pM0;Wds|nY>ed! z>QN00ouDV}LU;IxH|IKlfX1VwaG7=;qs}^C2Y_?Swdh(Dkb$4YMr$X5h;%Cy=k}YZ`BJa^uLnK1TqSl@~N?+gkQzLd}tS zUN_6wOny-a{ILPEyDwhcdyQnU=ZO`U7Zy=oE1IpqP$K%MT*e#uCU_|Tzu-F+5z-y* z0+ILAwM{EELPOY|=z@34Hh8bX&V>IJ00E3!gN6R^L7Ueol1Ah{b2APNJGJ!DD zSUX-N%8nWgmZyqw2QCKy(tmnSYStXF1R={?O?6H0w|2EQgH`ASH=q<(H;mlpD|e7# zTx^9~o9ddJDc)s7B3%Xuy_Lu-%6+#P4TCngHx;*CTR-Z+jV_*nwTUC|Xm?bvFD2*# z%XXtKU;{@CTCMq@{&lVG%-+C^yY@-n&3?hmwyik}&|GN1OxJ}ax=(llTWHQtN$6n)rOHVTg?CJDt9;aZ50x~DMivtV z|EeER-{1A@%wD8n+&$bk#V@RJb7ns=_*LmW<+H~L%cT{DZr!6S^jy1<6wpbC5?GLT z^pN6^>Xg!u=~ObATo50S&elUR3Ekmg6sl;jP+TO4Y6<9vapW@>=t0<8*;1LRe6VX{ zmkb;@@J2*Tae;5~Bx%RYU89IDeYpr`(j(KQXb+v}Z`j1UKli7Nvqfap zwDS%hBGQ9azIY7@hlvb(A&En8DZ-`!09{#>;&PR=f816)91WcYBDoMhYH*$zn_eMQ zSQW8a+FvU&f36L|cRty4?9;ETd1c4Ji7jUxKX^t%O+!C@vn^9^h?cUI2OD>aqNW@@ zmhCM@;5TDqe{-~+#8Z^Iv}WG1d&UJWgJ?Z)8`{6V{nw5IOjR?Ad?tu{3F9hVd$OOs zw=-6!mIKjKK5Nf;v60VI8$@7&-}njK7xG0#cYfq#f>ablnTzUY3cxEVweCP*yMiSD|5_Rx^!d_$n|DXu#lJv*(905TVZ zAJapJn`rf-Mi+fqULZ$}Ek2n=Dnj6gwK?Kshk-c`h4U(T_VO$J`_-m$L1?+ySJyYs z$){AAg!D^b_|A}g?EPY{fB`rK1ecT*lZ#on)&yowX?mH@9%>mb1B*|1iDNWX;T?sk zPe}Uw1kzC{t(?FpvsLc>*>~>^>glVPL6VuAegq@1gfiV@=~~MI7Yvxn^OhMxB1edr2%;ei#_CjUyY~K2rKj z+p|*yai3yXyxkwVwE+eMzXX97(sdC-L$gfL;2{#?bDm)D?umTs1$PKp3ePgawrM*I@BqTY-OF2Jm`|!9V1vC4?;;g+# z?d|r`DB^6;y#l;ObB+CV%Cu!}GzLf2k4RsowT*l3AynV*hds9Mem_liF-ZVNfuRTV z-tjU_t+fE@wQ_Ze9tetI-|})|dbT}#KLLEz5PM8Z`}_X~&DRy#0;4U;5M#_LTeL?T zGVMhuerC{IU<12KuS>Qqdo>2K8O7{qZ1-vf>ctF$MF6z5^^Ml~+9=ii1_D?ZPnk+} zh^wIzcr5@AC|bMPXTj=J4p_F6Hao5c(T^KOG-xt|JMc%fCe}98q-S^ll-o}_S|%dm z-dunObjlq|A!mt5x2ZOFdRu{mWr;lth|rLEO4r!Trp)ftN6SJEpBP^^-qpo!7$Tu& zLRJ9KAGedCtD42ig>3oPUMb*SKfr)=P1@N{)IK0qCIIx;$|@nY7-*jS7m1pRrM{US z$;x@DXqIMd$#7PrFjR#D8Zp{b{z})4-eT_!hOjDOQ;SR4=TVmEu3AeZu;S@GYWC3F z&Z7b_vqfOGKLfb>DyeD&9)@i0C=r@FS}zlnpIWgudz(r;B~(z=1`=v35y$oOCuw4Y z#V$&$GdqBU^jX^O(4>d^B7?$EF%W!5)iAD6ZPivl6>RxVZ2&rZV1P(2VyJurjVKz`)5oUS-_e7(paW`t*x2S+S zsGx{KT-aOy5m8Z*XaM)PBu0IsG0|vZeBBjhx@W*8F2GFB3@Ga?-S<@eK6UOrO_Sd{ zf6k|8>Av@#Q>W^AzE5_=DI~#!KoXOO4H~w}4Pp?E0C7++=lON)r;*Q zWzJHf+0H;i8Ts)7Ian#lyMS6XHl=D(Gb7Kw#_&M{ncxPmOmfs{31=hA9R*lZNAt-b zkOHx}&0DrDE9+ZUns9?K`W_IfW4NfZWW;3jQ3Ckf4pjVXW)1)=P|(GWxivQ1w1@=T zJQ&H{Q`yXgUwrqE+gdk$`xgG|>%T2p@%=v)Eq&|6WABQ>YTMEiK=Vb*=oXb3`3GJn zV=8kKz;AV7ZEkNqPQYp>Ws(0!oP@y8F-CwafgVOy=%`(Tq>a*;0<(9jGPN8K#Ca_> zU>ne|7rtXPE_{Ls?g zqB!Th0O)Ohkc^9jDJ0NZSDm`c`xGNcME9)-#^kzkcj|##GoUa5_X)w1{$TEIy3Uou zLW|Q01NB!t<-B_mjzLzuKJSN;U#^EHcO$I%{7921xm`pG52xF_ga+?4FIrH3@zs7IK?{oQMOXDPwa=M zbEAVW=|R@w3u`ejO7192mB0cUKn|7i9plx0AKx!}m4s%6+Em zl%gg_S>{{4l+S&BE_9wtL*yCyxkfT*JVj;aezA+zgT`w$=os_nM&CtunOSJmhqRUv zmLlUABKe8|_k>bd?tOx8N}mL!=xwO4YS5@3M_W|l9b3K*i$c>~juqiiAn=nh372E# zlnl(%2yv;#Jrs(cADZ^21gKHJR|GZ6A@cNgrZp#W1cx$RH-?tBmLnO%%Yo>3e$u1O z1!M49?f9l@Miizsac--2F8cw)+~%K}v-MT=wP9zlXP>#Cy3QZ#7{Rf?+66z6YtpPj~)5FD6G=5NsMtS4qO zKo$@d>I6q+Z@GTCv1src3GKmb;Zv1S>jrKB7m1ZmeHYfPhd|>1As1MA!-M18{j0VJ z!eOWf_uAA8j=YRC!GPSQ-D2K2msT>vw;{P;MHxv%s(KDf0 zs4}Q~ZO>#+UyYzSJPjBZ=piAd`W+qsJ?CRF+|PD2oeK;XND?Rc{A~CAwv0mA>WneB zJ6KY5IKR>qW%$O=*bp>09|-=cR7UL>=R5MVL0EV_O!rxs5hXT%5t6Y6_+_0Q#<`ga z8Z%;~v)E7TB3uyn2yFLlS|mH^6VfFbKcrqwFNs^RZpGn=z$k70v5~bSU30{(FG5F} zz&z+J6^;;`fE$SMb&U*g_k$j;1?que4HE9+JNDWHWaQrf!F=7vb-!q7&y2M!dj*N$ zO%Gym1yN_S9`XhmkQH^Yl(wZcJ=qc*VnaK{D^xuBmVrBju~XGBG2r4j5d4>iwnP#y zx)p%7gb?bq!mWEQYnt!~Vd=)eH0$A|MJ+zyI`iv0y4OGJqq7WwW@>kLZR=gGa^)D5 zG(aa{7VUEXJJZ?5`%uj0RPA?2k-`{rCrYx)Ex7%w3_(6DPnF;9P!9)cCJLleh6j}f8zC}jDE%8R4F zrLi*hL`G;&n1o)}EwOiYv09w!YwF$J?%+O1SLVX}On;D6u123e<>Qe|rA9A#_+R6i z#*IMHjm3t%NQIeDEoQ%}j zxM;EhZ~);cKYfepMLFBDeOB+$7|u8b2!zc-59=w1-hk)16fBG)3MYEtU+ zE_`WJ5&@*@YZ}zT<-m_FuE#(<2vmfYUrm@qy%ifm9{z2TFqT7nM{Nx*6JBt40;n*+ z&-%RRbX()?L{#0|mA_5vwbg4@4-S+02T1Twbuq0vTBANqG-t~uBFSE%j1JPd30ec^A^)`Qahm2(cSPL{C^%d~nd4>cQL_*B(_lxi=DqsC^`AHY z*xVp_p3l6!0jYaYey99+v7%PF-xm&I>Mv)x%n01$_Z+|Opuif7kn@e9mTZg01s)x< zUR=W^lWo#y#SX6wik`*B5iEE-h-^iIZ?wL2hgJ*MFiI^7J*Evn7d2yetPtjru~i3l zPMwn6thvNL3do)%eM*)N?K`y7uV-Xvwy?~1b!ikwrFrTr{5l*d2ZD*BoRh$%Bshh_ z_B9F)1;Up!ny~Opwx(|*12rXyvRf6H)^K0;aUo2s#5=TOas*SMCF zl9Em8uLiMgNWm~PxXd>-9juD&FNnm^@3*fJ3d@3hikUtw*^CZ&5)HK@H15fL#fsDk zZ#F%Z?dtt;E#CR&gxw^xI*NaC#;K3Jtkfm2a&|HSvplZX-OQTPiEtt_eDva@FFtk7 zHRp^ZhMPg?87~KO;kV9M3%$hjxytDxq;b$CoNHxcMsM4)ZJ83%;;F{@I;G5`eZf;f zUDs1kiHk33k)vG(3UDD?`ExPVP|1J-!IgmU{ifWeN0boey1T#wOc=h)$;3E68CtXE zf6F!}`d+S^C6ZAo?nllPPRXe%)ih-8D|nbX)2Cr5SN4Rt>%A-`)6sYiFpX!F+cfUO zNk2&HK(W^~(WF78RNc~jD-vub+-~4?nM<85H!<^2o3Jyr6XzxiLB)fj9j2Ow-}#H9 z4{Scn&vy`(>Xd?7Omk=R7+||WgoXitN{F29KLXyUQD2t$|G~jw&C7a4vknqo2p5l{->Y;g(Qo_A_he`om+yX)$KpbFE)O%ZekUbSq&K1N3eu5i^md}i($*;uIyBk!> z$Kc{~92hH;UHLOXJRX=5*4p1`p%>@p9RvuWF=n+d6w_@hjwTGQV1$Qvh-At(-Hkxi zOrjIyY;#-luLNZR0ZsGML$_eKX$zi5lDokJsN8jKZ=TJ}6Ba%Vs z@_h#EvqoQ|Qv1qmLv+cDrJkr}qIT7X<19uItj0&$L=()c$~KJZZjOsg-*-w)Bc(|oxAA5GXcfZ!Hm%rt*!bDv3D<5;CWhnDAPk=eZFi=mPTZWNO5N-E11 z`YC`OCQS*=MIhyGNRyj`|mX5V3y#XK%kK)5@96Ems3hJcJ@fOryP6VgtL;H}=!i->iI12?o zDDt#vcAv&kHL~!qK0SSwX#-Y4c~&W{AWwTAemvExcVzD(?`GtogS|Ctu>eYIZ@yT` zw=7V2cJzSJo$DTlgqy_*tMW!;EDX}G9mu3MI^4Ckep>!hPzZ2|PZyw{VE`Mgh>LoO*0J>M zEHI#i$ac7pi)JyX^4`Ar z(9SB5HQO5JA)373+asww-ohb2;{En92VfkE3}XYY`RCSMXNz;g(9RjPYm`IlWw;>x zr&P^I7ZVgcV>`yP#rweNA}*F^ijsU|pP1%;_6s1mzmOx_-gKA+RKVrSzTx1qf)R%y z;wrDC(BG+tl!hbg=ZHwoOMW#T4+wT|D9R{w>x_bA0MF`{o{0wyKFGnY6!c}q9;Ur! zwW(>e7%}WrSDkt>)1JB1ph+vQqNP230wWGm2{nRrcnd;vd((KaA^>qbl zIx`tVKNPDuT!KVdV%`pGSGMH>MtfFoZ*HR2W~!nI!%!#QYeNVh)Vfml(JhHBlNoHK zk>Gwmk&L(^awj5%_0{#a=`-@hPhaem%q1^#8ORa9%)u}fSjsFv7s5w<4HQR%XlzIi zQLw76vhLlew%)b~(Y#h{af)JLV3aVt?5W2ZMF%FB%271nU-j>J;o1eX|qAB1?5`}_p3r9FLxlHrNukIKH$_iox@ ztQ8v=W4eaN5iaf?4K)6R_r)T$TC7r7!~!qs+M(WfKy#*^X}AL((*|bT^uG#O1}VS9 zXT-ZTK4K0W2SRTZH^E$j2f$HmVVVy3^mW2~g$2IHN5Fjg&8Pj#DoP(gLxucn<+lWe z6fA{o@#W4{onH>D8#qQ#Hjt=V%)VTJ>8V`X!Y@JKqhi~fUK0>Fne#BgtH>0{rb!vy z)xFpGv%>1O^dTY2Z-c-*{D%+kKZ+Q-@vgsKS!+YQADI7m*3YkP18XJ{nT2)Lb^q%x zMkc#bH|t{&@SDVz#M9k*63!HX=^-515wq(K}_f6 z^10<&WJcZkV1j^DJA`v}3mz7k!w6%Au$_@TKDxM5QvRxU*nq{SaBb86};*G%4F9;HIz2P?9w&D=PU`{|d zb68c%5w1R4^VvS7iIV#ef4zcpwmE{O02dJkH$)Och|@PQQ8T&!<}(uSCM1 zGsAo>Xr0u#v}&PFii>G=@kTw15H@$M>6z=ihfd#*T}lmO2HmXO^e37&(c^^jx(Dev zkFM|m8dp-B(dqt&Y~wT(v-_5_W0K3KKFgYKK$f1&uTO#BBr{zCl>7@j45EDFB ze2|M4=ltD(_=L(R;*jSl0y10}XFAEElZZh=pj#Z20F&aW)G3tD->$z`54T7PFp>qn@N$dr`phrc$~A@)bBEOq`=qcqcVs47 zhW)~da9Uzp;#8f`A<1wXy3q0#|2pliGVmc{@zw$rGm`A?Fa^+@y}$$)>-@`5;u)pJ z#U8FX!qU_*X#1p3<(=IfTgS1*5=30*i|?51c#a?})rL`=u{bM+T@@NWPO5^iAK2~C z8eN#nD@w)+!p?%Ixyt``q1VhO1PqV*?rLY}s=n;1J(^^ohGLZ=?Ws6ap@k}?)tU3~95TLIxAB=}{vrE^(js&WsoumB7^Rjd$kS#ct} zAxITT@U#M#RDw%{Tk49yLawOkY&n&!y*#w`X1`fR@-0xje7l0NRAFFH*Esumv3FCS zCjhw@fff~S=*=CCCyUTIfq_Sc4Q%*CDb#FvDv0C~lDtR#y!yAbP^@aNy2AkCusJpC!`!VVpf`sPOg$a#A&!Ks%`Wu-6%O(`6%@fyh`4EExOrLJ6h4s* zT)+$u`#sAYFhy zaiu3ux_vD2IA6jVVH4YlqKr;6Rm5&8O_txI(*~_qkmNT&^i8TVwb-jZbUkIJV+^9I zPBg~mKU#Q(Hk^+rZxn+Eo3rWr5Mg6+OqH9y>gQr$4Oik~Eu3Sr1azng%r!+4zr$GU%|N(7i+OhtGRdm}X*Up9?(?TzZYRJ57WvrQnRM!F z1vPKARVCEL(I_sL9dM5j!zoU&lTBZVAft^*jNc)mYD4-24B-X_x!F&}yc83WeRfx!z zhMI;aRF$Z&jT;nq3QD49P0y`50bQM4eT>C$YCa67Y5nZHlf6ARp}}4YvY;@eXiHB( zLRA(%;vo2GzXH-jvtF>LD7w|$7X?0%3 zn$#=0Zq$#iUqT>F^+n)7^}MU+pG4OA?<*lYgxp+Ucr`U>gj=^<@2Rmb(ZSg&FFUQJdc^{DE%_Mqd8S4-vqMx|-A?w?7H0&1o}~(?bOUy^BPm z;h}_Yc*RS+$Le|KOjRb<6*pGbHU1imITr!vsBJPjQ#oq&L&Xs=nYO0IPT^YH;NtC^ z($U%rg|M3>_PA!#7vzDvNNCp}kdJ)IMMQFzE7$rzINq619*SGvVor;+i>A%Mt)*M z^$2H(cW=5aeJ~*Cq3Bx;7%wd^EepGH_XuE-esLmJj&dfrId zXrCYlS$-li^AeP8Ywjk*dH6tE$A@T#|UP0&gC;)`ihtk!vRWq!t z1Ts%IdzJDb^XQUf`SR|t`wX`Ht-o;EAqJ5H7^PX?cpSQZ9Uv&N?-9S?L{rJ!A|(2Q z@6suJU~~KC-wDWjI>A)As<1s=41Sk+H}iyU=sI;wb)>EbfuR7ftXMZ4WiEv$gW!@P z8rEC^mg10PM=Q*xZzse7eM)({cG7jq$x0+->>B|5puQS^O`6-AA0mP5@Hp=)-aJRE zHz&-8&lg9ytm?>I8ZsYmLoP_A+<{v75+a&v#cno8D#;+o!;3x^#mR;9W-K6U%+F(b zK#eC|HzLZuVsVx~V8k1^n@nukvUR*3c%wz2`WlTbz=+V>ti`NlOd5az45(d3cesuy zeB~NhFa$Vvm!ZIfWG)vgA&~RRtlWM-DiJjJ4d-}@$~t1e#6n}>hq|hUx&C$Wq;jl5 z_$g%Rzl-!N`w>f1WZ)1WT4zIB;xjfiOB7g67KV96F+*e2sP4kJi{zm(iSa&Qey3s3 z$SA@k+cb#*H2`>_{(LOk>Q5Ts!Te=0x;uuH+y+3e?`U98F9Hyi_s-FS>86e!uV#=z zVaU(=rb>+Wzm$=CC6sp*oT2%m*el~u;6Fm76X_`MUVRHjL#z3nk%LAS4r5L0Rvd4F z5(X+U?ekq)|_zHXAiy{bNTU6rJEmS6y{#MscB%X>YoS zgmzY0QmQufdpDhEZ#)zkZwL^ds;g;uEpBY+n(?1vub!h*6CBNXc%Uffky_f*<5*;n z0Di9THI_SHpdgiE|5m!)`IWw_uZ|XQmu;HOTnz|A$=W9ivS>Gvg%f~9tiU@e@zbdq zB!Y7R%?}$l=XZVfe}257B!NAboi%W|Ab#ej1*_Wf^9hK%?bm+`OztWIcqE{@U9IFV z4ej@DBIUKfeX=i(>{{}t|NS%!ZPjJx4taa0s^r;TR`2e~wk8e9-m|`FlAz)AB6egT zy*I1mGhW~80p(5uuvF!hnpM1e-`%zNI~180_(&?3orhA5z#8E)&~Jdv3Qq$#gb}V) z8E=%E**um=c4k1O#5(Ioya_3cKEqbl9-N))lXN2F(OyZuGGS zo@Of|yObtnj=~i6z@88DS8H5~&B=pBst=7PIg3S?Gk8t+t`9eS*so8%k2XfMfnAW$ z|6i~y*B}rWufD*fBp=YiIkwYWrj%hr=FdKcCex7_C(Or}CCjgN`LIg;P1yT1`%fd1 z3VUX2TI0lyB%l=vD0I(_W_=F;-4{M7p2+IqSWq^lsz=N!ssSCf+CXr(`_rqAefOtQEt2YI}xX2s-RO*+~+3w*~~8y!P9}R9r@qcn_=8|>DE1zoM;S%4Sha+;sYI9p`VU(^3=O`-c^)Ms{dLdR zhJ_e8To0^P;3q%jZ|-OuEsR$RqEh*z|Ns9Wdq-rvDa5aMbr)zD`LwYz={~!V= z#7^T1x7UE#rt?H-S3vlwzPery^P+xKLEJYm!HxdV?w&isN@T<>i7ik3e8BeH*5;0; zNdPpmE9{;clXpk3*!d!GzvicZzp-)Wt-WRvf(+yw+^>H7xYj!lkVl7ke%iykqVK0K zXOLsT;?2G`jB=$>CxWVAa_5SeOQMaozj$f3+URutui;WuL*3 zvP%_}TY|o-j@it@1JysNwXNflu#9%80zO7gYg>yohRlFOBBAP*wJ}M$N?45ky5j5C z)Yfz_5p7FVr)KE>6kwo{EV__B;HTuPI?`u{Asi?q?-wgk;-rVM1oYk3>aIt2oHoKF zBk;JM7qr>blY{w0@E32dbN89^bAqI5Qn$G4rl79Ua10>jB$TvzhV_g9U=hIdi9nDM zq)(L;Z1HR`w1I%0@ss}usE6~lv0G@&v^AYeh`(X%nLMKUAg2m+5m}U+BZ&X>FCr^EJ=N*C6Xq6X z=(K2cl&sybJ3yekp(xkNZR$s+ZUB*?5J{5Wh^8uZmNALtA%}+=kzVgvS=E_7It<|` zgRm}J-MRE=JX*Wfzp<7NLE4_v=x)Yr`f&tNQ+}Zvm~KliLX2-IL9KP+B=Cu)$qpCGyHIDl#a z>{iOEpL9k4XX70TXKAQyaN29vQ30cJ9yY>n73Z0{?mE!L2zZC@RKz~p8v)?~gJy-w z#ss9wO_{1A=t?XHQVFyO;>(53d=z;9Gl>sfezS5D6QRq1XtM8Qx2TjEvs*)}Tb_(t(Y{=R49F=x9 z)HD>xbgm#)IFUdOgog;>vLwmQxjdd`P%@UWHdPx*+?v*XaU4=YV~Q4g`G_O75i|%$ zV?(^r=-=0A=|)p}kLYI=Q#Dge)Ps837Dpp!sx=cHIZpz-fK7sgb*leBCv6dbch@#J2kC=zem4U#BerED+odABY#RUjo8-F>()C z8f>k_z|dY{$W0!4ps!n*U3p9b&BY<`60dr23z5sgrS(2E-9t|-b00(ak)IN$v+3Ii zxBDIZ|K%D>07C$wL~^oJr}7arh9?5ZN2(HtiEYz?RNHN5d#QRX$vGDYo+$QK=-~kv z_92jO^?;>P83uEiQymmF<#fuZ?PM=Qjo*)g&kiQwSL;51fQyE7FD48&n2C0o?PM&NiNtoz;mI`ta z#KDNty(zcl2_LW?t3VJ&fmqCH%_O~iJUey-|SMluIV zm0acFS?)bKiXuFS7N4(=$;HtcnZ8XYs>v;-H(_7wpTizq8}gikdBsYObZgUNK-gS- zKuB*$*JB7bA<#Q|Ky|*R!|Sd=gZmmWOLma3w>4@!$Vnu@RF$d4`EQqn$cu{a`&f=R z*m>yI!xJ$bTfIR;kfbyeUg70a>Yvo9B3OE>eo(!Wrn|`=(O@xBL3#VX+VpS}husvc z1bsJe**e2nU)H4ep(NbK2%j_*lY|wTf>58&+uNP|eM8f3CJ$#~BKVl|;X!E3`wEkZ z{l(KQOIK-a>1`#v?&)MF-JTw&N)|M- zr$#9lH2uPS?i`|k5yE$rROzVdq|H;vnZSIk@;*JV7{nuyOeiE@6eQ*C=@STGvVp|S z!>WfB8l7>T;xrLh+rOs&y$YIh&CZVAYmi}2NaCZen2nTKmxFrCE!^jyz33n>&La&( z|JJ|f_M(nv%}4K1|9N38Q(8L9p*_+wz5w@eS=BNT0ZW{#b?Up0s*c}l4HQ2k_Y=|j`l@=DN$$SarV580 zCCl0v0v08e-s$&8^$M0k$pVJ(!-m>X?$GOG(8e4tHhilgK8U$>&&qEBcx$dZyhkTx zuF)fWVw8PuAJhAB`+d^%D?l2PhfvpTjoUcd+VKC&e2w?fMF!y|-xSka>XKZE#(-=j zhJ*-yfJRPXfG3Rbo*>kqN{rfu+P$r{XQGjBSv?f-RLMbrK&CPBpFEX5-P$;rC>Y+} z(mtVha_*+OfX9%?m%d>U<;(Uw475F8b=9g>ePw667)1W*l{Bsi#P&h3{AWMCi$1^R z-P!QXB={4T$$i?`imC2r67ZY8rj4Jylh|@f>zA@**-~BOU9_Rl2_`TKr*X7$2Loi- ziw*Qk26p+df!jap$bKWrtC*&ZtynqnFcQ3`2N#u`QoD?|0BYaTMw9bXY6J@boN7aP z<-ha85$Jpoywf-IU9(M9NDMl;bf5I-=`L@mTb!@jCMkjVam{00v%nGri;a>Nd)$`NpY~Ns0O8z5a65Vt6yBI$sbXp z*6t&W{gVlKRqc%~#!eeEAnVz(^|{pXvp0jJb6IemPS_(x3=h;ngGwcRqud?h0mkULzyyg!UQzn_SD#mw^hsz`QDGwO zJ`<7a1@f~SYWH(PCv6yz;A{Z-uGk{<@VhhqGN7VnH=Oapgg&)ZwIBAY81U7F2TwS| zFAVXtQ{gxr5W23&kLmWt+fk@01UpTOJk225Xf})qt!y^N)F|Z@1MJ5bUX%z*mi6X( zkBP&RT}Q`FjDS?S_SJ~k0~Tr4lQ-#jTL|yg?yBZmiE!Q4ZQCY$S!w(bUaA4_oQFsB z;1`*a6JsC`FW98rGY}l$7bgcgKs=2M^W7t4+s@X5{v1!XS&V-$`UWb)toP3IbO*5YFsBxzgD$29TXy7gMe>%|DuzY0{lX9 zGO4&Ail7R7k_gUml1rt&T22|lRsrneeGJh}yz+VglS);ml(HtyQz-dMw7bm0D|YC- zM4*Q$0Q7hvY&P4tmqnT{%zwzdx9U%+(b}!&-O!i2`k@Seft+-F1quiB35C*Vi;SA4{Rg1gsR6FMWiN!qbrOuw;;& zrrpKD&ueZkKm&sGBM6?+!%Rf-OX$JloBHYo^;(Atd?A3nEXwU(QltftfLw+F{v{RP zJAOT~i2D)Jk4m=-`*!auL=%DK!{QuS=T`#Qy`i?jE#T3;mp&B*M-%cteWBo}*N9`; z!d4<)rx~k}Uni#o@^)q(R90HHv^TfyU=cdv{V%rGHm>gZ4T$_{;>AZi4_2;Z{P8x1 z&dDP38JdQdjO~4xWivChe;|Y(_M_Cd&;9+2Kdi}aI^u#;_WsX+impqB4<24vd$a%` zz$^16ym3_JsMYR$wl^Qg!k3j8x@Tx*y@OhPwc*2lxqRPy5amC9((7^yg>@?UzHfjz zDyD?ThnC+@B+Td@&MnjX%z35(Zi0|!r*<3lk$-j&abFS%5`9XSdq{&Tz{2nm!%gr*SUAhB>)@qs<9)LoD=zbU(G8XYobAxJt^9g(zkebxqCi2S_Dzy0-h za3A1{1Clu|!X$#Esjuz1;^v_PbqNpGpEG&$gp=0l3vbneUKJZ?Wrh&8^;GrDDNHZdHI4&gei_>E zPL(h_OF?^j9FYMQ&Lf#0^xzh+2TH!JwPI%~LBDBD(@2w`bAd46d=X$UmUKBVmEc>R zDoG3r<8`B;WO92X%Ff6_O8rjQ#OgfuYOZWQM6=vCNnQ3J(uIWhx~dxr&%H(rAd-R; z34=fP^z>{s2{TqBL{N-Q`rh(UX8JlefvahF&C#N*J(HP#B9!mF9m9Fk3FpT2|3X7l zi}7CSy@`MV3wBG>qAW2^?|m_pF37Mu z($lQKZkuzPr}(wFr8Rw)CAh?bz1~mRv)PpuKSJWln0)+#kK2j%QqpX}Ca>gK)w=2+ zHsM{dtUiJuwWjYtg!0UL%{TjqEREJ+#)}wXGic4UTZ4n0$Ml-&q=f+I6$5MZby37v)e>>feUx?WrKlnj z>J-p``FjZA=?USd^9d@&P)?RoTv`&Al;`ukV?}s1A?-Z8I;9iE{1`{V=y9Kw$ zFDWIIkWNT&&$V7fqJJxj#o_TF+}pLa=WbOQIE74mdI^zf@)0o6x|@C&7=G~NUp+9F zUhETkUWo1|GYJU3?x^Z` zz&A#m_Y+VZzC*AFm(}l4-`3obzD6t@RA1A11;!1ONcDjivE`r2OUobjjn*i#PBT9p z|H4sTbtnJ^cV|JX+3wmDj;#{YR7Tqiy>oRRTbW(?^FYk>|E5?wd98s8VyFSIZ>TI@ z{isalTvZN)-Qi+wuDJLjrUTF*1tcG7#8zwxIbP2>gs_tbokgE>^Q{70pX<(Flc-39 z#BjL|o1=ulFt7GX8mC$?W)=}VJiN%a8A>&~C%7yjG{P?~u?OuE?Y>FgO;Em8 zEH$zyKK_GZz>Uh;lmJ>>XlAmR>i}Rssh07{4YGGW#7jiL2+0!fU5uk<&H}+#iVwDq z)EVH7Ao7{d5_P0Tp$mvED_@$SP`FvIo z9>4&NUK-#IT>|GL@r%Wj+OIpl-lrFO?_*&l7CQ+>T%_v3T`9w_=%x|?9-9m8S0-Tw z__&Vv{U1jHr)X|zT}|DaE$!*CAUKf0e$x=+$m7>l8^MKO=pXf!^^ZpzYU5QRG&;eF zN#4KZ?%l|1wu`XrWQ0EePJ95LbaK7j5 zw8f|>ZJH>8`$IY0s9nq0_j#FsI2ek{tQ0&k2!a;2Vbu$ZUs~=1!sEsMHbAJwyqR8< z>vjPmYzGB&q))UgqjmCG+=OuXu2w36V5<^E_0a0RC&DTbW#Om&v`eKo!Za#`P#Z=r zlF9iVFsVR@mQ);9)11xR$s$QVVRx^KNU3*$aL)^iUz+a!|Jd)efGoVNq1-|;%mB2r zVA&4Ol9QP6Z6NTT4;_y`JAIz^e_`=Um;2x8;51@(N5kztvnrmdoelzb7U!SER)ND& zkift{bW*QHA#V$(i69v^ce^5Ay+tbD$;m7)DROWZ;p>6$lVVtyt_Q$;1Pa;&lq~JZ z_w=Jux&;JU>Z|G(coO#iF4`Q%hA^-X#QWnn$+B`Z1)Vt z{E>p~FEi#EOF8xVyPtmfz>2S0&pT|t>J10hS4eki6 zErsf{)JdT`IOua95FWrReJ#pUMbp>5*5=2F;7%qm|5Pch9;6s}M9S&&)%8~l&`U0@YHOvGqP9jXv|5Ia^0z>td z#n}Y>&qvf<7?i3>>3!+G;!d*5x(gw^ON*yWTV|Y)90?Yl+o5@>WJ$|YOhh64o6jX? zfj4)E!%}Yz%E1tFU)>*Fk+~sVPa*vZMb-gIub23#zrHk=yp2Wj-Q07BZq|D302Km+ zS!V9`N+NysQRI9R@J*Tt?quyOwwtS^dbVtM!dbegOITmFn6z;FKjg#g<$FisO{bG)AgHCHk0HovGup}1LL3Vrv?1XpFQxl>!`Hj@j93H;hxiuv}RZCTTJJV)m6tRI3-)%xlD`qmS_|f@q`%WnP2kvqx)OYv}cY%cy)Mn>KW(HW`0ntV-OV9H@BClY?Eb6s&<6Nj<_%9 z@3&G0z5?bkDNm&!BiW5rhN@x0d{{8;P{ zj(8)X5@iQ)o`0|Q5uHFG$aM;`O#iESQE_u2FQ95SuwY+PuV&-AFMdrFsD%2Vy4t#T z-8E`$Iw+AahqGl=8hddbs@BE{6U;V<&kd`tcN_^fj1kFuSd>$Hf&2m({^6BfQH-Bl z$s#L94vON0+_hW3dbr-pI(YCBa8(xx1)9*2W8g=%Ue)_H2+UNK-1aH$Gk^D;c6SO3 zea4J|3P2pB%_dE`$YdKYM4_|tTkWJ#Lr1xWbiBq+5JVdW;R8OZD5}fgKrlFUJLs(G zAQt?YSnfc=P!&#*LLogFgi^NG-l+$<)f-pumG92o55Q0EP;ahlIt~eIHEF;YXi_+l zqoA|ZY-*BF9@Hj)*0u+9;MS!T}C#tM|f{oXqoMSPWBEkOHmp6@HpG2WEjq=^9C9W5O* z^}NvB*?ha??ZEol290Nnln|}yvw%QhM4AQ?NoJj0FTV$X0nG^yd%K4+;V(#_Q3&h% z=K3#FU}?-Rxyya?gzCQfNb$0=Qo+zvOG9Z@>Mvw7Y!UO(HV53}J?k zM$}kOV`%cDH$EU;g~zqzE@pKlOJHDc!HEqht;W?VOP0G-vkhXgo(O zoiF5!;_i*8L`%B?*4o_+n!k3f?OI*BYw0)wYGma8dfN8mWhG>Rzy%<@O+h&R@Sr+v z^&1h>*_ zOBT(qE5!u9Qa_;n!x$Vg774x{UYUBtd(dmjqUta7gUTT-)-@ymd-gLE2(TwD8@kH8)n8(x5nyK#I*TYdLCtJhcZK&E%kW=Y1!N7YU zqTwE1ruV7JqLC8i*4k=GqskUs|p*m3XtL z0fyOz;6KIQUGx7_m`^+kBcmTrXV)GA=7`%UB0#(Qc6VQ%l zMyLM{>E1toJu~mkz;pHBqZ4*v`)f8Xf+Ug@xrLE#6O`|yL+&k1qobzJuK+p82r3`i zYQWJax0pm?Zh@@r{YpjmnS(u{Im?ROi0jRR4GmEz)~#g-Nf1sB#HwW)Rpg{l+AvUQ zG0+=^*jRz{0EkKw{D^wb^k=WT@9h@_=;+iwr5_w|aK-mvXj+2zK3^n%5yMX(3vB*W zOvCHz)~%oNmv=Ka52>x_J>}@VpBrAiOJP#$;;#&AZt5~GEpPd$We@J)C`4l*gg5;C=>4OJJcuL4z^f7DK~67&@@x01-pdh9=^ysLQ8!EXJv2~R-qy3 zVkJQog%BR6&n-dlnyx!hghFDh27wb$MdrQClUitMp*pZ`;LXUm2PJ5RqVv7#1wfhw zsKT#_&Fh=2Z9JDza=cE@!l+T{;#%~xVv#d@^AROA-ZPZk`dcz)s-MP2dq&kl z1o^f;2AsH`??_*3EgWnr%w&}ZI!SvTuM)6rK=jb|sZ@H51<>igK6{_&{nW*%1bss$ z_)N3I{b#Ra^xU?dxfl_$7sf!aCC;-uXoQP&DLi`}&9@3mRjMX6$$w8FnPjLc)aG+& zK7s`7uLNRaOmp7mFU1i5S<+q7lB?)ebxMaIj3fx2aQk?~C7A)DpeZ}u*~8pAf-?nS zwg>Cz--;D3*Ju=-1*->)w0^%S+oXGDZ9{ECp|RD})^rmg?47C^p=vnyrJ0?o>Pi2z z`6hq3jK6=8h$tBBMOD|uncUh~>P#d`=KFovA99$v3)z04Dm0bFTecd__ohD}7WPYm zt;pD1oL}!IXpHj#;eBt(iYdiI8e-_AvxqUM9qp45wIiG#Gl~F_DGc!ami(6c3)YJb zD|Zd@G{+4%Vq1V?O#q$C!U-XC;7LcbElo@olqzI1$9p23bw&@NR?0m?L<#f)=0-u8 z=Ivqe8hZ^Om9XWdekzw~RTw6pmJ7q%_KyLNF2k7V*F?A~%*)P&byM?xg-1gO59$6C z5zuiF@b>r{_l!E?x{NXaTUBDKO(0@9}k(5|)vS+_xlI z<~{tsR(k<3AFg$THWA_+;4uWS3m|<^Y_Dr+Pfu2wu)oiBKp@+AA-I9pcF(#~{{f6b zGIO`v_!>trnrVRW%AY=d@Nj1SO8aIo>$R)y*U;MAPhIkW3%4gzo0m|t2RmHmroai7 zctN3)*_JuUlHJ9C>0|S@QQu&5NAr0c@nt4=mhcEHwak*6DyO+X9e;4CBgm$k@OnOuN)j&x6>$@tu>X(dmN@(rvLb4_Rx?BWH3F&p; z1=WK!TDckxH2TS>{+}+#vm0*#Ae3^s+iCt|qdE&eGO~803&(b^Rk?yOw-CzPIu(lL zVPgp7JC!Qr^43v@qYXquj0Po=q3gl zso|(;O1o6(NNIKX)b92zhXdfx0B~DxNq)KJ3A(?d#XQK~EWAlKb(MK#+E%0lX%Yyj z1h@c1h=1q9EWD5qk(4^M>E-qF5f%hQar; z0T;nQI1vO?%GNay?XsG+uYpqZpM_}mEka*e1$|z$|;R{>3Nf*0BqC9c8 zMk~1cN#i+!#6{Z20t0Ul&{x*xrvgxaA-T(USJP|LM^gfSo6m>SN9`IF;}Llk#u335 z$kRiG3Ae^!g}e(A4n$*I4ws_^f~jEO{*2tDg^&@vLO_@qo+_5PTz%i$gZq{wKF;O2 zYQRqBvI|Z;bQ43*b%5JeS?Tyf8#`ZS^A|07@xwW#rDms#PuuJFbv3oRz`L(F$7~4* ze446BIr*2{7`p8o%kq_PxVSZ>{R$Xv)b6e$cUn0|Shg89i}gKiZ+5}QL{R6Y zoDSRH0rx97p}xA_L7cu^|7Be+%>5cg@+u?V!LHDeKHIVkMTE6F>C`9%D=--_cXLDa z0j`1K{oNWzMId{DF-sG@dDELP4}ic+#eNxg4LUNHisI}EZt&MCj)a;IjL+x+$szBp zoFZudAA9c|CRtVO4X?HL302iqU7h3P8D^%_3^__ryh;%CDxl&O27v*TtDt~@5=4|N zpd#TS!GH<~2$Dq<5s)}D9VX8(v2*T9=bXLQ_pE*DG!1g^`##_Mz0c<#Rrk3LeX34c zXP>>-`mMEozu&htEH}gp;k~au0YQE_!1u}{i|^>!mJs`c6xVX^qtVJ1;>$p4LtDc# z?n?@_3&T>_9}-a)mn4Oy_W=_JO%2u$elH577)2))Ftc-k0(_OFqoV$9W>FVJvkGo- z|Mc8DxR#j-4^&#+z$AaBl0n2)D5W+b;9S?8x@V7SL!7Y}5}c1ha2e+xjXg}S7#sp1 zeiW@^T%98Xutw)JNg4wVT8PE0>&ncWS(U$!v#&+6E@mx%fO~|C&IgylRwzaPnAsQB zHPE#JHKlm&YisD>o>1x;=sBIV{+I>&vT2RRu=nva5_+RhqSl^@-Qy*5$8#V+8sCXZ z@{3Y87jsXcD$otn^PbTbhC_9r`%s|bXBvW)x|+R+xEud91GPQTv!srRCFE!8QGBz9b1xVCkO-C}-fgK2iS_ zA~lN?KFMRx%m=$VKS36LOCxXw$$)jCZ=tUT4L_dAZD4d3iE{6|P9~%S`m6$Fdd>~d zXTvu&fhThLn_K7Y+Z!IU>o`U52@Bv6_P<_U_j0NtUBRW!2_)*7+4~rl{HCwcsQvc( zcJ^0PS6|o7Ec?cw`ON3k)7yCt2t3f9a91**T6`Zr0veV|0fDddRv`s5b8lzB(lF3U zv4!o=eeei01tjJxq!(uBQGOGN+A&}F4qv|s22^k(p!j*T*6?{)_U-fMocI+$u?K?s zLrbw--vC}HR(eI&p6ye5vQ@%vJhfDSGa`lPH+Pt{w)eDxy;{`A!`}}A$n&59-$P= z_%(`Xw4-R-?!NA;0cgII*4eyfvkxvn{5zK}J3KxB03ZNKL_t)SK2-nE-KHPXu!yT~ z1EJ@EcSGbe6x$^30)+0?y7sH4+s1UTk^}^R@Gz5ig+!J$T-Lsb0Pl>-@}r;+fpS1% zHwQVPrZ`+T6M%GmQ*@?LkZo++w#^PZwr$&;j%};|*tTukwrx9^+_mn^x|n%8Pv6U_ zZ`ZDUYFELH?%$b%7{Md|!U2wi!vOAup+1a`*S9nQ>+G{cIphWF?UV4$OoR+kk?Cb5 z;jUZ}yugsG$uHdHn;Xy5f0CS8^Bbtx#Y-qAmz&p8mzI>jug?b1gKkdWBdZHxC$#ue zL)dRO7U~SW?dmidZG~4_AD^~#4K~~_HVRBs8lc<&vFGc?dusCOXY}6&f;^_D!VO-e zThDxprD@1}<6vE`HNL?SAI5{_t|L>zD8+&448@Zh|g;|1I+x z-h)au%leBOdk>VP=1STfPa2j>-5TK9>f z2a^kH_kP{N8Cs;3$g%$cbk8s01Om+68|~D22i#!OFUPm6&@CMIkE9`deQDi+u;U#o z6tdrno}Rvsb5Mmdk_5YpKbTGqeoMsYFF4-n>u;=JA2OPMhsG6VY@>2qeW;bb&a0(K_Zy=iPGT?Y8%n|D5k2OZ=O@Y zIe~aE3?tOF5>l^ zZGXYe!{VN>!jqZ`3WUF{$z?<6(n#g70N zQ|zbLXtN>Cyr;YHi@p2&vQ2`N4&h@b0!qZttk=&=kIomZ78z4ofq!)Ju4@hvXEpe1 zDi|ZYTw*S=a*&0Q-;DWwDlG`R5(GUS-v#%~={Lcx=WjdX6_!&Ql1~j4E7YfM@~M3m z7va4xM&(IllKz3nHVCBZ=a0(c!kGT`Ddhrf!JS5A!!YC(h7(+*0r~tc-Fa63GhCf$ zqR}pPkVULiN)#C#CHj9pCYJYikD@@v2+xg{@c9P4Rzd;q>^8rdX0Yb&#R>InIIbtW zA6L6$2*bi|Uh{c5)C%u?De*Q{MqZ!EjqoA2zhBM;MvgjT>gBW^&H+Q38StrJF3*3y zu>_x)XVY5c^B*C$F@ch7NAxis5ks7dwQ@mQ(uS2K6d;Qo7X$ouiWQf#dKn50+9@&t zdwd|E0C+)>$U>zFcd@o32|_iCJm$F;e{8J$NEYV^a8DX=<&4uPWiM!{7P;J6LvMMa zb%~QWawM~Qu1*UyZ3mz$5j6XzrN%9ed;UnEBTIlw7q03Q)*k%Cw*+d(-0X^@r(#3; zBW$*({!{7S$z7bmLm;t3?6A0t6{?O-dvki>FL&cFOh|aB=+mOR+3f6p~=HCWKsQKX|1B^ri%xODz zt_>?f)ecIuEy-vSSEcygh{>QB^{DDo6E10b%zpb|VcFsarH)o0=b>p2=@U}=c+Z}~ zK;jlNzNo?uMD|cHMic-D3;`;1u4NP%1Pcp3}Bkx2lwbki={YND}OgVIY)Z_j+Q)YIkZEgvshb-&M z{+-3%OHX{Jb=Ft0bB14zSYzWJF6wriFw|t3lWy8B*rNo)`gY{amUhLVQw-8ZUB<#x z_?OHlV()V;db4vAGj0a*Sk=&Uz`;h)14>OQfRNtO#y9g=n4ayOZjtJSQn4w}A71v2 zb>vP1{xa4X>F?YsWhM+rS!(=!U{AuX7f^<{V@Fc&`_$GHZDG&d(p#LmfrpRDk+A~h zE*xe12-Tb7o(<&;T7oOPQOt6;(Y0sK6elP~j-Tas8L40!7loYAfP7d__t=PCunu%{ ze9!UvS)WwE396bA^i{SOwU%?_oNe(+&UCC`ii2%}xfHrrTr5JaMYTadQcx$_6#@N~a-JMy2o7AdUAl`DC{wsebL zrtBxfDm8cyfn%_1W8Do@SP1UCEG88n)9eiJ{{Q@h0h#wqD%GOgJ z;UhkT>2g=YlU5Z<%UL+9eYS2RnOT5h(Nd;vV~g!KxHvq|j&6ha{#M}mQfG$JPe&Mq zZArJRT7~CwS*L>3QVO<+r71Qaja^;63s*{eB^bsR7yr8G6xD_ldAIWcRGefK^VJTF>^CkdNilzgrVlOw0;WDF9-cN z?V4($9vPD47LOHt4CvD=9I%GjgcUL24mRb5rgHm9-5kSBwm~2J=UFNT0@8u8{OySX zo?|!;U@w_f7sZ9~nx^h^XRUrr$-Y4jp;SbNU#wV4irFl93)YB~h5T}0T7JHayam6) zypi7-NWf!abU9gf*h}60$Pt(LTo6djiJh%uR%LJtm6}t+JDbl{P!?#>=zxf~!ZW&! zT>YRuY1q%S>2r8Q_Z;#&k9Vu{_yxME9zXdehCDiu66(?I(a9k-1TJe+QR$!U%7FMs zQLJ%t?1*?>^nd3aG0EnIuth@&ot97nq)mY=7>FGpY?PT3eQ-D%%7OI4C=~8V;Gfup zbE+3Dq-w7@sH!sg5&e!V3(nWi*P5#@^*tkm8v~`M$;Q-44~C4eHU;lnr_t|@p4wAS@iBj|#5Fymb_N+E!F0KprY`N^8tqzf^@#oX-}|6)=TjEU{Q z7N*6bO3WPB8bhR2yGj)FC&@)~pNMqx!m485pd%CecVQM+QBEmm+fABS$$9(C8}rV= z`jEpKU{WN0_t@v>Om<9zX6nboAi_%M*pQ!Vm@!I*?Z?hL$4uA$B z{gq=Ca(+?+uBUGktQmb^eg2bWH&TY=gTXx?-_sO)7f$|2oNkG%!YdAxL>=pcKiZda zr$)U7mRE@O5f~_=d_`}d4>T*yQ&VvGD?e#EQXL(*lP%FCD%KWi9BN85TA=-t(;MDz zk8_lz{5xq{Wh)n?Z911+Rld9F>qvGzl>cp2o=xDr_GxfJg!}XK>iR2d>CIb2P|P## zfq*40S!8v6>N4{k29iM}>92D*nK?(nKs~z!;4nqZsNMB%CL_45N)R^jK!t=!M|t;o zdVqnY+VM2&XVgZ0`aG>f`7eoCf%#ho7PmW3dZDoP`#5n*2Okne{*AdAmP*CdNpy~a zvVtT@h<&%LldJQNe{mse=gG2(J7~wH-YPi^qHLd!L)5!^Nj5eSrb7_xxa-~129V|> zsUMa{?KOtaAsC3A=}@QU*PzyL$|YZQ6mEXm(zSzuqxm-ICAg%M^7s7DfAq%Q!uv1> zVFK;4hM(Y794sH&OEyxxC6MwMJ;Y^WDY10-MGFR%6(JJK!N5QgpMK%}^RBy>5U7NecAVCr8KY@wbjVsIkzTAlB`ezsYgPvXPTwPXDDwu`i=wEpBbf55tk57H;| zmk(GHXU)Zx_Qf8+^JnEKFJ69*gLd~9T;WS}3G@dS)EFo*MT>*}5Prq|%mzO3Z2d!l z6PFQBBDDWYO<^STpVB1CjWLdapAa+wuV_HDbL#*skT1^T{Zq%g8R_8O#MKlT9c)YN z=zXVmaE@AGj*{ggQJ}ZX85tNJ7!@ATw__HkrnoXG2NaS_$Md@cZt^fIl!dLmg@E&s zXMaV8$Qf94O@xrpm)&O7qI3hfyt>F?$xWzNwl($u(p|owN03*&7&b~y&0}Z^l43we z=qo{yKXQ=z7AN83Ush^0FA8J#XNSMIFAglI$~2xVbNi2Bzo7rLm-V)^uQ)eRQSm1AzelHRWuv2`?o1dG1Vf?O^LY}nq zK9><(DreGSmZ0=wp)%YyXA8Pu!w_#WtRIYGEd;b_Clk1r#qVijA!XBsU)SUJt=2V;3nSs!eIp|GE=MISdDRROy(L0 zz+3#BQj(wN}u4$oh+mxlR{bw1i(nTrqRRjy$<)R*9O$jRn~CspYvM{->?FT@ zROO!w#B}%2p3=Os_mpVYx6F(4z1nX@X)R2LMF4RU*{!$qiaJB7_MMZW&#|@O0i=K1 zzd$okvJB_BWh6^W!MB*y)V8e6%x$1>Piag2v8Xad@@T=51w2N!#`M>bxDR3i=?H@8 zA6#+yQ8Q=yD`DU`QvE!0-WlfJ=fBQFO3ZiQR6=HUmNTMJVMf1SH&O*d6WfCmBjo0tnPglUx{ES&H!FB0 zJ%*4%W3zTE<|t@P3P-$id;W|@LXsSAji9v>qFVDSmkUkVZIiGWvuXHbaR2L+VM+$D z@*{`BMe7mRq9nCQsX5g^X&A?k-Nsi1tH9N1u2$>iguXe>prVxm`9vb$TGU#9Bg<}< zFmW$l^5F4dO1;l%iWw5XIVe;6m_ssmB%6eZIp`vGNDs}fLJ?UY0_7n6ssSh~+J z%W7H_V`gLCz%en`i3UreDe?l?d?jz6;kcb`znelRG=yb!Z(!*yMG)CXs%ziz?5@v+ zi!%T>1y<*MAt8UZi}Iqh8R0`X6#V(wWd{M!{blrJ2oZ@55k~fM4rhH18*i!@F52KN z0hs)n1tFuV0Sl;^(ZLpx(UbIJU)0e?A;{pe;tqyzTmQeR7ot8^J|xKYD$?My-Z#kZ zaiLhDXFA6g+x2IRk3Qxi`+}11k%i~EKF}3v>=A^GVV6nW_V%uDlppM?wQ$;jY_Q8Y zb_H6SQ8IyH7Ya#i!xpr$Dz|Ts5BL6YY6ICsNSMe-3Qz2cR_bx>tpUaWr&?EeDG$TI z3w%)_Sh7q@XEZz#v!5w~1=UBqWHnPU>*@}xIj5TN$TzK8r>6aunL zDvuy4gKlbR#OI2U`Qf8Gso)>UE%p5#*u#R1X2u`lc*OjEb*8YM!bX$%Y4Dy%R?QPQ zoRbLj4RJ$a0Be2)X~v-73{8VZb+8_b2AR*!&eHOm#DW{Gb!nG+48@$*Ij1>F6563q z6=h$hExawnD2HF*(zwu0CSFU5o#_eP=AbY(GM>OZD#_OEHx$ zHM6jKA)nvKo1@Evs}Plsu|eclmX*+rT@xv1+VjMMI#$46uBS3b+GbVc-c6!Y@?H#T%dFy0>AJ7&2m@n)B}Q>#f>(IQ^m(KmBQ%hMTMatoV*UR&2mT1nNHktC5C-c zDUej*Rn?~!M%beI{HT{Q7jdo(#V5hsp(s(YT9Z8c=qSBn-|Mx{*Q>*&sDD36eiTr= zeZI2^_t$Du$Az?*B#G9OhsmG#`JnqF8Op1DnM2i3%+b&SvTGI;@`XKUXnsdGM6(+p z0CTr|)>B(Uo@MbF0=Zgvb5VA^+k(BM%VOPnbaOm_R)lzl=Zn;I(10 zBL)XZ^}jZ9&Fwbl-p7yi)^AP=?@@4LHTBvv!ncc#NAkLCJ%7Jrvt|_A=N5Q-SGKg7 z(%K_}qTK!#cFXYR>4)Mu&5i+3%>(nT&*Ie$H~}zcX%Jm%By+edAO`u(k@*W1zbSc3 z4JDP99x4Jcf|o*;-t+mr5|Nh)Kp}*wjVecF`9Asnf>@Y!W_Gt~upV|y=wPWSe}qB#e)HRI{gk~>xhQA1B-THJY?FNXb5@ep zinfxc&~uRQRaz1Pxk)ui4!Jixv2Ve##Ads)&J`0(rJtRqY(&<)sREBBG(#n5!6y2; z*j^B%R#L}`?GL)N8SsA(ATS73LzP`cXRI0>0-w9^z?^FSPBU7Q888*O8BSegn8JuR zVrQ~3_>}6R^zV_$&Wb&o3R9R&!U$YJ1@gh4^b|!Ynoo&BM0(oGQJ2^x3#u1TM1n>8 zOqH~kkre1tv@irRDFb{d(s`Cs6tKl#MbnV=5vcME5r6BreiSV;_Z#-2(6wwfdC^MZcCp6KxSE^C1)8=}jU7RqajB9Jjx|&+s|~t6GF_t{=?z z6nof0Lf(I0GinG~OlX^{=(|WmF#Euuvow~9*X>%4H%20$G^`%- zK|B5y1qiw^+`0?5jaooGyJiM}#H6o^+gg0mk95p8Ui`L}i zRyJLJJ$CB8TZF&Ix}!b=BJaEfg(JaM%OxpE^7sH4vou`tFdu&g9#%Kk-9e=QTb9{? zt=;=-!jm_NoLelr?1%zj(hx(#UHn;ABa-2cscjjFXAzN@iIB*?E-)w`9Mz>%^Jy?M z{*2zY93j2$Bx(0ma}*SQ3Lt_MYSU%b73YdO?CB5u1odj6jD+_3Ep2ZCWeeG61k_>`0{WX(#g#DlBe;)u&%9cd<{DTHIG z*|d(HA@_?jy`x(E-k1BWhXQ*eJ#|w1OdGCRYFTg@S_13$ zoO7oj-#`w5d5dBs#S?g{pq&}^<=R)(cz8|#I#^$AR54IqFidtB&0)$qkmSTN$dWhE zjBZSjJ`$9>G^P)Ru02|mG*WCcTLYf~kT<*l21>RaHQ+VW+Wi@RBLV~YBNZ$)d4IwY zNa^9WH4lc0noQd6RS~;-7MNlKQh}RweF}~czD)pD=n;wSLm@2qDV$>D?)=LWEWJH#q*j_!WD9J$gT_|YP5 zy74htGs^T~7-R8d$}z(6*H%71l?vj;2}SNl^S9)~&I@9YN@3Buz1*aKIIHYk=TNaQ z@2e*r9JG9q^ZiFH+QUsg(%@2bWts!tF=p$4U0JbgC!xnY!Vcb!*F+o(YEn$tG7RQ` z>blj6#q{$-f++VUhwDsj_Ma+#vMW7=1HUTi8(X_Amaat8V58<&Z)u?5ifM6t0#0paopWP}A9Bb^SPxpurficjJTP;6y1DX%ve2 zxX3zan9@u5n~7|E!N6BZ2pJV@2SR?x}#K86Sy>#o!!NWGt-p`Fp zqdC%#qmB~zO#b8RW~KL-S5_De>BV?$uKzhcG)&kK)YqfFvexl@aTGC#Y0^=uuD|*5 z&_B0eC6%Gy?xpB_m{%Pm3(rSQ&#MdN^c$LTi!Bv*y{+k)&^jq$q+3^|d-<;I;bMQd z=uQ9R)O-JrKTcyp%XMEYYkc72Q`52UgpE(Bo2rwK?eMH$P%sg1jomSBwFO$sb4F|i z8GW<6^Yxj&+(GCtoARMmA9v&Bdy86y7)-eh*?N1Kz0G<|+rq^v{AsKB>looCOUs$1 zzY<;9_PYyw?*PDmO59nm$WP0_`0)b}Au{Qc*jk&F*?+EH3mIPGsCKyLjgM{o=G5tI za!;!|8UlW*@z{m>x~uAqy1q;-y$!OHw`Q8HTym%V-kyEf9lx4EgK>4NVKiM;QIC^zd#rt)G^uBjt>gyKYzG&laO{K$wIezKdE>)GCnWvmIOYb>qs*%8S z6};Q%De*66Kmf7yp1f>XDc@<)^9la?T?giYCJ9)%GCXXeov3vYQ>!D{e0xkYw^~I- zmDkj+UL4^`_R1F^xUWo#y;0kO-04f@TEpx`cgci4R&~wX!EAY(^>vi^3okHi^FMn5Y-Kf#BY_M-^YBI=9;wjXIyM`}=Fr2_)Ijh} zU=n%jUvIlY9ya>f;+6%vCMBS5*#8ZVS)<6kR`_*L6Ajc(^c1D3+&hW4Eqd>3f9Hiw z@RGL3Nomxs-El*{3)z`a%{Qk#b3SL=*!;b8+uV7HQ5TZXOte{%w!Dm%d8~RGJ#HMh z(AVdGX3~c=?niCsnS=le(+qb})!g@Y7pS*po4-b$DH;>`L|J#DDS|Q9W_^W5ZE-mD zaHc`B1iHan@Y=yf^#;$295W+_5U6)4qM^rEidV)C|jwW!bQk#0Q| zqpsviY=fksGJ(l2s-9{@Jv_WUYZ7$dH%y>^cK8vHjq7Mq z@oUD1Lpud4Y0h{$U$&oyS z@L<@<$806RwSz=){;It1#Ldoxl~(Z{d?2&V!+(zXpt1l)3i355(MXtQ0%K_V(S>-t zTY6;_VmW--y^9k-9pz{baL*dm@Mu~Zt1n2LaK|?OPSI6^tgu8yqqy^N4eFNWI)vX) zLbk9cIW~tdmeXt`zu@}jSMZ^jekV~#Ro;pVD}3dydCK>ms!G*(LXkN zOblHpQ50ogFFp(7T)$VEx> z2ZYc$E)`AOnI(4QbHTeZ*V?On2VC3d9c?l4mgon~@YS9Ge^UPMk2U})y~`LUe1%U6 zC70b~sTBK!B~|u&c<$(?FLv5mYmD#lT6mp%qjW4Hh`q^tPg?Pdj_e}rnzEhhxr$GN z=kW=ET_SDH^bh;wKiC+h0v6toWr55|Sy^_qN$s=<^-1w0yX_G`cZ@kCq$HGZ&Rfw~ zt0{YFt9Z2RV`qb{+h-YgBfh8lzeW5`W0(8SK-BdnOW{4K^A=^rrUu9D`eK;jEeNR$mT5if?d7G$JQ~30^E%&Cpil(+Mqp#fc&}F`Vbu{I)7jc&t{Q@0*h}^@k}%5;xl{Ptd^`plq9vN ziTS;uPRwPpbnf=VRj#`ydkFF7*uwF2Wlv5*5BII{kIzL}c|N=oKOAM}ah@aZgR+in z&&NgC*pDIggf;VPUTas?@xxZ(qgwT*Uw4r5ng?J6jnjM$rMXVKnkeL#INKiY#zPx4rZF78!P{7yZRp(}l>(lAl$2j5S3>UJAmuf)mOGzBjO zM20TW?i)dHm30U}IQ$xoDoJD=P=ecoi)6$jcAIhrP*GQOPsUYb0CiH2uywST6j6-x ze6}-6vnCa^N6J>Gz|~Rs6%!CP*+}e`*anfvi)TvGJs$qpS6yaMC@px*^?tSMGNh9K5|Rt9kj(3rmL8 zN%vG~`1(A^WejgYWdL2H_ijSbvsMyZjRae`(gdc2uURUC@*iOrFw3!0uFnipAb15@ z5&HVRd=b=h5fojEeI6(SJ!@}T$jbQc;a}YE6lY^oiloYo;Dl4V>I%{Z;Y|DLn4{F| z!AR}vR_j;$?vc&72w>6X@f2XNDbZXutY_ZsKYLnoN}3#C>r-MQ;?sdGjkUdpqi3}i z=9gdbL4HjCGiGk&B;1UGF5!U5Ywr(ceIS)TCRt|^1msN|P0XJlvr&*Icj)Q0)mLD~#*l~?>01k5s4~V^D zNS~UqCa~mWyD*S~#z5;>1tEthC7)%&t**dSO+*xn(%9xKjn?mv{#c;BJ|-hje@E^Y zeOAS^Z+KdGGn@VH#-nXCU;PhTN9o(HCDIxU9p>mGl%PY{c5mM~^{Ax;PKs&K-0G5|%7TqK4eD zhBUn8bNUZB%X;wK>oOMogASE6l@jakxEXBRQj$Q|XwIu3nllP} zQ_a{1(a1rdjKDTT{z4U<^+JyGM|lNj<2Z=r@TQ4!PKTs)3*O9uvFk5J(~1lig%OOQ zza=x)oYRtV4a&D=g2tIxE+4=tvKy*_^JW~B{xB8!GWPUP$(rFR7e1`_q z-Tv;?MFHixvfW_b?S_MT?=&_wK_NrCksEgr98;yuNCf?ZoUs1<_OzAH&)gnFaw;V_3OY$E7KMnY|b znaKD*kW3jnqx5Rn2{YWpz9N=pCjtRW#*x_Lj?u3O5${OB-58ViEoghfo?2s5=wdGp zNFyi!Zz`cXCwg@XYW-N6IE%NvvjZW08AxymRk`)CpNUD`wu!YH1&#B3{l2Tyl!l!F zJ0#O#cp5oKFkcq7-Z3pBrCSq--8bP+_9;0m3HFsf zIbsRVGNvcH92m`INi}X3wNck2b+a-iI|*hR!{PC9D{Z$e>}hx>rh``3vY~&qFbG)O zIq753IO446)mli-dymGexl;kz=}tDB0J()G%SxF2RR6{ZMLQs>SoKNgN|AdvJB#RQ z7*sR;W+x#*AGH9(%A(Pa7r87b+Py~ULYD+XqO{DY)zPw+bgP3FUmAg?!TWoin8pFe zz4in-kFGqT>XB&^r~P)ILfyoQZDs4bkor#RC>A1+fee#M(tY%Z06YO=#u2#W;d0FS z!JqWKey6uI!j;ro8q$)OmWf#Bo%(U&3QA|;r;_KvFfICl@J=Ie2C2t@U9BTh;MDb0 zTy$s5i~UP-uDb0qpAti3cX4&`|#kTL*2H0t`sBvfe=XNBY8gGZi z(h82S6dPs5{Tg;pt>Com30A4F%B8=A@ge+&FwuryKW>#+8zGAN8sC_eow?J=ZN(T_ zXs+ESdmLEmuVZKxSNzKjOgVaJ&vGn#sesfaU}~3^dT}|rQQ~Own&_Y;3vd~uyeCZ$OI9hmL{qDn zkY&6H*f8K9fxqPdrb4l^;^+p~^mXEu4{16qut6?I7|EsqTQ!8ZQP6PRkYcNWzxOGU zPrRcuOuprI+kFW9XmQW(FGMJ4P^ywqx&L)q`cXoDS(l=^6!**u3P+amr=W$2BEuxH z7zUv972|+@^ryelU|AY!_r^1pN+(O)?b5XX`k?qlMQMe)G9Um6uwULsM$AkeYzic) z)b(?z9c7w*yN$hv$98IWdwr2%P2?41jAQ@~stsejQ=h;SJm&FH0XpZ%ZQ z2@cq`pc=;9Y!|d{lP>R9dS{v)U-Vwu_ugoJZ;Ra5hutI~9h>P#T(7rSc*BYVYQ0+XfNn`@YW@~`AJ9>Qxq7Q+f zANLbLnXFCgEI5eH`-8ywf1Eguq$tOcdq` z&SBz6C0tE)p)E_S9Sg2lU{1hxqr5gBnhReu8;((BA?oKJcC&MkPE}S^POZ?*xTR>K zyl|QC8EEo#^G`ONE^PJKtxM8woQ~OjM6|*`z@fn;uz@{=lfB&H&cJ_xw6>ip(^^P# zp~bM6S;YtC^PPfhrQXsbsHV%-op((Vp$=u~^xb6daOAVnU$2w7YQ4#yaL{{-ot)Oc z^bFp)X_Eh@j8pL4x*L$4`wh-g9INpWoVc%M^y3}KZZ)v*;!^jk;PI)hk8!q9q@Jlm zliNH$8v_kC`KAv;4S$K5i1CbF-B0OT>te@;8K~7+C}{jTf7dv9Z>s_p-27o*H0;wBgF3#7!X`1zX+>*33}p2b zlrTZxTl;h0?&qF`slbTYHHhH|&LU>DS`^7dGav>~GvDhe7wNY{cj8+d<#=L`3d7 zXy_sV!meWh-Px#Y?m2M%)R&##{E8NLy|`~X$mV!61GI#8{@CKQUnkz$5y!sY-2K?o zbSd-O-PbXbnAhFch`iJ9zU=!j<`>`c$4t+6-TY6G&z{$*6Ac59wruw;tk+vHRs9Tr3y_E^jyA^Dmz}>>u|&g#0)HCOTh;`zA-=pYvISZd>18 z2Z*ghr|+=cP;E$Z#r86Zgf;b_l8V30g|E@RbdV_U)YQ@cp}a-xI@rXG7<A z-yxZZU$QBkyL9v{ZvEYcz06`dP%1AtP|Ikupy>YONh1w3L%Dk>qH`Beul|&H5ct9t z>Zlg-H(gMGIU3Rlj(fw3Q2b0k_EJ9;1SH!ZpTk8W99z(Jm}Ae1CJm^dwxw^BKXMn7 z$PX_npkS9QNM)j@)_9UAmvn7gF*oj($@?b;AvQwD(M!(gV1s0+$|NFMAoh|49s!mo zVKK+OXB^}P-_KJ;UO_{`hkjy!2dqndnHG>duBilvuB$$DH5P=#3^6DHiHbutEmtQJ zKPTZ%RFecFY>uh8GH1Cne&4t}{sI#aCT;nT^@c=YAn6W*J)kZ~nOITn{<=X8TLcB* zl8zj76YwGDTDE$dV4++){O{|^Z^1Ks$lL)kt=Ws#a-{eJ5^`|BC(u82J=@2 zLi@8AN*2dt4hp*e_J5*W_1RzTef@LF4M*_`XYuCKl^l&yKaN2HLwPJ~M>NB~t|CEe zD%~71JvqGr3-eippFLUhq+&RO2tx|Dr!iO6U}^&>GWd0Ex<&7?Vj`W)TILFMW5uWt zJe!i4F+Oa*!>XOK5kqt#(&5Fx>!D)?n3V6b)|Ojq+=q{F2?=!_N_T69;z%moQ++?^ zoLH*hY^4vV0f$L-n3JX_{+X(HaCG|-cCJ;sDcNk4i=?KR(-B_!@uG$>m2mq&!Z7jZ z(j|~ccpc3Wb{Kvp`k~`>7%g`c%9*ef_alBtagDx`u6C(&2aXe&Oh~Gzl35{U(M45e zjYZoY_YTL{xaV0RO1Du9P|3s`LU7(Rv2ZTp)hFW3>}t5ytRuo~lwU3sAA7M~AG^ZK zUtS%&moeC{tpn^9cMh7m!Thgrhjm*<&s6%ILL?~bey6j19oS73EfktxV%MX>A_lk7^zHXQ5NYn8Rs#Z$J2)H`>i{P1jrS+ z*h`N-{RH9Vt~`{Lb7;rTFv%|#`g%t*tKHg|RO!-ys5eDKJDUCpEspk`991M^?_OIe zO}^iAVWq4X)`i-1x7}&J-+l0~wT{~uZ>FW0psMp8im`N-v-c24G=x|4=&IGP2=k`i zQZ^mKDhF0&me9qj(?5dRyRfZyZ}oJH0Hvf$4bmQ4D*0o&<-^4=wIoES)2Grz*-fDr zY2XVET$(f*50(j$y!zOY9LvKyQVSrmQPUTb=rvEMZyku(jja4AFjc{z+p`yfoS`44 za_;r?nJz+y;?BX6%Hca&;Vu&l>67<@MNGA*5|q$H=Mu#gbZWIZNC#p+dNrm5>~c)8 zEq3|ABgwujyi;BPa3%}o>cBml`X<$+tsw+e3EL5{Avn^(N6+|Bg+`-k>*){w!rU(J zZJCW|ccq);c>LH%0l8$Im?8@J5pjBrCnX`o1cH7N&6?k8hWrz}e+K;~8cfuy|L}RB zK3pCx$e}s5Mr2kdxlJ-6>eTN6Y{%Hk{{6^hSO{J=M_~|pR)JLXa8}N=a#VM+whHhu zFJ!YUHUo(5z$CaHmY3=GnqO*AbPg1OTszGz!Qg(UOcRSi!GaxR>BI(2>5reC2a(t~ z87@E30w$O8AjS-A3YavSBL#Wx2OIJIMyB!ts#R6KSs4cS>|&xH{;9C%VGyn>uq5!y z^3O^SSE;D%+Q;M9IyN}&D!EIMt2*W6&0wOZQ#B%ia&MO%5~$GH2- zBBZX|!;i*4)_Hsx(+AnDKQik69{!iy>e_L)62p3wIG``e^JiiyR9HO_054T8&TVR~ zaRFq-m1kZMa6a{lC5EO}TK#4FnGcC5cd?QTrsp|W`&Vy_{RrhIE_gArW#i=Ldz7p2 zS_*?oGsna~0sOxXU;3H`Vv-1EHG(?ig@3T0mmI-=woZD>D5vFf6YbI^QQIQAC`=dV zDM?T;r`nmrxG0P>2b0rPkuj~agHsQp&k^+*QOqE){yg!o`UO}42TXGwT6a&OEScm4 zCZRcLdrvfUFC`t0|aVmU0*9 zhOB2EzI<7qwRiThg9iRbegS44Jn^N;*q(8zbClG{K0ozJ)GcVKYAI>mOuLyWRc^vC zLVs+{;5>!}wsYJEtXP4B2C$mx1F_~h8sK;xs~&q@{lqu4kKl%8NF~#EUkvWi?s;ZZ zkQuzdGVjj!^b7x3LB{(|8Xn_@Eu@4^427U6k))i9g+}rj8mEJ9*tUVT&Y6(BdmV-C zNc$loB1ln%D3%nY?AVHoH%iK12eV2eTMgQVTC+}ic53`1jkGhTcN(v(F%BVYFSoZB z1LEk4nyuPj=EF`{VL79H2PmRtIMCdviL%4<)|}wFCZ5VcoikW$xx)Rwh$PV_q_TE0Y&clcz`KcS8K!3D`VxQ02qRKH6h)pPeL% zz5ig?((p3{0EC?*jvJ6^iIa?1SnG}%b5?+cgQC^L`qbOBH;OmFQQ$}S?Kv81xB#09 z8nsqd5>skL>NQ_IgMYaB$+RFZIn%L zGM(@4f*&nF;nC>#S$r0;##h#r*C|Kn;ciAEQW@J?OKa^`Kh6NU@ivtNFESF+i;b;T z1+E)(qFrhw--9h5pW)Q^exz++1QD&}-6!^BSZW&W^R?;Y?rIOC!|G!d##MZX{MhP` zsf#r7>~-HQ%B$F*kkl4Is9HFMRieY~mZ@bVN+@?Esf~aF>lCN~Jg=N`A*vS|V%1-F zNAgn;J>y-T7x;Jz-{)P@w^hNU=O^ni-}0P`U_P|iweO)gBN*C%yud+T z;Oq6{Z)?CCzgJqiE^`849MQvJNykmFythel1)xTp3&;z|@xHHM7dUDmJdj8>m-o;4f)wT9&S^x!-^!Ni^|BuX(c=gcL=4L4Wru(&{roFHulhweHBqxl}rY*c-fpvpJ3Q?dz z4B^Q;Y5et77kf5D4{7*~qTICJ<1lMCNKo_la4+Vkna^SXBT$aE$KHPzcmF#Qznw7L z&LQQq9#Lg)E|-o#LjhB3-@Q+5uKDC^jnYsmqGrlhx7OXkpnnNjdbH)&?n`dD zZkKZs28eLt&)&5*I@280#2B9{|4+YC65UO;xxebRp6{FCX!O#6IEMFIQ*0xiXB9LV zB#-n5VNcY>`#M`kdUdT^82egU+o=Y*n=}_l-}dOSmci+S}6V}gC*CGXZ?I#vqP2D zFy1ztG*v(r)~l+s%e%3)N4NZ$Lb?LXFM0ip*Jp5DZ~aB9^)MnbTg&^IoEEWrFX~NY ze)HSoi9uKKzXyo_bx}aW(e{^am$k)e+wYq)2sBl^r&YIEUs=;gv&VD=xXB{5`o72A z$U?BlMUpe1_>cJMyzji2F!0~NL@kIeWtFv;#He8iF66{H=|X#JPj63zqH0&C*Kahy z7ssZb_s?nF%PXq#6(9Qh3Ylc@$;Q` zOU1VQUsUG*zzQnO9sSMQx4i%C1(*g&Q`xRR|C)I{Ix>$%6281m<(tli$H;&Nxw5W? z$98IW{eusJ@??Ce3gVHKn0OAc%uaon9RbBF30vNn`^dkvf0$D9)6CA}f6}RMB0!E^amj{n(D%OS*cVu3DK~A2Y{O%QG6xYt zNB-)p%#D7GFfhIzS_46=63OYk%h_vNtv9a+pjk)x#Ixbo+2))Fb8dak|E5Lgy1}e3 z$H;uDHou!g|Mx%RJs8i($6X^~+(C@$4l{%dXrDMUzU~ih1(2R9;mLTR3GU- zn53ks^B*%|b;W8^ky6W^$^sVZvM9cZyS}jaG+(GtFnscohc}t*yOW_VC1}t=+|nKI1oEG8nET4JJC@S9jOZdDj}C+FPFvW!oO>#}U&{Ewh0q!t743Tn-;G>h*qSl6Kg`F58&4JG<82H zqrE)&!A05$<22 z$<o)z#K^43186)ns#dVIZPa9+7Xlk20%bnrPGQi!xR z4PSX{=#ie!Ke&tXHhWT*UtDlQD*0-|wN`gkdt=xcKaxwk*O9LJ4Y*g7D>p+d77eI& z$@^-*ZI28)XLfqzw1uXQI)70N>z(BP$DDk5!=10Uq1kr7m@T(Dkj>A}`yqqPp0MG& zE`Oii*g!}%_(fyATnp;+I+xQA$JA-m{IT`g`T2Tgzh=|Yce&BA^Kz6E%DL$de%bTo z(@<4ah48rHwsoTV^zhKvFeL!DVvV_b^ZZpM`}(!tT2N4MeOwURFOH=T7#J9^AOAMo zd%n`}-N*=p!)_CPn7|ER&+BF|PLA>`cJk?VjA?+tZ5_13^&$YvkgXHFNbz4qy8fzl zqnK94(09`Vh@op`D&2#= z{Jadr1CwR~6-Mzd27C5UaFsA|zHv*NA$p@Sj;GRqA$}Ij;vu}Avll;}0XxR<#Qn%%V5$qr7@dW(t#P@x_vEPg4>|Zg@ z*_g>T9ZTs$k;DfjlZdhp+rB**+X0?+=#;=4{O`_BLkPyFDAq}kDt7w~E;e>{VM|LI zJ=Yae`?rghufpR<#&&2*`Sks`-#yyJH*^QPs(jF$(W$> za@yx3!LJj1$oG=(z;Q12yWv#*L(zCUcT)sVFShn5|H^U*3h`{2?q=unSd_w3hV%Zw zM}GJ*O+cv-nJatJHz)g-?S=S|zfvH_p?(aw&Q_sfqA%?IxG$=(Hj_BCUAoE6=<|QU=GWBessQcT-a+>h)R6De!Apfv-Ehm50>)3 zfU3q+Se33BvqI`ihq*MKoF*qCX2-smhU0SxC=ay zN-;!|&}08ADaw(1ZzwuYi+)j9g41RdATBPhOI{$?+Pr4VOU=ae<$DsTDDVOh_Dnye05uQfa-kO^sN2*{Mtak9;#_>UZg1aQbuYcYJ+YC z%6lC$asFbNUFIDEii@DnQY7O7tSoXFAHw4}iK%FJ?2whKXaX-?Jzim4wx8fV7@1N> zcXNkz;vC2WlCZDEFT`Xm(S2tK=OEA_jAYZ~Ni@cI_4o^=X&aE;DkE+C5VR%in;zXe zHIv+)S37JgXrgYTmr%FCjMN_Q72y`czc48^hMV5TYeOBv{hAtO4@)s%>7=O^c;&+V zY8CT3I!nledB_Ul4B5~rP=akvmqjlbi;az$ygyhTPj|nJA5zwEu|R?1Zv*Wg$<&Q~ z+4W?g)$U9KkI!Wv$&kbCL>YxMu*e6(x#65>4EE|bzi_bs)~en%uV>Qj@tov7pA z!~2eGk#+m}{F~;sov3ZDb&Wy<#owJw3o~kH_giEf;!GiyG>G9JO-?7a7>#(TKj8fL zCSsQE@7ZUNJGtlu%BiKizol}@;)`!|3%O@$SO2Jq>BN&&A;!y(t{K*N-20_CuffEa z-EThCc>WNT-E%{W^>V+Byw8WHq`d+lAk!o1X9lL{_zC~QBisbzb(P`NT!!zgH?z@RCdp=UA$$uAU^xwClWq#CM(+zTS;w;z^gI%taD-CRWqX z=%3CL-ARyT^sldHIZ|NAfbo6a3026}+sc6xl$3bsJ_bkP+g>NSSZSad&*oqI7Hh`$ zqCo%kxSy!lKO;$m&=celGk)~ff;QRlvVen)t=Hoy>&T+-Mc`VJ$Qw}8c^ffjYs<7{ z%Kvc>oZ#N+q0m;z{&ko0b#76XM$TIN|Jt8tebTt>&mjmpgcFod1pYI``O^yE&^V9d?i2Wx0lXCQ|Da1oVn`*+6&$V~#?$QGo?$wAI zI^=Ab#$ zAW&69JTD#IyWuiP0?&xm(A0E`n^~yP9Ec+kHJZ%iR`7CiVg-PKF8jP)d<93jx*Gj4 z2`9k6(bu3Xz+e9J&3CuG2oKu480pS$p&XY*ZCx@_+kY(z(57q=g1sKLFd7&` z8xMS6Fpoxh4ZI3P`%d%|9~@A*fp7L}94F8d!BwF+t3&`Mgr+c@#PC=*l!{{r(z3`_ zOt>MiyWHGSzS1g8FW29-DY?72UGZTQ=@@(==;LYM!S47UPx-74(5TefS#L7A9Z(2wrnFX&nBsrZldKpOqrtN6 zdeCSED);xB-ND)cL|!h1IQW5M;sQDNm+YSktfS;nFle496Tz7wcS~#qM>)Vz`x-G( zw@(-t7>L@Q=XJxG=ga6Gr}JeosXB`Z^^!)5jE7)W&}l*qhp{ktiHt>Rp=czOzUvCE z34gvjv5cOy$v2oyI9{7vQ1g1fw#Cgw5dxi)lAhkV1;xu|MG|TZ_aSyDcKu<(fFCIM zc4}`L_7*B5paLACT#B{qi0LopPGuKe8b4jgE38tQ;JVmz*@Wx{9iYOprI@O;qOSGYuFe zPwSek2dAVo!C%%(ZEDkNVSwOxGexj8S8S0hZ6jEBMa)Q4Uc9g8a2*Iih#5+frpplg z(pyeQV?62;i)+ez=gk0f+OAK--?Se_K7BKD~S>0uT zu!YLtWvz1!jP(02>AfQIFRRIEQI5~9IC??C^Zq<$4J##NgD1_O5TeTFxoV!{)`)7OyRw9^fBoRt7wG z@9WxiL7e|CG3@ct73*uZk!(1jr_JDI{&A;9X@1qYr$^ub=GkZJv><{}F6J{9He@l}bjkuWF>}`5pA@E)_CMG6bxjTAl!^velfkEK0Y0ot}fANb!tYoXV<%-??jysnnNV@-%CWhh0UDm8Z2 z)9+{UEDl+TLPm^*U1#MAK3gM(NqO({#BFmXdw>gq?p5AZ`~)rzox~97#-c{x%62P= zo|(zLN73oMICl%%t1dYcPjyRQg5U7j7yT>ubau7n=_Bemv4$1(`y4-b^3By?DS&bF zM68kJ7)gGw^<1>*)+BG3zU8 zeU16w_)U-p%sP8aM|u&m-sAYtKb+d?gt2qlq5qS~B&o^u>v>oZA3^U@fON}uza!=x zyQHx24@sdlm8M(W}(@l;0D!PKP}unT`>A)8S`h`>6wN zTi!?OAEt`kj5r?!v0g3S|LFA^E*R$oPEQ?k&Dj!E=n!9S@Fhi~76Con+L#38a?_-f{ag)R~*~`%TpQKM}6-R9gfP2xyIye=2WJJF=SW)Srn-w#iYSe;+h_ zrVVhUhiwX&e-0S0o;PtE2QtJ64?A=Elj? zeoXpzZ0zj1dz7+4?s1uw0Zou2-gI~D2`BCOdPCXO{f}=$adlAXa9&W!O}^HzV~3?}y-(yTm8o}!9jVs0qqy3xdVg-X>sMbU zsRca-Trvds-~QlkF`0(SzS~WP@=vk6>~*x@KX;!7!Jzp#GBq{yGQ%8pRAkBfuhgM# z`5wI1lTj^dIc@V6P-VOSkX+G?Phhya_5(Dm$Vi+}tB>fEYD`ak}L z7oZh5beQR79)A^APe%A?F(#Ijb#8A|g_DR+$s(ts?Wv)pv~5A0=5^C0-%U5Nb<0X2 z_lv7`F)0W0yW;?^_+o!OW&8;7QJ-0roXE;}vNR4a*6v%SoKPCI!;73=&aYFNP(EP& zeKKPNKT-HGckIEee}UVchXdn~#}!cziE>NMNc--u%?@vMCB^>jb2d4eZZ)1Kh*`p< z7BkEi(AyD^PFx(kzntK9pN){mvZr`KrLHBC9cGQ0sv0N^ta}LWPdy{nv*jL$|-|RzK~42p1IHW5_w=e;KHM!a*i5)h#Y2?QNRZ>)h#+8gfla zb3{B2`T@mSsRT{ZA8v|y=A*g!!oVb0j#+t|i`bo9i}1ZLs}VEZ$UsKQTe+whVlqPN81Sx*;%%U=!Oj}0z(v@tM2rXof~MLXCZFxtdQm0^e~$oHf77s4a@j7yWq@9T z#O*TqCkPF!V>sPKPV8ESwF(@=DNLH8+d#)c(v&wX<^->@7wx>-n})0^xI68PkC4&D zgz!V+KfhgIv>g6>)BpRYuRWl+%V%?_I+&u)I|SdCnvS%st4@mScsAkh4zI@Qjziw{{skcha?-)ghhxsT75PJtJt0>(t1i1Y8%EZ9)^AwXh; z{jpf4GFd#=6B4q$CCo>T&u`pPUCx$FpAjWr5Lg(A^aPe2cJO4yo_~xzdYFAKw1p~= zMaPRyhj=T81%vuN{-Eu6fGC=jGuO%3f)@0+3L}v0BLoLV-)>oJeE+$Pf0F+Hk$>)n zv&TajF7ImitRC>EO!)|JS<_o_v6J^f!K;orRce?H&)P+DIm;55zDX!%b5N+KE; zkx^rd3o#v5e>b~|i5MXsgr&_}V`!X3)QpmhB~^JN9*qtB+!jo!)SjivQZN96E*`$$ z5x%5_x}OG^-)HZ7x*MFw_k#=!eg;03{U0xf4|q8)-{prU8wp$PJTy@w5`*HdAiexG+ji+J#C@E8e7J}mCzqS* znC5IO+IzXHyDOr*vk=eg_?+zwPDFZ|uCg4#B5yP;#_E`AM9mE@4!)iwb<6s>lb9=? z{TU|n&2G4^P5T~>PZ++N&HcHXE@i*R1VK7Mk^u=*9=*0SkoajaOYy0z2ealHZiuLt~}tNHhr zbp`bL<75$$>G{2@Bm)1FyybTPDC$`}K4!f8z6v=k$;gQRt)DRso&icVDxm`|b=PF# z(T9~x5!M!%{=PxepxEw0*acaVedA_DgRJ}QB;yw2r6{% z(2Mn}CD3_j;0f6%@u0MaB6z+ao?b+t8AsCQ`?u_Ko$j=75E ztUM+P80rWi13*~=iuxe%4Y6wAR!oS3P!qw#xRh}14R$t@biST9t_;{86*~-|!DYby z?^n{veATyVhesADiNFg47qMiR5$nXxg{mHC!k&$Qe%DP>K4}~d4r8|AeaM2IkQYYz z>hF5fthtN(ax|M5C7DpFQJRZ36pFs~oFwk9EBP;8Ee&?#(Q}6_%m~KNW-Ezd{@EJM z-j2IRDC*$T_n*Elkpp2bKWJzD!=6QI+1^s*=n2=dqzFWWDp0o9jI@>YXNCSe~9vAO+oI=3C(%Bf) z6~6-a@I#wsc_D?KVNUc9gX_dDW`wZG{X%k?*uath?nFH7L`n;(PZRObEj@c|O`e@H z0M}WEJtTi_v&ERR@Z>w*4{O`CUm3h;^kgR=1pd16lKYGGnzBb)fq6+0u1ydVwMZS?A(siEF|~ZGT**tw3r@qO8|N~%|Oj)E9$j=sU4?mS?OM=wru?GKJq^?k_Ui;V(H55h*$G+t;cf^iWf=1 z0zRR%>Rx>_Ff5(UFcq4pA`C3-_AQs`*}3vtGg91U76{zm;^C^zMI=O`${KDlXpged z=^&*oC7bFUmz(wmVB%RiSU6fgdc`dOgbBFJ`^Z#DrW)WRa7h(Ai9BsXT{6-MyFW`q zbBsKVfS4dLeVx~0Ra+FWR1}*cqH#ON7{X>yN?o?RoW1fX=G+eX;jXT|AUS6sD5$No z&U;naRsA^;c%?D@UqR|Wb%+0v&F*&m|K}DV!QEH?VhT0oA`}pT z<-=7L(9%{p;lt9wip{P>iSa(Dcyk4{iM1bhw#($dl$O80EF>fHp-c(efCdmIuyL12 zR9Tg;X<9WAfsy}de^69cJ3m04krFl0M7L)|?jDWJa$L8u(|-j;iT-W>SAWeur(NFd zKLFQ%mxTWPezqaIo`&MY?U&-r|kFq8GsT-omh5nY!KTL zO6ko-TqxX^s$qAQlUZ$MDo-?!1Bc{*mkHF{eBi10$?oj2Fu7xVNg;bWE(z%NaMqxJZA%O z^CU?k)Fv5O-%XBg+p<39}{GrmK_T z*@=Fg1H=C)0Io zPcV&lBp^q!@;JT4)ssvH&)JinqY>K@=f3Vo>`wrZurV%cPLwWq7_hiMX9loa-igD1 zc`cqmpNBQXjaIxFTSc3eKnbNQsYYiP=3zxcB8oKkfQ5N7IvUX4UrQ<}E2vKji8JGqw$VpBFltm2hou3K)*= z@0t#&Jnb8XwwW3kGE^mfzEswyk{g46eH1R|e0FQoe1W-EhsdlE2j5f>T*ED_pX&nT zaRCuI$wh{j6;;no{L+{&hF33!sHZs}pI8kW@58P*&k${srEI?)WkaBQ48C$?cla5DzdjN^FPI!z=Gs119LO#oRGdqln3ByZ;IU`lUAQ>M_J@5xb@+Kc zJ{!E>tOo5ke467jrOc1s85lRebVBtoR}7o;1&^0j+dPVz2}u}pRIRFn!XCLD&LHv% zwi%Y}>CWWabl!Cgty8KC6g{jzR^jiijAq*ibuqgQ?N*pdfMfX%FiaZ4_o%+;$LRu6 zlJs*tPp*$7H4!Vx5RvQh;fq84;m62dbxcsp>4LxfM2Fs6ya!s=v|=DCjxq zPbF7$r@iPK7uH(tMI2u0%ea`X)Q0qRlYoaaFILIUtW8ugc$TO;iq(~Dg9=UY#DUOe zac~rKWadM|!NOlP_>EfXNvPID$z%oOrs5GgDNtsi$eisEJ1E8%mk62R8?mgWMEn5> zKl~K>nJ1t20`dcy6n+{YV(}0?`-tR+%Wg5BuJpHa55kBt*)nawh54JWo64g^Tz;y` zPt#R}Prp(WA@qz8H%>5SwxXW8i+Lm+D>ivMLEs`qGqqPb5c=J4Y3P{=g(e2+iv6E+ z*S1uJ+6g0#43EDd)MY4Ai_V)V=l-4l&PkYpG-Lab~nb| zCgd-(CS7z9O-SZzG-~^SsJx$Mknmd=*)Ht&#r)-~F#{9u^ma}2TsnV=~C(^lw@;v}#tu8zTrX^ZR4gK=i@ zlE2=l>ofePzb8bTKgbkuIvcFPpFGHZ$2320hAd*u_#NmT<&{G+Zfn_LQ$*TfYV0U# z+0vga4L(urN6eDuoJh$VF7oTv zA3t&smOl$kvNcQ4%pkIdY4ao-ZPw=Yd=|3&06l~Vg_1if?LwiDIk|Mr_uu^f(;7U9 zV1sCcA&?kG^%8LiZ;sk0hrz?(zl4L7nsb@(3`t`FaakcNaOnmJK^EhE9qfN;!e(VKH_Qaa1HFUx9qHDvVD=TSw z@%?jHT)rT-F*%kaB5Lm$cPjJyRiDyH%BL<06e}`UZL#aO_bAkof>d12;>% zBBf(q$QJ3&BP^6BT;h0O4<+>-(?W?5loZ0x1CYe#kzL1X#lFJOw$VruU0vvsPLwZ^ zWFX%@fo{g6yM||-WqHyGEgMJqL=>;EO1rVCA*T9!12i~Ktz8?o00g9H_t8(m%#>!$ zmBu8Mo>0L&_s{icsBiK9+;v(YCrX~4h6(0nEX$&_~x~Pa%3SX04n~}fz)@`oo@r8 z!cqm18jqBdTg>Ctoi&Z>A;USC7MQU99y)XeL8=NA5KDqJP&6It{*Kpsb>tLJbutZl zR!SLCRt!ODQ@XaU??SnAh0+c@v+1cYO#*Eam&>%ENUZBbrrY)qf194`Y z^5ww?n>3NW==E@xqt{pP4QBozvwYfgMQfSdk<;6sMk+4jZ)w_T#4(~m;gH4|J1@$K8!`YsS7q1&E7@Ox*XhAlPPe_K(CEP+ zM#xGLH)ta1f9qv9jbsI3R{8i|pt_Wz3}f_{zPcN245aLu!oXiJfgPB!91H08tx zQG0%epYcWrflE&tr0{FP@jS|Ec7h&j9RoU_m`YY?e_j`wjEGGWp6zJF;Y>#Z%bAJZ zGEw9ZGIvJ*EB7&5jHm z0?d6~32#YoO+&fYxT-6A@~_ji^P|ZhV`YbtOjeS8IKnFEh?^rs6zT|QVhEu&ZmOjU zO0I`J1`-PG`L>*f+XmEiVye+}<;_jl^Y=S) zRVAhcj(|g1@?WzdBOYtpXFwue4j8jZWzB90V@8Uz&dz`)+1nT1-bo|v0JDElIFmOg znz)dtRi%Y7NV79B7tGFbmmV*2F-d+Z<|`|PARa3d^Is=&#Y9X2cVr`tqPWtn-#uzf zb{KJ`ARfb+!r=3-Pt{6+i!tUtnt&VQIy$KoSI`B;!P51c?uF8(<{}zN5y@%fUtNtos zZ8}HMy%b!GTCDl{Y$94@m||jv`!c^0hT2HLiv_X(aX^&FkrTq(i_?nyXVJ2_VT^JS zURP*+7u+(N{|f(}eFAo?QMu z+&Zd}_<8dHj&Tx27z4!khBUi7IsL$L(%k=u*34Iz^N+^uipA|d3P~IJR0sTnq9b54 z_qMk68`f2Jv3Od{rpiboX(VY8*{|1|j&<5VFw89%b8Rpj7444%|e)hoHLK)|yAgu_V*` zfqOXL*9GaD_V!P(4=h+4B0zsNzAuu^xI6nI*U~MC)2NRrPC1YJP2zFxRDjm<9Z!{~ zl0C%l2?^;CyO7O32>U*Kaot46Gv*pa2^|;5b??iz;1k(sVFTEzXM}1%g(COGQOoEO z^wF+0eF^oO?4hNNx9*4TS+hx}z7)lua{z~izOt;~C52GfQHI3P1qZ^Mlnkr?Rpw5Bp#d@FSSHWvwP zs**@Zi*g&pX0Dc`#TPXKnxVqx zJ%xRb9bzIWew6sn@+ap;r%a`z*hFALiysB_qKbGiYT@ejp7hi8t5e^A5I?I(EmH{A z*h}b^+hCKtWJ(99@oj(2Fu1T0W+CR%93$z^eIrEOnS=gAjqZ-JRTNVd@vbe)Lp(K~ zigc>oRZpfLcqesj3&K1{+t58a7>c&zk7}P!sZTa7MWeET@W&%r;Ot@&Tl|zP6q-f> zENB?K$UnBh5sM!k5DnSi^AE_px)(tGF!QH`UZ#iOSfAf_bJat?%kpZ$TI0Kjn#c^Bb(crn&W7^y%gT!RE{}Tjbb$ z&_|esYbl=^mSxnl@BlXWAS41Z7C9zrIUUAyxk2IO{aZy=v}YxWW3~h~qqIRrMlUwp zygLgrd13CWjITw^T=CHHX6Zu=AOOA0&f|Ru*O=<3t{t+BmnJ<>ko1_} z_*ge&QG})2Ri#*Pb378ZjD8KVS*5M*)XBF04R-z>i1d=rBID2i?oCxFkTo@%r?@AV z^$AwgO)Si9c9;4wJ+VV>6jl`!A^fm-xAyF7!McRkUOh?v%mm$skax;Jd$r`>54-Z* zSq~&6uoY8+_N@+?%-zR-Nb=w{+w*x*f?ZZ8oZ1y@B2wgDgkSqs)}MP_&6}&6FeTYD z!rmw;NI2by^uPGsy904{x66pOmqCdeE&pjznpc*2Uf$T|DM>1l8RqZUPPDSLf>D(H zM<9I$D(RZe*)9DKJ9F4rG}jpsDrXcayz^X(kZ<1LgPR;DE!cvSPRhpn$W^6166exV zQ%!6wY(RcjG$?3}QbbBY=+U>g3y{4H>^4~T`z5JFk#41cVQdlta;YA?f3WB~GE%Zd zY)=6D1YDB#lhb;ORnJAbOjC^U3p%wZ>O&&N=c#G@>)$@&+)$$x@g_`^BS(G@w4!8N znB>sx)A>hbFlkyp04ijLmpp3(ZUmpfy#NHXoi4EE6Vtd7-H$|F%88;Q(hIA5Vj6#|~t&|;d ztRh>#-OO^!q}_!cwEiwyJ!NaxWlftiY(Adj7_R(dAsWaWg${RT_fJQ^*W|scU?mzX zcte}bM*W^8&lY)L0<`qsW!5xF!h0azL62y_hnGU;-K6~5fCgbQ<_c{_6~u^o<=&0( zD<+DPbfBr2Ush(vbS&2ews2 zG{l-g0IDZ#aA)W%ts3F0r;WEwu#iKNWW*GUSVvgY@3KN%V!-)qc>-%_GLqFlsBc;l zu42F@TuO*RWmV0_3i2*X^mS0v%WFy)eiW={e(!sX$2XL2c<5$Tsj0iplSV-l{$w@+ zbz)dX>}|X_`(4}u^MH`9#>JK!+<6Z^P$40(N_7GIOe+yELXfHg4UYxIY!9u>FtxRy z0)l?V9bwS?FgAVixOAQIeg1)8@N3)K@nKOI)a__H<$i+G4w{pF%qTc909CfxKXFWK zsX2X0L7^zqo+Q2&3i^CrL6G14-n39AOxi|%7`!Ejk~mNoPXC+S6RkBnDkY&u}=Erp2+xRsVQxf*&qw2x*0ji9%qrI=xkB z@j1evq9-CZwY3EU2Utuz+kQ$o1l*oiGWk>swS5!@{OBpoA# zU5zA$h-X2CegNsI*auwMfK%Lp7G&XWnG@+rkv2-yUU<1Bq1bDospJm(!T!w<8Y=Le zgj_*)t44uUEChTwofhK1TDkPw*3>)*%MCWU-t5OW|1i-XVG60N=7W%Vp46gQQ3j2T zLGt9Rx~SE%A-L*k>$BMG(`VUI{eJM3B7ci6&2ZmqvOnl2D2k(^E;7R{u8S4Z8NdVT z0>m0xI@X;-D7lB?5n8alsCxkV520QxKF+02AaOz_@4FF?@fNVuo~0pvX7va;fNcUc z(bBZs(p2O^i8hav;=RqlaLgVOrf4f37PNLTS*@A-u~2;f!Z@ zt-YWi_C{TFxh+i^s@y?U^?|YjCBE&yaLsZb@D0_43+cK;qrXn)Of$`W2=_;*<+Pm2 z=V)Q1G&&4zDsg1vG?8}EV*li`B-+fF^a*hNsEdM4ese#u10Nj($ToyHB};U`|MR(i%gY4~4=kqAd2en6wvz-76U_tjqyQFkzZY~*XG$tnKNF+6oK9>q2LtcBt7 z@Sy@p(3!Gy3zZ}BZ|lecda!(IR_<+g?mD=JI_ZVYc!j;KB3g`W_u@%)GKNKDx&&yt zq%3+M*%8E>75C~qky31grayQ$k(sURJE$78KHhy~(v2zpVs0)w=!Q#);gY4opki<= zbE*U5G;s0~`J3x-k!{E|KWq~tISKP@wxSg%_KN`>E|TbBg!uR}csZ*4sjB+&9#^k5 zY+iUJEL91&CWr;Kw+g{4u1b_YC8rs37v8{*2s&ixQ;t^lqcq;}162HK>-MU0yJTbW z_(9SUxR0L#O$e_IsjCGQ`J#>UZ&C?o=%ws=_0wl{A=f(qwe6LpFP(NS{vmE1%Jtqm zNSPOqLK zY@8kgQ#{?kvh-8>P>9GWZ(gCGQ$$N+t2uKWw9}>i@ zKiIfA#%iL}Sq<+K+E_LSEwdayXClW?K)}&V?ih4!8rJ2cV{=rBhwdJOSJ={ksE4W} zT!`^QKD+TJI?99P@Wq%+4?FLZcO%KD$?i`8KkqhD*EDx_ST#Gmd$6=I=G$>uy0aj- zgK`m52hC3+U3tj@ujBmtZ7cNy7nY^WI!v>3Eqh=3H4tJsKM5a`Sfu*TN8~ z{~_?%J^+cC4ZlXnTlwPa2AL8SX$v9Ds`3$mKen!2%%qZ(m$A1LS?WsdwW7b18)A2& zHmX3$1JTkpEQ&O|OALpa}K^H4J^a=v`CRgw; zREGjIRsS$<5YB}KT^SS6J&qCmT>oV<8Q6NNjl7L{yhay9f2NF~1*7j+1`?9{kW65= z8qPW#ygQIYE;{={E=E*uNl64^jwD@G*`4n>8VE9;cTch^X7Jk*dX$BMvbE&!2(UG%k2DAcG}p$;kj zXgeLnHiH4#3l4zP1qJ#;D7SHx+iQQo9Hg#;R40M=k5N4hv}?Vx=fnhJx<|B7E}7pS z30@mP(ym)lz&Y+U#OJKXI(qqWaN# z^40iIcV|J6Wdf;^QV?@3{i-G)Wp-Q-Xp}kcTjE=CQysbI@{X z(_h$=woE6bO;xzw4?d|x_sNr_EgYdnBAV8;gS7B2l~Xn3Ynxi~XJk^Ir+clppr9_$ z`E(;~^eXz;r(9w9n?8ruB?y08!B;8g!hK+ zd89W%wBsX4bHda2Ek97+>vueABrm-sHBJ%Jc?FR$5r%uXk%WCmyZ*5^kP+OKH%Zj<5eD?lF z3=-GfUHP@JNCYhLMi$$ok@#Eo1Ya8*jWCN^&|)eo^GdX_OC1PzNzlDA3o` z5WyO04?+ru$^%(pyEpi4F5NY;7vKSivqD=?-hIPb!iV^+;P^#KhKY$EQslGXveyRk zuYqxb_sdBu=Ds!7Y2N0}Kw{U|a`nRW5L@W=Qdof)=m? zA9i0~<}9{iv;rU0jfae|TMHHO8_Aeo8gY6tUk(;3;KRhf=d7hFTs{_BXw#W5;f?VP zG1{Au*bDbQ*nN8+^7TckwWGPIfaXA426a<3$j)uih+ey)kSk3=L4>%;NAym9Q>BJl z%5#{dwzQN+3)2x&Lz4e&V3>F}&8UR2>GiU6o?BVjf}3g*)$>pxC-ae0OcK0bh*W0~ zt$q%tQu+p@XL!|5rMt|!2?~@w03?GmX5H3u^xLRL1N;CsJT9LX>7e2kbs9GjXe9b< zV(0V0DY^}OPB=MIZQ|pLTswC*r*zN{F4#;BZIu@U!3J;u8LR7|sA{?-ZIPL?+;3oW zwbZg~plz_)YtHrqeykWy)y{^}OYG`V`jyqIY)$7H@-@0$!jI@W@5WhU1m^5Y>WbrO z*J}}A7Y~H61V-8a1ED}(zaBwfaOR>!^aNYc8ZGrdCE-{i{G9XVg<1$WUn_XdIWb!m z*$Yqyq!6S8)LEt3Q{WE#SB1|+i3hIpt~;+M^(=-Ioz12*n&2I7?NZn4rIyf)iMwTEiN9g(m&hY4@oB;l@#=o2O~oQ^fe3e#hC9?lgR z+EZ(E;swy*8gLm3ofq^~IVX=!zKzkbr0Jk_sdeY=-EVKFPr^;%VM4(T2y{1VPn|cI zG+rtU`Pa&l$_~vt;|iolYg@fz^{#eK;5n?I75N*Rny=MbcR?+_BuTuO@yVtmTOAlB z!c~Isd@1mYiqfE?`OQwua5-xFAkaw`8863>17%&HG<)d68%RRjlQM8$ZrpNwtTA>N zDJo2R)9)Hd<7|oYO-(u5YlqzaG*5!BI8MlQrl@)MyI!hKQTSVZ+UfU%!c_AA;j$7|5*EuS@| zqwS0p&_J)@eI=D{9is()gqlXPgs>GtXF21)>l&jMYDGhJhHeUNm)#g~Uz5a>3Gr3O z*oUu0fQaQb@!2%7ejxPp_A%xx)DBK-Bio6LxEX;ys%+l?btaOXH&3+vJ)6E0*G&T z=r9xfXhZD@8nBh;f=E1a5^J~E3W2pyB;Z)G@eZqxwUGN5iOv$Nc`XS(@Z$kg_a+GadOuBikr1LX_EGGfz`lW_0l+7K3X?kXqxP>M zvI}dJY^mRu89a$M_kr@ja!1<;SY(x1mv!`MB6c7Vl>k5-L5DPAu>|@;X&j3O6Z%jjmn4FWM-iTNR1U-r9HQxA!>%+r@0eg}{O@ijL zmWQodgdy6l(Es zNHn9wrJ!Ln5xq*J4kn2X>E-WvPRN(}6A-{}8lI`F8FFMT5u2b%57J(JC6iN*b2es( z;{f6Qoa05_O!5H*YqkhQpG}!fGYi)jZsbE${>Cx%YoBMrKZJ)#kC;vdOb_-7zF!;v za)6-xX;R`_m8Dizqn35hQ7H{^3Te%IjvA#cfP zo}K-Lq%ok?EUSE{4ojjeF5)22IuCUE(Lnjo<*|6=Isz&Q`a>6YE}tzyQX+MZB=nN9 zUlyLcB}%Cag#e!r#{ZJ_-SKgh$KNya?4C|?#n>vgDULC=PA8j=A%xIO51|tvfJIC% zN$A~x=_IBmkPwgvAqfNs9a7nxLHV}gGAl`#Haero=nWbeQewaFV< zG4hKsn~j+(9Pbgc5Lx<*?l0~&S1vmU4IL>l{>=YQf8W{Lxjz9N2>`#;2HUaFM2iWa zI655Nx%G^#UDMFj*L9!~Xcj{w=JPK)=FHi}G2*JkqagSmi)1XweJZE?Ca9&&6|%H3 zzyKmngEDmFH_3m#tZ&(j0BDH_>a}-GhkMQ5&Nc%0P)s0VWoE81*O4|EX9K`i!nw7CZ1jdgt*6T1D~ zop%8$$o@A0yH_mypqGdi`?^jPz`X_K$Htm08)Ye7*v{{~nxNEQI)nfk8F*YIw!?p} zV&Aeo1* z1cPrQOCW$xGx0Q)r9ueHs4NE<$+X+@P$=1&g~sw@5mHM)7*zwi%9I1qrul~a87b+o zBMWCjffwgYZGE#eSlUKeM*>)FSsFaprR=GpOvZ}c7$ts3Rhe$j>?`fX!1ERVwCv6Z zr%qGm9TDf4AiT1oBuUQQZBQ`F#D7J^@xn6Ovi-u4i9B(rEceLB`a1#SrIxDRPssx? za5$loGEiE3fN*_;SLZCTAC8l?dqpa{&@H1BYx+a(QBSL z?YXTt-K}=h$+;J+&84~!(aMR|$}MxJCvpj;gC_(NmZFi5bM^U(&bZWDI$nqmDsyz6 zChw*V;>m%bjhNv{rIJeng4URHfj8DIV!@$Rqu~7nT`dfY|V}CdNZiFlKNEWu?K? zdr~f!?_}UtTbo+%(s@53a(005jAt+O^)%EfM6(dVydO)vNnNI{W4JuLYo)0kD4YOR zK2eEcf+W+$Ncgv0L+$~Uy;y=Q=ujI=2c8sbsU=+VURyT%eUtEzxO^ zFbWlklKY-o6j?ss`7}o0W@ToR29OT}gHPq_^Uu43WuR~&32d5c$e-aqlkO)+oqp80 z%$y@BU#SI+{(lP27@!M*<&%NYRZCUI`u0a}Pt4Q?rz?7iNbSr#+k{Y#V;S=6-d($% z;&+&M%SY~dr2U9fkJt_Xwwus6p?#=#sGcFdUJU-bwW0McJ$$ve1CUkBi264kVOClC zy3uuQ2KhA>vzWHOZY;~;O^1;IHaSXd4;#VsF_C;}NWoa7;_*fSCG&_{NJDLz}%9gJ)1b?h%PPKRm zkiKUX+akJ0W$~UR6l9mwl53djq>E1eE_gHo3*v{S5tS(%t;);k_o~RpuquE z!*us_Z)?%+FC?#_U_Kg-+Jm}a2NIY~h#O%Q`}gju!uB?j-C~iaj4=mz8$x$);Y>!^ zW}so!$-861z;v$Y+{uJyE(P4hG3|sb2Fbi5V0SbUJ~+E^w)60m`b!6k*zE}M?dt2N zs5t=*SZg;643yZi0m7|;FlHTE-jx5(^1)@ZV`~lx5Wf`Q51oo9ZA=toB}>D(rkn%s zmJcr9-CBEE4DrwBRmoUYi9iC!SSw$QtsQ&Ux@cVtmKOrh>jXT-0*(!X@Fi=bh0&;e zBB%*=HfV~~dsK0tc$UOGF9^e%Ju9x~IRNY<7SH#Lhgw}2_!2_-Q}r3qJy1A7m_|fw zGiFVDZll~Mip~qjSVSDBvQk$l=~^>*8(aHue%ic0DjU|_UsOiq%Uo0b0>4faYzhN& zigTD6{IeF$+VBPtTrXl*<(uYi0D<}nm$7go7`iB5pI__NLju&E4h(NJH#%m^`ty|q z%A#zi0wjst{ALt+HJ3I6%T_MiCNOk3f>|HR$ggHKZ8P}ps?Ir4M9K!o@C~3@3uQ2H zIs#gR_zwcXTtqp{nDA_0bn0i)Fp={3vd#khU$q*x75g`0C-;iIHG&y(?0FRG>uQ6oS6VufIyspqty7EXoGWFfM z`eH^#M@BG|)YkM!!z1lS^c}G+ARL1%@3u@$2#I$;duN&rg4+?{k>*rJs`W)Aa+WZ> z*gCbf!n7(|g@i|{cLV?*R&`yWw{QjlY~MdJc&fJ@=<9lLh7qT-@ZVb-=l-kITRd4v z=77NOy`9EMs6}>DCtzTL`>O2%ZoTyu?qq}&`NsSWDhmfICllcam*G}Rc1mDK&%zN1 z=nW6Z>or!8836BVX>4&eF!xA(!DDN^CLix48UV^oT8y{6#(j9cbpC!Im}vscGQj;>!za?-(Kbf@4+(6~ z2ruY!mY!J$p_m_yLiyrMoav(gPGW?y2>5ixw$xYLlbKu4;DoShk1X~r+YyDf0W=C! zeo$Q>7ki6W0m#^v6a-XI5QxULG_*KS(4B1=xlTkr&Nt4z!CzB-_6)*7?7YFoO(PME z=kX~19c%E|K}Rv2r}}KwEz`ab#GyJ0JZaoXxNZ{raJpOcOs^}oMARd&dlVDC>#$0`=K$5mEdyU zOGz#Zdr&}S0qG>9^=#vBGr)(0G|?*>l;v*SwPmUHaJj~u+JfBAd;MKAM;T92@39cv zs|18=oY|g(XnyYr5_dlLc3nw8W2>LZ>z_GeaJQDDUUSXpt$)90<=E^-#YMYZxOe3O zuYCL4K;b!tGkA-zbSS;9@*#`%U;-+L*sX?T)D^_(A+kH7?BwMRUby_QuA>b$TEIaGnretiGO3s>1QL zR``l}Q|CGDxfZWtEkz>BwKrP!sfSB*!=Dl?`+9| z(M9+H5Atokcu$|H2uR^yrQ223;{1C79tQ}IdpVffgjO!w28{VGncz3pmcOSy zM7th4p*CR*K;U)VmI?rWwY&FHzmMRSif9tV9oB@~ zA;Wit;30qbrXHh<1B3tP8Qx@5EFB_f)q^wLihV$3#L2Ta)Ml++LqwB?!l91wc6@_w z!g}!5WoqUy@-#s6npnOBLEiAv8GrrK#BXiRngC&`?g@_ZG4LY*(tG8Y?_y8kdN8<& zA#+;w9#QHmEE2$-B$S`$H%|OosRvK}JrHo_M%@dXY;d5oNLXeXGJm$#?nnfEXv}-b zy0`7>lXV3;(|5x#Y!?}s7DxEK2yKUnOiTeRQGac|DZj)wn}qZ+GtW|qmEUt-c;SVh zp?S(ewy+!tXDLIKp+Ez*cC4)*bE^01sdd7J_DC%n;<&uGh996YXl=Y7)ZytWS@YM) zT?1{KFJal*S^c`2b!$;n$iTle}FhbUl zxzb-h1?pfjT%`dO-U z1zxGXrz-oiHflqSWFS)C^n1x?q$vn?Ko}ca(xP-(-?Ds2<^X0`O`2KInE#_Ptt8Ow zf*58`+6gFd9{W;XNu^d7gYc6If~HK#dCHWO$AFiYkC9Pl&}nok-uB>23yO6b060<*A2;IUDJUDWpASk=D5 z4*=xIFv^@Ydy~Zb=$Lb%eJ#n$M$B%)b~Fg66f-nK4F6P{K=OB;djXl<*vk9WOqXM% z(NUeXfbcoSH~pO}R{71djem!fUEP*omE{N%QZN6FfEHZRub@qq* zT>XU`l|^c4Y<0>a{ptLyvo*}ng19Uyn?6pHZv^qzy55{R&IL%BiGn=XU%%>wDg9Hl z5iNN}y3|+tiGXcogzKCSzrS!f0W^%Rk1q3!UgdmKb&}wRL^NG(M&l-oYl`FeGz1)2 zGqmQ8`LpJ)(R)-oz4ljN`R$fzt#_n*(@Z0D3A3mKy27-kY}H8sG%6r}(}u*arJ68% zwrAJxEh;)QkUH z9f4u8^b=v23LLenTf3iVdqMOE-%M!DP^R+9s6l@*{3Aat|FUMh0AMSxg42Bs zqTf^ZqF7`)0X?hh$yqe|*IuEG&(NB+SLwBP->+xczCdOo5&c)sUsE3KP`{#+q6TZYYW34|JHTL6 z6@Olxq3^$ZRq^{A%c4<=k)@0_H>?N2=^EoT6dCv*cF{xpIvvY zAgupW!=Dykg^3hUrHF!Z83O*%U))k};Q}F?F}^(hoUbuR1BJuM!hvkyRz>x@R(34_ zf_ZLH5_I^)U$;1xCdn$~-S5><&RXEI{MQ@E^)tOcP}pKrwbv}| zxv2>QsGA@IpDP?ctx_EqliZs*5lNN_(iR|nD;ul;03ZNKL_t*4TeawRFoY_}t3_*` zwP;%iq(P8YR--QNy7m{Z6cH^d&PkagofZ3OcSH9L)u?5mw{X0$OHrFe0X-DQ@%S*H zoi^gh?O))adJ$TbnRDSdBQ;l1fI~b5mdJo?grf3VT%ieRxrV$8Rq~7dqu%b#*Aw4t zP##hiwy3gVmT8Qj5`bIO52$_wu%KH1?K~6h|9w|~*C8lyVid*aY`w|W?8F!-r@q2lMP!vW4vCLIZWM%`*2dNfLZsIftz4vOsu0snDu1aQfW4jj0pbx6 z+ov-o*u@1WX7F}J?)~2=VjWEwIS&{&V++?P3*hwqeIv>|PY&y9u9`J2F@QTXQD8Sh z`gC~R@crr=F03fb1A;RlfS2<1`TPCrI{8;%4mahfLo(qumazr`_=^kWBB@15fD0EA zA+o3@(X$z(sVsD$kUZ;|M@4rdTfPb` zFV8i#-t0fm^1;GEEYQph9V^0I%BNDXQcvj+CVL_fUS92GF0CpZ zELM&cmYY4;;~4eY`kw;uW{hyNmn4?@N=E_k)`;>?8{73@f;lx|&8y|8tX?L!?mbIq zg0Q`eWx}$wF~aZ44du^j`)d~?$XGJL<-L=8hxJeul-0!0YB2n*-*eK!=LZ@ZfdP(F zUx<1I3F+vp&Hi}iw3&%FCcRIw<;Q|B_!d|ghrsKE@C;!%&r6r83LphTP8PP$wNBkC z@xdqH;AJXrjlkY(z?|p?C^6lp^3e^?a@V}#QDy`2{T(yX$SFVP^H1O*R{ z17@%wzw^GFRL=Jk1gXtrvUd-zAN*)sFz!YKU0+p9lL9`q*;CagD1eWptknDfgL!~) z31VvTN|rR3YN1%DCxjJq8d}=l9e6hvOT6cpnlbI=^196;f!#;ejkIU8*$K|?5AsUB zA^%I~v+P@UHUn%LhT)xFqF3rKEdY@7L(E(_tA3UXZs_dmY$c=x1pJ|FQ<>n&z zt^zq4ill#w5PXjj%1()rdN+07tSi?z>9k>Jj!{-?AfB?v*21M+E??BT={8Q%yHKi8`?{=0FmGKgOB_O@T@?EaQ2VfWuMYiuU(F7FE=9}hi2wmy#-dn^TAyvSL zld1`y6C?j>UgJC$rt)Ubo0Ds)_8MmXq;+cR_5L$x=0j|uL4$A%nl1&g6M3wvW=O-& zD*)sy2N6>* z{9$O!rM_u#4N?F<(G-8Mu(ZPHCSgev32;Q8QB}QELZF7nT%?7st`D$$x+Z3F1P`gr z!rv!V5sAqEstakY5ytdqU9N?-@VW`j2wVG8A-LP`#g%*2*Le{LZrakAKim6m-E)Sv z%@8~mSvY_Q$D^S?X%m}TU^L}=SXBTD;ych7p#mi6xq%|PGQlr(KP~hZPDhcQ*}}y> zh*IC*on-^%HnB2D1kD;6Q&(FDqtU1`PZ9?4&pqH%=qucUC||ZTv|gqE*3GvUyi9<< zoYXM+`l&e8709lRTQBo4Cw<{wwRheG2pi=a^Cvm*)5fZ-X&|uot{EEsG!049EM8TH zIR%jm_!GDh1>dX=!%NjLOW1N}e(Kz%B5#Jp{_L3sa7K*$8!umX%$T*u0#ca_{l(`a zIHlec=l`rHf!hfX1pS%rl6kfzoBFsv9kj zUhY}e1i+)_D2|>Fg5Wqkf8Cl+f_GG%rLy?HB#k8Nb9bKyGxfa^_8N8vf;Wk2+x40C z9b@fSR!~t0EitTi%Cf=IHf(usVQT`yC)IE7_A}>Mw(Gnd1N<6=vJ^szmMAI z20YeCYD*nuI753E@p8+1_8>waI8q`i!h>sc*T=ubJfog~Kh&u{9x_ zy~V~!IIV(p1hC}sw|=>c9bUf+Y61L*gHgM$^CA@7tUMB5 z>|f8xOi0tY%-?g3IfoqSzc+w;MPPqitwnco1)w$(x=*Qo7chXbCkWJt!QXi_sZv1o z748s$0X={eb<0k7@!N6PqSdS=MA{mz~ zm^3_0MB(d-{+P%-oZBS#o*K2;+I@&%xyp4bH%FF_i~Hld3E&0YK++9&CIRW@`)_YH z*Nq=hK4+0yP2u*7?tiPgnxhyFL5;W;^Y57B#sFzc(E=d##8eJy{p`$J$G~URm>Ocs zmx|aRTT{2hOVQFz_)r4M3P=MmykKg~dbhAi+C}7BfndwJ6(b$nZo925_7yK9f_jY1 z;&M&MRtX-qUhFpa$c5)ZOv0koG>?>Xa2w54FOMElr ziUqcMs5VL{*Qxwv!?U++M-g)>Aw6$ZJ_a}rGH|bF-YS3BUp!SrRJVVdX90?RU0O73 z6ANEmiPY9-pJ^vFLMi*-qcTzyxQxIQTbecm@l+?_MRC+bKr>2>r3Z3-x#JLUG9ak5 z+)xR|7YUX7z@vrX6(8i$`DN!u z!3bThQTj1h4Nyw_3L35^MSQo z`^OP8a*9fVp%#{Wlj+mLi2&vc+ecfb&il99Y#A>D1Rc?Hqi&+9C-F+La-}ck^>e9r zkx)Hc4g{;nrwVT0w)0Y9TxZx7M5L+vo`4AlcOgImzaU%uv`e`#dKmwNv;-$V} z?(6Ftvr1OAX)2!;Tk8<%0K4KCt}_DH&Z&~>yJBJ0yK~~Gd_IW0;e8(pun@zA0yt4b z?n1yL0C+4S->+%2{_}M9b}kIa>_KF%tqvDT_vr-@*o&3rcHvQ0zOQoyG9f-QdvcN_ z?cT?NCMq{dBpq647yF$bbE7e7F|L1?N+C}~ktt&EZ(8gqvdv)j&lr3)wlbf_1nte^ zlfppdnFs+{8%>fJ+d1TkB%}$P?HMCsgmkP8Y&)*SbwQStk?!{_l%{g3FU(reA}9Hr zi9cV9&ZVBc^F=!#y^Y9IHK|fn3JTy6QV#>q5R{^^(Mm0RSoli<8uY-RDycL?31WDU zh$kp0q~K&CF@&En%P+jYy;5XT@QM|?qe?GDq&KlNK!XQX^t?in<3%tM5|vu};$a5` zZ(@!=CZH)6?OO)$Kx1gNSXtvG{cc9Mjx0dXX0-zW8{BmxdCds6#A(8=^9q$mw3t># z<0k(+=zSug(=|a73_O_lzm^@Oera2VWe{o*RoouM8sZ0^L!ua(@eTG?19whBW1eW9 z((KrZwD`Uj5gzrQ)ipDNqgS$(U??8C!Yf3&R(9=-2J^x)92n@=qA0Bg=Ia<27Jk=z zo{Ig&#Ue66LD>!Uh1ruMKJ)9~Vetq7X(p6+{rhX`E;AoQ!gqLU^n3E{Bx8|m& z;aQ&*CIum#Zc!!zL%ZM0HT_nTF+n(^m%p|@}*fNWoe=sX2*lIEto2-$2*hM)ER zdX-lKnMs;c@lBvP_1kR$h7>$_2?XvCk>^^|lzD%z64eLnZb$h{pG%R->f0i=|Ew{= zb_}u^3;bO@_=z_Y=C~pnd8)D;3W6$&=4Ife{;mZ8=D66#zfo^?sjsw%f%gD`YrYA9 zDFE$4ku1y%!|;iW$@Hx&uRBX?hA;^4-T(p>E@zRAz5T%L1!yinfQ=d9n#waSg$(v` zn-HnTwOh#xW$w`6xxld0d!{#>!y0bHdjio1xhc7h;$U%Sv~UQDyyH_=m1T@fbQ%ax z0!xqj^U1%4Tk8f7h&aAzZo}M>|?Fe7uA3kLu+9VWuAu;<^4Bk$ z8(Jze7S+;KGa4=yz;y$|1J@|aUg+&yh-kJ(z(4rV##Dvn0{he_?i1YIKBdYHgjryr zsC$V5Xd?D}A-uo?tqDs>vsoe?r=sC+PVJ>h>4dO5MZuEh>8WH>0qp?xNb*kT5Mp_y zdFtH%x;i4}JAmYI4Q5h*Dh9!i5zLd-gq2ethIkAZcmZPA%}-iz`wU5~5s0*gtlPA1 zbFuaqB|fZ?7c0SY{e^u%U?UM3B13gvU8m=10JIbsUeX#e3CxV=i(nLAVU{>Aj7R2kp-AF7gUo6nkk}Q zSg|rRQZw@BY&olHffqD1l9|8K{FEf@lE+&ce?~!O0Wsb0LrdTO?Cn{ZF#LId;eA8( zL(gP;vuzk)j3U`_^@&ACWwq>vZpn0C>-q1gji?5bd3%|Y|BG3uBPY=q1wC9HqlzgB z?6nN`k=CZI9Kn**cGzYN4QX!?NBndU21i-8ZxYf@*4jUNFS-kf1NmW1rsj-lm4O4H zK&FDoC%Q+vOq?LT92wTtjgDQSz?!Q!1`4~x3|GfVZQ#<$HOQ4Qb0dg-{*gEDypl;4 zBmqWGpY#%tx$xkY(@Q3cw+rKI`82vdZBl+{3?7oTbk4U@gj}UPv5l94g}>*gCC!uz zy&&9&89vLd%eF^#QHum}Ei&He{U%94+I6C6oHoPB9x-(OtGdkf8d{RC&pSQ#^1kH< z#SkwFIaCzV8OqawW*1~RRXu3B0JSN$adfl>k%RTbg^%*n*r5QyB)EcIOJULZ$NOkjuP-qms>OmyP_$l_vm4xl2sn& zg(&isWf@iUC_$)3&SHQmnE-yZ<>bUmo2HU(4-B2kn5*QV4l}y};l|83ArN^@jp6#Y zp8Z6SK}}KHaDbP7EMn&l%jj7uSI`-}RwR#gc)o9j(&+cIlo1;Vl~=31G+|!gWw*5c)ORHsN9x~*`!n+b zOvbZ3r>NaVnF%^tW(pBq@@ zD`Dmu3-XZqbgK747q}D#m!t5f>sO54Col~ zBD(YIfds|x3&;-`_&N<`^C1~1*er;TRyX$!oJ5)E$*v8hr07!d!$)!8k`U{7}A`?kq6Ab|x!IAZv918$X*Fbr26f$j@ zP@bB#asGeZ{lzN*VGL_#Kz)9#0%Od)2N6BtM;W-oUf>P``1qVu*8RzspKP>tc+H7O z<^upbE99s{J$%|=u%LD76vD5@W%%`>QBu`KL-a`QfCKlt_@i# z&%O)9q1Y}oN1H=cZU8}v7*ui=>liSVV|m}cTW6maHZ>8R<%$)PNGjd=psEpr-$Q_9 zngos!J}jX<%33>}D0p9e*c!~F*9`<`yQEK&jx0y4*GgF4!2suH18G+jJCRIguhvm> zDq~G%=OsVR&*{Qc@CjuhI#+h?6$C+3B+=X2{4&GiM6{(r37AP|@-?Q)fy7g}x{!l1 zoR7f&^1)W6k4sIEm3x5XxmMizp`Wi__eGC_nDHcj2#ipisptw2jY=79jA6eXyp1W(`0zZ zk^`yK^+C^6>fRSjp&zlpW--Q3`1Pzc0)TB14F^hts@#Yy#3SPoK7a0Jb5)+GV1@3v zGYpxRDgkjlg~J4828j$w6S7GjRwRIwp(ROJ>&3 zbkE5P@#y%`bIS$g}S~TeI1iP1?ku28F%x|Bay;EF6R}oQ6o}s{~xbEs@OZ&pcyrYi6k4i^jTSXscud zF0W?9U1B=X_QLX^OFK>&$(yPhac>i0!vn-LT*V-MkK_0V49u;*>GGkKsuV*)ZOT4& zpoIE?t=xvjbmr=Fw>jI6D9{|g($cUYz|?!84Ti5o9PJXA;Li$Js`nIBwE&V;5C&=> zqlzb;p(hDb>{Jgb!3D8-41y1ARNgGt*y_TPobm*-Hw&UF{;o@!8{8KWd%i4x=@N2N z`TL1#5d?%@uWHk*792oT9gPsn#F|W9$A&BbolGE?0^qIs8FW2|Xl{zw-aa>#R+n5F zEgc15udN1U3%$z@Ck&?vSZ4>c*6Jv$_f)+kHXfs@Mn|IP-p83I*hI$z$jAOXNE!9J zf#F3Lex>QiAhiNmFDUKG(5f0x8*^lwN|qi{a?2A0fS`5RRBtcq>FKHa(tN2kQ!N62 z=za7q^cCplIJU3Poi?|!mn!Iy&M<8ph3MfL2=+4uyR1m7G5Dqjk2?oCcQs7sN&wgT z(NF1mT8Jc@vvoG3dq4j8W3#?){e{BZkj2_7HCbE#uJe=5ZB4CN3=H>rrE4-qZbZYf zKFT-cZ@l`clRrV^eO)uUzqidP$05rHxu$#t`EDCux{ z_~$6t?O7N#+lMAR(t=%swRpD~GROhn1z;afwr+*Hv@vNiUgnLWZppoF? zHJ@I-|E&E-)6j;CEZe2k^Fej~7>2T#Oz=|kl;&S4YQ#0!MWTaal7iVumnsLCn~w^u zEe(0q)N_Sth`GiGPw3yKOosaBFijG439hO1QyP%))vk#mb21=~2+1AQlHqhV68Tx8&QM=Fd?mZ&g^??@=}FD=b69K_K(M{n zZhLQ;8)Z!RAsJdBZ1)$DY+2%aG(2jIkVE9Hqq9@q|I(Gu0 zR!eqNBI?C3nTe;(HreQl7|n4ILx%zf%Lj_8kKY{xZ_*7p39ykmMSQ)S<7?NyzjU>Z zG-zpPJzrTd2HuN+YDvn!i77A|HWG$4kByEF?^~U!sIQ>_MNMt^OSjoKw%+Uf4Fl^J z>fmMlzFx{(?CCrOjM-9H9`a3|pND41{9Dj|N9TJP!S4y7(+o23N7V_eDwQIlam}e& z-94)+Hv-sQ5YE#3SLp4$5rDQJDWBtmZS?Pwd6BZS2tMHDFYeh{*|iA;cr^iZG0O@7 z+))6Yt~Sl53tRokMZFb08=GGIxOETcBUS5&s5BPPJYJTkaPELKBPDomYwew8UkIv53C^^x?c=VL1* zbAuKzy7>#+yF}z`g;KIk=|Tk5*^!kLK}~i>uk2F4z5+47_RqD>8zz?NfTma-{jLW% z0PO(6|IAOF_x$pK<%h={9m62!RRd6tK?2%J=K`vq)6EptuoR~Mijf_F;W-cZsBc-V zBbxrF3YXg9+V?d%R*>JS8y>$*|C=H4*cW;_e+oz%u61#0t5Bxo`vUk6&z!k%mvJM% zM1am*W9x1DJ$=z`3?RqS7}J7l$pnIzUu(b4Ka^uAcBR~fC_TbyJK)DAPASRVG{R@B2} zV$)^--q0Yi5r{gnl-<`_JB9)Z4JJv%%4jjmYyjFwNPa&yGj{dx$l9Zkf)4~_9y6=| z$9bmR$T7hAahVr+MlIbR57Qa6x<0jVSB8=TYF!(xePmo_jQamqt8`ddDwehBpL`8;8g%z(3I@7KG2!osQ`vy7LJk(>PpmGnD(8yWT%fv;+_wfAb_ zs-PwzoNKMz=f^a;^iiQ30Oa}Vbm$}-0`iRfqMt{uO&g=xS;q_!2G6*2bFh0i4RvFH z8~vH3o>@)5Ow(DDd65031u@6-4VYoFRFU_k_hmN(*_AN(N+fw1t+F>A~EmhGr%vj*_aIgR-z9WbY(dNfUWYW`7``yvKg zTDD{LUTlze7F2G%6Oy^WhsdPo-WiB8-vD2sbBUdQpX4x2w{M=(Tp3xYO@jbVR^>%C zBc7yI2m7G#%5m{f$CsILp$B}u(Y30p z*~D z(=$#(&{#xAglw!J%p{80oBXW+03ZNKL_t(mtfI25*O?{i{_YW}8z5Hzv$$@b; zI|o>m28!2+KuxYbcVTg$*op!_5P{(usJYAMDrkzhA($jULl58eaEJFKDjN@MGl1CS znMHlgTqTqvCGrYUz-N|-+{0l~TCZEo0cD{L%Gffbv^`J5-A!XlNw0T5h z+FAJ9Vr5v_Ttm2pGUCO-;ylfYSpU`f2eacchl;_1w`#cW)LZxk8~8L|pT9Ak8`^*d z>%Fo{K|P~WJb>y{rRY@Cxt6*Je6H!6j^=#suanJ&Uv%o&T-Dimqu$ynnUy(d4s%Mu|09dutca)}fRd#kWKP(92yoj4bQi6^c&r6ExE7K@$;E-HI_f{{PUXFw7h3)Gs@T$_+i1;}HuhE67a>W?py&wx6xSsd)qXXXh^sTAc zOh%)xGpUcl-JIkh>^ffrX0}Xitt4BPdJ7k_@XRvCmnu7;Xs=~h07(A^1Rb>PkP;tc z;-mr0gBS#FF!S*!Vi8>ZW05xsc%G+7C}T~zjcPJlcMR5qCrM*ZzLE1 zFhg!umLhb(9}PoX%2HNoe^;1jfet9A2*X2qjkFLn3{8wOPUo%8ojUiw)rWwxhzyV$ zGd$+3_1X0^3E*%|vOqMCMi32XVs9+`TnIGZGe`d4JAh)K^b2PGur>7?y5Z#NiDfZ< zoPmxW0Dzqk?X&6|b&DtsdNAte6WjwL_#@Q7Slt{DWki@)`&-LT%$=6VU-ajrFW#QGZZur1EC>O; zX2EJ$j5gJkgC>1%4R~2(MgGqxq`Be+Xpseea$aLH7RIH_TKJL1DG1ZQ{GerJsX=&~ z$l9B$BmQ0J1mL=eqc;P6EtbbfXfhCJH29cNi0+#}!SJxq^$5~cjihTNcObZNtlnWl z_4GdFgEx#Z1k9g99sR|wi!UU^5DeYq4_a-$1Y|F=bZ5)77U#3`-U<}{$|3}%hEluw zls#a;!e1CPpDCkR=qc<21d~P@Mjp|mU_mLUtl0=2C4j&F=DgW-!1{3(MMDnm*26KC z>+U6lztDy~-K>8B$e&fG;3cD{oc#M!Ud1<8l42dgZ;x>^i<^?+-C7i~#QPzb5tB9d z#KZA^0P&ju!KRA3`umzBnu@sK0Zooh$2z64?8-j=UW26))dbEbLxZV5q*B1?SQ;A! zN20a=hsNw0ME3qT6JCa*iOCySdj%{s$v1@TKgu%FWeqy(fCE4?B7XL@u{8Z%n$Ec`ioC3-u?`KlB0q_Ne^$)~t8xNCc2jA1uE8;d z*xg@jBY_Vr;p}R^lapM7v@!z*6ujeng8juGrc%a#6#Kh==sotOp3-qZygw7DPxyUp zFc9%L_j*k&l{tOI{^HMsMT32uI>p`lzS2=b!eDtbBG9DS$I>YOc|>-(Sen(`(9&M) zFCO6(Gl+JQOlsFT+xqV}Ams9LOy&?A8Sc=Ko9@2iwG2QljV+aNJKclb2inNiIKT;T zGu`V6OwG0t;f_Ffzn`J(hs%r3@wB|7<{-opZ*2@VsWcTwOh<0> zTyJ4jVF$3hi_R1lz`rTToJuGIZR#i)v*YAcoxPoH25>)NJkJ+CZawuB_CXXKIr54= zD}@zrZ$&}4J4bLo1aOeDDhAC60MCy{`N^OLkA^6IIJe2xj+N7p7OJ7eM7Va`==f`W z7KEyp0AbvOXu>7_cbd5%h(|KY&%N|e<&?3B7XpKhe{yWAGA?Gsu}JHQXpJx4yH>ul zHyLwYNO*y=nl2d|%`L+51J%COE;mjKbXGRRG2f-ip)_b~i2&+E00*kS*ZbC#$Yie* zvF}zV`zJ~Y+)?kBm$4?cA32Z^%GS#3I@dM@xHW5_y~3#W6!swmO|aC2PX{=-XAFYf zQ7t-P?)%zI@?;Fpp<>ZkYwrld@EBm;Jgmy|(AW52pfqcgd8uW&&(}5XwbN8-^$#QB zo|^TbP2K2(QMF1eG=^UlOW)CA)lwM5Ha^7XaHvXQB!b1LFW<20=1KjNHVMF7LjeER z+?fA$bq(Med7|AkSzqTcJ9U#jv5gQlH$BNE^JwZa)|( z>R6)#q%1#In}W+I0XV^uyw+M3+UV3$250DKlxpjh%Z4y;3?U5}Hg^v-4SkjE&8n@a z;Dep~tX&5DKu7+4S^m;l3X-|dd=VO>;Z1+k&*Qy+3S3)jH7iboM%~<8Z88Y4G1oZw z)6V`$H6fVGm3_=)vRBXAc$N!0a^ET4cZFmVj=4rhK58?E0q*2RgDKdpfnrX@1C1Kg zr=DGR?GsR{4J3X^z-(Wg_oBUl2sDpmM$a8v9y`gRJ;P-Xp#0JUn7Zx&U?zcZ7-rl3 z=Tg;+Sec^xgJ%}?{hSJsYL+6i3(IpXb${_LMqZw8n5)VlP#au1#w$SFjQEPT-PLAd zb|r)i8uPG?>G_`wY&T=?XZM)Bf0C@JH)G&`Ta|7327~6#=Ee<3jm94%%J}sSBNynP+{BY6 zXM%7I3*4(?Ff=R&LF#f18zR!3gd(=L5Xf`QRdcO$RvZ!>Smx+_W%ZmKYILn4(yvsf zl%~UIwfRLx(B#~;$xv9csRr0o%c0x@uA4i-IgD_D9=6HI5!%fmHv$_~Z#b^`BA66g z8T3P?m6Z##;WYp}K(YOUgqb4{(J-_FMI5aTXWLUBr5w8gayVp75ha_#imBN%yANbq?ax*-#0cGS7U$}p0^MjFPDuJ1hoxk)`W4!8l>R0~UGp+s<@2>dloFV%5Y zhoImGKu}XX4BiJ30rN{h!FQrKdL#^tqT`sani1;n(@19Iq3me(hssa@!M;%CwesIJ z`D|S$BH&Ij@a=xSu`3n~94{80HW{h zbd!j@dCJ{bI9<|q%}jA-uvI&ijit|nYEA}-bb8AU zU&lcN5PZTC?@bUqDj0uXto@e{f>BVlK3A`{f+@y^S9)g3C3y?XtAUyeD(UqaVg!7q z1-XB2>UB$ka7NmIWi=qqa_q!pUakH?=dL2OBP&KaRD!NEXDNgm%QjxR)zq#2;^u1x z@vXr0a?8{WDd@^{)?j$573Lra?^pj~QnN%i0K$J-8k0m<1?AQRUoHWp(Og4L_f6+L zb74sUdxF^aD{|vBfC_{^7sUT5d+b8O7;XV8f6q;8y*Jr&J9lC+2LfoKWqhv!4o+%J zpg^k_;m3Wri`%2rmSm&jROuBM`9mDT&VXjm^>+Q)ej0%Oo%;4^J^X@*{#h-XOB zh!`Qrx2?#Eki)wrlu;c&L54c5wOi|Wx{$)bC|2uH^87fEwH#ie4Ti0;*VU}AF)@~x zAi|33qBGeeI_KDk)HnWtTAOsA(@6HI>Q!vHA8y%+x zjB+G61|T-KHQk9|Gw>pp8<$s-^;7yucl z&MeV&ueqb?Y!KM1G+BPZ#1Rv_(;ew62w}%uHe3)>(cL&}U2&ur(Uy)5N_!#=J!%}3fk6bH8UK1vZW(^d$FRRX=BrP z4Dfbgd2d=iX2@MvwHcutrMWHWnSTWwBuHo)d;A{d=$O!kiz^c*92A_#%rE6RD5>JZ ztY&=b;Zx`RxFD^udIs^UI4V&s7M5)vF#Ru9Vnjt+-j)SZPK^+=4Whquie^{~(d+Sf zqouv&A^@3QmMWh=VfX~Mw^4-z8JJ?Nh)41bgDG{5Jd#$hutQvwjR?zwx5vQF!dmF& zc{m=BbFA{>+Q$F7+~9lm>QBR!oy}Lj`o$lv$Yy%?xc-PIT*jpmnJfgq1EA-Mr2#A3nl2N>DZZb)Og9R7 zXvR+^UilFF+RLZk5V7pBvI|M8Ypnylsl}`?P~3 zp&c)XL*+H)i!~-8-+^4fz~vq!?qdp%1EBAbd6?Y*OQ@ViVJV*yg#1#%(5O&gYC}ZE zv(Bgub_xspO%45pjYezJMMUt^(DG$*2TS8ESnTmAbfd#;>qI|fP9>5LMJs=K@2PuW zH1m{YipHIJS??K6hT7>IVG%x!w+kS+k$~P-uvB3qh<1}8ZT#^eA*#CC^DN3$ zR6^^OS}bCHvH1D4vD4m+I~EQ^lkXhG*D3$dUkL;g8mb!3*9j{x#T!owaLLCRI64^c z@rK~bVlb4N%E{Vq8F70c`a0xrwSr{SqZmMWN;2DyH0huXWi3pyWLO z{EYesSG6ynXvN$Kgnx}=LE=p&37o+K%azVt{P|njoHS<-V(%#>o(YJO#cqn<*F9rv zmeqyH#C6EhIYP2`)YZ)z{G#oPZ4=-xU=St0-c`u^(mYO$E7A>3zDnn^8!en*M4m1N z8pN5Fjn$2dS9LX?99sE4MX)x@c#3*f3BA{}aFK3HU#|h*Nx$UU*h3L_$wSLu8e^vP zhP_Yd!mJfJASZ=1>QNA1R1!N24gR5M@>A)Ldcpq|7Y6e8@)#{%5#l)COD*1E)DCN7 zG9+3V6k@BJw>a-teaU`?_68I`7jm=jnQMsgohe1#D}7xhduD@-`dlq}beDE!U2d+G z3qjzum|C6gNM8y9Q#4~UzW!P)Sk=*dxdqrkd|5axPj_3@wXDwCUvje?Mx(G$%f zHllgU1hcd|H7PGmbq7QNmH9Rm&*zTl3X(y@IuUYn8K8DQ4Kc8bH;5>$Rx>;MnQ^rP zY^Yku!VWI>1+f6gYwBv6MHa3=Fseo!SHVrZXZL)+`- z#z5lJK!Otum_G`J2MY67#T%8C?adc3!ft5sy4d@zGCMT*3s1Z&Vv@A_Nio2y1?2U( zQ{%>(liqOvNZZHOkjOuXl`NPHvcVFCA{L-4!hcoTq&viRWL0w5UcA4^6MD}C(2cXa ztQ)<2{LYo?F>I)fh^}tzsT|GVSkCaZ1qhIXC*qNSu+fltOp9VMG(|v$0HIT}kfZ0x z-Xa3(@pJp2sB_AvAmI>$JmkD$YVROA4G^-7{BE(l^)b2<{TN?etqihyTX&(5Dd zdU}DY;kxHzQ}+_U5A{WRt~{7)wy?ZUM88Co3PyOQVNAn^E{ex^--->lH-xJ_ucRrP z%g$xuceNue@~mm@s-KUHJ4!+pcJ*|1R+Us;ubJznr~8H}Q}!;z=;=IX!(g6eX)y@Z zC7JTY+4BBIW;~WHcZ`J5kEn9M70w~^pk_qIHWAH`6_oQuWLfbXq0(R=bF6x#N%y9; z4b3f`>GMQzR-!6#w)#Hf`xHglHJ{FiI}-3;onODbrl~NMAvpAVnO+y1P-t{c}25A zRmzEIPBJNb@s!~+zH3_FbQ%)w>v`TS#o)T;_T>jMQ=Re6CJCifi^_41EDLt4HC+o{ z&K6*CcjG}fqPJ9^5vSJaXx4)CI%4NncA2&LYjBu|od-!;z^(ihjgiwtK=j!kD2$T@o{eekd3f3GS^zgvaOIct_2)3gtrvu zWb1q7V+@sAJftd2jUfWyIi4h5vtDpS81lzo8Z+~Xn{$lOrb8DR(;knVblaD^5hZp}wG4+_vQZ;273_+DsetWY z5t*vmTNorKz0Ap}aC}+%#up%FoYdBgh_uRhcuisG;9;X&Iyn8+krfIk@Ls z?Cmctdw5st$sAO&#_`KS-td)jJ`-$02{3{En7aa^Iz56~US z(BD)lw6ZIGxL7#T0ADn@X1WXFb|0?2`Ee2HZm4OvBJRK}?^?dI$L4Ad^v)Wr9rF@#7Ui;xz;W008@Yny%KN9Ix zL)yVvAPeaDj$`H#;;ImwjG-%*UpZ(B(C*qrNqDj(8^V5Kaa+AK#ZfW&zv&K@1U1x5 zyG}g=sN_wCt^8x^QSDFl&m)39HP%<8DwgyP^iEYGVP;)saq0NdpU0a&=cNUsK%Z|l z+&RuALXz)PyI#B@()VAzVfC(I7^=kWcTz3yV<&4y;4lFBT20mJ^d^;IgSf#mlJQnJ$*hx_z*#K3raV*rK)jh(qdcj0AE*=!4pd~j z-|q1$=MhPtf+LJ^UJkcl>Y_{nH!;J5u?NnPJ_R0Rwx2ZC&Ui@2PB;|Y$s%7)%lpUN z?>gTy&IjNhN{7mSAHRQof;<+j{2Y*;0_3CAHMa!O0)Zz_!J^~hlTePh~h~i@CHv~;R;FMVlRLhR`5_3 zekLxqI9WO1g)XzUCaU(k=Qfg&PGH1g#Xi4?;AuSv0wY{(*^cpqP8P<+K(IX#j0d7O z*;)m9=>fdpVRz4`%V9GY3fs}f^8HiC&HPFyMieH_6Zj}zw=XSqgE zQ)V}2zDt!H`DiJtYA6n`#9ghg+S6|2&$ zuL)#3%Pp^p^PzE2y+3X{?#?N=zPQf{%=# zc4+=(Lu*U|4&l(@$zG2)Q+bl}T$NJ=0qubX|EKf0c4@)F#T@eG)5k|q28B2RlCKpc z1Hyq8(vW2`CLYyh001BWNklq)Dh}TkgXg5ZEa0)qDCnD{L za)cnN66Ir^Gb1`Nor(au^IY!^@Jhv&@Br;x5z6p5*LijOitR$A+d=TJ#l`3dUPki? zU;~%JJrz9sR#jCmb|Pqv}FVhE-?X=WY<60PMce=WdsSmf5&lj?v$ zET@8{TVrXzlkOS08Gtmdqu>E_l4-Ejq)LmBKhjQ=f`~+59HJQ(1i@16+UQ|qWk<{Z z3B&S+x`zAQ+R~O@q(H#>nug2c!cGBj!ZOwacw5QS&&so=vAuo)5KUm@LUBS1?do3y z3s)6+wd%>}+$C&`QLtC5LX6C4m>Y@~{~+5?GfidS(%jypMAhN-)r}ej63G(@E&@W4 zoIIj?n^JMV>adZnQVuf`X>8c8eOM z0I0F@1|lA=o-efFi`uc)Vun)?8Ka%2zUG?de>QeB>Or)S@u;@M89ZM$N z{>aMNKm?e;`-@4b`Mt<(ikFyHGwm7&jr6p5r`e6(Ve%drK_IpJPRWYt(F$I!o76 z%krFdr3(9E!n2E{na7YJ1I%@lk4s1;aSsLgN z5XzMxKfYaF;SnjjP`l8z1|?k}N2?kF<#G^wNVyB@p$}Q6A>ez3y_zx|2=~*jq6ofO z=oChot%o6Dui6Cl-pBW#xua>m2uvpt609ZpzJz`|9Jj^rN$F(;dMu_KX z%vuT-Rps84is>TGgS)y*WDAf zPY|3N*zks#V`oMdrM2lD$cJA!g#sXwq19}8PY`&ENPZcHvN%4pYHA80?U|MAr7=*j zpv*%t&h}E<@LV4Hc$TpICsvcXHQz6koC_sq4H_$SA1b8#n)29rrTDW2SB^}=r7VhTlbK+woG8Oze9n)#xlUPLQfD6O!%o&iZ||>2`FTb zmJsjOML7@lI2Hj0G7>yiOkm7|CLSS{ruw>R_c|CwSwRuH< zD0$Dx?+nu8lVg8GB(u3uE0WXlw8iLp!TAaqb?GGcxR&p zfx2l=MP7n(1^d9D%`8lsWQ9(^g1A;?*d6)s-S}bu;=3=lO_nBpF9<46e%4j14c4h& zL^nEl>Ed`#q=h})J@!DwzaJgE@KhkW)Wzkv!&PEm1|BddYZTe95(*0F3IOTPO73^@ z{nzfPN+y}0n^=ZvSJPG7Q4FG~MT1KUzD7sO#QVX(%MGI&oY_A=x!w=L9gTIckkDJF$sL{xLjbD zcnPmjuSEd%RTsGfF8@y{nlD8iZ~m2KnIBiu@`U1fXzhQQU{7nsVZC(`0rdB=)+PYp zMe=AgSpGGFysCs#eP8Fl0#tCu`j-E+EIjVGMD@ zJ&5|DAG!`b*w+QTQUKU33CU-(l)W67B_p|oapZkoz8;es z%q`OF!20U?-|9xQrE|rhB6IJ6AG^{#9B zu&KLo->Hh{?*+gHf^bQE@X^nj&6e`H)4fTzX zCsjoLI=1$=B5?KpLuig9qUVCx_Zw?xIQ5A7-7?~9EYmW^CCQyKioO zZ*RT;PqA#njAl!wfZ=~!#- zXu1IfE2maB%#RNPF7_!5&tZbm6xwH8=g?JgX+Hr;E6G{CY$~NKWQn@WH5zG*SsVnx zIF&VNk+H<1QDK0G2WXdQ+BpH;CL*d_(2QVg=}4b10#g{}k$97*Fa}1vOoH&nhVc=0 zUJubBh9`-Y?+lrszNY?}0^t^+nM9_r#nry?TSLs9gbag3_+bnhi*rX6Zlcs&&6v~3 zmi*dvJAzU8o9i~l(M#&b6_h;*XakB}D}Xg@VO1P0q1QxxVu-jom&`pJ+dSe!JE6;= z%Y`}lQc3G7Ulu`E!FKP{kvq>p@;s5Ux{2**iewi-wwM z?hqG^o3F=YDLY^Ni)`V}R9&hw*ETel4K{JeT0q;|81sB6;n5Px$J!0kai#v?_%&8` ztUNfB@MILcuLv}^iy@=)>Ene%!rJsm@D!3F8#`BRxM}umNhrSg*d zz|ivzV;Wq>VEonG(L7&7CMEll7se8Fr-U-OdAXc@*Z2KB5M`Lvjb!b#cbw`f3`=$Y zVFAmPM5^-m;zB~+Q+b#LyF@+S8gT+3$NGNa@;H)3-(L@y>5jA>M$~0p6AJ%He98Ht zQCYk}#77IZj*hglN3xAIjS7g2e8efbN)Kom$=zC5+k4U@VF*r98Y_Z)s&r&`-$gDX zG1pJ6+hS3P*4OkQh;k5;dEYTGqP@Yfi10@2FDTu8_2$(x z!c6WKL3~u72ZfRu56>jeduGb0DFtv{MC>+)Gw^a?*ghkfCBtfmStp+tP$1T3m1Vnb zHu}0}Fd^_`1)pbU`Ve6mMnHxwZ;0oqe6!;YLV4Eh;q(v(P6@J1)dl+5b!|yeVxE#` zK|*DPI2vyp`GuSI0I1 zcda^`=OH_uLPusO_qw0-=Xu8acgW#PE&jO!b4SzBRxluDaP83>f~tC3>pmC=odU z2@842ZtQ6S0MT#+8A?~TES}OfWs*m9nSeBHwMJ}g*&_(}R%_+jcGi5^7fU=Au{6Tmyi|=K)4%wj1UdNA7;fH7vYoTCpr;ebd2Y=t9qvMUzM8 zPv7dn(QG|}PZXu@D4XCtVVR$qRu_@H^lN2n)6qFrHAxiNJ6R@|td56y*&D`Vu9H&vJvA zlO@1^sdn9w`GAfxV!jzzH?TNvZ7aR9Bv zbFq0ml6x3k*j)9;c&3z@_t&<5F>TEK?OiRWv*p=IKY32pX0>X3EfA!jgtp3KRKN-& zd&oG+81tfplGTnF+UydcWQ}Gjb`Ewfi88O!SAxI}maO9I2aK4x#xt9&wKWjO^0n-Q0 zvQ?vht9l9*lCkXDWfMxulV>T6gT%WlmUF4UM7yU6qSYbujtUcLYHK=N7jQ-P z#PcpP2&;-L~SnfSN#6MDSr;1o@`@o2m>9sefoFl_2hwuBx<3>BwI&b1x$PB892N8OUhv<8~J1 z`ri?)vn=9mfOt!cjo06Go;*bL z!RSHs?fBlgs3(Md0(U@e-U?i9r7MfBShZMhS^Oi zN*u)qZ|8w9dY$(}39fNoaE);Q1A;PM{d~nlV5ReU21kV=y%f>&a%kW@Hgap@nCNrH z_X!1^j7d;tn4I~@`u0{b^l&kO(T(S*8mirQH{t8|w74`ZG3*L-5HNg@f#(oltr&PR z2E#$_1*W^4M`afE*Qjm+4@GC^x&V>FS3IX97H57_9WG0ZI#aYUd zl4E`G|CF=2Ko4Pz@YHA?-M)!7-K=F0rDLnyeN|WUZ^A%k8)F`i{qbgk* zu}PJVx=oeRZ`qB>LboxBz`=QBc{TXBvkje8wp&mL7`h9c?DiGgc}VAL)@T^=eFf=N zXL_c_VgZ^pESw6G!5jXNKTl{(*RTzb2?D#+Px=R2YhA(F0Bl!GnO(kq z`3asehoR7)V%3m4^hE|>CnHk1elr>=@d@Gsp&tilTWa!zLh}+!WbTtZ&t*>o7KY!oN%J%f7 zDy#K@Z;hJE7#ryOBgi&!{%W3R zI!r(^UDaKSb$*D}cI~`NX?>NGfV!fr>nc&|w@x>KxX@)?x2Mk(kv$Obu2>zQ65P;) z^Au3X7FTQqywTV)%Lf{iw{@O!u{&TFFuACn8rdBT>9yS(|>pn4^S>r4@YMB^9|X8A-(@GdISGfE-X%uolJ zb4rFbITekm)OfYHfRy(~&okurGx9*OrOJVf#N}jaSGYwjUV?HXSXdN;AT=c-Wce8b zUsFtWcVvGu6T%=I9Bzj%?en{T&4jBZlrf}T&9T#8j_h8d(LHbJd>-2H#dseVYHPaqy>1fd`(k!x!OQ2o6L(Pm%_uP~0s!Rk0z`6Y4C{E`r5a|~p+m&zpXh$)b z@aM9?W<##YcDX}Iw;tk~ISYrAp=US@4-d)!kJXxB!SJ*z; zSU1Cw!1Z@Qcpm}jg^(W5ze~H%srHom@CV}}lpaQBY_o4n(>-(3oEdYMmL)55^+k}6 z)f>{gh9TY{9NgDfH`CFe^0LVz38hIlr8+pEQ*?9xU48YmI|~~Z2Of~Ch2XAuvW>t6 zqi++zq4AzCBIf;bmIoal~E)S4i%L z;s}zK_7w*)&_o0*L4)sO7Jpz9&VvNK0XYB$J~SbT#VQ?Ce+2^{=!1WqcC=N3z`~(t zXuG%@9N+6Ghc0p9@r{o(U=MLilo>56s{QG&C z+V24Q9ikD=fIIHzf6LeJUig6p)k1(k_;9 z2O`qk%6GQjP&eI$gbM8`bUT&$3jp`{0e{%Kw}<_Aw+rE<4NlGGGHFl z>!0^oUV|V>E`gg0u^etgEAz;BA6m8{3Cs>tywuOq0m8B!Blc)0a$=)wAB1p&@%*Q! zjGp3PPwu(tSn(SUv6BpqQ6GeMY_|B~pdW}nM~gpL2=67tcc)Z6`+LNN90iek^AVsX z2*R6VxvzGvy-;(#Xg!Bq5!3y&U?bw~X3=_x_;0-@&8h01;w4Z=ow#e1h6>(JovJqD!({&q%TE=X`UZmH+l5T_39-Jg6w@i&e(LY0K&6@ z;O}vTRbMlIK>h^?Xr`v?Rz;gHIg}aJfPpuO=|l|h1y1pP#P)NA*tp+SG9a4o+tckI zR8JXwhWhUG;E~UaJ<5W;U5i+G5X>;`mK4)qqxWC&6Du?g!TwLcOiTHx7ji-7UfuW< zD=buHz=EAb)T#%4Q|Z6JJ>ktn_~w-SwTSO&REc-_hrOG-H{ZT@-pke0-gE&8%p}iK zIKv(+JO|l6RP5)==R_VC+VH7j&$|*ZISfxmG>f!&m+v&{#&;~SEGwo{t0x=<8wFf! z!&@qYHAE+HC>Q;R$ofk%u$wTyqf*W|r;Zsq5oCe@>Ot1Ui=;I|%1Wv6uulCsBs8d< zLO^(fGrY!2(p<_H9HU%6s4~X8#zC!I{0siv8hNvEOyjHidJ)P$ct8aIQP}8c*L@7m zBbJOx%ZCPrmTGZB*Aj!q2e1QzG~6HKzm)6LZoc!pui1*Wn9m&rf=$FSIbFSS$xg77 zm+QzrA!@5ArXhExHG-r=3GbrWql8Q>U6vpjk5Ok8=noWn;rTv4QOHnsaUHS`BCK*m zTE;5Kaa|qWLq_7*)^%Rma6TSxoUpL0iYsvO-Fq8!we%d&8=KF3w z)eLOl-5RPIG)pwlZY+yE4+w84h6y^W55iHv(h_HPI=M6AuhE*{)sL-rzFYOkqTrRp z@_c=svhUOxBY7SeQwIX?7V>FTj%J{N1WJwZU(t?XKF;YJ68inr+9)0(pGUbfh}CS> zH{3O9U4968{tRI|RBR{7|GXX!XMlx%rO10?76GA3`EH1x`NEz@;2ajYEVds+^Jde9 zsPQ-KibmUkaGOHP@;ThQ3CkB?U{~Mx&*j40BoAq)snrelIx@L}!bHyZ(Y!agx?a^y zD$P8HJbAu;%od-Rd!M%EIfB~lk}}<}ca7=#xVmG^Tp--mTK-q;71P5Q0`3!bglEr~ z5oNDCpCij265=DVEIs<{8p$J?tG?bz?UiJV$p?xfIO1!ts-tPT6*^78exK|sc_>?w zouYs?BEC}Gv*tR&0KY;u7ptGyWqkwfC<32p0YquxL^Mvpcbw%V zaj`_lEeXu{apyhVmc9Z6b|jy!*FuDAynr0a0uL3a!TIsTh!q~;cX9XD{rxVh(i{zj zK2iE@6zPP&N2JB^AufV*!fXI)L*y|2{d{xf1Z(X*anixE)@2itCOH>#xu?PR_hW)p zx!<~zp^N| z#rsP4?5}S+*bvOnszO4tivvs@Pr%=~q8?+79{OAaCBbwXz_XN~-x$w)6z}6)Q8v~8 z7zll+ury}}AxNOWgcwY!U3?;q*un}wFO!buvGmD$08~kSb||}4)f~=d5@hBQ;E)x_ zZ583t-unO|7vjj=-`=L{3lDfiQ-JK>z?%Im%D;(W3aAvgw!zIk`KH&6h~~wZaGd}B z*$R{c1C>_nlZi0XYfagefZ*kdlnV;aYuK+|EfJr_dlqLW0(*hZ2MnV59w=7ht51>@y_FRDa4KBP1tua$Ww&?S(OTTFc+AAD9ctn ztX{d5oz3^Mg`lCfVSYR*tnOGnBjn&ZWANE2RYfrv?M+vU;5du+3jH7|>r9mR_cF@T zSgz_8zsSF)V2uALQ8#~@K1;o1BKTr)mZN)MJDSfzfV~FS4xK$~)~rF7I|ww95HgIg zIrd#d(j-q0IXwW>RLFGfTDhaOcA)`$)snOb%YG`ABcb(<(%8CuA12ySp)f1k(!U|1 z^;2pZ-f|B%`C2&&Lu-E@Z^-kL=&i0YU(=w6WcStF*?cRq;MD2{4Gw3;M~4;;3oL)^ zA?>CzS*;$tzv}&p5yMBQq_0Ht1D&^v@k~GvB6_?y_*uOk2Jlq2aHCdjwZdZ=6gB?4 zxc#30Ji8;xE~4r`fM%(cPc#fzJ1v~xRt#`nDB&L!b-to~#SsR~vDzWlE{|>m-2oP) zPIDED7rJQBu2_UX>cyGg+}^yaF?f(=De=I2f(>WHie{Gnoh|SCKLYj-~>aSGV*EkUDDhQ&x&D=fPsq4fxs z$I`j{qI?Yi)yf9Btf;Ga3Njv=C`+6_sbW%>^O^u2tJ2D;vSN`5_Mi z%oYib{2+oK0m841F;5js)$lbgC)dd>0Od>r4VquvV6O9@Y!POh(9Y zikC>gl=+^ylZ(3X?!Gw)nEFc~r-d6`#6DT~$*6L_e6Ge(83I39!IRj^+tbHIa>9H__^$wLpUuHDUJ|vs_a-w;M-RjLs%Z{KubUE&Fqm4?_^MK_ z<4)G{&gJ`fOlKjR$26PO`ERUjkHn#f%ZhXHL;3r!ppKszGRv$D8a+<@ImF;jH1Jt{ zRpXX`YQ4u6n1tRHBXfyqsgS(_SiY;z#~#J6nTH@Dw?0LV(Fy?m=Y zL_K&S%tpb#XvN%7nb8DEfAE!TE;&~zxtK`QsmwEES>YKvI-jAcncVt3)qsWD2;s|E ziK3gdfs%pSP_Vn9cFTcEH~s>2Ff!gz$dS$GhFWWz5pc8~9I1_J^*KOcg`upBC28s> z1?1xg`!g5M+J4p=M>4i@9T@ySjW;XYCue=JN~-Or(0f!ni210W3x(yWxU1wmvOvm9 zcso`xMdPIT*NiSpu}3>d`n^?MO|#hI-m1f5iyvvBTK7SL3+Ci#+lkFSd2444Vk{(M4NGo)DH(Rn1Ue-EeW-eT(K27Xx!W3*T8BgAx@| z#AlWv1X3{8;3ydN#0J?gfdCE@wC^I&K{?MZNl2nv>=v(EY{4MJ=Bd?c>UgSP|r`91eC!m7sVMi;>mf2j}NOVMQju#t0ckMHyF5bz?U%z}Y? z<1rm|$#^g0dGGyLO%hSh;R-Tx)zmTSMRuK?odD@8Er3MvUfck}8YNip*{y6}d4ffI zOwvnUq@K&7HA|(Tvysdq-Lo}yHSLcfo?^hLEv%3};NWElwS=;9E8tB>dIk!fCL&+8 z{HNvN$@@-DdEh+~`A#EfVhl+W;nnJgj@Mi*z7oO3!uVvd{2e`+XHouXz)W-CoP6X+ zv!)jiN<&q{H7e;2C|H03n-cxWTVknqEWy_7U{zlMz^gh(D@@Ubva^Dflx2{vO|Pr( zs8`sHa!uZf*9=$WMmx`vd}+Yc6vO+{?dcm0VyV}gxP~iutfk-rV9I84nfqe7Yrd#E z9gsICdQ*$HP|(vS5YliZnTOeMX`w*S+B6jj0K7m$zZV!Z&rPkK`of1FepoVW;;=`7 z;Db1>BoD&80yum$en$1WYNyZxZ?^8iwE&brnxyJQBuKJgiH^sSB_nt6gbvB)wI61z z{IC^FvaR_(Fwovm)o_azYLIY@s`^43exRLbw>B~CiD;4<2^52&+_*!iMd4A#ODxen z*R$zo6Ae`jC#vUD*p`lhF;CRg)VM;9#*qQTKtpXqA&yM>DPn~TVx95egCK;R44Niu zZ6y$lh}UeVsuQ@C5SL9Y%IDPx7Y=#0zMmof=jPu2?<&j6E&#%bD8Ws|7Nc}q`fl~; zHsmc4uF#0d(}AD@0G=y~*E=6Ub}J#cJoXLiHF)KV|NHm2k&~`;0Hc>ad*IF;x1Bcp zxW@CG9MNgAF>xOQXc+ka>G!_wXxcttyi^FgBq#Ujp{coJ#aY0(S1uJ^7<*V;$3#dG z)hdH@@-R19MG+>y;2}7pabjb8MB)wa6M#=u)*1g?-WPQf2(4|XX}BetXdTM_U;z44 z@n$ZX+%)n7PcbR);wi(YeCK>Q0DD_&+X+PC95MGdfj`$GWYvGDa*su?o_YRn_PX+w z1o?k3##>cp%0B83`w!9%k!NUNOlkGo8#5ax<#M^1BT7fS);-j{i%OuX%BtS&5Bn>6 z1~wn3UX_YO#S6nrhO1;#bAe<{_ZpQw)^0Ow8(qlU_ty5TJ=L-uS5;nhCkqet3~j9G z9qKuz#7}(!nAmxkKkWI|-miOuAjBaV`gK`ycyd_D=&y#A4}1UH_SNTvHkWGe{<>KJ zKR9CMJXd9Sz4_0xhnH4g(ANFK_x+i!$MzUcUoz(yyb|U z&*~f)8aTLXV6C@qyBn^_ZowmFeV zT(Y63A;t!4_`0(2c zwyh`~{pSt+trfk48~-@vu!HVy?3g;YKif|&>pnPQefPIuIe6>nT`p=tk~!aXrB{6Z z-CLzdI5Xjwt~`9^83Gvox3j0?=jnCt_YG!xXO15=nP*Jc_bmk=Xc1!JD`)%?5ob-U z+pV&G+)pa|gZ_*E`Nb0>#c*9+#rDTfte!q|bZYFGGq#zL{_7WioI9$b?)dM!(r^5) zebp-qk9x$xOy2wYU&oY}3_EBr+x^dbKY#4y>8X+Pm5?}Rmoxs7!qjgKp+S(Btl+6a z@G`1-I?xLfemJq`DJgECQ5bO zyS-BP;HJIVjd$@Yl9liH#vjabc4Y5R@BS#z=Xw76;i=)DZyww{P0)@QRx;x4P5qmG z>Kp%i5gQJMnIn>z{QKyN(JFb<*L44E8r;;-pY1=&7+gNKa=c1F?E0Sddj*`ElcJI* zYlhWmmz=-f`0X`-(7o-*?X>&ies{xQTg~Rd-b)b84|SvJ?k|N>t(eOCP3tH32YqK4 z-&?W6$Q^WHmv7p?nHYNE>3WSMBM-CBv&BjpjSC$&@qKcE)Sjt!(&zT3!!%z`4^&Pi z!RBf~_^bQx$nU)ufo#wW;$q5hTo^N+|E@^5yUHgabfNLx#q`d6!1QuJ54AT8-V{#&D#g^ zn@okE-3o}hsJJ4)zgPb4gkj|)rlk0_0}xVtmp0#iRr$eh*;(&`>kI z(2aKsJ$lC?VoQBhy#rpUmzni&A+oLdCksG|NOo5b0s$hfah+Br#|rhjTw0YB=X2cB z?aP0KKu1w%uUEE#5}F0=*$mKJyvC&4(<&3HY^-iPH@pXrXapYNJkkjw?sSj>CW_3ATX|>s^NkH9XpC0 z8=*{4?XDtlEfaoj0Cp&TP1hAdI|If1Bi_)pwtiN+2~#SuZAZe%3d!IwH&Y1fRpAH0 zz|yJXcHgLQ7O;FW0R_V0YYtMQmK%?BLsSCAepF|Zk>d!x|BDZH`FTt4<&kV1o%-)_ zUTVou`JV<#22KQmRXUzj<{5_Jo7yGK2H~?i<+DWdg^{HQ*j!&ze?$EDH@7t{0Hl$X z)s91+-k;D4-10aLKa#5 zW1yV#Gb^c+U>#Z^omVt2$cpTS0;`o|te^8wpFDVez?mz?RE)di(1zpGelV#wyLs3C z?9fk>nEYf^#i);T4bq?8G_Yx>9OvpaI%h*)euYb)#G0+9RJq1@2$ zp3LT70#dRfRq+B51w8{jM+i!)+%JE4S_F!&syIhc&qHAMWqU6&Ozf4~fdNaM# z27`e)Wy$gvDiRg3Z3laXHt&+P+1*PLWq+?oRD3^}8{D=(*MCUDB$f>?8LsP_`|RCA z-8(afwYrh1OjZ8JH@+hRXT$86-fZuogw!*lbi_XiD6?T;!*2+&XJqLp$7={Us2s@l z?L}z1tnjd5$zdN7Q7*^1>fWL5!+cCM4=Ww6K6uqldwsdSpLpc8DvVGM8Rf}xr!MOr z-277pJ8ER<=;s-jdNMr+s|uyEr1I|`c`hqizxr~0I|(b=QYsT(;)fEyWZh6WG(HHk zlK_d5CfS_yk{x}yz8Tiqu?f%rzSJ*sgy)dM(!t!|ECaaNqKqu{OP9s3-J9**n>nnm zEE%o^BkarcDL^q%=9PWwd;UiK{fx~_2!ddusvOG`V=oEhxit1Z0{K*}0wr_EQpp=FsYLQEcgtBndL zfd)Jrv=E8-k66C$ST+JPh^Vw!?yJ@hGEggw1`RHbiz`j-P1h1Yb#WY7x+{G+S=r8N zv5omFFy1x@+zG;cs=^$q%{`%%+x+~zNKl5JfB5;|E?l@UN}13(lI^jo)*g9lh&d$p;$4h2W77 zr|dZ&MwQpV+D-q1XFq!gtXN2xB%HLzCGPv{yT60yKYtW*VHQ$e37q(oOJGFl80a3{ z08f8%9}EQpP?oHK6L-G^%2UI@vV|w!zZH5jn_*bVC^&h~%iQbrXM5ne&mMuz1D!Ck zyas-=`$g6_2^h-t%k!T}QX78~R#dba@^Btnv78 zOnGg%X|U70vEtAEhW<7jU0!2<)^Oaw=!&|qXJ}K|Ys;TZboH%+Q5ALJVbe~^4lfKWYNRhEpBU+s4OhSFrY*)-4@ zzVP{@qxv#Eep#}@9x-#?rm@2(Zqx<#zJFb_LoUpCzL$U_cAB?#;;1P-9lh%kPkwaw zBrBHGe0ThA=YF-#$VqnX=5NP6{qgTB5s8^Coxabt%STt#dYcBisvdslw^a!*73ymx zykwXQv)<&Inf<$NcgWu|LEk-q<{W0wO?08K;vTroEfXYT7YI0ClE$@I-GBh_g=pYY z%`S73o&&73DAs#hjr55raJor0fJXq(G?u|EuoIALCplgN*D>MjD*GAMOO8-qUi=^B& zAoo23#{Ihig;^Q&fK))N-#7ZdUL+_+AB@p|&;R3o-niFtzpGB~AN}`_|NrPc^}XHH zwB>Vc`LF16Mr-;1@1KiaQUBKbYwLfxm&(6l@oPu#p~WOX!cd>v_&rfDU=YgxmXic& z_8ou(C@`eHKW0e+Lg?`$3r59O^5HMav-y3l0Q*l_iNX3c_s0N*J;N`-KyTSQ2uOW46lQ zOfWDr2O%?)XqYcBp@zbX&N|GR83Cfds~12>6&X4{WE>4zs0JB*n=f3 zuPepY7=BR?73uaBX8_Rt!BB8s49$tNbOmJth#3jMmCSY}674jU$u60-?JNh($$RMc zM#K+)6qR(cK$rnElN8wFlV6P_#5F2-Y4~ zoF(ek=Z@wZG;6K|`Ifj6-qhNps-Vdh?d35+)O95Z&JD%BIHP8U>!209f=FG$c7_7K zy#DgGpfYoz2zY?BHa_GztA^m62y(B=Uh|dt+Yn^yg1Ccu@OdDVAhb_vVJ{-u;!S}3 zSq$UI1E^e=p&~cz_VMG#JCb#C`|<-oynT?QYtUwvC|E6yY7!1N7?W^u3=aI~SE}?_ zBf4BcK0oIxoUa2A{-~SDeD33!h%PQc)d-)(&z37DFrPw5ISB3F#Nc=Ua|RM#Qml-M z@{%+61Hzj6sx5mi7iom_6JyQikl@+Yif(LP@Wt;8F*nx(d^Z5zT{9>@%KPr2OuA&Y~FloD>O1w%I$OSogYJ`trs?8vFrjf>Om>3t300h(VJcd$0~ zZ@T=$Z(qM|?Z&SY1G!#*FgIZ0{nhn{MWGEjn}a*vxDb+lv|qaJ=MIVvgSkHV{hL=p z!b?D41GwhUNHo%y>4pd2zTT}VEDTp35~;m)-}3M~s$kZ1W`g+#M@`g_b8!E^uhoMQ z_{N8e4~ih|n+7`IsgLi0Y?uMv3tn)5ORIv_?aSd`E1!3J!xFy?&Yiu;egDg~AHc`| zdlLqOeke^;z}fpn4XG9DK8BC}_fHti^+Rd09M0M|asvIZ@hkX8^IzP)E9IBLS^GL( zll#p7AA8>cCPkI)f6l$tJqZQ`CXrFXOivG4T@#3kIlJJlt_qm5sE7$LuNX0}k-?nS zoFnFl!c2D$h$MlT?in%@I@CSq|D9W1!GnXv^2t#U)`0Rk+}VQGA0d=ets*oWm=&i z*a=S9b(-D3Ve=1meJE>2*+cYD<(U5clH*i= za-;oTnGpT`zi*7d6JOq8_ctW>*IPoZYi_Xj(O;j-+F8~XMV-oEbpJiyP7+*)fEER( zlzPdJEvz#EKB~{N{1^;Do>6yM#d|KQ9!Vo z6$+B#Wy>Rlfanc0Gpf&hG=PWXASt>DMB;5fKou`fu`L6D?v63fi_nz4Ch>tKwJU2r z!+$5ez*h|cWtze8Rz@8V%PwQg60P;Y+GtC|lh2DSkV4hhB+aFMHCY5YQz$;E*g`-n z#I{iqz6_#&fe&@$SBtu~gKAtH8&4ZoJkAy}V~N;tz|;>=McS=t>KE+~N{a)DxEI(l z?%R#ub`7)z?p6Wy-m{<2nPpr!5ubi~f?k}rU25hb_la+<@C$C2i85R=)V_HFebY^N z0TJ}WO!{WY7=OFw+u=EZz)Zz>r@&S1ljGrm#nW#{M-{i4M9nS=)HG#ij&DLASzB|l za#Zg`anpG|`8#_d(|~EPLB3psO9byNWOO9{##i0-zpHLd-C%OuTNv;@Au)@XN?Ii+ z6T|mFP}Wi4N4Q#~w7&>$No}=*T3)cg z4mc7ZdILfNHnuiFm%MIJnA_dHSkmH~S3^@v19UGafo}Ol_63p`ZuO?`p>b)D8+g zyY`3v-3QwsRoa&;-h=whtDv;7Hw-EnYQJCF$KSsW@y$O#NnvlO>b0{CcBQ?)zd=xy;BK{ z8GJAl=5A;Ae|gcvwtpn}-F1ik?Em}QH?^&^+jrT1ybYSA$#FKcHrn&vZQ%Yk7?$=% z`J@zwTXtl-3Hq2a%>6Oi#qqR6M>wsG#Q*_@{s!~ z!P3%1tqu4u*zcBCm#tsAl873cO4nc4@p%>qGPJ^FN`adSX8tPZ0S`;>&QOR;TS}5Q z`#ww-YEIY-l=;>tr3-|?Fide2K3m=aX6B0(h_`LDDJrU;D?!0(#cDDmrjO1DAMZL^Dkw40O+ zt^FxUlZ^av({_S!DPtD~@>3=dnc!vel*EPvJ(3`iSs=zgFs zzk7)SKX_N*nhfLyz31~M2?I$KNP@s74+8ezGM>r3us^l@4A`IY-a9I27i$40$M%_Q zlXpbMI$1EtyYoimag#Bb`(2aXwQGLyb9;r4?hJ%2LCCptP}!h$b@AwJ1Qf3bjdi<{}9?K*4OEUmuIto(O>Z=={LhzKz#+jgjGL z7xqHMu0r@)guOhWJogBJj-yaE(0PwsazN98j1XY76)2nCl?*(lcrt)`7LfK*#GiV0 zBLeY*la&zUb@QAa#A21?OaW`loXGGjQh0At#Zt|rn<3A<{$=K)KQ2d=J8Q; z6{uo1=?^*Jup&5E_@LsmCvbTQBr=W3DPm;>tiF}%v2PEc5q=;>*N2B%_`1?pGV#+L zEy6_bh#5s>u0|@#ev;QJbqAc08X;&LsDm^d3>qF*#0UM{OEea*J(n0I_?_;HkY$Cj zjwYbF+Vn6+X{ zPT@6x*cK`YiRhAj6YIG?e?y|_6a-a_phdLsb6a^0z?I0nzOi)OHU8KgiPv1LKy9A^ zbNSB#=7Sl)W#Id)9hdm+7UT;rs}%v4`>3s0Lu581W-7A@d9fv74DLkL*#H0_07*na zR9?sm+R~}?9DyBL!IhMnELCb`{Inx?(b@trPG(}I9sMyArx^HhrRc^`@sHl+ma8>J z`ivVozGuEw5Q6(Yv$LOgBWgt-ZA>>W?Cb~>p1#$rhlmYDb93{8&Ye4pJ?2HJInGzpSEUG^rdT(=ndbQ=i! zR2*fu%R1nz74u>B#-;W+2MrbKwZO5zg(dNCA+dQ46m>3xBS)TWw}1P?$M9XE7B;lR z?fUFbJ6a7UShV_6h^+n6TOa0khvWWmzTLiZ{SuhJJuFSuBz88n>#hQL?DIKxzAVh|21kuN zW$BVc?0!&UD5l@_12;?ea0;&=#aPhVX{JyKtuj2o@K8xe54t$_G2 zQhZh}K&K4jpBb6)-d#`8L z{`$CGyovIEv&m%Z1*qPiO>OHTKiJ6ztn#}Tw0Z%oAISdnch?5B=}emqpxOgdzbcxo zaLP6Kl~S*2+F?t!!YT=#zTF1>w32Ff`{n(AUU`*okfe+xIc%lZR(K`I^M3l-O{b-|YYY&11^~;-QbPZwcs}D_oPAe!z$+j|4byr-*IUHAH6-aA9Rx zSU6m^$-+H1KUW^QB0{>!8nMenrC>*6I4+_HzBYmH(TNtGi9M`;Xinh}QH~X>j8r-$ zu*lI;oyrGQ#42zjuzFpDh~&Mii$|xTLQ!KD@jNeRj7JVdfRmDxnm(%MDC;fj^R28M z6sskIMp(N3^TK4NV6ry!5o>2S3vU`At_&P+O~(;l_65;=7^wsNjv+P5fLT7YZ0H9T zg3so1WPOA1hUL4mNvIPH^CAscs+0g4)mk7kh>iNt_t#vscF{=3(Z?e54}p^0zqMCy za$aDxUsfefUb0KZXQtkidv#g)%w=W7vLT7kfMp_1@i zStM9*SMA(@z#moi^n7`x36g`_%nU@>ROoJ0GL(gfY#ipyT%2o3@&67l9 zAOLEopL>Z$*G2yVA`*zsw06bwwYB4wgQqgVY#)NXbp4{<$+VKBcU@Hn?z7x07Va*p zt{QZ6c}e+Wmg@&Rz-DD~q1qR4i#0~>2eOLMHjs_QYcC^)Udf!)CBoNjzpg|?yg+yH zZK^0FWGH@s*1rwZ`)`tAD6Og1jRue2H?Vk@A)R>Gxf!JMgAsJaNOu(G7` zl~^J&*${v4iIWj?MB09t^Ik*kK?>o| zjA%7s{M(Tg_9_$<*s3k7s{0l6+X;}4fq;6WvPb2QG#h(f`UU}b`bjivZHYJ%iCc4n z`SV1`RmRPXo0+8nUaBY!KjD9mpNB zQ+$>D4|(1>a3BKRUs*cri!6LaY)^jh)nM%dAf$AllhDP>eHFU8HD7cmoqsDT{aL6a zbdT(}xG}Q7Av`O{e9@q+IE6Q;+J(Z=jBtY$%vl@h3l3bY5Y|%)ZuJ-K9VV8$MCmeI z7Phzp%QtcDH>3;L*&icC!UF{`4UbZbGfY;Zfo0m;NQ^$ z4VzcJ*0XE>gE}5-Ng{SehDl(Cw+YGLvrTBbfPnf#5Uvh)3;$rB{k4(ZQ1d~^xF#>z z^w59-|%JNu5j=oWN zf+8NFl`aH=KLwnC_=?J+_F#jiT4%Hi0iKNrOGJg+&IR%46h@@Bpo!`D03_V#lDj^jRS}c=&X>}c3M3K=w{&x> zX}w*1T;;nwj;$JwgssGoFv@%zP+BTyT50DKUo1_kk)q1T3fG2;Le&cz7Ubn(a0()9 zAi$#BK+D`g-T$!V^QE5`cIwpWI)y4O>gVnA{hGS&6rhWN2ptYypK&rt2}BL?rwU0c z<&181ldt4Cc@vS{HxTpyv6SiPC0f%^bD#p8f~2nX`#-WKG7JMS!w@~>TX9&Q&D_8Y z36@+i*Z44MuTsvv1@quCHw;0Qvc7eZOW=Z|&$)r9gukpZBYW z(Z=XR@ktcu93xwsGI{pI-_p&YGX;qvLFeLl?db;94#N3tw>4>~od~FQ5NK`3%D0^l z8Y1FzE*5L6nzuH;)~Qpzc!_=$?jUGpuc;|^9uW=SlHPK<_`}-IX03tPAfK+Q=i#+kll-({m z#6OlG8jvw$kgt$Lh^Gv%FA5+`A5>iVtrrtm)It$zysV>8nnaK2P-C8Q(_eXfQ8mx6DtdvV5)bLwT}!%tx*@(nyhsyd-0cl}qMsHS!q7*O zo8hvs_5Jp2o}yDUVpk%w${$OuwV`V!BJ*aYvCY>SsaaQ3t}}SEOLXtBUc)>g%%)hG zF-8QVBI5a~wf>yQ-AxrZb4`npb?NH%ps~JYl&f&6Mm^7`f@SAT5gzP|Ou3qaa}Arm z?C{CN^p)>KBKv*0;>*&4-26Kg!r%P>Q`WFL0DAyqj_c4vGM-w*PzL|Xz@K!~YltNx z7cu>mCUfm;XRaI3ckFV!hRHLJdyswqAsBxifHX!UJI3mPMrPvIaB-hD2JnWY}c*$t?$IP&;K9qfymmg;FD#q z3*Tb^B3i+ty81;&vDW($!2|vz9uw~}#NohryH5bOuswE<6VARa(05l9R;(9@Avx|$ zk>1{p+OF%_bF>u@h^&Z|LLN*aq8GHIiv+INSkm}#X;aa$E^%+iQa`94y z`W{~`S_Zt`TyzYW%mJ>Ur~FEfNckI)@@IV1ho=gZ zH5pG%5oV6q@%RCOSZ<)f7F5P%*4;K`HoYi_8`RhZ3@r4e@cnDjsMj-P90uK~vaIrH z>!F=e0-F?Z8=HU?9fV{-QjXCi_EC<;6|Tzy^%Q0FEq)f<(o7(EzHoyT>zn;Wj_^^% za!V=IAOUYz)AjYu&gRMD`AJMQKCIb#@*(ae*W+7*NTyrPK`Y%iok>>@?=yU@1l-Yh z^h!YJoTTJse!@V`Gt)VFAp!PRq^_~H77aC%4Zv~*O3wY@G^d}+)wu^U^EZY~t_D3i zR2sUaU6{#oKXEz&-s>-PzF%M4Cz(cB7rf*zz{KLMq@u@k2GxfZU*W^3#Y)Z?*wHm4 zO6uYz`jU8wBJx;)Tx-XD*00Wa!X2u_w{lz37(3b}IuzKwuCi=+)PMFwyo*8YO~lc5 z|GkFD@zzHdY?an3He0Thfs>8HbE}G~=F7IMIs0T{DkOjpr0VT0Xlo8+rTZXL4?p?6 zXzijy9POOuIOYQX93@~?3_EAYyySm2BH~q!8qI9h2a9v(`ju~QeN}g)Au|XN);HBP zRToth-GIznD$A;VYT+V2wg89ZVD6a$b#H&q8Y1EYzQVYspVH9T%2};R&du$UyO;Ps zYSb$Yn<`ib)mV&sgMrTS+Zb~qCU z7+5$gUuTk;?{e}20y*viOz-*$n`k0>;pUe3!5=MoX{=BZCXPPC(vr5dZ9VW?dq5~? z4}N_8rpph$$MVA#H%2EIqC;7s*dBf?JaWzIMrJc7+;f;!(vBqTd$S*+x}qcRTCBf_ zc_e^p-neOFb(gMP#v)-3BPSJbz66LKMT7<^*Ljh&JISXG*s){Xl3vDSZYS3~8}2pi ziC7{gD2z6L4ikih703e&ivssncWbquKoaDpctBgoa8~0cwlY@6xh!rPYn1{J8z%Xl z6&qJ{ZA-V^ZP>iy2Z(~?NoNYg?qvld3^y*ns~l@}Sj~!u%jbN}0V^2f(iMQ_t#H|} zc^$@$aey#PMEx9g9svzOW8CwB`MYRo-JFRy(R$`)leLd9px7K)B#Kx+G4sKQsFCpR zvbGfjpbMF6LGh}N^nt91?YJbT&lO)<`}z9F{;w{&|Aii%d(OZQm%csqlkZ=;?vPQZ z4)7-hv0`vQUCfLx_#SFLd?g3yd@*X319|+6&i69n$G+6GH>gHtGOFz=iW1Wh$GJ8$ zta9!`)IWjt`f64d3;iR^=3K)dN^W=f6GeNcC2Gz`RzoUF!>8H{X^4!|8u}8T1{apL z8`w529_?n_Jw&V!0Y4KPAfIv*Id+iK3cc0nU zbjjOpMqNXlDA^v%z)$)Ln38o9FHsk1-Z0;zvZ1a&qY+Yu=*QeMFs1GL&W$wF_ELy?gE8q%e3vISe0Ax3h{v35a|nPo`b;8R+bL6ChpQ?Q8cLA zz^AT%{cJdM+||&nz*45SwQW7{n|na`P4~>71qTd0e&2$et`{=k%#Ic=;`7MB?LMw{ z@-&?%vCC_fh8+x8TdzcRViNz#fC4Bb1@pVP-M-s^8^qK3OKtRW3eY6O#_|WP_yR-U zw${|e;sq)eI>2-^ka{P4xSHn9_+TaoCqP?;AT+V>$*b1X9UAiy^9;1#}4w4vqz zLM+svS24L(aWJnj?`S~i0|vhL16g}qQ3^%OQJ%QYz^6-|tv+PIAv&-3PZO~1-{qo< z0USVtKOk_vEId$QuE1zzADKrxJDtx$gkA*vpj@BrkF2eUYk0W^K;cBj61B%Ms@`B| znXiT{3j)PTthfv+{G0VNj7JV7L*12z5+ZnEXipDfDQe4zJdzN^OVrx0NVDF`j3bHR zR+)EY%(7g_9IO>itRw(jaK|Iy_lC@7t@N&X)5hxZtcR^f$#HLGpr^y7!z?7rLR53` zCMFbaR6D|>wxRZP5gt)mUF$CjYuD9QXoH84YgQ|*IaC^cQUY;AJRAXy`2Du~FgMhm zt^jt~ykhIAyY9Mc+mgoU9xlTvtoUi)N7nY=y2wtP;Ry)5DyKQ`e(NFK7(0-eCNRN0 zexgv;5lX=%MtsG;Cr|U!+S&&xC`B@hDoU$f$&RIapusAGCZLr1P%5R7)sdahfvXho z^}e-(JWq&fJg|B*1r&4`m-G&c} zDvBlnLzx1#z<>87k%6f8t>3il)z6l`_Q<*8uZPY#U4QdXJ#XNJaYT)t*$wc19%K-eT$D!$i8>GBI922Z>80P z#Iyqv4o1T7+2I`oVG>;%9i|)}i>~viQJJFz4O3N8^{ISD&ci!5iepD1Z;K!g`2vOsV*%Y*5aWXcrp-dWW=t5 z3~EP>Bx>&gP|GSyDlG~~iVU$tY!ZXJPO&aW#UHx_yD3nw5m1p<*w+tatsNNS)xf;8 zqaB?1q&fj-cR*5#`Spwo8_~f_fN6bBAn(RO-3M)HpEnz$A_iqDvqEW><^mQ;ks+iH zB+*=7U!T7bH(rUzrgNstm14_i`&s;XwK^`NGSi0_4Y!twS=+U%p8xvJVL2X_WnZDEJk`5ER&LnH(M;#t*^}xTQ2R65Du#54rgAe^%*Dk&9Cqri-<6G?+XD{2mk3uDe!tdDUd`(?<2+&z# z3j~yz>u2&K4G~d77@ec|>Oonex!u1pasn7$1&&is#yv{wz&w}SDh03;12%0=Z=TnQ zI_2sdEwXqED@!ZeP2_DBAFxyJF1?<*iPcXfptXB*5`Gg;FtM%|)6qx7~=nA#%I}usSDM@L6kq z^CV=w&X#O{#s?&Wq?&!~FTsvY}Q%-Sg;7-^jp?;nHwB6xFKKA`KGF ze(~UyIV#c^*hn<^N?vZGO1UIBB(4#{OX^G3lY(1W6XRTkZD~lhU~Qs zwX+a$yULQv3w-}ak>ht9%r}OD4A>~bddd+$KwZ-Dm|{*22t%`ecw%n>R^X;pO?EUU zjG@l?sZP~x`EC1yF_kW`K!QcLL14`T9CT#NG3cfr60s!V6a^eL*tigM9OsMjqH@b8 zl?t^|aA-R1&Klm^TM$T#Hbf^P;y%PAaLli)CmvEEy3RX(0ss*Q1wiG2>waytb0j9) zszX`jUz=>kyjxI7Mc7jl7j9NG9-R#ct>MzJCm-s4mjt;7XrensWKFi&HHU+f#IqIw z^P?X|=Y_|IdvlVeFhGma>hn;s$GxpxQ#(;Pcublz=Zz>Ev9fk`?NAj|)7bC}9YvTV z(T%|3&Aky^b*E5$vT$uLXw3@3S+OckUje9OtPWQqZ%HQGa1z?SONy|J>X0JyEv{Gw&sK zT(09js5AON1Rlc~Jf|Z?$@7j>R|2@V`1~>3CyCm99Y%o*uLHutfJzpzPbyS}NHhk) zd5@5ewAB)aMJaKQpbl2cLNn_FI}-sDjmgH@B?TpYjBBQAWv%(z1*Po0i!a)lSd9#5 zwayTv&uA%yx|Mt;`kUdIxV`-nl16;>F-_gr;}9vzmglFD{Z_>LxsE@0Yq zA5o6VaX{?@q!zF;!v$f2CS8iVtjQ z<)!UoX=8LEC=l=Vo`h73jA3B-)=J+a?#znk3gT$>>eYE$a<LxDC<&GOMOQYl5i zqsUMWD}D#kP=^7S2FwNM=)e91#+<0V02l^UmR4CPzK_(?h#3H?tthE_D|=lt0JuyS zI5Pz4XZyLnW(=S@S1IQfNfy|#WPP*}4POte9(wl6Id?GXsW|JE)3?`b-ky2LeLINv zCzH9+5U=q0n7(o@fV!t6#yAp>T&xxLtSGKLr$gsV0ODhj)VWgW$=SUe`4W=AsPvwlU%Kd$glv{GlgY~|o1zFHiR`2j?=uB^&J zO|quClbCTcDqP_&jAX!7Zf5=q3m+VE#E2Uh4SyUA4`nA{t z2~=wPBJr!<*0%M)Z|?z71fTcG4Y1$P;~pH{cUMnlG3#3j3S@5h#y1!jUtCQPAm(0( z`i)R&C}Q`G*G>^TA|_4>$4w^tSR!@=F&SB42;5XDRd4+pCBusNXYH8Ft$m8vc`;lh z)=AOgXgj1RnuuJ944oq-v1vZcD63MtGZ_e)98*24`>-`j5|LqsVH|P#Ev14-DRv%Z z&Hap<86%#rKIGNTFV;8K>;_7G3`F~5GGzm@SYzZ&GO!c4Fx3wpvi`9B6tV`Tn~7<# zgU(lmGK05nZK?jlpg-7*b5@vVEE|5Ks+TvR+dwW6ove_POi-+hQ%w#HXXITq!babV zR0Nb%fKO*o1!(YD(Q6QU03;m4AX#`=>MJ1H>H+8zwG)^#q{omi+wW66x)%fgnVBCG zOC1?AP|@I4NFf?kK{P<#}51tlR+KA_8t6Y)?-krq_E=IsgD507*naRJW_L)e?b5w?W%g zNVw*id!M`6rQLu`utFz zkX2WfCRK8!VUCRdVztx$`9#ewhE-KS1!69^;sdFbQ6FLuo5|20g8_Ik?a~1*(;IpNPwNRnSEbr1qBBcOZ{+VgD3 z^e_Ty^!#x%Y5I5SDw6~W!-(EhD*c8 z_}^_sh(P6|qFiRG2XxASp}~Mz;h^(J1Lh6idMpx;Ohw=-)ViG~>nnCEfD|IcoZ_7M zsYKgUAhkU>aDy-WXZxx#b|N$H-@Kvuw4E!ghjk}KVCQ;5SS^WW`FAuPy#^Wj8lua5 z&c02;X>}EXc`Q^i^aa^Z#%IS-wJUx@W!?@K4{JAVwu5zj%_vf8HUM5H zL8=6nNGKE4DgeqAh?G57!71zXBsRDOHKA{GD*?7K<{E@_MLOL&UWALp&cknyKmNG& zPAn`e6o);iudlcNmOq(H1{xb1Vb4AHgh7J_{o**#)YJrTz4aCxa>ya}Gye%~`SRt~ zdSZtic7QEgw!r6~e{R(~TUuJ|^+?-)|NWtF-yi$oADwq=Ybz{Xycp{0>frFh4~K$+ zg5Tv5qtU4S-lLB4z|bg7Bg9Htom3>xq3s0+;N`V{m2j^Y=I^*D_*KV`^Ks18G5LPy{0XNP?waFO{3LkE(ACuPE}jn^Kn0RE)domx>g z!g9t%B^Us90)Q4ENP>cX1XQCDN2Jo3YO(gP=h+Y$M+y!>;EyXxs-E-v*eW)PW~`yU zK&l!wmI3pDh$=&E^gwt(I4-=)qKYC>pqC8#n-bhfU>89B7h({vQmF`AfeXt`2P4Xb zPj*ypwev3XDJrO64fO~;?^^@3wxp`_I^~ETY#czm@SI`pR`>ZpC-vu_dx=Kkk*kq8 zFH{=7NFbl`eX&IBbY`=w3v_{RjpEJYcm^}R?o)rP2vj0h{4I0Ya6T)pUe~&Ab8&u; zNeWbfAztP0E0A3Va}xvJDFDVmIlnwvu@woRb0sjX36)lP#*n^hbEn*M6hn7Ie6I+H z2yBngodu}A4;6cYO#&y|pf=1vmffJEUz} zcm4NM&$e~ff8Rf1y|{Yg$`1^x7k!b(NMmHWV(1ep30ton(IyB6ooj(%VaF=JRj+Ns zDI$m_UZMdVSeVMBrZ|8#254td4$p7RUzsjUP8NGCV#-6n{(it~$N0v`nP^~iApI+)x!bUo*0E&PlgOS!sEyUK4R@oA;4GL1K)U5V6^)?0q43Q zJ%(7ShHv2lNI_s;9WER8Y_vXlDrz340q*t1+p=T%cw)McGdwMOt{82onFLyQX2V-z zAH^P-IB}whHbsv`!-r&ynbkhNNWiaXwgUCGxSq)I-i*Il(1&~7#fS?kODpe?ZCAZ~ z>W4iFdM?DPUO1%+9C+-g(Puw_h`l=(ce$_+_GzldwE zG(>AXO`%%gtM2;yiUDmZle}F4JQXUfdMc~5DB=xbiP0k%@SrB1%5VM&l1Z1uaNKePkXIeYX%|lNzvG>E-hsXM-rFwtWB_>d(MMs_s8RNhv>$%> z0h*heAruny?|*F);C=n|*YJlw`~h-uJkQbp-%SF8-FM&J2G_DMA3Js|^y=kJ1QLwC z{`%`MZrr$E6^ypEwF%_S2DHZ>d+hHPj7s3Jdi849d1pzq{`$6I!v^Tq>%P_OBl2 z*MFn8XT#=(7uLbLDFXYGNtw}H3JQMcT-4=ed7oq-;hGV{ScUjuMQPZYyVum$jM56v zbeUcoR`z2eChM^qsw}B|B$|jG4+f%aIF1261yLJv=#i=(Rdr%~jI4IkNipkH1$i`rdo*!JBWs3A1N=M&-Y@)z;QRRh8$% zC+%N7&aeGG8;pK_D~#x~%Si`R9s8h&zOHQgasm{1d zI1rF(Zga+U=lW1qKLM(>e%m$f9^yYLYN4V&YQU=B-rxt<*3(m|!vUdQGh`THJ0=mA z;BxJ{ulk;&S?Jht3>XQQhVS?L+X`J6EL8#MZd`sT7-Tl2#k;P+Am7=+Cr;+qVF>t1 zs5tbRR7ug{DU7rU(P{fplxfi(Ncs#CsB~%gf%flNS6iW6n1+C#hDyT^#8$@!LBLED zFVSEyxT8S5fZ=-)PlC3Vhjo6z!9VvB6<=}1P@y($I^XAx+Ib)0&j$Dc-%Hfa@k(Ee z3P1O&PsHp~!Ug#$Ee3)zk)YX2f!Nd#;X4_Vo7$(AKO+}8A6=-{iN9^r>&zAw;u zS4uT;Yjg9JewA6!X?5%CP9xVH%!H50g3j|H)iao3V?nauI`JKpW5yb4r!lH>$H~kb z(qs5q`|Jp$&cLC75LB%07ZE9c&B4fRV#t)JYpNCwr&!1^KyhVhl{I6`_W!kj%5?+o zY^l22?Vi}s4y@rb9~x}0seVb1G^E8gue%0*88NWRpt%*uJl0X2*q&E??QN`o6oa(q zUmxqoXeKk^+o*UvBd$@X)}>lg^K5N24~n*D^gOWJqTF^$nbq4GHKP~^IPs^ z!=L$8YPm*oXl8j)x%fQ(q-|Sw{r4m6wsqG(pMlnHS^ZMHu5UwedBI3?}67x;5gT~pmCGVZPn zxDpWyfkAB1${LFspDaogO%b@Ra5wEc-Vhn*0#7nX_xM^R-q=xloT#g72i8kvvbLdi zq6QpG1doS%{g^ECl3jF@0)0zGNrgr2Sp5^EGG?S?Yw{7%Yw-B-dJ<@y?elTJY51ln zSLI$yMBj(Y!Z-MLGnRa~{wLus%%cba6jvnNssif<<1TdJ}cVXq>YxeXcKmq|_blMJ>-eW^in#jw(0 z)(1ygZDZ}xn(*+9F;__REVyINakW-pByQ8w4B?iZ%53q)>eOYs>w8&^kQ9mDQ zk{$3*knF0+66XZ-tNjdlZA0w^3RTDj_mb{8UH9wNwXapB>eys~*{6@E@b*i=sBD*j z^w(4o|M~0lzrTm;y72MGAKPlKRE6Z<#~&}^fj_obEC!uAb^6uUw07-Uc=gp+f7f92 zU+Jk-DrK+N4?O;rWBgA)Bi@U{i zGQJwldM;UYGh;3X#!tdM!4(tarzmF;rx4?5^4&NctjZu;H!m*mh{XPsrMxlcd+G@Nn98L)1hb;xLMfBW0t zY*6`YDx>nDci(*%_St8j-!&NhS2}Ft#*OxRCAsi>H8G->%4n!;)G6P*u=2qPr%w<% z#y~J|l`K+iRSwN~jj-Mb-zJ-ck*a2rlan>V4@6WLY{{!mcS;YG;3vhYxw)KMt~8Xl zu1U_z@0Z^L4Bbos^L?SbSR!@?Fby}vw@UTPKKpBH_eG7TDWk6OEyli&FDg!fbE0td zkjw|7^tqZ>=WT7=EVeFRp~n6Q*kUbQ2u=fp0075)0Wd!pQK-Hqa))Xih*XqRd}?8f z2r~)baX$fTGx33-@IQY5ki4j{k$63`+8#6bNxSV?Q{7-DK8M+?b%Ad87dgW9bO1w) z;1I!QI-u7A^O=T70m75*uq)5cZmja4v2#RhCzJ?HQJ|Q~IKeVcrPT&V0ltm_+XPDH zKNFrVgt`KlmsFHi-dMM)PUc}-H48YZulRDa%O7b6CZ*Xt5`e%?O3~)>EYH%8QHjVI zir@gF_@s8eQ$u7NC^*}&xxruj2t<{Pdj$}$N-SA7+ZW>z?k+0qfrff;P`y^!y)qh0 z)Eo|kg9xxC$;s+=Zc`$1AF!$mm4>VcQZy000GKKrCpbeYa{hH?Ju-JetzVP{pj1CM zsSTGfV3!o9uJ#oivlc94TtnCUftR&XAajC3$WR)dZ?9N1Mo#by=dn=6WAT!XCZeYT z!ET$~&8G_DOBT32;yunqg*#}_FIJRPylKxf9z6_^M=@b-M*%De+?sQnCyS3N0oCRQ z^FK;u+HPaUHI=26mv?-3>k`pfqEZ{m^51OVdx-}LM87}>cV^=CS_8NIkbFG9cdmHP zE(Q(V6e=x=8xa#y0Lv?UHDD{8LK8_@73+^9O_4t-R(p`4c^$PnJk{f(Nr1eb0K)+e zJjR*>u5tgOL=GD8DPI{r+E9BtBMPkEK4(^pFM$_sX=|z)*kkaYey-E8ZQb?HN9b+q zu7BJ|KWtbEt2TT$bG^Y zf5^ie5kC7)ArH|eI9Cb+A~HwBgOqlJ>u$yLvg3ikY^xCPU0**$Y_9|vB%EzQ()iRu ztL{xOgS>gvqAC1Dr(&*UrFyf=QRQ$|UU8?nZHeZ?h|pTlWXI=WKybcd^?ayj$iid& zF-bHNn6S;-qmkYnG#tXfFZnT@{Vq|4PpW$e;k9s9%{ST@J%EWtTOrrc&clM9h^&k3 zh#8np#P|6$6A46fAaD_&DBV{IL^@;7sUdPbB5-AC*!qh~6LHRY3m=M?bm{j3zOd+# zOIJ2UE*uv=X4J6KVJo~3EjmGIy}w~T&%X&0bY@ig4z2JFiKb=0rAuGS$#m*_i^UC> zhOd`xStJ@Y8^jd3SOdK) zi;65CRFW+>$l_RTu7#du)kl?r3L?*6D$=lUr;S_Je(`-{1jO%ck3qj2SpK76^grk6 z{^w`%Nlz8*3{J43hA$D@(u}-;PxVo}urKtIVSAE01nXPq_g+B@RGs8T~ zQFxypG|3#(5^tFT2;G3-Yk#7SC1S^kY`$n25K`gR%+{B>2D?sn*)4O(c{|k86U*`D z!pI5Q(W@wv=|zl9GT|;+x3E{nb#78hy%Q?-;75{)PiB&nk#Up2R#EAV1k{F%-3^%K z?baTRky0R>Mt^>dtz9&d1J3SjTvzEpBtw}60SKJTWQvq_Ua2Ulu-R@AyD{V* zA)Lg@lFA1K8f*JQ@peR57-VljB!NV6MX|tGa|+$AGkjG;QMgq(Y6cRd*nw*ubkG5 zYZ>q%KjC1j6K?7<1l0M#{A(nT%l4^Q2@C?3z~4eozqFbW3dVvlTau8eZkPT~MCJm+ z8lMAJv!-T}(m0M8uJ@A=_L%jN{gs0K4D&m_-A$xEaz1LP((GL23kKCS)g3~Hj$md{ z)3wiz)s!GUk(iZM_-;j3DN~Ytpd_e+QsZ*9@SsF36B#Bs5IEOAW~?E0Jb~F607ZDw z9#g93p!6}sBI*>H>yPjD`AtOs!Yp2@u=1IEo_Th{=@afjCm4H9I<%pXhL!Y`lu1!2OU`F8uujhIB;+IXn<%#?G@s0TUi#i zJYDY@iJYPUMt`~L&5ze@T08H+s$+ga5Bd4n^>akp?=^n?yS``Jy6g8{cU6Bn8`f@I z)qLoVr|+v+T?Yzg_!OsDW9&?3{zHyKmkM9pzsDlxNT5bD^4f4ocy25a+mncTIT~Am zIVFnOqI`=$+q)TlS47oJiXX4)TV)gdSw8rUtYJ>h=A8G_g=w*0X;28mT&Bka2_gwK zVkN5BHNG;pd{#J~THzP~`poA}3g_KHbu6&@4$uTcC7$x{;-*DIj8QiOsQdlkR0LlG z89f15En&qK3e=}eW{&{m%uR7>6f5o`!L@we^6**Ri2$#3RFSupQiPoq0*Q*fW?cnH zhbx5n9mjVoG#HQE?TOBM{@p@fkiJtI3ep+(DXG+or#7ePRsej`7caBpTfFvCW*ni7 zK22y2-nQtajNCJvg-~}GC+58J?S03kP1_87d+|$OE?E9n;Nk=Cw5mQbh!W!Y8lB6_ zOUm1c_OXV@ouEL4O2X|Xot7_xoLgB^HBCO7#UkH>3O}nX`H^F46>cSqO!VZ?o*s!+ zB<7iEltGf}sSSeLPcRXg0nFXQrB&x;_uZQ%5CzUt#Gh7Vp(YZkBl7?;o(=#%?kkXr zS+iy>-gY*SWyJ?=YHiH@{JU3X4d_v>jvRUNFOEU~C>Rx(u5c!W!zkQPfzJsfS1L+N zmMj6OG#+rk0noLpCtWTO3xVzmTvV#6vWV^6xifU{-W~SccVD~D_uqdH!Z*#!%d@;N z38qR)N?_QqVbHH%KMM_xL?Vz(CT(R$s<%7txTCG!{?fU~LR6Y8ocGvc571hJR0^d! zBMFsgEb!&J8X6kxxeEN( z=a5PjRv?YC7?xv>968cLB&EqYfAh^Z778ubET0uvvjoMzbS<**7p|uS4HG9$wAbPH z^Z4=OVd27s7CPFaM-O`rUAlC!_dp|7QI+ zpz4}?gNBpgbXth$Rt1tdytFJ`IuU#Lzd}B)^^yu6Z_AWo-7oY!s6pYIAE7e5d zFn;jC2XNS7huOXr2(Lh3<^Sa0<>lq}xYCC+X3Vf~QK_m*^|gQh{KgtsGOXU%0B$q+hST`fB@p$u;k`+iq~X)wN zkw+eZyYIf+jx+Lp$nz=zwd^af`|Gd2-f~{0KOcJNAP0$riqQvso80CH{~R5Hjeay&jNPY{1e zsj7-HyoGln4k1JHeP3?R>V!{Zg-vZv+ugz;vb=JFfm+0W*gR71CzRun^AK<-Azk7J zyjB>gF)BB)l!31d7l#{T@z^8@mQhJ!0QbqEoJTU4I*btNw9*c+8BkFiwhG14M5u#V zU*>9ackjLk2jGSNy z_F&}O{fcs3qHb4W_arj#gx{wk#sL76khqWu7x+qMpi? z|B|MuK9ta2dwtEZjCiEu1kUcr-xO%G_}dy|DwS62h-iQ@<{|Cqks8@CgsYW;9a~MZ zI@ie^qd;}>1&=&MU$_vp{w!1!dZ0E@yQ^Y27nFLoBq7wo>c$84{aUuQ_@p%zKiYB7Rf(y-p ztP!mN;aS$j>kcNMU0Ctba8Y<3Ah4X1j2kY&k*N4vp`v(m;5Q+qf(N@qD-JUEp^?gjcx;gk2}VC(M0q#X8wQdy$6_7Rkl68_c^z!n7lCAB@_NP8=gAM|9VI09@?Ec7cl`R+Rg-Qw?tz1m$u?}}YoZ5yPg^c{xQUe% zdC=)5*p!$gLe+Zx`pI4WBF(8gpeE(3nb;0}pP5YO?bgyO@&4J~7{|F5d!&Rs*VAG0 zCU^-fE85CBE^u6MWb%~S)hZim(w}<%H8L1t%_w4p{*D(a$|{^UTWv$_{^-GDrSCBr z^92Wt9@BM7?2_Lvy6?}U2JNGerQ6c@dyC@Y#fu%V0YCx86%P-BLElda(B#1=0!8#_ z0+69^4S_d;;3JMW!u>3QP*m~GKKpD6g1`Zzciwr&fjs~$06I_u4?g%{2P)UEUr&!c z_Lu{s2t2nm7X-%$gaIrOSo?uM_NA9za{B=I!kpsqxC@N^Ko2Q?#{*@22SM-VU=)BB z6;}Xd^pN6sF=zbl(@#I`fFlOL3xEK?D8M29hGPL3Z*Fd;XP{+_mxpEz~lFWxnb`3eS8OrfOI-dPdxF2 zn+rfZ{*FF7><8xwVm<%_0MqE1Eh;Md&aLy!rWRW8_HEQH+VigmRi3uQvW2jT3#I@r zl~q%OZN!9jjt@%eniE%%@NlIA^wT&oll-bCDTXRM>@NA9s@&SrYzM9i-2j% z%vYp7s4UC#?sI`Nhl*62a9A2Et^SQOPcE?IiA8_(#Y@*28#?i>?+XgP4~zmB-get< z4x|7$A~6D>Hf`E80&qe5MbZpx^xFHx5+d8NZn&2Ceast4A?yeDIi4ASc>EprIVfT{Pv|Me z=Q#J+HB{dx?%35vH)F}jZ(E37)1rB^gk=z9Cz+K*}zQx9Po zV2yn$)0p|Z`@q66Axp{z_G_KdV^l^x1|`u{V`2&`J*+d@c{P$aOBxcRt>Ozs_$5z! z{A%4-+qSlEm?P|ZFT1=f;j^ikMhU4e;K7UEM)gftN`)l_aW4q<6m~B>fQWVzlBCZp zcWrCKQY+j-Or=%*tA3sJbxY2|JEyXw@>)+n%F;t^FL-OC;;LcUMABf0dw8)M>=Q3) z5{ikEhrD8TmmnY0H=tWW_yzP%BH5GKzUQ;(%hoI&*qKpNNZ3Rok-4C!rWzLSCraYm3uM&&svf@by%89mKJ(&@5FUXc!#j8&yNq14ao~w$zIlytCG9*upv>Q13r#f ze*>Rccv9v>cuvOK2oeWfw9kgrcw)Qv`m&7|?ah0)=TurRGGd;rF0bxN7&scZgyV_0 zK2{ckdaWc@B#z1cj@0-n=aS|n)gopxhy$_yu`Um0*y=D#xnlm*D`h5DCiZ5cb7IG|@XrHQ4-YTR(%up)5=RFSbxKCeGu36)ZgE2&w4uzURwy*a%=-=y zZK^xekl8~MwYEh&Yr3ZkPq)nbNm?f5TevtNYw6W`JBc^yZm-(Es?x9- zPnPQPMUmXS4=V!k{>LaK#B~m+j!%_n*hsxGP(r*cx~J<8jwBA3sE?h7aU~ z(U*<)ts6*G646+t?L!sCRj>Iw4L-~)avD0Plv2OQ*i1Jq`i#(oNu`}o-hxk?6WbY5 zXJyFzMw32Fj3lcDba{!YRCDS9r6f^VQgzo7csR3Y5!#lNS_ZMPobA#%mhFmSDZaO? ztZY;6JrWl(7c%M3zufrceMb#Fs?+Hm1nb9=P$4TR=*IN$kkYDVXTcKPfOptu-b-}R zqD7IyfrThgG-#qqVfBWP>=j{pHDf6Qdl;2b3s8YXQZ(6=M3JMPEwnd4zXWrrU-8K> z38Lq~qu#Q8QYqE0g{QzZrJ%LoP7heK^G!@5;&?@A>|$mPUB7>zPh%@e6u%4sHb=p4 z;=6>UD?VA@l=z##^g*(6bpi&D{JRW z$cg*=EGE8-EOKFw!r3gc+>0P3mM0G6D376#ewp7ai|v=Rq)s)~o+XASq2I`Hq*)y= zR#uayX2>PyUTUKQ&HEcDixR)%=^~%5PE=$TU1u|jNwr2+E8AAR-a zhXeZz*`>J0mi?~&9!=L%UJ>viaPg5sn7{^|<4XbJfkw!6<%f^Zj7X00=%YfNiiJRD=+CV@?1|05;ff z{`En{Zu4Lqe@}-U^y#WkA5zRu#mcMy?C$-BMMd3Iw@J)0K&fEnpyY-ipZe0zS!6}5f0d&wV$?M! z4iix*`TdQo-Pwu1^zMv+dPbuAik6o?Yxv-efCGr}($Uptf9L+lzn3=`F!F!%lvmuV zs6_jL^NH*3!6^QY`xMC&f4}3r0^ngA41g^pV?21n=MV@3#TMIwvIP~`{Cfr!S%4-~ z6u)mS_#Wnl>y$r`%s{mh-vu}ZFh;@%U7S%87r&m>a{~lhzT7+rqwAb{=an-eD)!{-`n=8qgW z(s^H_UuL!Fv08D)Sm}UZPgWF(j$)-2dl8~{m%ZDoSI-_3g{0V6xetAg&PP-6@ygo3 zih9+*OA(MU%lT;=-Z`p#RF{QIZA0x@0jndJ?VO6T>IA$*K~W~A*E}0Tv)%!fFCFMw zk?_PE5Op^ogsD2x?e|KyZ?`MkQ`ell6+ufyN$k3=^{63nA}Kyv2XsGx96rw`r88r! z4Vx)YYvU#HC$mCt_Izj#TA>$xzhbH-N$f zl|c~v+$r;;0%GZ0o3YPS56Xg82M{@PgUGiEj@fIHJlTp26X8a$l<9k%RhIs`6xH`d zixw4i8`$lBA$ijWzDt@D)fq#V1X_JuQ5w77?GM$0O=hCt{uX&KpGNGezqr?|-)2Fw>r?fugUYOQ$=gGZA;TXYMYD6qHd!&L)=C!hA=*g-h16 z*Hx5PvSkhL)Kp9AG_f*-gc?Bo#e85DM5LxF8%(X}U*SZNa8D7-3D$;hRrMd`53K>fu4#Z2uFt4rc-9RhlA?k0=|_ z^>TA7z&_?jl;trdZ6{X`uKs-1 zA1+K37WDWd&-~+s6Up#tCy&1DO%5omEXg;hPMpSy&xiyxeP~WOH`TQGU?FvRMDeY| za}^-?#1Zi!S_k9tLck9?WxM9OSt7PD+FE#>dzm-YRtX1Ftg+AK8&tcSX+`oN(u9Cw zD*7%Ud=O^Bam>6DN_IZO+?8D=Zey0@h~oIG?)xi~+p%T<=NGHWsvgSDNp%;Ijd;;~ zvf`6rL;4MQuxCNfEvM)H4qe3ESj(03+9IaIKS$dKUV-O1g-$W2%bG4`>%jeKW9*C zQLV*(0V)6#L2dLv8UPW;4w~hb#`hfyz%%HCn}bnQ%)EsTD4b6{^^`kiRH?QEMmOIN zKoY2-n71FEhU}98*bmN?2Q>h%sBEEn$m zPAOCPR4sO%rSdQ@MHGMXlb<+H1zNBJv-e;+kBQJctZU zC!uKor=P7!4C)AZrY25Sl*aDx_nxD(>F^q2j*y~T5j=q{WsOBYOkw2!7R(;gJAdJoiw4E)H9jy4pgt zC1P&mR^Frw81IihT1RGnhXM@GUMr_t#VeFm+g6lT%&Tuo94X8rnRz{^zqrmYtfx@s z1kCe>m&9E1)oC3FPa~m~@jS0g&9zXRC5v_l8{Ro|36)>w)XQ+H-wK|*~Ywr90{gRP7squz`S zh<%)Wza~zyq)vo*Ty%u8wEdqHj|CXgIMvj zP{LbBmW})?l8>F~&M}5f5D{KBB4-ok-nqj4o6A;B_H6~pHOWfK$jz>2KDQl`Z^Cl3 zSOHzyVKjF>@y@hztx~})Uh8DmA1+)xxL@4xjOWiksZY0lHyjc>`-50%>>{5Xu3cVx zfR3meB%rDBTy_(c%0THkr1`$e;z}1;E^S%*qfj!J1v+wtFU`6iZAf0O6vwq~zh-#< z(W|pyk!CZiw>GzM$z?w0uvPb<(LU=9nt{j9M)csUDqS@n2VUD;yO$z$7+L#`3W6{E z9CAEsWN7PSrLjAbjf+oFq6UZ}D~cB=R`A3bGi2K#-3p_H*KaW@{1+{X*f;tuQBCk* z27Pj%#`&rm0(J!Epv)qmMSzL_c|n!UE2ny0K#&wRLW6d;Fc-%O@T+KWk*)k{Zia_9mr% z<;~r*baR?uLivqX9m_2uhr@#|h?qA!Lyh34o@ z1n5Tc3Y2>YT;vZVJ8&QVcfhE>UPzRHy8DlSQ3#n~&B0v#K!rLMi#cjOe0~3EF#5;w zR9UvmF%{eGw~?$xkH98h;dJX^^O9;S;UT!6wboxjCLR?<^e)Cr;x&ne#5r0?BLq}X z!PKO$X5xDs<+ml-gDp>ElI|h3&8sfk-5G>CMN^UeS*t1eUZBR9i&(Lx2;B`2UQjMo zpbm@L=o6jPiLCa!q-m`do?yjh!qCneH7INCkyw)$#37F*OK%d>J_Qj|gQ{$z;ggey z^%+X5*{J4XTgOJQs+!oQl@7iL!?1#d6QpUkf}mi*(7r>xwFmr0&*OmKjuq$8L$h?{ za;U&}+RlX$73sy6VNSlfN4H*g0RX!>H78Ee!u#bEVqZhwX+R2MW-N*uP+@f2IfY!l z%@VzmU%7-8fLJ@phPtwfh%F3Kw*yJ5PdwBx_y=+Oje9d)5rm9#kN^=%J~G zrG9OCx5ytc|l)osjbK2#_nwxkQybP-A$GB!9WfuRwR7 zH6`yCq1Jd#oX7P-N5W|k@v(*UGhbP#Yf6A}yDN)%!GmyoKL=bdWT7-^enuI!*0Q-v zgns3{II&$;ATo0o6TcTLivj$);roeM_!CQZ2Vzl@2c9ULMzy$|`UBFRB z0%eTJ$n({MvH>Y9FGy$~5xMQj@+X&`zWVfu*+hh$H@si9^Bv6HXYfB9t64s^LIZ6Z zJ*Il7VGt6tS$5e1^d7&r;=R5-gYNgR(4Q-E);rEV$Exc{DLmgl^96}SbD~-kpVBMZ z{gTpN1NsIEdR6~<{JqNPKUxHE>&(`;>;FvL)v)eMdTZGWH|t2jBO}Upy^2JEJ=T>d zb5zn69!Ek0+474JrE?YjjG$JtT@aB!4C_}_kIJL4tWly2)?@U8`a2Yg;bdhG^g2qT z>iuMg`bg~z6%`sdCGD)iu4mDG!5!x0-Ik4!2syLGd_c}z$q*&92y1MrB{h+(#H^J&^I02U9R*s=Wv%Z8rpkF(k7427j#Zj-f5@H>+M`1{ zF80aCtoR$=#x1-B%s)8G>j8ji|hAX@Lga6|`G#Q-kk7R0yCC)sXxFK^O%3=vl=;#RJ=U zfaZG_K$FD0x1^?vJ~pqgi@BkCh;0ErP$h*x6MF1?KP;-k-W~_Ph2R|2zke2t=J)0T zoS+}|%rnn)eZ2n&7)2EbRV`GreBU6h7mfwz1Hk>C0i)~MRztwWc7|>DUw_O4m-s3O zi~TdihH!qJaD=97$*8}?`p3F5-Uy0FI2N)zr%0WR%yuM*Yz#S^z#_~AdS1o06<?CxK_LZGzz@*IkqE)P4{(HkqhjfOdeQR<5a+9o_#S{G zD6bG3+7f^RH6G8IXCL4@09OEgs2b*vn{K+vfmTq-F#y1jarR)?_lyFtV%}R)(?xGK zk|3z+B1wd21l!_S02LN<#CqcUVUc|D&li3Rlw_QPe-?});PTHiDCkJ|;5i4=0mq5? zy(?ZwA%y>Kiz2CP~CG#Gt;Jnb>`h>HjG9@?GJD<|}U@3+ZOB!5gI z4aD>fvd&PK4zxM~i9!l#A5xS-MitwJHZzx4ejCfJ@Ab{eD=cx9vg#&KHgUb2rIDgb zl-3tl6jyxeo`>c{sb+PV2o*%MeHeiTXl05LYhqH8qiO-5y=7?L6~bh{V(!CE5d{mgoV zI$vT07>Z?E5w)SRtP-M7g7<4C?3|5$)qMZ9B`X&XH(Fhf9$Qd=bM_^t!4@r)aBs2F z!NQvq(>|@8ZNG6lt|0&bAOJ~3K~ya&C_0!FE%80?_`SNuj~_fFeq=#SL?-=pHbHSWr)x^IoU{&7ZHV&!}E?8ghzhsDnNWv}kVo7Sb*-H3J! zzeb>Mo`@=0%sYs~AoQk4O04Cc=%R88-Ys=US+YgSniaxoR8d=xnl2yWro`#Qe7Xr_ zQozAB(rJEVg=$%I-1lhaRIyS0fn8r0H8^WMCBw9pU&4YfyB4`h;YbN(gJ{{<)pFRF zI8CuSGoawg;bp^JqSX~Hh(=qc6`H7fXymIva||Lyr7eArk&q-dAlsvkcZ^o*dRFQ= zFI47!&)HsY}R=nlXT&_+?qX5Gp+T)gIT(; zoLU&6NxsU9Ru7yD@R` zi^)f3c4ju!aLqe&?_b@za`2SH?{H>=$>gg&xL?0t2r+s?oNp+o9;v3pe67`riju5_ z%c6!w{kn0%y;c$YX}Yor4h&j*AqQ%9*P_^1djpXw?r7_n?&(n9-ZaVkmGGw(<=KOA zfd<)rmbjlWrUr`}04Hc%@cSaNo8slwUFv?R#?%aA+jm>rcj{WTwn{_}AVme5U5rE}q@;r@Tah7B%Agm?)AN%Dv9Z3N}egGT(__cES( z>Zz_*4g-}61ljmE(lGcR{@eH3A)o|EgTN2=h3XFiaRk%&H-dBYkYbTWFCBt*Pz+IB z#eZ*UE?c7LdY@4Q=pGCM2%<6yYOPnh1w9f#7ux|C14v?y_&xNnVvz(`^F5OQoT#jz z(u;lIyrG)wfdDF`2;>pudH-d3gssNS&%s1Z;s&c4QV=i7D7jwroLO(7B04o54?-}*f7=Q_{p6c(7 zA4e(rd0ILy6_Rd5ss>^nsA?(|xy-U$2Xk_KH%p;tADc1ejfmE}K>5-&mS<^$$1wBP zk&?*6ZOv`{HR;(T^q0RiFIs@!)*c1D>B#tZtJHo@xL*<)IZMvr(h3Y`zx=^IuW2>5S@&2cYd!mwuLAbdPWbbJas{zZe^cXp?a@W3XjhY(PPo`ub4Vx{i}YB z3KpnzFJ*dmj2Bh|l~TWhxjBvj+oqaR@H|~E zA|rf1D_T2(Ah=Ok`EzCetn5AjMwFt+Zft_#I4dq-k!>wOIWb%m&-H1-b2Nws*D9;l zM4}t!c*Sf4CB|g-bM#c^0H;7$zh`1)9n0!l3MLcr_Mx%!z3(MdXPF88l<&pLs+_7K zgpGt`2$PtN8#mSLIW()n?KB*idUP-Ce(estLkB){o~J=@3kfZ*>>vMmj_N!{Y4wy1 zGsyDyib&xr8Py5D%7kbsRYJBh=PBp*yQ=PdG4`Nnq~PK%0jiedzHDiVFx`$d2irN& zWOxQEX|Sv4RK&(0%=#L#)W>SN*(d9A_B{t0GIx5~8v4hC%=wln zO-#@EDmO$nL`e}@>S2p$0faviO^MT)=yVg>iC%=r*_AMj7Rz^ep(R(9Aae?nS`7NJ zUwhtJ{!X`Tf}Ue6Z0CsHUsbp2uf-Mp=4j?`Dspype%oYo?e#3&FIHAH$$z%2aanOE zb)K%2T4BjnktK-Y?Or76cO8K}#u|E`nR`N+xw544(fa1(7*Xm|h^e^qmsQF=KOp_v z;boOCBQ7Jd$I})pTu^Dj^J$reNvHe<-Kb;>a++in(`i$Av6hz|4Pq?xSD4HDKEvf^+ulvbybBqwybGo@3y8QODb_C@I|SQ5urQhSl2PoNT=)eGQ}AlM0$)hc3LD7S!%?Lm5h8r0qtyZ?6YjrpN}D;XTad; z`fc=1T78zW=C{6bxwvU@JP>uH*6J&3MSF`gC%D9N35%M8_6fI^!g++~7!|0LHMT#6 z^Z`fs5J}4d3TUKKYG9Wj->SND8`_^S%ZIVDsxCG~PRQvH67yMQSyfG{F?9s99B+vp z^KiCyp4mef3w?|$x*0oGpp?1%RbG&X#ZXa3=$@sQoU;n)XUBXFuI zIbSJS=|N}q;-qGfm0tNiQmLlIFNkTG&ycyB;G6m?+ZkTZq-&s*m;G*Hydt%45QI}f zdCFgfl8v=a{2*3V<)R`in4pj_b8i)9o~#%+%4NM#X;sYI7(=#?^r`9Jzki$C9*VxK zMs?cGt0NNW$BIuD5+hb#M4ui63PO=it@VeX>Asj)I9jXVq{|Nej*_vP5@@RkI#H2A}0t&@i~G#sI4ME2Y3V!0|@hdcAy8M8VHdW z1itt?{)gZe1A!`nTm;nE2Kxc10*FOl9{LrxG#6C(Fb`Cq@&~|$uacnRfjNWD3&7!p zhOj*XT2zI+6$XNTfK40|=8O3ti1p_N=LDe4gA4yM0pP_PQ6)t$n^zYGm__vkl}u0@ zL7l|5-*;YdEwDZQj%_gye1>2j^T9a=C<1^4$nePl>>mL$juT=`n8)V(!FK?15UgW6 zRFeUUF<$@)0BKaha9wadaXbJO09z2GLiNk{thyIz`&zp1^&7*8E_mq3>M?{$Njz5t zS+?fgUYSgfnO11Ss_%OTAA>uv3}?|wt8FG4^~az=qZt9fJyK$eg2u)|!m`f_f3DcKR8KEUPT9y8X|I zN2Rr69rY^eONUox!A$@yrE|j zwkJqXK-dRB5I_vq3HLY7EqW?p6@o;Ezdm?|aIP_MZE+vtdZ2O-aD_wxDA?$q1hscd zbHV)paE1Bj56r;>H&khHEkWl6W!wu5VS6MxkZ8egBH4rrBN7@oR#Y!>pJ46)j-a># zFawl%W&xgmJPWutkSxJE0m`sf7e=KO`$A#_i7tR@Z2NuZ6^R_2Pp~ThNb%pEf{*#( zIPg5+xdedp$pQ4DgL2%ze}C7s(YUB+~fFhU2r~e z&QV>36%5WLdV#Ti_|cx;M0dP2g(}PUcx-6-u3gq$Ih(Js!qO2C>n}Eby>O5ow2kh; zV-yF^NSH3O%sZyus9#vTTXCecsB{h#17l^epJLzejbtUK8kPsEORKXs8re3Hn+)5> zyp(_Todr*6IYfzmprX9ub$sT)gyQv1u}i2As75YZF0``>)bsgtCTt6E$;9Pks2=^S z4!l|WQx>ZAs?}e7@oHgfVZX6jvm#L&AfL}-y9p`upRV*)GdYFXtBGk_rGlUOzPxNt zr#-<6hd~hh6&5(D#@ey0)M!@vVGoW0f+G=qIg$FTy`+5}ROKOTB#L%JzY&1E-)EvB zF;Q#YB`Sqi=Lu)@N@qG|iST-?JLRj(yCI-r=C?$oJKnK&$G z+0ILpXiq5aYpr43k zPMH?pE-SzUamCQeVNCpx7feL26lVl$_VV@V_4njgX6hOe=UC?LwUQKCCF+`z(}lRW zeMS3}(W6Ia7rboDbBVQfk01yx_2(mZPR?U;y

H<#i)+fGB>P4DAbQwYGYLRd(+V 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� zo7-}eMkX0Z!hUK`#I2xFC?nqA-1gA?CnH>nq?QcF)=k+4#$fW@kb9b6`CYA|JkB5_z z1}z6vYh!iu?6c|HHQ>1=*Tk^&h+c)dw1SsuORYhK_AvFwgJq+es7u^uuao0V)vZt7 zB&m%X0ju<(^eF72)d+HZiK7HB8U=kS7cES(R5TA-3^x(b&P27xh4yR!)%^(ghcG&) zr6WB>D@q7-HrT~I+b=1^F{D*bPgnlCHa0fu*hC|s24>i~q^Ygxe1YPAB6`5a>m2I> zh?;KQJ=gYU|2>%mKxeu!HJzyr+xIsP&lMyWCj#Cs#}*Daj}VZnKrOII2$Q^3YND3< z=M6)>al_i@2o3wJb(W$1M4ZQwO5c&~ySER|$)440A7pKjd_L@Sp~W}qYdvT$f4pLr zyj76+nQd!B*+UpeBnEIdIz z-1*YAycl&qH{sSN$|4o}!&y%r1Q-fh4tkbdp!o9DQ-szVEMLeUFdoxN=NjsY9%|{f z^rJ#T&IS*@u+UwoVYt$Iy&bHLlA2p!DCiSO-%rrI937d5wT2Q>JWmSj+gaXSIW6FU zFjOX|S0jiYhD+AX9q9*1QF**3$%_fEqT8NY2pao^ee$;N-=4_jbNs@uw-bQL=16>i z&6bDHIeEyoLAhoo&T&YQakp~RBz~YAJTZC;#L^eJ0I3SUXo zc?yi?nmm5V0<8*b8it)@Y&5J#BM9R;WVmKV78%7l&`@G+VhqBOZs;lGW?KTkF|cKs za;4VTAl2t5JQ2=jnNFKE{&N><1#?2`Xjcj;zN$#gw1KN9sm<^o+#aq>w6KyLQU9<& zNv16|o2!rU>LhbyJ!QG}^aKQ0Du7moGcqk5EmN4(tkG~@JSb*1%@xgEVNX93{6t_G zXd`4|l+e7zF|Bt<{N7r4nElQ9#h7??oH;fo!`9T+bg2X}UAuITGq%f=aFC{Md2>H!1K8X_n{Q`lvI$iWt)Y7S4*lz?deMpV5Si` zsq^7CyP8K+gq8!T?^)^j%%052;LtR3;b+NVML$R1v-JY4;Nie@d|&1aP_$TTST@ej z2C`sJlnv8CYzPbXaG+x#Nmw*rHvXgd5odWBBIe z+qtD9GnF(==-S;gF;H;#EUMV5=OG)Aq;{poiwI02(tl0XPB6(PrCPy?WSwXKW9EZw>Ip#D5w5-(D>Z`C4jwo-)pC1`Mc=xA>FOHyKI{@?rc0omdU$?FcoqWQ2Ld3uKc%!g-6nD=>>2Mtle64 zX#q3s0?D_KSp!5ruzY>fpAFBF&WuvotU!6TI6tusg^3M(v8UyTVqKWJ<0DKym8bk1 zOR4d>n`cHN(Rrf>d)3oSN9r2V$Vr0@cHH#GSWZj@{@V;$#dcUrT5k(msrlkQ4+*6I zU0>t*^!W+EKA3AJ1l+6{wNlsM!3jOi z{MSK7k#%`2YfaRJJe1orcOlVO z=|mP;SU3x^LDZo7{(Ou;B@1~DfPHWuD@pswp5@1)CU{-Y&*{hO5f(i4)U{b7i0}c@ z`0GSn;`{bG8MPv$SRgh0F7D6oj7sDrIf51_ogK^*_HF!b0)QL}+!|IGRsa)0i7kn` zgqb6n+nVR>dVky5e}DTomoR5kUv~1X8&4j7dO(c!ymaU$2P4xhti$)VS}F;CP+ylU z3I(*M7f8Y(^&$CfTN*#)cFwXTY*XnYI0vQNYzJ#!$!(JcdcI_^^?lhA)rp|8!NCuq zxUvk(CRxsd2bn#x1_3#f8gNFq+M=~p%*Vz{3W z*$9X~DNzz*4>N|?Nf8Y8oVfvlDME{l@j6c=gP}5s_WCCU;p_Fa$snLgx1}FvNKY8v zxn=j3F%idE4g$Yxc`#n3Pb^2mAj@N5uJFeTEQ!q)I^l_aYunbVTy(!8rJNg7bWIfi?`5uINp{)zWtE!Sdmd(bg6}121|i=J z`|@s`n`8wUQg5fKu^iVS;V%+(3B%jvPkMLL*FcKTIgZ0bd&A)}3SR(&O4K(^#$2;; z^Dk_rlp%h}^W)5o*;&F>YfFDkAbcjwk6^JYQfe70S{C+XKfuRi;fw;o90K}*O`@3ojJfro z)X&3^A|qM?;$+%KcLqL(`S4g=t^8aHXcg z3?=sWQ)=Iz8|pkIYPNexzrAPkA6|KD?8NJ;K5ZAhX0VR*TML@iu|3!)f7d_S_entU ze4;90ygW^RZcoobz_Hz`d#25Lno1!R9ubIZte2<{>t8Jqch~#LDzkq_`m3nva~ff4 zP@y;8!gxnPxwCB*Ax-H%*g;PaAulF^2{_%BdK3{#IY{0ZF;OV_c>VBtW5>nt9i^Oy zfy5gn68|5fd~4JWL7#ruJu)#E%lBn2q5|C$lQ_>->io(-i(Qp0gxT7JjqHJnle(Gc z39k`_q8*pXKO>rYKr5QrPdL-Ck* zH1K5u=nO-rcrGG9w&Iv-A>gKRO>kALPi*4ozN3x(j#=DSbZsW3{!*g!nKeNwbA{&H zXP@cFTtix4o0o+tr}%u-ZC%@jslx?U%KVYFA8Ov&TuWv2ARx3nUG?+|hQRyqdFCU= zWTkxAR@#gTx)iI4#7`4-39~@)#}kHLsrstW`CFU5f>L}b;;8AP2YWDHgG7o%R%xw& z*D!2?vF7+!L8js1Ydo{Ort%J3<<7J>T~AtkQ8>kR@~Hw0^=DfXLo491xZ%9S3Z7rA zuP}e#l5M$NgL|$jqd?e*sXIEa9~VHs2t(MJpAIOZ*00xlrk<4>?8n>exMh_3j}emL z%E}?<(8lm$fcN(m!>=a|ciQpYo1ftF?uzb7AMf{Z!$0$sHY?Ukfxoc|^5*;;Gj-qU!B7J_}TH`^qNp{}4@4^-+E-kfc|PlFy3=FzvbwOpW4-3OrNC;ZsP zhn!ABDW-?@3R1?EfJCx(Jlmg{kEu!lE(C!K0ztO+Z4+F|KZZbog$wtc!;yoWfZI_b z0^}zw!igys*`vH(0*K$S@J@689hueSmc~}>MGB%+`L=0q)A_;`a}=s26KWVs zY_mEqUVm=>veN3>LRVqNDI+~4W+QGxYN3qC#r1>hO+wpjYm|3ctE8xqoNjHL0YWAd z)rmW7A|Tb8xu?YKqsv~0=7*J{-7C2Ph93t6u~gk_1^1ZymK#T>52BYjo@ z%?k=29`AWQS1N7g-_kFL%%U;$KBShDz{6psd(USa9tjJb8SNX)KR^OoE4wNm<6@TK zE}j>ENbq1@4fhA=n7!!>QR7XZ;3*50H*q=Qtt9jzA)F_Jd4qZQ5--;-%?vCoJJO?2 z!*T=>c*YuGC&I}Tfq7wM7jwDUrb+|NwJ0#pB8v(oT;kTI>rsf$fe;IA-{-YT3?fTF zie2%c@kc_=9fluXAa##T%C=-P_iE5JRE>Ap`}D@xG^rU~3b(UC z9-w^87iKc!zTpx(cm@~!G{RPn89i%1x)BIRYfvv*>nui7=)9UCgxp>~)Hr&$%vnbg z7yjh6RgVFQznR5o-M|6;Z#m~tBS+t|x9NQ5`xLZdKS1-s7^TW?{e;%~AK?p3WmD4} z5GScnkjrFgK)5tdMc5w?)*=EoIRc*=8yc+BZD|AFX$WOWID0@ypVm1&DNsZ;FkYOC zuDCZo%;Wo*z`Z@g@Rw{DF2Gd;33#!rh)lIy1S2O;;%kCL!1v)rW3oN|ga*ji(zG|& zr#6zn?P1}EtsPshR#fJ4n0Y&sF-P$zA^fPs?xijBxCY%BR?1|E9eY!S`2n6t zgjy#6{%8jg-@x{XWBIHGath>xjm$koR9NOjVCA^Mp4uZH6CAx-0hI{$7~27Weu?VD z?2-utVH!HP)N*@#81YJt^etOL=j}b{mt?=M0G`U(9Mbv@0NN7U1x?B0B^*&|r9Lz^PKvgp}Lrht`{gpf^UfTtG_C zaJ5=7-dD2rxG5Yw!9!tnxt5O1QcXacez^AvrtMCwcE|Mq03ZNKL_t)&_MA6K96i54 zt#2f2;zmU1tvxhC%fdG^Z@*jr$G`8cT{rVW$DWJTh$Z5I@It&fn`Y~z4m*H*1M`*} zg@}CK1$RnNmFq~?bg?oam5RP_-_=CXWNk7~l5Wa2UG9Lqov3h+eIKlPsA33n?f3w8 zm~Kn27gD?zu8bIK4xkgP3b<)M=3Pf{q1O5vmIq=u%G!Md0XoK2CD>BJREC=OHqX#X zCzCbFTZ1uzg;a>H2kM!Y9Oh-=*%roCg~wg3)>)rFf82Zw1$Kwwt*LD4G9+ZE&L*o? z$U&kcyiY=8UI}NuExi;3;NIrF^DVEdxh;JY3HZFs<)>S9XwSY#EhE&Mf{D(c0mK5- zw6X-T!{T#9CEkmM$4@lX0hq^@Jf@u(Nupt~)HG+DU*Y%Or_5>%x}zbiMD44GMyq4f zZ1vLI6N&{yrb=sUG>jK${gBN>_`3C2^uDWlfJjS_$fo0-vUywcBoK6FPUr8p)i=YF z99FiO0RCzBH`i)-MS^_}i^=2G^d&43NQiT71l?c&rkV;x# zm(%&_)-EKoJ97~@FpJSS_L$xnm0pR*K>eHB(+gP2|Hm7jnQc|Hx9;8g1+CoMx(m6P z7O`WhJv~QP3ZyOZkTQM77e71FdE_oz`QO@+zDjAh0d;YK#r;`0_^1F_8dlJ6Zf{

(GlX=eVsV4wLptR{flh2aScaSz*KhGM)2nNAa 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

A>F!{mZ5d$+jKb*tl{ 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 diff --git a/rfcs/0006-cdevents/README.md b/rfcs/0006-cdevents/README.md index de4bc43c..fd7dcad4 100644 --- a/rfcs/0006-cdevents/README.md +++ b/rfcs/0006-cdevents/README.md @@ -1,9 +1,5 @@ # RFC-0006 Flux CDEvents Receiver - - **Status:** provisional +This RFC proposes to add a `Receiver` type to the Flux notification-controller API +for handling [CDEvents](https://cdevents.dev/). + +For `Receiver` objects configured to accept CDEvents, +notification-controller will verify the events sent to the receiver's webhook URL, +check that their type matches the expected type, and trigger the reconciliation +of the configured resources. ## Motivation -CDEvents enables interoperability between supported tools in a workflow, and flux is a very popular continuous delivery tool, and consequently we have received many questions about implementing CDEvents into the tool. - +CDEvents enables interoperability between CI/CD tools in a workflow, and Flux is a +very popular continuous delivery tool, and consequently the CDF team received many questions +about integrating CDEvents with Flux. ### Goals -Integrate CDEvents into Flux with a CDEvents Receiver. - +Allow Flux to receive CDEvents and trigger the reconciliation of resources based on the received events. ### Non-Goals -A CDEvent provider will be handled as a separate RFC in the future. - - +Make the Flux controllers emit CDEvents. ## Proposal -Add CDEvents to the list of available receivers in Flux Notification controller. Similar to other receivers such as the github, the user will be able to use `spec.events` in order to specify which event types the receiver will allow. The receiver will also verify using the [CDEvents Go SDK](https://github.com/cdevents/sdk-go) that the payload sent to the webhook URL is a valid CDEvent. - - +Add CDEvents to the list of available receivers in Flux notification-controller. +Similar to other receivers such as GitHub, Flux users will be able to use `spec.events` +in order to specify which event types the receiver will allow. +The receiver will also verify using the [CDEvents Go SDK](https://github.com/cdevents/sdk-go) that the +payload sent to the webhook URL is a valid CDEvent. ### User Stories - +Users of multiple CI/CD tools such as Tekton and Flux +could use CDEvents as a way to enable interoperability. -Users of multiple different CI/CD tools such as Tekton and Flux could use CDEvents as a potential way to enable interoperability. For example, a user may want a Flux resource to reconcile as part of a Tekton `pipeline`. -The Tekton `pipeline` will fire off a CDEvent to the CloudEvents Broker. A subscription that the user will have set up externally, e.g. with the [knative broker](https://knative.dev/docs/eventing/brokers/) will then send a relevant CDEvent to the CDEvent Receiver within Flux. +For example, a user may want a Flux resource to reconcile as part of a Tekton `pipeline`. +The Tekton `pipeline` will fire off a CDEvent to the CloudEvents Broker. +A subscription that the user will have set up externally, e.g. with the [knative broker](https://knative.dev/docs/eventing/brokers/), will then +send a relevant CDEvent to the Flux webhook receiver endpoint. ![usecase](cdevents-flux-tekton.png) ### Alternatives -Certain use cases for CDEvents could be done alternatively using available receivers such as the generic webhook. +Certain use cases for CDEvents could be done alternatively using +available receivers such as the generic webhook. - +Adding a Flux `Receiver` for CDEvents that works much like the other event-based receivers already implemented. -## Design Details +The user will be able to define a Flux `Receiver` custom resource and deploy it to their cluster. +The receiver takes the payload sent to the webhook URL by an external events broker, +checks the headers for the event type, and filters out events based on the user-defined +list of events in `spec.events`. If left empty, it will act on all valid CDEvents. +It then validates the payload body using the [CDEvents Go SDK](https://github.com/cdevents/sdk-go). +Valid events will then trigger the reconciliation of all Flux objects specified in `.spec.resources`. -Adding a receiver for CDEvents that works much like the other event-based receivers already implemented. The user will be able to write a yaml file for the receiver and deploy it to their cluster. The receiver takes the payload sent to the webhook URL by an external events broker, checks the headers for the event type, and filters out events based on the user-defined list of events in spec.Events. If left empty, it will act on all valid CDEvents. It then validates the payload body using the [CDEvents Go SDK](https://github.com/cdevents/sdk-go). Valid events will then trigger reconciliation of the resources. The events broker is not a part of this design and is left to the user to set up however they wish. +The CDEvents broker is not a part of this design and is left to the users to set up however they wish. -Example Receiver YAML: +Example Receiver: ```yaml apiVersion: notification.toolkit.fluxcd.io/v1 @@ -102,26 +88,14 @@ spec: secretRef: name: receiver-token resources: - - kind: GitRespository - apiVersion: source.toolkit.fluxcd.io/v1 + - apiVersion: source.toolkit.fluxcd.io/v1 + kind: GitRepository name: webapp namespace: flux-system ``` ![User Flowchart](Flux-CDEvents-RFC.png) - - ![Adapter](CDEvents-Flux-RFC-Adapter.png) From af44bae62188a1a1e9d9425363288ffcc248db50 Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Wed, 13 Mar 2024 20:15:10 +0200 Subject: [PATCH 111/154] Mark RFC-0006 as implementable Signed-off-by: Stefan Prodan --- rfcs/0006-cdevents/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/0006-cdevents/README.md b/rfcs/0006-cdevents/README.md index fd7dcad4..e7017768 100644 --- a/rfcs/0006-cdevents/README.md +++ b/rfcs/0006-cdevents/README.md @@ -1,6 +1,6 @@ # RFC-0006 Flux CDEvents Receiver -**Status:** provisional +**Status:** implementable

A>F!{mZ5d$+jKb*tl{ zo8@o z+_-U~qPS73x3RlMX2(Z^f&%ijx5L_9m-j;3$iNKZ6yKcQoLZZ_+MkXt2Y*s{evHzc z(3jcypSVN(V*9oa|`KUP9qE zOo_jn?1^9PZ4lXprihP zgv=zx#;9^T4k)^BUDU3YBD?8!pamnvSR;iRmzMq+UK5d}QxCLNIayy7F_ZkEDpbN! zP)Wv%VJ!QTn&-qr&+^kCd(Zo%D2>JcbteWh7iQ`Q?V%8*xAWgd>`IBnwHu}hC{d_h zg)k=kZ_wBd*LV(@b!rMn)zjw_fqO~*viY26foLsANULfB6}Mty_`qtyxtv*8l?~tg z+k`cR<2iECEDKIOH&r{kftZ#1PU4WDCt*t4ioAlZ8trRN3-4cenibu~rHZ_C0vq`+ zdCcF`+!W$-_B~fpY^`2u9pI|J=d-?I2Rt-*)^m~TXN^6}qajkPvj``9q+hWULa(oA zFG_hwMqF~Ctq|NNGapHl$dCmH6 zK9yE=)Pp@lLoAgZUrG<@UK}IheJY2V&Nr@O*L|6;_PXEYkU6kf`fCq`khZ;Y-AMd;x8of}^SPHcoGNyj(t{ptld0*OB2#070FFQ0^UPo5b`J zHKztVRgJwrhi&HYDVvqc_LbIsOt`cr*Kua^RWuQlNR(ZK=-MpLNW$0Qz_q{nWVF9R z*1LNNdyau{=qR&Y`$k&+zY8G8y);MazavEll?xpY{_%OaH8Bl1)cjofS)$GRvR1&h zG+mj$@%>grd}7NI`kjfq+D~qxbe`vfmy(fz+$54Zme0+of5b@Q^UT#S_&BKMdQZTzV^tc%_O^Hg6Qoo`zHWnkC_iq3% zDL@Z-=;Ett>ROF!yz>wSQG{)sRX8siJC{=5$5%iFYrxKdDs~g2-p^=?VEV0A2^>?W zp+b-LI*XO!$(TdM?rDRg7X^2R-`zxZ2%<=Vo^(~kk8e5e`Oj3HYnm!J!b}6_2tz1VD_&Bxjw1B`x=YY(jWJTk=K5$D!!fnJMdRgN8=(6 z&D4v`$G~!AYCe-I9KUqdAVr9pb3XZ-sG}9+F+$!^`+L)V${wvvweL=avqlN2k5({~ zUTyi5I?uSEQruK@>p*{IU>9Y|DLtP?F^e6V`r+v^pOYlh$Yn$ujJfzvv$nCteqgad zrgO19K-LroJji;gT6u&I~P z*XH5VX@%i2l_b;`xwRntV{5RDQ$Aekmbr12yQ%SY>au+|*)3@S-sHK1<3g{+^8U2D zKigykOVqgyAW&jyu!w5IyJW~jEX&W^hwhz7zAKc>oWCGS*DBoqhOG2U(PMIGm?WDU|9L0&N0wxt?I6 zw(_~&B6qXw==d@C)8713HYf{ZYv6##Kd<}U+7AiT6hdp2P6j3Y6Xvn)Gp;Vu3MLKI zlzhnLN^9xk#%gWsEIQbyoopRqfTp!jl3X)`Kwn|~DkV>9&)0vB-s1wQxfpHxSRU_k z`fJ)ZW@Tw#j`v838)mxt#~g3TBq%N&Z~~`HZ#Pau;z-UH(8CRyJvi$x0T__M!s&#n zWUPI@e9JID@*>qGZ#r9{K9aw{i^cT2mO*ogs=7x*zwd^iO#07|92gT3-4f>>>9t^Qpzdto&)&ggo zWu>+@8pjr7pNGwlzKi+y8uB&?A+QH`bV2ua%_=Z>DyFfVNM|yEygk~lkeJ9CT&c$~ zL&rmxYa100VFa^4eLq0)%ab#nV@KY_14`#PU;=z+UPQc!V7O^3z(f*h{LqHlUV}k1 zm9`2$+MJ(C2!FjMqR{#0q16l9@ZC=GL6n-GkOqDgl@p7;(3kv(U%(4>!J9J01XWCEQ7$0gV+{3@g6r++Av*Dv z&I?bRZ06#oo>(anW-t|lWD;QW!lqE+^L}>1ciE*~rg`PEXuR2bU;XlpRF|T$+bP@o0Sro$# zQyscqZK2d3Q3}NHv0p(wK=5?=+pp)WNPrf@0sQrk<)jjXU1+XMp~$i79}#tf#@_%+ zS!Ja1LF+gXPB77v zQCMg;BjkkA{AdSyg@> zV;@qvma;qo#WfP?s|%C7dUrW+{JPlp7#HA4z`mN>D=D1^7rP1{KEa`y#)Q&!Fe}jR zdU8YRn)NyU%D?SuAZZrL?Us!o5b|FCC1=fu_WLV;c)0cY5hv)g1=U93@gRY8?(_F5 zO#k~o=A<=Ist2gw&k@zO5+tiw&(QS8hR~f9Aat44@+7dtjEHrl=EYw3rL91`#Qp^B znKG(?r~}VP;&84n?Vt7tBwYv4GcOrWVNI*-kEHLI$oVRD>7Ay2a~?&8#nx#^jsqJ0 z9(J`|1rOC{50yE=`(<&jAEUucBAYr76UWZ+-i^;hj^|6Ct2^fpDn4p<-_3zrms$ph z)w@|@qHR&Db>3&T#H%09a9ppqu9!d&%0`Kz!J&WgNa#mNO3&rV$7#oho!&pY2Y;Of zrVoP+!uJ;e&ngRF1p2~cD119rib;LWhjRb8_VG8n&=2wFgJu{+0EJ-n9KIpCk+AA< z_S{2-Ab(vtSO|n(2b2LKih_-XC}f|J#JocJ`T~(;v}QLoV9A(DyUAJkgt^ZBiF*wE z8d3PYTz}YV&)h6+3hw)1UNMhUWj#tCof2=@6-i@w0=v?XqQ>Op8wn-)b>jI{^~lgf@j8^8M z-L|L;OHp6p#z15o;+mLDi}Yx8qh!VnsEOhDM%|}k<29IG&L|uhb5xpmBAhI}F_P1p zV1O|lMRD9fJiLa!iA4TbSGpDJL12;d!?<1`qP(h%+1JR*VnV4;6&lv0yY_4TTj?eS z;MA%gA@U(GS1xz)>CB~9cu0bhbJ@24%mi7t5z?i)=H$$q^@*%6sbVQ0n@<%y&ZO|J z3(n7}y;bHEZ%w?Bax_5KZ*;w|){(dX0ZGC@3?eC7O`Xfo@b{dmgH_93uZ^xW3UC8Z zz9`HnbQAKxmbMFV)A9L*O{j?*F z8JfdRti*qhgLP^hK1#I2s_PY_EK$S)yEtd}6ICp*cj0gmrw~6TWmeX_F{)3409{kt z;Wvgb%ExasIaSq_RjKm+7n*gK8WUZ7pA6f0JxA!|KY9P(2~kIWIl+ecY~Js3Yxyol zj%Kh}%R~Nw0o@pdgerZ^iKTZ{KKL7ow zwIX%#{JIm|d4G2y3-B9&Gx$^2;@>k==Q^B^%dshjlpYS3RWt!Tz<$o*`JB<6zO}%- zMer_RL>?ND;b?VTIMPdL|EOglRQ!|TsLl(995JXEIy4|&MheCU4F!6V)eu^JtY<5i5vycu`V6pkRs^44)4l198I#D?z1K9Ha>jwAL9hj_~S1n zQ#7DYq}X*0tpg#+KNlJ9HgsT}X1azDObwUjIUI#V6Ad|lZlJ2lPV+9lMSW= zSQ4#_sEY^hi;%y0zv1BX140?K?A-v4hLj;Edctjc!?vf;?M=JnSBJEcqCGi69=4T^ zz4O30^~N;f&XIRb)#_hti)-&M7NnK@SBJqd2mL10_rEWes88TVgz1Z^;X!U`!~xqw65H0$qg7RO9g|d2#KR&;y$ZlhWwC(Y;OG=BwYjT(7VZ}rcstCMY-B!X zTHxsq^0XhAPI?9}M<6}Cks{S3Jl!Aa=AMEI)>SLhblWaW*o8C9$gQSIx!PBi*mf})%@Px%Iym$tD`H*t{zit&-lJwT zjYDDsN&7y@F&{JRjEhsWOMrLUVj8ZzQ!7r0M}k*FjI(O+W{)kBE8E-49smsLAM)hE zYI}36Lages=KELydf4~S^xDNP+QKac3117?*)JbHfwLTbvwdB-d44LC!n=x9+eHaL zK`7~nblHnx;SLTgBpWe+Ii(5Tr|h6+T=ecWJ(EUXu3%^p1ZaE`tkCpna`Jj*TD!k7 zxQipj+iXMM)RJp$IKYwJ9a?qmC;h6P#$VM@oa#yPxjyXHLXT79mA$Qcv(>#UQU@nz zojjQ&qa6*cl%P~b?|N=IlN*HB2{r1kl+PPoLmmTAq#*mXUO~TR{pPRAgd$Ky(gf{+ zMbKJWS-X2v(db+Qmdy)#6vmevGfjT0z@A&SiyIbG zBEGy7y{VDr7-;5?=EKB0U)1(O18qEk(dda4!K*6J@QB&u=bnqjq+iU}GO$dT0$X9} z_hq6DKfcqpd>q?*^--zHHejt`ijrM&OuE92uQ!zt*xc4xda9vasAT4WY6z)anq67! zble@FRt)`F_dOegXGDFr)7O86%oQG{Imy>~MFIs!4qFila&BzEP*JBO|Ix!pb3!p)xul2<)cD?|!hKwRD`D;rg5 zrXS}*175Asyw_?f%8YrMpX6E;Z@AJ{k7N{=bHqfWU{h3xphn(kSwloquiMF06E(OO z!5OP)kKjX<(I`cuchg~5!n5v4?np62R)Npr(>><&;i)Tuw*?``{405t62vmI1pX8}dsBoMbrGqmXB}}q6=o&4Y zfdYh5VD~4Hn@F330~&_kQ-0nJ#|||=?zRt`pltWJxPKJc=ojQ_`fZKUIivNV__Uhi z7uAUflRv2p%z5pJt>guaxj1-zTUpsaM2Z(^$Q>x7{RyKU3frmqQHz9v(nlSWiStW) zDt&48#kkdXO=6sK{iZ$WXobi!mpV%h*~Lu5{xKY1DIvD^r%Ehaf6a8x{auBSH7i|l zC^#Bs#lgFHI7%M>RCnXwa3EF+PAc}SEbmuIq|UT+{fAiUvge_)j7z3}QPCs!x4wyb ze@?~Gqh)C`ap;)Jfqjqv@(XNFHEhYG_%uN0$v^K1j10F%w8#BZlU%H(o~*xI zvJDuOnE~kaMAZ&6l2}lvhCQ10_lsWhm4=~BLrlP2>nQVZ@1UZihkv{jNOGmWQW}6)Y1g<{4pode@l!7=ELSK zB~rt`Hc?P3n}|8X=F68pfsze22^qcRmOWlk1+gD~ zIMj9&gG(vRuy`iO90jreUUvTlMow1ZN6mnn@8kC1GwuQ=}=VdM`V*A%O z@YOJ&5rHjRh4MW_&%8C42u0^V3(||?5T9XgqG7$uiO4;j(9i!3vItmoC$t{m-HbI$ z!jhq15*>H}a4pKQUJD;e93_4-aog@@#@)83yrD1(=!T7IaKt5vt5ZWim-w>x$*b&w zuT%T_=5;nR{Lx9z>@^mBLZ!zQ^ld@~TMd+riQYU|_x(Ys!NkjTt?|B3NZ5rHol+L< z{{iMe8NalI%a?X0ngH-Hq4=3|D>12dIw+=**?)g-?O11BqYoWtB(OVx3`Urn!}VKp z-mrUr`T54ve|%I;MYX4LZS2&3lr_y@0qw5f_fR=k(b-KqPXBVf#Xix0QDBn?}DzNav<_G_@8Di$h==icmn+*oN!e}PDX7iInLwz4s z9I)FS(Tez~Lu)p*^u5*oJ~EoT?Iu+g)J!@**x0u$@wdGEKU$sc+R&C+ zxpA!}G`c)m5g%VLeVgNLf4Zap!|oR%WhLXI+m!7d^z?Om<;6Q@*7f{7*qllzShFM;$_{xYg%cuUOSYGEwg(9FGOM1z?6-K9K)@*sr4rTfk9W(`brCxc_OkhcKI@=p0`qofhEFK*n-<7krH}h5EW0%B@ zFPlXk75W=f?@QJn5|z9xh?SXm!Bhbt+cVI~nM|L{p$Z~pUP-|;%?X2^zAq#j3}DnN zjEyVX-3|<`_P6wRyYYi4UU^|9MZ6-;1Sw7aFo)cVH@3JIquwOjJNS|98``9wRp{0m zS5j*V^0x6er{1*#=>&Ktk~g_xKhFA_vg@{dC_}cqH}!VwGE-bQ z#w#mOBYVgu2EO3Fp-pOw5Sub~4~#{}rn@)%8Do+B=!DXpf=zv&c%=nXgMrL?KheKd z(>#hr^9!oRA7%$LYlgnu_&2w#yl8T)B3`R`UuNx=zjA-Nhe0?xres`fV%bh0D4DO4 z@A#WjYx1XWvj^pQW7y{{gP*N>)hjP7Ev(w+fM6i~r74J(4}7xbc^UEtELbkuZrkl* zlgbVaHub*H|M8b^=hsZG%-eR%!HQxJb*_6NTAW{M#+A(!%b&Ql>9L>veL z{$Orx*~?F@NX#Mw+I!g6Sexsu4j--UJtv^&%})=c&pdX=aT|WKV%^w6Q*aL$d8VPV z?4hT-5>o?#CeA|3-0jL%I-wWj)tm_w&Oeb1-5UzSe7()&cL8N40JWp`=rvq2&Edm6hocFHwL55r|r&==Z4lt_7F}tg((i=lmgkxr7XM zqzB@+sZzKm>&v_P7Wk6=(tuYDz@KW;>XNgL#9Rd22M}Lj;@6GHSs+wQ9y~E;>ersF z%Q{m>F-jq^_+pHHze8$s2}$xM0Le5|m0iC4%Ve1OR>(egps<;n;0Q z)fPAvpNT{ZHLmX50h}lRtD>;^-cXG0srD`3GRFJ1 zGSW?8f31k1i+!%o_WOk5yhy*^&)ylpat(R-+t63q#ZcKafz0>CULIpf+K9Kn2tF<# znm}h*{0|W6=Y;gvt^0wMMI!<3t2AOnuUUI^hx=)pkYS^Uirkexp`udSw~T1sN9Kv? z^qOWB@p80g%j4LXb`se=!tupfuXh&|Ife*V8GqvgdaQc>TDy`95TOzQUkm$e-LZD} zor%_;g@X5o%E7IjiSq$)d*i`{A&ospx#f9U{4*fS9eTbpSt(Y|ako()?^Y3|m%6+2 zl0oTD4N*l*Xwl&{#j5rTOIB>&3)M3i8wwF^gz0Iqj5b|-@T zQIq!4^M9>=y!UTEdEEMo>h}Mvv8HsiZ}h)2@flrrGy?yG5g1KI{|QgZ=q~-wM8GAZ zAol>s&X*s1_|Da13vVQl$LqIJeAK=mVVn+Pp9&{mu9D4^k0^xzxJuCxXFI{cnTiK7 z%Th&A^m7bQq9_2f{5A9oRN)c^NH$jIXm@Tx*O@pEfOaM$SF1pU`|(zT^Q;`t0E0yE zcST#2(ihE3HK~mR86IylrbPu^p8BG1J2JtIMqqK>u%c+|=Ta<@)Iao^E$!HH9HKdx z5Sv4#L;bGDSEtHjS-u*9Hm2Vxxh{WJUztQ;0a*VvAlfGs$#4_L&eYKed^)gqNquec zC#|anCP6lPG6Seh#x^EzpgB8GFf&4UphdRC@@^QrW!;HJW<1u2xqePf@yG7F+t*jb zO#T88?iZv@iq`0|C>30SAinY72AvSKwWrQvkUh})H-^=FoeY76o(i#mHO4$LXIk-Rj*7-`D*}8FigUQwtG6sFjZ!*PxpidX*`BBuqPYZcZCE2Sv9SSh75zxO5q?orDUcdVToYYjx33@UbM zf74hyCTDTcotQ=zP8P&L5c^7F&6qdbm?YW}8B&>OUrSlGFggU-gaj)snv%O+|?U+v-(&uNI(3oDa_RGfF@@2z`$08tny`i#H5s{Hc zuBQ+#^hho`y0Yy3mtK0w>zlgkJtDNCp}OQ&mvH&qWY~L7$5&2;)s%5y-$z5|5#SSZ zs!B%aneO~|rw%88y;)>kwldzFw=%guSg2&eeiBaCSC=nWOBMkB9)NTJ8nd+xOxwzV z-6ZfY7O{&PYsWmN+f?sFmf)xyO@Wtd8?_<2SqSfHoECQ?E;$wkoInD1Z9TriIEj@; z9Q4j<*s16%x6RJP`2x5j7`R675l$=yO@P+#6f{Sv%IZ*0+Kc8#7m($Tg=jmQN3HWF zmwYkeC5og}_2S}^Qr9XltiF2^5Wdn-8UNig?R^zK1(yO~HZz1bhU&Je21|ki0yfTM zdK9V4-M1WNQw4@TNLQ6So~HsrEVBTeRgR;Ox@)FAaZrRz6)e*)u2Kyj8a8KQgNjWdruH<(?WCvmVcjK9^>2OerHxY5*PFUc zP(BN(z3~fM4l6M9$gIkV$2MkDaAAA!+i^k4rRjvm2(F#;v$ zJ-8Qe*EJMoOt#65sGSO9XR&s)-gSFwPs{fNnI2f{1Do>rCpN5r22 z$(`z*r+r0v1+gYYo-~=!>OP4r5tQ$OU{b|6!YX|0m%XQAzy~AA17SQ>wOIS|bUy?n zqry(j-Q9U(uxz0OFcp!nRb*mm_m<hl23iP!%#< z4nU_;H1gZ}ZHsbN1|5l?0l@f7dhNo{a>V&w0v*i+E8{EUzn(oC168|Z!%d(hS0CPM zn4VM1T-v_na3ng1EnFVM($4}frGA7Tu-FQ)SkqWrHsYzdv@>-D2#?98OD|N!YPbjN zR1h$P@Jv`>2>S>Dlq^Y~G}OeO)gCMmyPq%w5i!k2))Z}7)}2zTk%U3o9ys&6hMI95 zxnoMzi14MxqxV%oRL5h`@1M$mG4SY_Xe6@MPx}i1;CEzbvic^5y>6|mQ#I(b(lmRi zz}yikQMYw(*++zaDngH|r>47ZqR|D~Tg_mTn(#Wi2h3Z92y5yp zCjuQoXp#Zh#e`5P0UQ7Ts}U%sD5+XJi3ClArc1<@EBdHNqpq(Bx;1bEc-Y!7E&iCh zM`#f#z~hl+2$0{zeD8A}zl>AI@8vp;EDncPiOF&5~z;k6we=hI!u?^wVK0^p10 zRh50*wXuk z1&$%$gdpR$9J77JdPTY@us;^zj~i;r?^Z;s*Op!;Amah@u4$|(SnZCdqvuEjDj}o+ z0FKpHmp;{=ck5OIP}esfXY*xu|=?3?yg1fwb zbYUR|{;gUAX>yDL-!nj$gr1|WpSUx1lQ5?nrSYgJySp}O>9H%aJ9?PXa`_QfW~9fl9re}}MZ;QRL+Gh^)ETRVGB z081N%pj?1^=hl?FiAt`Ii*9GYKgH zTRK5<$GL7@feaNcK!6Gnc{S|mbLyo871_bH7la9;3WNZ_91;l7mwywn zNJxJQ`>k>@Ow1C&pP<3#>!#)UuykJ;WIvlV=Z2OeN-;Ga9uFvenL)Z&(WT*Yx&V=i zm~Cf>AS!|;Vy^)-ch^@H{i(IR=LbTxfynsQ29;YQwM#pD&H}-G*f;0tcZGH#08mCE zZ-fN~M+4UhEMZh^u%WSL%=d87lE;cwc_x``5MB)FrOsa$?9UK5 zfq6qW3|T8~dx&EJ-=n>(!@(PBU51%k$U^sC*4@C+wz+1z~|C08v zs)=GZA;RxNrBip^u;h!OATzk81>!rHST=Pz0LC(4uMRysHO>wl8nX9*!M28}ap&{c z+TDART0_)V#n0BHb*WB-IoLe6cFdo2ytBye9?CO5_WG*m2 zr1yxW9liS^@eTl)Hjw-i1nAEy?xa1dM5c#Tv}jm)HMdW_^$c8L0LJSzT2~!!ch@q~ zWdOK_@=9*eKE<}q)LFv38 zUor5pBCKB@Pwxyx&y^WMhdeoF{keBO(;k~TecZ1ALBAFj3YV>uv7AobLo83%4SS}B$I;f6x|Ts=U-fic8rlFU)50jzf^r2Lmq-I7 zE!Z`Nyu)p#x5Y#X7YO1G5%Mk#?=PxQ8_A0_sg9XJdTmZs$*b->Dbfux4uHx60!l`Pi#Ywo*}dw{?xNccv5RowN@F6mC}LKZI-DwHX0rZoleeC-aO>-3^z~>2MkDaeh`?wv`pr0xqet;y zh=3-eM&J%W*fUZ1WegTAavpd(krm-H1kKXW)6Y#H*?t$v3=qoNx?zvdrCo^=L2z#Z z`lBX9IkR&*St(fvm{MfL{djjI8VTtXV!U2a8@H@0wU+@oO{}#2gR*0H>Rbt!fFN04 zRobi*?beROY$U8!Tba;5aHNt9kZ!Cg9jPR%oWF={*HBY>ntqQ`cs-BRGxe{k(EAUQ z-}as#0O1kV+Ur#P)G06$cmkAGnq24~=gi~-`2|~izp*CgwWqye9(f)!PXLkE)0ylS z>ZJ(k2qZgXi@>O>HproC0+xpT-RQEg_h_q=0w zoYLdYad+>`fcZpqb_pQ6cz*S`b~pL{JXtAGyo#9LsjDd)@f3WbGga#WUrI>t)>p;v za>w7kWj>O3j0xnjIWtPT+_KJ|oj~AwfF?hJ(L0W=%6Bxk)~=o(Akzc}+1NNd(RICH z5${e>T6b;vqiXY`1CRw*MGWqj9?Uq8&D?h-=cBN$@%n3y^Rd!}3W;&34D2 z6Ig&!VM)Kc`n~2|Chd9VL)!#IpEKJk zZvb27>|B~q)l@K;0md0*avqPmz7`k8O8L#qoNTBmyIhxP?6SrA3!H2e!)Die+M&IW zkPWX-WibR0y$-B=+E7zAVkM>PKeJvc{Grr60NAD?L~fkssF+QLuyxL~_|sbG@H{vq z5brSqwo$--tn_P5WQf#J2`hx?lg4Q!Z@4&hBo9HNYRfj?3chwsZRxwYWDI_agpt6~ z4Qk7xED$kpC<;C>($CtR*aa9428Q1Ym#z~;sS-WiICAzFLbvq+(Zm24|*7Znsq)yR98UdDug+3MQ>79~l zLJumy(uZLYD|d}1euV zW}`>nCV@p-0MPAiZ(fb(BBt#-}B%` zBwQ9Ir!FQPsqZ1V!d_59@n)sl=X!);2PFD3{H!aG0H0(0oXHH^koDVEn@wlwk($$fM@EebF@1( z;}(fEq1YZouWv*Juw%;+0_NL>;4Mu~wGs~z?_?B6v7i@U6K_#^rc#oG;S@r;HbflU z_gH%|2*2J~JLbW!lc}CM0-6DU87VGl(Mq;fu?2B&ucU2R=k4ilmOK%hHy0;&lw5lunBZncC6 z6JhN)%gayRuys$Q`ri@rL{^p6VH&cdm>JANM#98Ei%$MEiA`ta8WGtrx2EiCn(I?|)%5_`Z}Ky{R2E6ZJ_F@Z@LNo>cMR|lgWu-2s{d0oNLd7evxu-jfFBK$F|{%Pfm)|pJRBD{R-%#H zP~_wK>ayD%TA)cinm2{yIL!LZVIS4fuHFL(WFgw%#=2nz%wf~}nIf`kZf)6!GH9-k zkR~~FF(S<|@$w)DP7#4J6#Jw@*1CEQV8J~jKpQN>78R`-8Gjv#9~0nC0n*KiRxRu9 zZPY$BU|OgBYr|fSTMTAD3^>|kfu0O|^%UtupdHEJ6Lr&a1(#)SuPflv{2LiyV|e~s zJ5omgK@A9x-CAS_L}uH7Zk#v0__M9A`qs|g8xh&BugVo%G@iotR1eJgO7YWi3jo_H zP57BLgOmNN-{kx9STsuC70cB?nadlh#=E{teP}Wk1aLYC6eGft5{iG^%i5XHEy$piK$2+9i~vgY=oD|wlSOawo;q+w=74sGi0Riv;8S^N#jj^^=YHHzX) zX{d^yqZ9szKiE(hFN$5Q*LG$oepNWW+%R@zeUsxIG5yQs;w(8qdPdwTR;4 zNBDhU`RzY=Q38C=3csqzcXlYN6!s0OlImsg3>I4~R(_{WO+t7aAopem%`d|q)0|C? z(d7O;vB4gK@~7~6c>MDXl~FHxpP|TubydYrXn(Om*&hjqkfBrA3=R!O-V4C2uCFR~ z1v!n$a3ZuT3Vyt`7ieo|;z|LEH&(~b&)u_=-vx#}jKLS@4EMLX@z|X_&RVV^gs!c% z0i1vmOC~HVgkxn{N9sgIsS~m1>zMfZI!RuJgcBmRfXGx=9Bz`6zZJn^dj zCJ4)W51&2n4M5_Cs;_%*|KH6JMz=f~fzb&3Peouf8U3G%^yv5e(?y{C{N{Zu%54a+ zPx6)~YF#xr5q$p^0{BZ^bxt@%>7c0~aWbKrYC^KEvgFYmQrWv7q8uZ_AB^> z1hI&LA5yliTtU82Cw@7Kly@O*hjIs?fKNBJ`nj8vCEhuayrdd%aO+1!$r*2}A{Ko3Ca~%5X znVtPe^y!G7Jwb#Nkzb+vr6Mg+h}>euES_6aveZr9+Ea%k!k&V*XI!+bdEd}Bp(}Zq zWtm}+$|4kfSc1VGpGfK6`AqnpCMk}J$8-=8ZD0n!p}P2~kulNT_dT>$m2w}{bD|SZ z64;wT`Y;HZ#h8PIDC*_YU+f^OGUv--|E?yj%=Q3gd~R-Ssq3ZHM_XrV5d#-zht~eo zseg9#?gwc10KuprKda+ZRaPy)cMZaQTZ?Mt)=yq+8K%DfX#AW-i;$hqWWZMf@pUS= z5{}zM-%v|&Ni1TR76bvmj$QjrL1M!6S%@6Fgrc+OOailC%y<{7P1Epx>iC}kNcrsdH)Eve7(zU-kAt&* z5L%FQB`+0$DX}PCru~sy-w<0nlQ#llwxKHSP}ZlrhNk+Gz6u3Dt*?&%qOE&ioc666 zqNP@XS`msWQ$WWKq1o9O`N|4(}fU}<||IpDj0nR`$ zf2^-AcD)i@F{Zv@%kKmhuk3en{HyAvudG{qx&*0QVzkTY~_2WflPG27?FZWIyQ zr6biO7<3!*YKZ8gusGq0QyIP;gx+kdjo<4SCt{B^i0gz*k6ur$UnC9$L$d+6uK?uN z->EK7xpA)v8ajl(``w3cZ&|cxk@FH=(vkR)LEN=?Rs1w9{weCuRt_=g%w1fz*>)98a)KC*wwce3OTSw24V(5oa@fICfRpcnXZaCp;#2Z^X6*Ifi(h{1v8cCYXzl7d5GB|R5DT(` zf6(6;*CQ-&sP?CWpMAiszbaXsQRQX96`AVzt)VrG{%#R@+k;rqbC?deh$E33M7V2f zkvA=BBEXpjqc_!66}bJ>q&pZ)UP1uHY~ZSs?_Ii+Fh8`z)gQ3((Rbpf{b6`N zw?1E^uSX*=8i9Y^2#hA9|GMXHbkF~r5h%al*Wa>&w`el@tEM?6c?Hqi1?aPes*(}< zoa<>6nWWX-uM(Y)>IBC11V-S8!qA>gul=P?vfJ7d4MH+WO*V`TT9gv?#%jsm8-0Am=56vK-U7?u6Y|;+?OXaq z&+!=X<_BWW3)K!4U5F6ez!2QjSUvW6M^o!eEkuHuz7N-Hk6;)s6{kUjML_)L`pUAF z)~?*8XDVwh19*N8qwp~im)t*YNcmvA}FjNNk zHI-56!k}uf5$`gk;Oh53-Pt=`{r3>DUs#1x%3fNwV)IOEyoCsw*q7futmyeuXQz{I zE(&|}T;Hq6Au3D+79Ied6P@FXpgFpcZ0R|{&~}LJ-b(4c_r<3 z;<*c$VG0uceQTOnTX*VQwyZI{{OC|Y^5c)AdHIvi6Oidq%DYA>hOT#U(B7f_lJ!-k zBZ#)rZ~<@zAidsD8GqJITE9r`Z6a`l2u7{t#dB+ONzu}-Re)2X+tR84uXL z@OEYCN16~I@mN6W)FeeGj(&jON02WVFfXK0yNR-*76OeZ@Pr~$ZbEF~Fh(|hU?0ej znpy@kReKy&Oa}lHbyX$H+~hGQ6m*oL{9%u>sAvy7M`F?&gEYaSZ0N5k%M(2W+jXW`i$}uqV3^QIl}y{7?{TX-CiL2z0PV z^3!m9ja-l2y%!0~)W+)g*}BY8;Bqi$fy_T*v0Q1m58c_F+fu{e065j6^O5F>lq^6g%cYNHq>D ze?lJ3V&K2bt<0&Ux_cq=3=nz?(7X-cpA8^+Xd(~QPc8l=Jf0=($zzeY-+(C%hI@GR zyFITQ;9z(R&#oNUEo1$kfwlKFOdsQf#@u!~dgmg@f(&F9M#V%C%^VA+#TY(B0!VmB zYZ-!z0JUu+=c5^3Ukq|I33XfI7A;gdhKBE}c$-?-bZf!D-M7#j1qAPl<=VKHT0Fb5 zGOfivXAwiPDYWn@3(5~d!}}qcuF$6ExsJgpY2(jRgx(0e8TOHD?`L0U-?;)@YmsjG zn$6JrQ;=ZVz#v_6!p@}$-Pasa4Tm6!IugI^{B>2>2~qa}t@VGeEggFPtPK{5A-{lw z8^fZ3ino!_KBRr7K0ab&k}yoyS>g3_Ys#)28TX&}>J8SnvCwas;66OXQ*IufIk(zRP~%VVmb>1-z~TnvD#p}6D@r8#N8 zlkrHs-3pD+6QMd_TW8`{0Z9GBHan9SBS03ZNKL_t&u zAd!$j2-ubl1W1BOgM<#DtJxSZxM*f1Th`2+z1DlJeYD5Q{eF0^E6-hW=aDZynDLY| z`<%09mH+zvUGO2HTDW|I0$as+T}vJ-_X4DSQ7|SL{KkVbmULxLCE+6}wDYG8n%*nf zGR6h>ozUQF1z)%>aS&Xu64+ckb^DkQq))P!iptyqxW&u1mbP!$iHw;pmKlMb_tH0o z3NeFvRK^S@?$a4fO=d%5f5f3Y-?)86OELIy1V@|#C?9! zXkOQDuahV18Un4=Bt@m>D2ZsE5wO<`%7yhc+HDk;Qy650Cavz+fo2jBAmL-oJPL&O zD;bq<$q$S;k_*=Q8Ry7G15Pvs-9?=@JlmlEB+DW)81Q8Bxf_`FKehC^ReC!(3`ne1plm(ZC|Jn#$Rbs!b$xMW(hIN zEaxK0BT9Q7x;-rI%pOf52LR&xdY>%s?mJ8qJ57YttFwM`*^53IK*Z04C2Xim6=7f6 zEdsXZ1JEMhDb+%V2pt5#h$jB56)ra@*9+lXKewsfaRfRx6no3i>r0PqNqgoDLvTc8 zdGg$Y#$cZkflEehcZGy7k!(0u_lRX3y-il^N>ZyC#C_uL#UQ8 z->S-kqL(PjdIF3MRF$=Ax5`n#2~V(W7c1Z?vZ7K+I zmH8=C5{~>!m}M*FCOgo=qhb>v9zPj%;YEJ!*GlhwG^R-`a4ZNO_XP%51Od331+LbF zsm-Z9@I*jZ52KRzd05YqPtvS$FnCVL5~a9`sgdO^?5P#ftY<&WXp& z3GDo>4UCrYmYkwQ$&9V&a(A78QI(LgL{@CEO4xvV{NEu)NUtgX1v zzvr?pwJ6~IjG={ohR4muQ0W;W60;~P)D}jczqGTrnZ$|!j7}t|MLSDRcVzamNY@F; z1AZ<{eHMEs?xC}0Z+ozg%FzTxgU6o@l@~e+Wq)R_$^moL$(s@%uTMx2G@HP@W?A<1 z;1Kuu&YFhKL!f&!AdOy|o@Ir;QfnIxh-?sUgGAr4p@cCouXr$%%7w+kiG=XuEnU8~ zqm&>?218)()h_R|?HkHN6T6Dpj$#PrYv9$^l{p(2_5cd*^GWp5j{XUNg=P}zw<525 z`lZg$A;FoEH3&bh!K;(oO2r}pXm70ELKk+jF~qNHk}<6+sWWI!;-~YAf~*Pm1Ku{m zeSZb)02~fXzwkhir5&011|gU>NGNszZAaz^0Q!cY-H?0Zw~J=ZoN1jj8w#_;5moum z{+zn*2I8sK%4LEBeK8twx;6L=<-%f53JxL{>B3xMt(xTlew{H-fjfgMRS0x{F z5S^0vY$T#m3FrBa){@T5v51@pCY^aMQncNCIN`x!WletIvzBlfdF4eB2CcQf2%7Wva9aM~hFjtsmNSK*cY`Nz)Odv29 zS`-R^?)M;|Xuce-B)~;#OQJ~>1Dq>_1vKVvuf%YB1n^maWI^mN{B^JUyRf|`X5u#; zQ#Imm{+tYY5#I#_Z#7nJ0hsCg7=w3-aBCt?FX{RV#$G^_3X!lT&cV|m+8=|#_sdq6 zFHpH~w2$}fihwh;2oy8Huhj22dOY21P}dm;v|s@5_a+mi+++*(?I0fPmzVsnRUPBH zj7U3%1$Z$Q$f;`KV-u1zf+qvuX36L8_p{{@%~vK0$d?|H=C0kyOY|r~`IRRRKdppi z;S*?x-?Q&j3v(|4ex~=t@{hmRN@63LgaMJ@9W5fc`*CIOg!EsGLNIGu%h z0+bK5E4x&SuL3o;gsxG=iXP8kvG5jQ`EV%2%lTI$9LXZfy|409-5d6MZ{@ll-Sgbv zwks6EN76qyRN{3{(I-T9S;-V`M#=~D^uU|?)(*nW%YybFxmGuH~?1e?d}btcjQXE5j#;K|6m z+QUntd9%W7A$qDfgVvEgjRXh8z>zBZHF05L(itZ868&I{{Y`csLHNE1sF!5Xr_aG% z!f>Q^p<b=oT(S7n(6w?inTDr| zWt|^%aG&KXdoN|?9drHpOFiM%&CUuoB5;YfH)yhG=aRJq*QSBiVaDqU2M;0C8JsA-+`Bng0mEANjr=+qpk;tRcFXIN_ zH3-9xBo;Jj_Yo!B3Ig-BAdKd5RbnWG+?B$Z1IjJ*fS{+^*XwxTtXAH!@x={F_G`96u&b$aZ>^yHCoyeDMaI-_p1>q@qDrRO4;()#N1 zD_kJlm1#C;+MP{ASI@yHSjPk}l8^$j{?<^P{PECT!*$OAPeuzFio<;p;#N`j2Rack z&;;JweYlRO$TmY~rj>dOvDlp;_N9i}(UDwwu+ytW2odN`i2Nl_<~~AtvA#O$5W9{Z znd=2%@lYD9`?v1(`=T|s2$&!F>Yg4-HoQwph;t~B(IO=X)6K!*VD#6YiTS5W7>4Z~qJ4@)Ty zGX!G44WWM^fcP1@k0Qad^^=MgJX3{uClTCaO3I6CuW%|sJk9_<F>C+6-ehl)k|1ER-UV)oIa1$Y{ z*IC^q9htKc;0Q}{l^-W@K(mUGHzUgCH>#31%qbQH^*CV~AinJHm9~zxwE&5Q%isR! z)hAzh|11=Fd^j2XuZxF<-+6ci{wG&pI2rw)T>atC{vTa|iYr^TVlYZ2f*AK0l37p+VJf}|MpOyi`o543w4$C8C6pubI< zoV>>`n)792+1htsqq!csSP$1G;%b$$YUd9HH>-&~Foa%q>CE7f zZb!iPJ+aWyV1Y&e7q&)(6;RmxxmL>oB*zS&dCyE|slnmZgJ77V?9xGeP_{v)5#DF8 zt)usJAU=>l?okP=b~=PmeO;gS!KnARL&6fJgnGLR4V?1*y*m3@DJZY_DtcQ-=1M@Q z%56?w<`JA)Aw5BtE~bvICEQapZv9;^2ZMT81qeye`a^VM5KAjoE&<0@NK*4npSb~lT1 zjCOAk=uzz=X@V~zBgx>_B14F#?R{h7ShxZa<2HnriQA_>_`EZ#-zOy??eU7#?+cks zb3m~_*f3WBW4?oh{?=(bY`Z?{Oa_+#+pQUBp_dCk)0LhS3jP3)mo!vYI%^U~cV_2N z7#|oYv{dgrCii)_&Z)sRfM!lZ^{67{)&aK!?^Y^jV_l`QAX?U$zE}WvDW~N5D)Dn< zYQarf=!jrUaA<(Av|!;1Bv_ZLPR;WW75Dm;nJTezAs|}e_#!0ED+owwsv=OSg^|)) zu)UqxW=+J1Ozl7+Y@NBoR_;292-z`}WUp?hN!{Y^=Z?Oyq&6@D86@b@Aib?KbFToe zYOJYr@@=L1=5zVmg!#|Y>niUXy3sBByniAL%7u&G+w1CVXRG#W+#>D+#VWI_m*-II<`$YumK|B_T+O%8cDbPr`W+3RjW9Ebj zn^m15AcsIczd(IFqrG9n0SIOn1k-^ilcrUdwSxM#uIk%~ET3fA#!OIpKigalAs!~o z?H=0ZlC_UB)i#DF1M{B|@#})QR$rWmsIYJz6ktKaj;Yrp@-J{e&**}opnlQ_Dn#ou>i}xy1*49IvsWR!}^-!T@jT!I9s%!2mGW@j$9&TGUtQP zwhZ#Dm%smFRiH6?DZCSY`#Brx!*sY5Q&#`XYK^Ruj;E)^WEI6 zm9;?F?Wos5tc42p1V+0Xirk>dw!20?>>W)p?VfTBfL`^Vzob2Lq#@kN3TFh(%UVd# zbIKg{kO{^L^JfmKrE~ox$D5MGqxt^aQ3^(~K}mOD!?O{=SeCZpxmPl|t~)d3g0N*~ z)mZ13?0l3Fnwa@-zSyPvmaxngf#pNh1Fl#ITmpiDDcRJbN}xz;kE1m?9eDkP7FB%= z!p4pf=3je-ii3hp%BoU9|HDE}@}YP~b~+&($71LDZnV3fI?~r8(l(`FuPuV9K3Tsn z1i^76rn{_q)K3ma40Vsu;tq=aL-W0D?=iwJ1@N&)&pUSA=FJ1YRI>B`Xz(!n;lnF1 zyaNBJD=?gl{--YI@SFW_T7ino9y&+>Z$pGV(|67)RoeoSBEU>LTDvs zh&~SZtJlI{Oq0$(g_g74Rz&?(0fV`S{9Z%#7XL&IJ`r$7l?|%IOuGh4J9~~sqy{Ve za}6>bNtdM=fL~TZq(62|%ouo#L9zq!@|Kx{)YxbqmbN3{_q@MmTW5L}0DdbG$M1Vm zsSA<=xfB7F2K$JgU5(bt%n@+_r6R0KJ@63ZbVT{Ep(aWo^jHD#T!7ehejZls5n^Pt z`%5M;tzLS!yfb?e1CA50X&>n7j4p`1OHf{HtWG`XxOfVmG0#EuOpXz>Z|;9Qr= zgKzLb^^&gisc2;a8fy2QiQ@IgKms-?1TDg5EU`TqY@JhFWpTg8_pV*-Y}@u^yUDh# z$+j^y8Ix^uvTZjRlRX(zo!<9+&fU3Ow`={^T0eZB=Rw4r9dFzs3KnmH42fcCy7CV3 zl6U;`+z^doLFBte-}(#B?=lcmAJ$0a#7U3=icqpPt;Z@BV?LYA8R>luRnpq&(k~1(D63{K zG&{RT48anf;N!}f#NmW~>w_9OXFHX>z@URwiv}SLCy$`Rdp)T$OqV9+-=I8ET`0Vs zNiovf88Hh7D);}3A3M}oGyB>&o)TpQfmOCNmyq45T#3o%bv)^MN62;?M3Pe_V^Ap4 z;9b5ZPdOE-21r&a?wsIjyv6DJvRsrEdi^U~U`$>ZUdc>;0L3W!eH~q~6I=0IV3!)j z%evi`q5bm)0$w|Y*XDX`bla?v6R&qr#se%Ud>9}D3ifx*vjtRvG(a+Qqu|SziUy%4 zAGO{^VNy91+_2)VLyBu@c*fq6V9>2)dqS|Q0DvGmH2RdfbZc>?!cPSp=72hoiDk@H zOl1pXN@Q4Q)3GM~ERoewc`lzYmd)mfY63yJ>A1=+Vr9Dec7|WbTv_9+z9pq-W zhYc#xFp+Hyy|r|E(Pl5S=W0#&*1?9)g9KQF{kwjzj;X*#NNJV+3d}F`j||);E zGV~%locB5EVEZf3bBRhW>@l{%a21+&!48@5b1Uf$n)&80g!wqo@z6-&bwyZm!FpM=tufUarVN_jMt7*0}w!Qo3d zY0HqExQN)ORt{)xnw&^Ow>x)o!G#sRSF(oEdg%a^4C1r5mT4kZxMAL7yC9v0ms-(t)k*z;_?d(!VwVS~+|TywHPn#LoHIEZVTWq+ zZbp+?&F_6L#ZMLD@CvwIJ3da2MJR~H)#6sOu1nI|Cu}#@l%d??5mfR*4VPVPYXn~J zysNFQ)P#KFHP*cb`t8$eJC_2g?5e(Q9u~)kJJXZJP4}y^+YI{_Ty=Ev{UX0TBnFHo zZB@>!76atwOuZX9O1+5Scz;QfP{MfUS$HITA7fh8n2i2@SPoO zmcSi*>G^`MWAimR*8N|?0$*i04|JW)DMtXt#QFc0!sn}QgmWWpcfN+gMD|hRQKfto zWcKy1e3YMps98~8;5ZjnlGzLIFK5@1J1Ab`cXBs}fHp@cla2hyk;>id`L z5b`Kt_lD6N>SV_)t;(k0o^@U|TsE6x3>Og!Tkyb%#G2F}A>0SK5>`)dxrCZQKnj+l zeT7noHH8JJ)g@4uXsTB&@^GvmN=hSUrxWp0-B)dlfjq-XYw5oJcuO)+qt58;wrIM-7**-GfL zOTr-`AML&Gb+;oAz^v*#cULi=^6r=FQOcZ*;(@K(Ds58lhw4R;qQ=ky*)`=|9e4{& zIgx(a5t_{Ouuv3Dyb#t?p21vcnm~Z!BSgf=au&a+YJWw7!q+H2DoZ={845A>3QK62 z6L-^ba~^A`>88TsBa+y%uc~y#uq_pb9rz;-4_!a#a-SsC4iSO{jryYjk#mqv#e+Zq z&!^CDV$xjyb!~Afa!#(&-6o+G3r9un;p=7`1_D$lAH3K&+K1d#QmLl-Lj!465Ls=- z;#RG)8j0v;M2l!|DZ_6xly)YPmxIOA8}oNB*)^`oFCw$O#@yQ;GU}&HsnbiO#<2r_ z3owj7T^IXNuA3^X7DdY+gIK@4F3F$s-Oko7t*rcDO3eI-%6;2SL#XY&hWiI!)9d(Y z<>RRmj(pN%2}M_9#iONV4;8dY%;WGP3Y4arP+hSmLxYk?CkO2^gt*pTx$@Fc?r{Yf z9SDC|3aRR1Ul^=?Pk03MpBWIH@o$D620B{E^Kx8eb=B`A#@75WY#gOdbR@<)23CWl zc3^l3#g_qdX}X7G3u)Gxa|L?4e1eL8iGma?-1xATwg8N&S#$LVEhyt%D&$7Tk*jn0 zNjHCsDGw3xr&_=vfGHmfImPPiybB}9BP#Q^8=RQadw@+kiV>Htamq|vsBE4_XjJf^ z>V1-IM|Se^7?U}_k)tZBwOW*+RVmOY2kN6l7_GREYyryXnAt`mk4+SAz&4qipX32a zXrdg`6Zl(yYB_?+4i10bo{gkN)vMS$PBO>Wk(_N?!%%aVS7L|+*O36N`lp8aL!#h& z?^*3gOLSV?I@5Iv4IMKhiyjrg3uzC&IfTm!DS!*|-TNg^BIHq#f;>t4nv%I| z;cO7%>RTiP@vPLCoFr{)Nj{ZZN@FhR8ZGrdaoP;k*-^t%1(~k=ndpB;Q+}X->((Lj zeWQPp9x(@heC#}*Lfkv@0aT448u?X618NA-L0RBY`tUU|@Tewq-ik-u=KZe*k9KpO zn0PE(OZljV)QfJg@LDmWqrajFp8A8fv(ptQrDpz>h^o-2VD^R;TojmBusN0(duIoM zlPOzNvv}Ej78v#bW=sBsK(D4ymP@Xo0BuTKUHg4nmG#&I3Tca)+Bv}h^4o>&qp-|m zBTaOPW~qS^UInY;Z-BI{wRhf*ksP45oDGN?Yl6SUs|I%r;d~JjwV555v(O*w?rmo^ zG1jZq)GC@}3{#&_C%MZh-Km4l6Cg)dEE#W2hD!h@KTqnnUT7L%R za4k@)WUod8&A9q@GV;;(kAKc{p(s~$)0KZ^;=k`}|0cJw0T`}|ia7X%iFPJsien2` zd`%(Jsi7q)Un?8-NRIP=EPz11JGIfZ@I>btNs70LJ4M?*G$j@LI--G%P#GF`@8BeI zsRDz~%-4C^PAu^p`?6}^4Skmj+hGbhYjoUqX@-l6-14Z%d0%w$7F)DK*2u$epjQu6 zR}@ZB?_Q6sjr+|d7dRcA323SU@GIH(GX(feS_)$M+8V7VHBE07lA@!@AB4W%SrhvR1Kxq!c~6#TW__IHNSD`rQ-NjPvLRC53Rb%rMOj*A5S&fQPI zV+~wdmI(qWV&@Gl*e3O?Ix{{hpzmh8UN&VVGU`-CtC1JoCclAi!rdLysyCXbL!Tj6 z$JebUSFFU_l1`b=q`9<%Xhlu8B08#Yf(tuIaRY$)X2sPv=Ww!(elGjEVXo#cMpBw0YHwp!y68O>hjI*NKr zGGW+whKKAI^Xx87$kEWC(;N7=BZ8F|mD@_f+-+UfhP!f)nsle}07X}pf3*MGn2qBOx}j$d021n@Mp;NMqi8<` ztnV>pm^sWyKvFuqP)%PuX1?p&QJGGCxAssH%lDXvRt6&r(g-=D6yO zL)q1pMn3uzXB|pv<%fGiwK+Yzj|@!&Bpz@_$h)lqUIo|##Pc26HI^^f^ho@N47ER( zANaGS=KNDRWAPe(MJ5iko_PjX5M!mE6^ANVSoOn)(vJP?k%Dw)=E2(KiqQFDWvPg8 z*?&&t(E@ApEjUsNAe#jwW`22eGiQQ1ykKog(?+PE4I~c+=ne$SiDe5_{Xom@GwBx~ zscXpREWVx45&x|ycg=``d4);D@ae~#C_z9DFtUdDf)zCY+{R{`*=9x|GWLDJZ%~S z@`OySvhWc=#uKFcKChMXlG2l)?p~=f6o29@f9VH<5Cwx`8n6C zi#S3)8%0?h1s{tiWYWC$fus9`3c)m2BtctZb}f#)uZ)wFC|E5l46T@2=jia~K^N1y zY_55mPaRwm)XV-ELqtffxmU*w^f%y*8lLbAK9!B12t7hW>!%a zExErUC?Z@~RAwij<*kNO0;v8(qqjc}J<4svi9ZjYF1jIUsP|7<9m5-cwGLj!wM*)6(gs);lU%H1t7BN@LS3yA^Ji=liNxHXn~h^SW%ZZB&Egr0^3r3Z>VT1-tcMCMEFF-So~yFYU`L1 zy5#*p*k{6Gp;sn)vKnHPj@gex37MQ7-CoYm;~0Wusu-uj!L{4<9?BTUqSCQDz^ zLS=z~>X9!cR@PT>bCYL9e`dYq?5-efcO2Mr->}WLv*Xq1VEfc~xg7NyE z!)_lcB7@g`|6AOZR{f{A%Wa4maJcDlf>KFqCW4@W2OB+(D7;NC3!?s@d-lX8VR}&a zxX59hJz$u}R&xB6R>637+LgNc9ug+2tNGwNTa!vrb6;}78;3_f3N@)jMIcxNv~y}1 z#q9gUp(q2q7P&X>Ts>Y~C$!@1?5|y-&oKBtuxC<~0S3czpkV{%WNh9lV#@{l)$n(Tkl=+$^OUavt z2oxPY_}ooC?b_9(CAYF2>?4qWej(l<`(3~OOEZim_?^rR1Nt=t@GoETqHa7NX8`pj zAU2mbMqi!rCi((qQx#$gi%lFENW)E@ybL!zl1=&?#I#yN<*SlW6w$!Ch_eP{BsS?v z2$6hjwYHz|IrF3Cq@+r5seZcB$nOG6{Pejdbc53QaAJe-NT7Nx95%GP%|Tgev00F@T( z=w{?ulQBfT20Qj7I;Xt+GqY@ALg8BgxLuRTujIy25}rMX#^{IO@Xsmu!9;IGVz3kFslazaDQ8;Nzm(T@c8JxnIgE!8YZOs*yk7f zG0kXFL*kmN$yL@q$f7^mO9JwE70sOX!Yg7&*_qGR*Z26A(1kCN^JoKl>!cwK_X5@WfGhrp1H3X@^2`gloaj8CCn zKnqdr#dfi8+5sQ2f+F5HxV41&hC!|o?ql~}Gp^rq)Z&A1X=*^@cH@kYu3X$ zk0*Gzi}~~!r~P>uU{JVg`7g6Z_%tyB87lcXuvOM#w<_6xN<{pP48yy)o9ZMo2X8T@ zU{2ii3tnrXzjFm2+$o!7$Y`Guc;?n68W7n0JfURe<@fD5bv3KzT!7)Ge40q|tE{__$g=%Hq1X{n zoip=da+)+4^l-Orl$cos5g~mHIl&(W@$%XK)E zsg~{oV?EbIx`VGD-+!mMmLj_tcvunLlVDQAoM~87r;`1V6nM8>Uq|<<==?rtNB{S? z-u;K|*)b0g1zEI2>g+600q=2RTz-AOZI%JT`jhVEi<3zK4QdyZN!Q0cd*v7FpGb_> z+0&3v!6hEB0QKI?6{RY3>)qnWv(O-f_>;%me9gB{OfC$pcD^zbemfhVmOQK;*C=JW zH3*vPEbzq#b<-5yL}cGx-oC@K#H&UpOa(tIG1kubVuKV0d#ADRYgSf=XTv9gJx%b9 zx7^E$>Z;j&(7~E1D@D^v+_BK1;eYK|eu|}9`e{C;Pj6j_?U+U#%L3O6g|RNSNGF)c zwCV<{%g4%pbZxF$EVtyEQ;I{DEH~SCpWcphLTFl*`wSEwH_J`O>*q z5UBy3{`~muK_Y_m2vu$Jlovxq62*n#*pbc1&zH@Ov}nJJTuSNu9-Z~N4$0`~?Fj+h zSi#wh0Oofoyb5$D~W@+;Km zOz9S_@bNh}jp1~RFntbWvjDUJVTeuA0Wy?-VWpJFbW}C@0OIo8PKgFw$`QW^xOIG# zYnyXkZs_-04H` zW%mHi`8$mo_|GgF!j4nmE)v9@Pxb{9)v}Bg)bEi3*SyiE{G+^Tau+NzA|kFnbGrMu z(H^$14AAwh{1!JQ%n>c=5}fEVntt-dAv@eU+$j~VZFQkPfoi-ChdSyp>NcFC4HgC@P0MM=okVfIDVoO7R20#R< z0EfE~O=KYlVOnUEy%i+Cq_h(wce(460{5lGz2~n+>^DS&k93LeT1?*sC8D)~L`nyt zzsyCBXk#+(*F2mr5-*sb0hBb`C+J>W{{2O;4`~p|dP8SARO$7a5ZB8wj$LU0J_q9l zuF8u9OPbbK5qS3gC0@m|j`8UAg$TUCO6l{dg;U9nZK}uDwS@P4EPjO!k5w15{!-9& zLav{~@R9fzV;yy`x%RW|FZ{UgIs^3AAB%7Z)P*04*_XS_e6CO`n*6>rY#USn%Ji^C zcMtWW`ExRmmbws_)LBH{^2H>3GqiW(!n%E;W8nwcmkH=7*%C#D6IY=o`qx+#{Atlc zV&rTgXA#_SgFuTmWQ^37N4bz*wepLwDNG{e^i(Rs)F&*OUgoo3iUJ%I0J}N+u&W$v zDWv$C{R8H3|I(J&JM%yrLZh0w8WCNenK2`)YS92SqSGUoO@j2@%FyRWK^i5L zc!@F=8)VW4Z3fyY$NX6Y1~0aoig{-J_`Dm1AQ#aF=E<_yPLj<(HXVHph_p9Not+Zs zX`kDmP~%wmH%;xU(dK`gG$Nc5R=WrBXS%dpZ&2>rC|62=TO3w!-HNu?u2{Yh}&F_UD#%{ z8ghF>Fl5XL_Fq(bC61gUT-71%jt9;E+H-cd%r1oe4vBl!G?A|xMFgfnfl5@8D-^kZ%H_y+&? ziNP2Z}lOclNd@+A>WgNjC$dSug=S= z{A_H#6`xsE=%u6f*hjKuUX(1SyRBEbjMTCDakESTf{y+f>@QM4U^njEoN&xJL|s)h zK*@rfQsipaK~?*P;7dT@>&M{FJqR2A-RsaM=^3_=uBwg{&<0i}V_x zdKM+>8`oHsmA4lCYe@A2oBu^xkMVk28xElmZXKjP61)1f+k^by1;v$q(5~5Cz*QT* z;LXPbrnLT+GY-ql!aif8qsGB}&8LjwqoP*fQ`y)1#afvEi^1z>z$O7d9Gu@1;2%Z8MCwt68V8X0OlGi# z83ueW)bF>1T41k;po)DcnJ)eA_5l7PXZX?C%!P`Aytb!}%dLgE@a=lhl@qxljR}dO z@Ktv>=ePOa+Uj#$>_rcupb%SEJK(ADVX?)#PWIM%p+OLu?^h0 zTTKfc(&Ny$OURmx%9-lONfetGd8iwF9q9h7Mkj-j1t5_?R`jbL*BP_wkd%>;w6j-U zkHoY!S2J`d(T-GMxM_%hDhKI^Kgg-R@HaQjtyKO9Vhx&C$F%T?E3IgcB^z%(<`i?8^N0g_F;eS zQ^yb>ThZtE4Gi@k#C4@!TmesuQ)c-DDi9_2Wor%1FWQQ=YfthmyPq6sWr>5~-c~&FW5?1iH-4*th?bCrs@Puy2js_aL;%o5O zEuo*O%di1iusP{9;gv?Q2Hyl$d{L&)R+g=7jPw^=^4j0Q?lSwHG1xkIRI$${*FFXa z1j}d{CYFO!bOqXAni=f!9vf?NHn@1n15Vkq*B+*sb1$0*w&FIpF}>}R?+|;T(PEvm+U>8H{q+^6K^RPO>6%h>z4B}3aNJV? z5TG7DPs@jGyqIZQvjeD-ukB>Ubup0sOh+Y|nIb6pUt%I5cfJorI$@GKK<~>VE}AB7W}HHNm~bqne&;$ZpkVl@+2VB2xjdm z&sBSPH%fF5fig(TpRD#)Y!!`=762F=bwmi}!yxdYdUZk!7Bs8kHfMqRGx8Wr!HNA3 zG!$AqYWgS_d|?(*V}`7uexj;Y0`AUgS&pe{Cd`yY5d_bg#q-N*z`q*#DJyDwl~@wt zWpW}?R2%a@4AxfHe34k0dd&8EWjiUXPo)r;C#gxEtSkDA#;En=3Sqc!lS3xNGwF?RCU^vY0CG4g4pp~v9&T&>OaE*YSt(K zKa*geIX@AB8{zmdf;IJ=@ngtiaUy$^gdfk%ez%zKb1iILFl>Zo)psLcjV_IB-?_1G zxO53dDKEUIwj3lWzWy!aM5Ybz4~1u^8~l3<^ghTtN=LM$s4}}NaKL#lVIcPy&QqBC zGuckq-1M*%;?fu~_R4SVW??9_7+R%$2_75*1G(vr=}y%m_|K*tWhZ@@is@&|K;+E5 z*EC<;$Cs(}ujb6kKiNuvtgW5q=<-6_z4JkJPKnayg=}3 zmBY^z?rqnLj^|K`D6?K{h;NQ(DrXe%2V7rkr>6pGrH8?@FBn3|0F`7!zB2UCDKE_T1N1SNR=Mkk`zBFBXs2b=R0N}(fY+)(GaQ# zt`vD06sN4js4pApAsJZthJ)IPUGhi>GUU1)`Pl8fp`dD?AB(_YNU-d^0k4&P%oDUx zh1Nr0q2QX0hyFVIN`(b^F@48Cww9R?aLV{&gP$cqC&~AiFKJC4rvKa0Aq44iK_CVr zQ(!MJu)d>#RY1?Z)Qfyg2#iWfiP1%zd-&!hM9%Ifwwuy|n9*eAKm5&wa3^m<=q?a9SLXXlWW@GgT?n|y7x#G@d zem|~q+D!jZ_<=#KDle%;cD-`n34J&N2t7T~HkD2Q!4vvkLk&QUV4~#A$`0iL= zq~QB?BU=lDoh&Zd-2b2x*AnNllxQy=LOwG~NByvZXHNmyLbPsI!n+!D31_&D!GP=H zrcb?BOH_X0It2kfWGrLc0zy!b#Y2gJnd-DP)8EMEJW+5liH(T_y)zri3RjkN<4Cpv zshmQ@M4P53JZMvPhL@LdHRsk8Ea`LIOIn1h8LcBr%-Z|-BsXzbEEnlMfx;ItSwqXI zw^gZb2T6Qq<&|RgfoYES(}7ohv1x31;0Y}4jAwf zZ~n4o^o)@RXWBN`2uu^<*KlEiJzmKu@{%o$e~t#^%Tz1#Pie(?L0504gSdwFu2=Mk zGEulKaJO#8QDMH2JBRA(#$$gLdR6*WUBZC%+t23ujN=%NUB#IkTs5|o%zV94yv9Yk zzzvNH6Jk&&%gbiTXJ~Th1bQmUSvYgH9c!C2v)bbzAbR6*HRo}dDxU<~+; zXh;-dy;y$Ll)NxR8sXktWFb8{9z*R#=q@%W3*0qDTrw4O$9SkYj}y+bEgR3T=JN^G z5+q{H+E!vebn|<&j_cw-8+vTN#MS5A8}q2iaXOuK;r;)WwV!0(-`?}TJFAFswO^@w zju^ET6-1<&fbk>E(fJNnfn4~qS8kX`A~?}hjL-f)>}akWY7$@69wE;U?~VyVu00I1 z-Aj%Twl!3!$lnb(al!rn#{!_|f{)|7B!H6lOJlZv^G!{SM^@r4LHp+^KU52F%UWX3 z?}O{)zY~T zBthTTR07={*hCS%&WPt`@k~I%`dEi-5OGw_ABQ&9;qr?YKJ5E?wZ0Fm~WTg%DhIL6!s)XDU_Y9Fd1wH&I-R9^c3TsGm2TZP> zjLub<97yxF14?}KDWd~sqRS!@T2Asyk^a)N$|NC=qc1Xt?$AMqyqYbKc~J4=_E6lh zV09ZmWg1!p5a+VEbUsVZ?zs#!qY%h-IGOLAG|yosi!_u^8!0zSnd=2Jn-z0H^-Eqc znoYu#Z`q5wiS=qU%WS2KZ@{`J(`7bYuT)6Nh=7qKZF#YeId+}V-c)XyA+IG;!#E^r zFzwnmV04di)WP1vJ>u|SEM&{$D}(}T-o?0HEW-N8ph3+_piX6AsHWB-ly{8mC;EpL z4BPKk-RU(6CW?{|et7J!6G9^z#B#X7F#E`v;AJ~v=_eBYUC>yW;Tp_(ip!f*&3}ji zv8Mjrm-x?MgMHbOyspP~8_8}^s!N)6>8O5y%sFLDloA_u+OlV?B56nm%x?SDGsI+K zY>a5S&F@ile}$SSfzP!MY!tt`S_+tfI|962TdS~Hp8c;EbRR52FXM^Ae$x3QNd9_Qs2RW;vKf#{hO30qk)Rsp_}O6sJpG<4tVvcD2k; z1qAkmuM-`;CVzWNf#V&r+h@40hPXpK? z*qA->?2=oHQlL9@pDoK>nr8pByNdEbuGQq%5tSKwMV75yxK6ZelwbJ-TdZkP6-`DMAt=@Lyo zKBn>&(pyWmP*7@bEIm)158c^?f zinG_dZ!6WpH#ZS+pT1xubptcZLiW^(j%s|crbgY(HTd0p6ch8( zY%P7mzf;X7v0AvffT9pUG?rx($j@iV07+^L{~HG%9KG82lhPQLt51alzLE>U7&bmM zlp>TvxYw#tJLWIhlvQrJp!&9I>Cq_J_T!A-l~0e}jr5MCWOaJZ!qTRtg8CblI?-mm zc~qB~Sf^~5zd<%i4hHLfOM}l?wC85uc{#^e&1~SO z8=pAUyzEb7=bA6Sq1JqEmaxE_<3;r^l6E}=fVtQavc{JZ{ar1zT(jD!s zwJ9y~KWJ5<*ai*sq(vgBt4q${Mpw%_O8)Gvw7k^VdiY&(ncbRuR2fW(jzlvln}k)@ zkh?}M%v9=FK_oD3rfUHtk^8ix_x3E*RK)BvNX3c$RpNK%8n1*M%uFBSall6$3!7*T zuck-QF!y7tWcb;h?BZ-E5`r0#GO>C+4h!KOQi9VGM#xTME;FTC;1#D~Li}lDE4V+J z5;&j+@U*werwO)QW9PC8hHE42u3Srpx~L(AQF!~+e&bhLHb$n1XgFJAbHbaBaE>Gw za5LMX^^9qGyvLYW=5@@y)=`6&Ki3x2Kp9n#gG(n~@PPkkd|{iF>KF%!R&ODrJ3?uB zMMHCAZ(3hgvrA+yc7)o1R{a-WcXlt1FdtRmbvlhu9qHksGX!H(1zxS;6J#&7iFxJY z&&5Yu%T#eBlfKgCj)JXdg1NMq1m$P&6*9OKRiqdl*JdWGe^N|?{q&>E39atTx9Sh8 zxjkxvN#qUo2?y!`-12`t?L5}X(UC&W%do?18I^QUGLe^ZPQ-OZ6%o_}W+|PjknjARumEU1u zs8AoOt!}%o7ggu1lJ0%yu$xg=lG?i;U&+eFPyQ6I7HtCITSnDBw2&R#K=$K^@RAWM z`SA8L#WH3k$`R?2VNK<#wR90<_y{y2s`-p6_&Vd^PI)asJf3l2$Qz?wo|9JgW)J2%U-`r8jI-Y^*4<_RO2gh=6QK*p1rIELwcQJKLS<;x(fovjLE$n;Ht;HMxytf+8fwZF~k4E)M8hRIJD zn)N{W%G_uZ89**lpgHO-qCb<)=CT_Q?gAUdaF-|LjI%^2_m?M2l=yUiX~hjx7j^PL z4TPjsFru5POzy&SLi{xP)0cg{3j>@f*3enf;C$HQA2i=nN%|`*JOx~tX=`cQhdh8+tkrW--$uW?pQ^hPx%oDy1~YE8eN}h`K?jkF;L|{UTAW z^^Y$eXS{(+g&Qyruib}sh8Or%vUBF%fx>_MMqmmhT2|VtR|>BvL^Z;Ga10IdY^$NW zH+2XTA?+DOCFCVgI0D(n$3cYiCA$>z4;3Wp<2UmSlTnUWHiqcuN)6W*^jV=ePq~!F zuAiICFE5P-8L+pj?3Dqd!!#5AIhWMsId6_84hv^oz-OeTEz?WU~ zcv*XrwUl(dA^>4JojcILcQg-)Q$OuR1sLC zz87p_UZj#1u3hE**oT$LKr`Fwu(PQs_b^ptJgUC`tGh7o20+W9r3k3WZ6{y0)md2c z6J!`a#IA@;z-}N7yaeY-%;cVp*FO_!y{5Hq(uboV2$V>z^Tr_t;UQknn^w|qyGq0Z zpHU0=D>)@T&47H-_n0|oU2P^vtOM($di^yKzR-rcJ(=z9EJwPv&uaRB1*9}~qC=O- zKn`?iuL<|-57HFD-l+e;640k`qD<|%OZaT;eK(K7PvPMitjxoYE-y4@We^1_7k6yt z9zd4pxn2pPimFa|Kss^gp^QTcYZHmbwGmHCQRK7=P8pUH8lk>yy!9^{aIKt)|Lmc8 zQ1dkySCy>y)h=o%XZVQKieiTg${GUek>eFYV^EnK{7n>1LSb<8u4S?w>`Q>YS-5G` zg&i%K?@qH_Q(5EaPCov;SzPc+K=vdx*oiH5ofY9R3|k@xfmtBp1qLaQ_pwU1YIJ>l z`&)G~O2DY0BHar|Ud`yZ^+(IR25ol^mZ_(etAj)Bl2z*&geb4UvBiRH%GfyEO&q#? zhs8avEU^m@+V5(pxFLQvqj>1$z=o#4E;mw$A=@nkvSgayHnuI8Sk;Cckn0!0A{jkk zg&B2x>dSbb#BFGiv6n7TE3-#j()uG0MhfaPR5&S&9;DY>$i-NXbawI4jLE9Q00+v@ ziTsfqK3E8W`<1~@-eOBg#&pFL;;6*2fuN`z19cdWtqOLwA2cjjQSbRHf8wW52k=-t zi%1*omy_o`T>YIOO@A995NIIGe-Z98PCVKq?F}kWHkY@#IxyTnjaCaS zE2DAAAt8_xPg_)A^!eo|r~r{L02RE>|D{_AC#w)jjs7XY2CHggwvk#}mpUdBrA;#$ zKdk6V#mEZY_>8f;?DVZ5Y6>6cn#u0(uV7zVyjzX8WI_V#k+ax>XiSN{BQj0!SiWZ(->EE0OX}l?jChdk8;k2UQN=MppccA${sL_q~wj8xbx>PS@VMOPmi( z!&8&gAwn*?WKNv85d}opVYC^nwAAeT&eR@=ubI;w7T7|w z?>s`*cx#8o4jDZ${h&L8JLK0S-jL0Al4^^JIHUJcIifRng9tIFQrFcN zF3){@qw9BS8xRb0TB#z2BFQMI4A`7xQ~tT7abUnz5<59Z()sB?ot#I-Ze>Zj^M&PF zWOMPxC)}hejC4<6iC#-wl4~(psP#{ld$t4Mk#Ij~sNxu}a7hc4(G$I{tJrw$XX`Kqp6(SzbJ%0Ig@Tf&|X z1Rw!5!mlSDx(At57sgwqbGIHRQL`&R{?VDOI~Z4Bx&9lnu?u?sv-aTgN|Wlho0|!m zK)M6mqub}S0hZ36fGy(R8-Ce0r)~jpzwZ5+AbbddDWJ-|Mj^GL!%}S#(tkADMBj*% zu$2>@0CJMRA0dO?`M0ql(d3u?8t(`++ZMZ2WbD}>BsFBqI1{hq5ajPkZS!6_AmNg% z+~|#G+cTAb8A##%BeA-dhr5;ZT@c9Tfn|&1$|0MCXMu(yGeN#KM@aKH)QG6y8zvl@ zx8fk&LPAbbA4wp-K$FMlM5;VK+Eo&@4yMkl0O^9|cbQtk7b3e&LD;|=C`e{5xgXKL zrl;XYrpX6Q0IyNlQJ+6){Rr<1Je}httD~TAlKL}%v(G@k?5XJtWHye(BzP1@S$*|Y z^#klLgn>YQ4UU!@WX&u`PYKR(ru2^2R>gdZ@EK(C87VRrw4fOSkYwWA%oYzm?%$7M zuo{C6FNRhs?5O?8L8-jfLQWf=*7wF*!7k6sjkaYh5kL#Lw;0O&$ux+n|x7EI@ZneYVd|-v$?%_U`_aGGP*!i z3e&TUu+|Awd^lG0MS7)hUh?+|CO4VH*H72gh9Frf$*G@|!-6LMx=orRMn0bWiQ~Cv>(ua-t1Z*ZvnIt)4B#4xg5& zn&=+re{kFav?DDc23}W#kTpH8##6p!8zMy>qL05dmZYZE`Jh-rdtEg`b zbWFP1tNx~#JB)xS4)}THP?IfaoQduN{8}e%ZAi=+V7Yx$<0-P;K^!e00bpwjI%g~| z*i$||0h92cc>NCmpFm*0H)m;mB2W*`u!&?~A_QhXkxqIs>_$S^BLP+bkt3&`2E`Uu5(dLFGl?PD3GfN=tb}KJ9OQ@yLCE*;SW@JDU{Uh zdAn_libMgyCki*$`$QFci;9wsBDM<<%8N!oUl9GRxy0F1xz5e-dK$HUL`bJxGVH$qnfP#lnpYaD!KUeyp{7wjkG9 zfjhN;p(0hJa7%&~5Ik8ud~2&JK3Ln{qn?eLluZGlwZ1T=37!Cm0UYm@PZcsLCRoIl zpY`;Cwe9Ik1aLy8XJE0n(0EL{w@9O`a6(YFd4z!8BL?Xp5E+FA?-MHr#EA{R=I4e& zj0(sFde@Ll7<~EZW)plx^xT)=TH!LK@6V_ZFYmR4${sgaDRPOB={q?Avcmbe0{~ZRT-9qg5Ihq>@|IxLaA@}0md>+;=m^5#s@kg2 zPEhR8^_ef2K&~Ny8;5f`wS!n((tVp{**IJj&Lv-HZ&$Io{$5yFQX=zo+}37G4B>wH zfSwK`JWthZ#oA_%<|qi)ouSt~xVg04iR)+)!Vn!O0^9Yz{~!arb9tsw{hYn!*j~Qo}S4CHmL`jZc-8ugHD; zi42S`z6b%vQX;%oA;d%XSzFh9LD@<|dl?9xh``PPknw=QQdQh_$KKIZj+T}Ja{805 zwrjkv^O}~xQ7-FMd#*+__X~GEufFdYCstkN@~%}Y1mzHLDQiW!0NB=IW;}+EBl`@{5=0(S_+KpW+Vb55%?EJU?ds+ z7oUKUkN?+2pmM>AgBjpiP4*6cHmncOGP~>lQ zHI=UG5idw#e}$nLg5O1w`Qo4v3NQN{uN-UU&g@PqA+4-w$9Li5d6_A4nNT%$vkD|Gs}2GIFL8_`;-^vRBQX9Gl3|H z0&910M>S!DDfQLmXZg?84hjo?TLijuNxXaRq*P~oPPDT^=YvE~Hq?x99UO(uB|qPD zs&d^#YK ztDRc5+CffR)sIjGZZO;_QP#9R+8|>jwGf!504A>XqBrh3Ywa1Q%FY7(`s@O?Y;|k; zLIB>~jH)<4E}(SH@o;AKgEfQ)Q$Ww#tUXIRI=NS#xz;B^{+=+LTLOXuoTOz@dN5lw z%85h`Ad&SQq%|Ggr;0YR5hr-T9(SE=+BC}c7u|w}hQ!8Vh@zZ=Xg*}No%Pk_3i(xA zkaz0~++KIyfR-c3TXoeHw++7+V@sy|9SHb{hbX$j2+({Ixqnto#q+U96$DuhUPu}{ zPZdO*jH4nODvC7NvueC{p_lWKdIOep)pn@%nkF^UER`kfzBHS zY1y&Wv4D^wNxFB-`~(2sRBu;>8;3>Q7#JGO!p{#!f;_&V=eQ_}4pZwaEsW^nlLbyWt1um$DYpi z*sLTTEQaWKi%|>Muni5*QSV@6c*={MInJ`+SSHvhmyeqL{irIpgjmbg{?VMW`sBZ_;9bevc61-jU>QQU&y( zIld)*JcHx|#GRR=*MZCz0a3p*uJgqb^&DN>p1ur_cFOj{6-uda_m~Prv7Mr7!v6cg zaa;}FiYWJe3M${$b-7wC1tDCl9oZ|cxPlHi<$^_sFfFq7O3#Izz2b#gFSTxXWI{#h zy1y-IIR0O^Vi@`4kqC@L;D0ItBgyFhRAfi?`@cQ{Wea}#B|^HZC=93Eb9&uV$t0fb zRcfEu(04%I=C4JdyS&Qkn)mxAK$O27LDtq4;C*h9<~%z2bYWgmUlVub6ix?5W-&uL z=!bh}?OWbeupzlsL>~8DLAR)E&zwyHGX@i7XK5n*)Ek>ivZck>i9lz4b!zGGKt9&m zbqXWaVu2f_2{Q#|vVd$x3l-k?QWvj)bQxIan2<>=Q=cTIKt~RO{k~ra$GlHb3l~9< z+daq9ZO_YA1h7_ZP~7!Lux zt-Laqv?(Vx2lE8^LtTWb@^MK?SQCLcMuZ83*ET56vMqgtW!^*ijD~2nAOGVWTXxP% z(Ya{tC?dK`yDQpRi4}^m7mHHA=7G$qnlOvl&7zRdJl^Mdb*{4}Pz6ZKJnZn%4O@3H zk-3$Gep@#!=F6>aO@9-K$^f~-TGOmb%*rJdgaZRHcg(6Ob5_kNcz0I;5F<7v2H|$TwRUd7LTc5PjOFy2Of8Ro!_vzz>qvy zJGK157$PsbrcC)mPC?b;s|~xS{<@}h`_YI&1+$b8@w-03a%#*#yD7h1&^%jTHTv)B z$EZre+V#%%mtCWsrd984Kh79)l1OfmSE$v5Qv?ndhITZR@*LCny2XX7Z0WNH4V>g%gxe`I62Dq(4kaQ-a-nnB5Alkb*2-qE$c67^o0|O2llFPmp7{zWH+A@;zR}D4zGy%aCQDzNX@G=WAP@X+(mZ0Pq7p zc70u}q%E_7Xq|^lYhi&0i|;}q6+gRc_#C;WHGPo)SLLcJ&QovZq3g1v`#Q@^YAfU{ zL;$)1k`|4Pa7LacmV zRq|Hki6Rmh@DO3SQ-!{Kj2v%Ta3|#`+X&O{d?0=m$lmRF)A70MJR8Lv6d_;g1@+u} z5%&>+k}wfA>-U4ZZ$~BXVw68Md41V)n4f1h(XawPx72&kDhf&A1M8h78Ba}M(rdsTp? zaP*ys^pfW)I$M|iQMZEFp^k}LD5*e04;gWv` zO)#~rI@P3$674V~itNQmgvk)E(*(QFeQQLZEnuLdZc6GmYGI+>M`C!xt3}3KyTlSe z+ZP0MljjgAr_&g!17xz+KBO?@l`Y)|1;nR;<<)h&SFT&z(s!U>t`Uf~gf_a}!^>8; zbk-8$80C7Iz&z$*xK6c}s2TxZ_6dIs@8$0!MGI@E?&QQdw0j!$^EnFLVq=;-$Fcyq zyAlvTF56gky;?!&>*J)8_hRN=Q!?13VlWD4W1>rlVYy%YJ<}$sKJNM+5tR$Tqkd7O z3sn-F6tUgviv|j19mGgsoxfETNiRf_6n;)U7}@gg{i05Js(Fs?Aizg`x6Hx4Ez}6% zMi29B>gXt{5FBelaUw$s85HJkh|n)QA92TmHgg#;kBfrnI;V=-mN^!X zzne6{B}Z%Lyr6KKqKXv*;lNJW!E7S|{aO%eQFyvguD)h2A9W5A zPOhs;ojr7awxt)N7Ep@&FVySkQ%O&I`ew1x*D$T(3YSd0o1O}REES-a>T6PW#ODoW z7~OYe$sAQst*tJ9R_&A!c<;bqZv@cg6D-|sCE7nA5)u1`3M<9k!|oq~@R($huF!i~ zRf|bz0hz?ISyM(iE~s{R*~-ZV&1)>YYxa|#X5~7%d&Jmz2$*BG?@TxaZ+Udv~jUuxd_!p|=I&_V+r7s4N3H3D<=eqH?b)G0dQxI^-Yd603 zoJZw+VE)smc-U=Sx2YXceNDv>x4)3kohAZDWC!pZ->q}|X-zLer0R5U|HAUoiNl$x z2u=0{k>tF24%hau)6Po4c!ML%YlSI%<|$63lvRy z=?5tIR%un)9Xh|q-F!Spy|g6Pcio&lcXghr?i_&G4FJmhJgfJf5h!Jl6co6t>)N~P zBIa5E+vLT&;_sr&7YStlD9;}eNeM%cA(RG0^Q-!*Qm3NqKBql>f>^0%lp8!hdUfme zgNckHjgkiGQC}=u-P(D#!QlPc>N02LqCYF!y5fz+ZE2O@()P)pOx z=TFhM$ATbTcLCt~`kIR6ewVA;x^Ez4TUSs+Ei6=O5M?PKJy%!YpB3cn&j-bbA>E~& z8Lj${ujsxJ1$ygiQkVOEuG`RaxMjN-1b(<<@sT+Tfe#8OT;vyu`g&d1l88#;J0Tb+ zI79MHBk&hy+0P`fNfSq>l3Tpn0s*dJl54bLueJlk>G=XONKD&Q5Jn-Nh_EjKwRkVj zg1P+y5!soLuk+nUU1Vc`^Mzy(1fNzYt%{6rK2lTq=e1hz5-=MrM1;zS?G-z$PkO#0 zV0YIxGTM#nFK+y;Wb7*eHt=pj=y6<2s666F9t*4C}i)z(>6Wp1IZmNN&oXa17}|6W^@ za)KV}84E%OAjZ71nbR=q&S^{6$;M!o8KxP;hlos1o}+n)l4px=sx6C(9jPj*3e*H_ z{xPe1^l$z3<19u1rUTd~>!w!xKJFlqaz{&493>HiY7r!*8%iJ7POk*?cEgld$Y$00 zZAYLn-y#FQ(D&}R&eJy#fYcTI|J3S*fIcSz2}FKQiy*EWPudkiwU3e=s4SZ z<^tHS0^bykP zws)P(0s)d4Yb`b#jAjAgk=ZW({@fWcEY*p{03HPxobP#ZJI0j01ORugt4f{c7T6zl zj|p>fC0pJ;F;jl+hpEnKh-Q}ZJrR-z>uYA$RIK*=RH6Jw7#a50V=Ru7KZ*r=$??m} zpNYqr(PZrlAohpOj_954-Az)KF=Er~sb#DEX9qb}aisSUV0SEnW>xWa_eid*(U1wO zl}`v0e-_D|2ciPlbdTpKx?^qWJP9dCi$qfZ=`VghQciH5q8nKFAG2%5EPuRxU~(jb zjS5{?YnZ{QsisjId%kF+=s*=5LX&u*Zc53kx=;0|w8--bX^k&7#q*}BGs~e=JaDEf z6t#8ElK2|y%nhcRwDaqZOKqzpybuuIuCFfp5dcczyj+1qsk*7D1;eksRju6(g!c3R z%mQCnjE}8rJ{tVGK=1>$`8^H7l;r60hX;GR8WH)gV8Wf)@=*x%tfx4*@o&h?6qfy& zVY^z@C_i1h)HV-iAYw_x(Uamm!(KPb*WV7Xf0` zaKW30-rBNrvN&-qApN7hDwesA7bOKLtcjbqaN#I=g@W*40NXrd4bq-I0|h>>9VCT!Dm-*e zYi7QRWT>y)tM`>Rf8mtO*CN0}5#_^)ovCJp@T&LVV;$Y+u)rQH_HJMC)zZv4 z$}Lbi8vb3jH{YW67$^`5@J8kOJ+yw?#H2Be44@r~_Th^#2Z0-Y}(N$nIioTY9koPRR~r7tP&g zT(5TCiR3FJ6anCCs?_OV*a&B+{Yyht#eKtXKkfbs!)!9qQtfIFom1flRdHFpD8r&q zdAJV`43uq5j>^mvrnk^YnOHv25Z&p!B17jX=E}`xkyToRQ9&*dIGBM^1plDoKt5qt z!6Guj`@YlY5{ix8wPNKAqWt1nQ({puSBMeWSygI9U{zpfFDv{#L|WjX%4;@cj)jQ7 zYl2|OKPSgS$yC?CnYA+}^s87-vMBvSO^^orVQHc$ECI|m1`+;30+^}_s#>`4b|1|6 z4<7vYNoG{u(iAcevg6%`$C#cn_&mc-0vurD`MSME^e zZtpx4!5pSA;wazSq}|7Y-|~DwoCqj?()r961p_iGEk`pg%Tqdcu4?N%5!rN702%dd z4rFU{md4CMz?~I7pACC{F?Z6W0k1BOf}25PvsWH2pgtC=x33kxX{fjt7gqj*t=zrC zs;6^b6mtZS^aDam-IVg@l=Baahp?58!2l?CRe9Nja26swRadn`q1t(T=Il%$cnug1 z0Fb|dLXbiJrmEaN#_l@{%@VfJs@c1bc{H9g)76CdZ9wj0hF86Xj}}oxWdD%2p5?7# zRAkMvJs&`x^y`j{GBgKf(WkN(0!SrgLVqb7SFuxUKQGVeL_X)${S8RYO;u2 z>l60>#@GMITSp==5`q6k5g18E{}-K%k)izm8-a=onmz|c9u|>AdiiNpYumdo5w^Q{ z=vZO#GY<)m&e?%;y)cclUFhq+Mnw8PNw+Rl6~X79e?I7*wBPrDXo?^{>^p#KTf5E` zqR-nbF7#fczgpkDQ;Fd_!N?Qd&vD)Q&Os$h-L z$ZXq4E8$@*h7vEb(`ORM3<^w>--i=P0UWRJFI8rYAlQqI%p#_=HTGvayxuY=0>VLP z@z-AA_nsTp?pC^Q^>?LzaAGbqu&ICjN59?o8+(r~-lzI(1G0V3%J9Bq5M zEq#lM0(xif%3{Z*)Sva~!7mTwWY3Zi|1qti=udw8+uH|@9<;Lm#IoeCb}ll`pL0`R ze(JUXdx!`_MS}i1E(z@x1M^Pj;P*qsuA1WD*S(pZqT2}@6P0$q3M zBgU@{=Izda67Ce>Q=>&(BKm=)Svis2$00Q5P)296(U-=D!PC7W)p>!^alkKtT3hNE zFqjhwj-ANSf9mgPfT}(q75@mz@`KNm5N+AEsk1WJb?hXISO!FaD!7gZ{_`goe2vMB zLWz2JOPb#f3KeZ(I0_Ls8Bo`*N&15^Adv<5IFB=Wto>q15WKg0W%!#<24vEBC7&QHRW!c`lH-mu>3Vcxdq2g z9k*Hi83pA8vD^h{Iy z^kGdp8Cb1q1_1f*+R;@WH%9qJ0Qf{KWPGR59aBr@OG11p65Q;&ziZx09|ZwSLBSG4 ze%_)jLJqD5G}m}2;+l82&VV3snd2tcls`9oR&t_C0P}*N==@oei`(5eJ2K~i zatb5;Si4-#U$WS#ZGX^EU4FyRd27p@C@c{gm<-1J#`_Q}@_<<;3ow~tb3ga9j(akT zJnfaXU5pBxRzmD!=A0MDaes^X#Je)dCHcOO`jew}RetR@0Qww)ZL)+!Os4|MCg*`$ z=%6`D0MJrl`KaMjO4yxW79a%=T%pizEp`~fS%i`Rf_v+x#QvZ<$ECS@34)9*GT}8x zPbvA>jVFfk9#2u?yxQqIlwVi2b?+X4EJwn7Rcy=0=FyhzUkXgHgpqDjh%^Y#aZq@P z4pl3ffcT?`LD2;ro4eZX@@lY7D2?Gb73wl5Kk?RGjyG*^PxZdkf`KN?B2i-ynsqj3 z4-$wibYiLjCL_tOC!nLbh?;^d9Ha;l9h-U)D~cr+Z?npi-LBWPN2n+gBQ+{<9vCwb z0DnAWA*1_6K8ArG@Q`PP?1IIUMdV`?*`jm{jRzqgPe^YI!x-hRKKkDF>4_j*%&ID0 zv%|vY7cJY%N{JeU=v@-|JWKEr5g#wYZDmtaw|XvWfuni@lKFkz)KVvgrv=%flEkUP zGKe5;9&)_4t?P0D+z;~Mx%GRLY>MZHEj5D4OA+Cf`l{3&@%`DeH;_G-5#RJyX706Z zT|aOt&oH=HdB?YQ9F82p z|6v3w7p~Zg0W|r+pPzNYa=_?IWmtZuxBE~vR4{N3M08Qzw9>cz$E<4Wx)KE{6T(0A zyvTJOnQvKEI32IsA;i=99S}SYF?qgM8dVr=qG;DU1nhc+z3D!6;cr2%H->&$JIt8f zsecX>--JS&>uXZi#9!2z@1WRDL7FUtuMH)=8+yJb%yWQYorg}Y?#O(DnD=B|cqhUp z%yI>gJsA)zhKakpILX=#nPVU}n15Vt2v*+l+k>`m>by6~+3DI@RliOBY;oE_pAI&< z83g_R5Eg|HWwnu3*zVpC|6QM&fPgLgt^Xfq4xzXt0Rw%mfgFFF6!zgqQTW5S-74Xe zjY^l2_$B&DI-tVGK|Hv^14894Dd^f<(8Te7^CK9V2~{rkpO5jMHxxcA-h1I#{pb7R z9=;DBG=!2=G4!VUb;N3X?~bi-SZ2y;ax+&4;=;~B#J|*7*_^k zb}5I6HRGXrzuhJv;>X%)Ei%ECjMVm8Rq0LMOZ2hUuGxZkN|dC~Zt3p$JtB~C96LA%S5taiSf*bfPgZM$jbUTRr(kHQ++)6HY z2O&M|`MyKPsSrbw%bB934O7O%T+NQ&6GiONXy~TW-A1qX3au!T7Gq{o5jBn8r8Mo} znF!s;P!*YcvvO%YXP6Q4BoKB|S99akse@};x(*P6g#_}z&;q|TeT@Jl>TAkX`Pls^ z9}oe`1f*ODU-ff=gE0es4uDHRy(|&GENJ$!k^SqO-D8fT8@ocN0lpy2A0ko7@Z&8g z^?p^)t0E6pw{?CSm~u`8$KaEZk<|2D9F_$`v7s`Eo7P75C+?Q<%GcmdGW%cl}TLMygnr&{I=ZIhEZok5zocaNM~U){7~+GHQ_2917RFbR;5-3NXG6NpD|0)3Yyf8n zN@Q3boK^6QjeTVCAYo`#TEb&5ZyIG&MU6=GSH#$#w03IhN2^;iryz0=V9~P*XXYF< zYw^PvGeg9dAV`yXmghxm`)bjDz zq$!?xPx0mF1udQLBHu3n3A*EO9bUZQ(S(t_bpW`EI>RO1TXXAV>MSix@%^j zr+tqJfiUcED0{JXkO~W}nGAfC06pU&x6X^y^7j%! z;;NZbN?zNsfb6^x(Wr8#Q|nyQ{>gZd#B#9m$NJqXhhU^`vDli{FaDy^>eLdgP^(3R zAQ(g%rJkZ*{nmMjikymoFM4qt6&EtdUj~pQMA5?-mJA5y&JzX+k$&nqRSrffa$Es+ z_VC>o{_aq?2z5>0+#hP`ge9oDl>!4TM!XoEADrF6n!i_XZFAAWBi)< zG5%fuBlRFriQM6ju`fxSKf33`lh;otmH&J}4NnqvY@nZ`NuxgX&)pc~?L-9R+R-%h z&lH}!$ADa7Zj1pF>T~1%1>ufIeeV7xf*p^E0K!DPP0vf13?WSFV*rU{2=Bbq4sXBM z0(y?d?pg^0y@RlAQ@S$`xM2J#hwTGEk`Q~%khs+P&O<4{1&nfwc3X6j8Fq(_L^voS zktTS`JuJ?5FJzG2B9LpndZtSn6+)heYmgjo+9~g@?Z{j%43!hB$`;K)%qtAkBA_O! zt}}@|J_7k&NaiX*dAq)92RB>aud34l;$;Bl!!lF0tUJ3clpxUvVlATCKBO4!yf`sL z!Xn>k)c30&YCoWQSN^HKy4>AUvFMI`Lo8=7zz=DA-ygWLJjlxZ%IR}3 zX|zO0+L3+OL-5tJQ-F$qp?q`^H66KY*>-2s19BCDJY82);S%&UZCwjQa8Hx&|AE4S z-SM<{A8N%;Qx#wL{D|jY;Nz zfFPp-gk`?-`PlmIoov9TBTJD5eoFbE@%}mw5ulj}{PEai#k~hl!U11g5rYZkE-UQS z!C(mwBE;Xa*kcU`PvyZT5#cC6Fl6m&wRm#(NPE}G7M#Cmg?3Ko>{=F!5Gj&H?ZA*$ z`cA!r+*&vdL0+z{u4vNNdBG`+AP)fqL6mCF+ieLt?Ow}W_z&l+I%y-uBUirAYr(Dt+F4k+@LiTF4B3s$Id0j=Gvj6}f07*naRGfjL z3lSw89LV1|cc1usG`2vZ6Tt8-!D%Q72W0IZ}sk+FOKd2;FZI9 zL@Qgn)FPvn3@q}HGF=o#Y)>$RfAAI{Yuh@%%zz7t@$R~5bB`+4&qkmeC}9KbuC1~J#0o6%|4(a?L=eHOh&P3<#%~r+3JlwdtqeHQNg8G z?<@Q9(xu4Gf6ib73t16(CO?QBi6Z-bLMjy#K3HE!j$H=^p;0{*8>%bsy8FUkeGQSG zC`lD3Pr9`3zZugbaYjF<{V`HLQ#?~ zP~}$#-zA!)Dy(V;Vk6!+QDRo+`(=qPgtLjBtCc(F_o*UUIlxO0FqwtH>l7NVLQQOK z8IkEP-B{{4#tN4OE91aWMP$O};|fqtCm_|9zFn=38fq%9b;(sn*A#`5BH>06?o&?k znzqbsfUwPXdfei?HNDJ&49>2pxNP|Oi&cx0cQeZi9@?y;HNbQ}06wblR2AW2q@r9u zK9?-!c>>`x4b`LHjD2}w3^P|)!9RLy6Q@QjJRSsh36PsLAu1$kcgKaHI6-&fONd`j z6q|Er?h^arD))}j9tM%!4kqaK@Yup!P%i>`F!%xi7lF`G0MHo z2Vr*mY)jus0PojTm*42n9)l%~Br+NezF9jZ=F7Wdb>ceal*roqJ(T#V%{}7=`|O>7 zxW;#1{p;1LN1uDKEq(rwNFveJeKUY`zjlA>@&ivv&l5B)0ds#ImiaHUr;Ty*b}TqWClO(P-VWUDe4Sgn8g%-g&}?Pqy#`-SHI;n6 zr#b>Y4uOBkLdUS!zZ=V)5Cn4pOjeBi{!`*@!aJehL?-^Z=lH7fup(3hgYJRga`zexoC^{b|TlR%Cf#%C`Asq^ox zLIcWW>`yO0ZMq)84kLDXQ!PA(7F6w>wa7RRNS4-DRsLPKJMTTlGeqEx`U3w>MN0CF zw-GAGv;4*#?@ymj0*5EXF8M~ym=D~Sy25>d$|h8mE%u8H_XXb3Jr~n0FAsfVSD+DAEvs#3qZRP z(c@la^pUpAv=I0Q0g$jp@GY!e9Mn?5<LoD+iSOGgpA--bJY^6=vtWT~WSiFnRv5RmB^%qa%z57mX@w8tm_? z2Eik#*xVM?>-11>?aPiVJHleB1{D5WhnNZPo&KyOCHd$|(P_n?c?phE66p0fDoG=cGp;I*C{IEqqZF1N>iEquKR$g&td5+zZTQ8l zqHqYf%d7XL&ej5)|J&M@uBA*+nyV^bRMeU|j){8>1?`r(A*7(0fsctHu(WcxCDH1( z%(oGt8ie0g@i5(A!4B(u0Adr#owKHww>!mZ#9d54uiJd|b>)BBfqbz9rqQ5zNMX;6 zvK4~xZOLUD1#l1%-|#3FC*J0~L}j#~OFCU~$JzA&9?ys`HWWCK>h~K&!D2wnQq;f9 zi=QddKn#voYaE3EJI`GeGy}?l;qk)uZN2{1v~ORC670jnMBdzIY4@Dv0F>xGL8Ep& zd1N_M03I05kyef@5zLN+F5dx{&ddbi8ij{@AKF;JD|0&obj&W;LAm>+C36xG9Ks?$ z^Kj!eE$NGaa3Zp-@SSh%C>w;c0qv7@Rbw=U?q^L~=l4+X;QRmZ=EA4nZutNNZ@KTR z+0T%*@9FpA$aFsvfsqLO`$S+Q8U6P;mm^2=UyMNc!kOKuXXC55zo)D`Qh=?O5b*BjbOitVm2Z{*-y;GW-`NDu{NhiX&qmLo;IDVR@LLb? zK=*P4+29K%3M;oPRU%xei)!sytl7|WIB;|vAgvp&Q0uPWj_!+4c$&fBGPNMmf{7S7 zn{v^OwbOTcDZXyyn;7Mr*o4KZxG4}e6J}2rfGQK<73xXe9h+x+v@dX zGIJ|{3bn9XnWL?V%YdXmewoL}c0{%Cd*`O$Rc=DCu!kq;`1bOd_c#rXyuv3f23bdvH~K z^hU)vKskJq0LL_thdGL!2TBUFY}|zaYtmG~h~F`D)}DpIrB((lxsxd_XB5|C+N@E1 zY1mwB`Ff;TBkUpMXL1W>^CA4S?+Q{Qq5vwMhAYMmjI zD{^h?Htpar#pnmaf9?bmksnV)_MNXCd`!%%y3}q4Bkz;Q4^9;sr!`eFB;Y){EgD>U z$;dRzC(%pB$9HJr_e+cO7X9@3=;MI6y|lxb+FM^$AH5J+jV5I-@(kG0;H7Cg0v>1- z&qU&*6sasi^FD%_?DOMqQz<@>8IJ^wZ+gzs>E|Xsjuan^hBk$ZawY1^I-|P=E<=DI zfb(p)AnUKzvD$GCNu*M52Yk+1F2YhLJJiUrcm+E2CrH7bpulM+dNT{1$qGpm!^Te4 zfn*(P=MW{$_ZmO*YSob!J(*dp3m0amCF5zi{0xOSAmzgS9@8xEnbLZgYfMi9`n}EE zZHS$!fP*qQfnZ|cqF%qRsgGVj3@7+N-QG3krZd9Duikf4W~4;^I9eYH$ggybdXamr zHC~!BxL`uDH(Aki94Iw{+*A+r`9%@%jht&$U33ltIpLx_JK(Yz6YJeR2>R{jr#|MCVP}w<^+j9e^5KRv79G zy?=R2e5l*ba}oKO(!!9nv$s7j?7JRN8|{NRGI*4MZ!YJ}MY3iNok8q23>=-C2+cj6 z4v01agU@zU#<jItN*GJC8z8*OG<><@veqc1E}`MHQ-$%X+EwVZBmY8%XHhSD+CK z9D2=0sigaOWT2V{1eay%eQk@pgDFW%j`blA}^f$$$77j@wK+D z^f@|k_Uv*0vCqWrdf{u|`WpWB=M9n8Sljyprk?s8D3$F!=h72r5ROrV3G~6c(yvt= ziAqLkg+l(Iv>^AHpMgdh=n@~NQQaw^bptzXid=?DEs;Tby7!Tf17N?>dWAfvD>wYOkE5MZF;N19 z&pf8l4t~?Qp{1?pyW;GEtRE~msgIolM4EvIp+B$`-PF-Ue3t9Wm^HD(3D*J1uvJ$CNZ7KNCt0ZBo%9JzdbiAbAUJw`;~8Lip)r2^o0wv zR|+^J!{;hg4Mc9Ttf-fD|E#LrIb5W?@%-Ly)1^B%xY6=6pl&7Ao9B zX*dZCeB9M>+2&?CY7`jrV@6hT>F9p_c1eUwMkID20~N@rgp2b2?8OIZz?B44!oY8Y z3v#~{a1RJ|pg=RJJ;V7q&&WDq4guB9P8Ewd$7()}iQ=eWqfA)H^}HO34>ds3iD_%H z-F-+RmF%+{X`BkIhZE6L62x4n+k=+71H)AD0#fKM;AVLbW$Ceow?b%Zo$H zMZ%6C#(6xqt1;B-&8-6|m8w8C?=s*?ER&H8Lm1%?9vhr~Z{ov%=uQIut@L?YaJVUY z2&G_@^;`pZr_)#|(lmn@hj;B~wo-4pF)ba7 z&j#SW;Pc%T9^7GFFY-W!o{55-YrO%Lu&0>f2N9e~8Kl|)MMLv(MCK~(_uo^pXOEA( z6I%WC_G0q;9zb-Ki5$+0aIsF8S|0>N?|C!KtLmC2YXu_+)o(i;H0z@i#i>(b0@^TDZ32^DJ;i0*IlmT)IXr>0Wp{*eMA@6y% zgVOq@QUfra2p_f?pPO3;aw0XKkbW=h*(@-$9 z4U%+Sc<;1?UepL;4ucx|i5U!{=|{vjFw)KC1-r|Xk?h6wZ21GN~xc#qK^Tp&q@n|4|jsQhS*tb$PWO68K~0B))jdy z8R{b;EB?&ZtV>8&RYF|K-+cJk$;6TnwU>p^D? zBI#%tV0D{h-gd69kDdYyQ-M-s(^dNxJ%q*3E?oEk+YQA zV`JHvK}tCZPsNgEoz-L}_d8bTD=*Bm>}N;s?lq_|#o#<3=0IuC8J)nu$AE#A@;=JC zs@k2S5uHOBp;4lh(wV!$zN=BBU>&%;XY#Yxm-aa9v}27i7kNFuo%du1XRDTY1(R7z zfQO1t0RkNgfEzpmFWFWmB2wheLjkA->FB2pAYLYuKw80PoiRx=*~1)mlyjx1BkXf# zd#Pax5`J0Q5g}t4b%m!A^SbdJ%yW9e!$^L&F$uV@b8@0CR+L0|&?u7U!~)?bzt}nG z+GRE0?lY+O>wlS1((R_Z8~!$RUs87ky1{7oGw>fqDxkkDkH|hX8PE0=P00aR@O?7KSvD5qiuEhqnV?fFl&ct0jdY zEB#9kvK!Cow<9|3>sLNMbi@h!z=6l^{U7^G?9Lbd=bE*`j?#cjO9sfm*E9BEFk+0e zQA|@r!tKj&W)pL(%Ayx*=SgYn`xHH#AikLRo)nMpn-E?XB?&k(H(tYRxbb zn|4*UW%PIb88LApZe@nN1ei(zQ)~Vj&840=SwIg0#yn<6dQF+|QegFn2d=6kv3UU0 z94^eg&AUc1M*>uP5JMkfm_0RvHBDk&0LVQMouz5_ZxgyLRX z?7B#F0s)`zx_DJr6C}&lv6+WTKUtce)5*ZD+R$_mYP{7^__%Q(!YMv8nQ|)wj_-KM zv1O)hXnSe#M<1mg^(Go^n?*`p3`_t4d@{Ueu+G-Qnh5bI1YwRtFG&t(&~YY{OMgO* z#fGT4yeRKgiF%QKf34LQ;!4cuR1zf*R*d@y;G_-}i)Eb?RACsJ#6-Nj!y!5C_^hu2 z;5~?7UU_jSVxK($ol2dGz;Ai?Dg92U3Q*Wi#I?d!uBwd|D&(^@`rbE`I)EHl;;`h% z;%trT`EebYuikx0N4Pi<#asx$NyBuw#64y73@(&ODcR1(%_Oqsvchd;1tDwxC6g#3 zbG8QM3cvK!LH0L?_;RIuw|FWCYqo^WG$6GtBdhH}VVTqMLBd#5W1`)COqgH$y}^1K zC>}(}_jr>Nc0K4v0a<|XllGh>z6Jwx&VQ`xB4oa=Y5oP$+ugl%SD?EByIBRg!RT&w zL%T2Me_ny?S&MsX@YMz!z4P%4OD~jxZ|5MlKKcMEY%LuUyyd5Lv2&Q|1RwYw^uVF8 zluF?k<@3+*ay!M*b3}b~ArNmZE6%&y4sz<_!w~p(GTh0sb`AiNS&uMat>;LZj&Q+D zM94*jpL+~Phw;f+t?^G@9;sv}8UrUI5++^qR7Sw@vyp)`G^rl=P|1L_gJN~v&Qk%@ zNlNSYx(35n*T+kN`QQAAw~J0X`$#A_V9)<~5xckix2eGQ^*f+y(VNhloE|wd zM`yMtcnTx!(pF9wTK?L$Z9Us|1!gJ4fhpj-yGFQ3mMD;!#b{m=hw0_Zm+QbGr`*j1 zR8}0iJ`E%q#~Dxok%Xt&C2Rq9|EAEnn-D(e8f-7yTZ0$^Q51X;F3z2wHrMf8s1P)> zyUrVorw7uiCmC-0yePQT%SWxMYuytdu~2J#p`^p~#j>Qp`$?}R8?IBv{SL+t8G++8_lR`VX)-gXdH79s`(JUKqSe{@xj-z)Z-zwUh0!4v6$?Cj82i3|sSulzW!Vv}AlH z5rCaKMYDi7r)z$mFe3n_909)cvJ36tqpoQbC^ZUzw;Z4AD}C;+>aiEjIo)Pfb}zeM z1tiCH@pZq0eGWgMe|+SiQZk^G;>6m5P^CQQ)sg5_0N9^_9_#9eDp{iBs+$3+PI?N{ zgY@Wiz>tr@)HUHgeVVH`G#$$t3Pq|b{hz|tC752%V7${XG=5$by2E>y>^reJmKR9U zEr{5HjjeY}ex@Dx8}1ECZ|=+zjYKD)!huADKBA=_vt`|U+vAJan2*bf^Q>7|&8Fsk z!I;xXz!QT^1g-8GEArF(8NFXv%3r>V)$8NK(9d@g(Hc+M{!%1%sDm&Km_7>^=FYc~ zG6XIv{@l9PYJNsyp5&UD-2R|+Z$!1qGj|b(VXZlr2m?k@rASdN+k|>9FuWZuN;5#! z4be;4@KMR_Eti~eR66QrRYTK3ir_c}PQoR3y*F8Ab0e`fl4bT=I&Q6(MMb-W_H7!@w`Cfa1Oj+y2o^5U+l z5qrG4=;H_w2^WQaVqhDZLW*!60{*SNE%BQ`kHBPMssSO_5cP9Y?SJwIdQK*Q9HZ55 z#t+F}C;NJ*p&=tqxfS9>3ksy~GcAL)5iWWPFn^zDPc9PBn3hmu8#6W`(7uVn;1XYL zbbqbk_yE&Ot*9n|f_GI4a#*Y5kvOF^zvA_2Rz(`m*5CvPsGp;prJYjNw7hi;vw1{Z zZ@uFy#tQ+}#`d`V5F;c;p<9DXP3(Kkxjn@l`Wr$%NFrRc^6vmj z%>{(DT^-=ky!WAU4iZj>|Pb<2BW*z{p`M)f1m<+S3a9V{-jvMN22ql9ApPd8=9tTjR!_s z+OPBi!dKPD4nyYYj>2W*@`JD0?Y@bgs2sRlYkqj#kX-AqYX^W0vH47tlcPdcjLOG$ z`vY9pbO!+R@Eke4ZL4ad*P((T34d^=NNGK1PGs0gL@nXsw3OFIE}(NUAa9Mfv_B%} z^~#pkLCN;^setGz!s-DmofDt=`1`gG zP=TXew^9J!stwTz%E9A-%nQ;F=Ur1eOO$R#hQ@4_bB{dJYwF_{7^aiJ=bI%x)7HcW z)$u;pU77%Outq(kv?!-im=0W_45W=Q`zx(8MS6KgmpF%-x~7K=z>nocxz;R9B9&Z*3TCKRs8S+@T~)X9 zP6W&-E6THzLb6oVHqJ(^2d&M|nbs8?+g?|UJ&a0iC@sjblH=<79m3v7gvcx5!r*gO zz6-QRz^`9TBt>?sY?i11agpf*lLM$ekRDh2?rmrsryV^6h(az?r7%Njwg>MeAdyAi zn?9%LMAUdrBH1?MjJ^9c*!Oc&v>=t@Ng8lFBW@9AY`f3Mj-iTt6BS?^Yx)!zTY=$p zX5JQWO+4X!XRY2E?@jGg!3G)tae$xG_t}1T)yEFgL|2ej&q+_DHLD^zT-Yzi@g;?+ z70|5!g2ZZ&_VII`^Ko_E&Wix`3C!kNuW!{}L!@cGRw`DKAG|&NJs6)%lBG$sC0vyE zf>(cWb9Kqws!%=e$!)C*d4e7RP;Z0_bCz^{pK2Q7_b?HM3qv<}>&0NmR~MbD5L(6c zyr!;cvSHZh_;kYN*z%6&U1yJ}K<;2f{j}#;Z0~6#HVKf10rQ99!aQ5kbWbN-1Ax06 zm3(k)e&1~(Lj}fOiq+o?xTCcXm!y)Ar!=00Y?cA4lY!MY#z)^{iYEbKQYm`RV}DoI z$4iVMF-_{*HGW8&XDdKy1ejvth> z(?;Vc{2o9JVM=`!%*p#}tT`&r(e|>!T=|{pT)YSu&E~HzItR(~i3kO#aark*(AuBg ziJcQsJLeG6Rh^lqk;X}YI#*(vGkfGzij-F*%h_5#K)~OWcjVw&Ml;fUq4ZJ{xi88@ zZCYBJDT<*0GrsG^iB;D(l`2re=)d7Hs&Wou6voU4U`BA7{62lc?EB6-W8-jtz<0B_ zXa{F5N#^tjEPJ?OOkP=G?)ZO~@7(V5?5;p}1^#Ch=mw+zvpRKewHsDokE@sUOt34n z{oh3AO&L*D-*g@lj&qZ~=@W+cv;p6%Be7yez6%hmO7nxy+ksZvxZ^$s+fRCvR~qZy z$sBf@Qqv}kOb3Kl)iq5+!~-Ffx+=VPpXQ&oja~!{qY~6MT^I)&g`xON&Dg+TSY&Rp ztsP_&Tn&h=fX;mB_3MamnZnkw5#Ev6eHoAu!bk<`Y0o9oGFmB~PKa$um0aK%bgYcT zhbpFvPyr*;BNF|v%QcnDW-mW~;*8PIdqD1Pc(=PR>FW<8@aL*e;p{sm*1o-^xsn}U zr3I6b=!t|}M#Qg3Kb%*oH2Wy|n=03rsqPrlKYK?_LsOUt&eclaBn*hhzWD=zC2k_s z9}y1o_sFSC?24byKu5Yn*L(ed-hNlrHQkH=#f}ee6ObdI6PQMV(ycuxr}E@NjCH!{ zD)a;3iyqUM1{6)VF+omQaqdj{`^t6kUOHeViz$m_j1G(jmww+XK2@A>2Q~$#j_imK zkq8$tDa#~tnb+Ih`94OX_c4Q8RusBX*8P6tuKr2m-fe)sC@;)i;0^2{6?~4Jrn9x< z{8gMjJ@yg+6GZ$IdnwtY1S0_CCBs+c{H;rCeN19u^uWU08^t|Tq^ZEt^XR`}Y<>@` zxUfL7m8MAVsUhCsNoyr{Qm1r<(z==1)GN>%48T;y+}7TneE5w0`dSkiFVY4OcCw-3 z3}0aBsYBA=XJQVev@@FlUKdx>>h(K@q0d*&pf@nPS;7d*{m`HWr`TkJfplbPoOx1r&Qks zz@{NwlsC8QTUrx|UMJGyaAD}OpRKQt-pGLcaxmwbW@;HLQCy7fw~}KU@T7+l z{RrSKudm*oXKhm{YBds(zw%_=($DMmbzxG|(`Ha>@FHuU3B#jSxld7RvOWH>k4%~R<=))IC^icP=d3Oc6E3kW2 zpc{98VU0n#P>td%O!j+8Xdanm))rQ8ilvWeL=eyE#-IaaRY=}-^&6B-& z0x!Y^fwnL@8J}+Y^l4#+I&w>=i&TjL7Ro@$%L)X5JyENVN{0krUA-|j#uy%}m42}# zKil@bN?(+MjA@9Rr9eIENwUPn(6G6Jf&FYurNqLB8ODKqGFHAeXVn2E7ab1+i~Icp zRqWpM-=zY7S^XK*ezpn5&n~U~)0SQ1B!4iSov6K$w-~If z+!#Mn8Jfw&kBVeevTmI~Rs|UIDoNsl(j|zAN`Szzh*<8XQg@CY+S|$_y+zz#f$3BR zXH8i__6iH~m`*`fh<@Kw(sykmP_!D)j4m_0;l)VU!EZxs8WJDqqu^!f{zdkSX%I8* zQVRPf+EismCX5E)30gT_g+vQI1RMm!?n z%ehq49d=@YU<3nDMgW(18OpD1l+!pOtC6-l&&0`pY^#&y(wi*(~939z*Cs%_d2sZVs>RzD5XCl zfIduameVtDjcJcpXaSyB*MQBxbe4m1=PnW{LGE^y6U3W zAgV%6C9d%%RYmHJppGVjPs@r!E7IG=&j&WW2w+EfaXJzz?UrpOBIJcK^A%0^JqZ zJu1)*Mt6_<*nJiMOa*RT?hm!Jv}F37hQ$|_Zei57hYPZ850Q1#ZR_y>B5d&nPu7?y z5`7Q>ehhcW1MLsE^l%xxQ#t(LxV=JecKK1CNsPC49Zc8MHXX+bu4bltWG33{VItxd zbX2b2&8ZwyjBy#L7$<(IFazw;Go7xU_01CjX-!vWrTAd9{uXwZ2V$kAm z&$<*52BL$%^(0xg52uIk5>&dcL0l=(F5=|tqPhEkzL~v#f7hz=lP4YZ|1vOYYionY zAAcNPfBkjn*RLOFt-)~|IOUX6;GK8gfrlUNOrZE@?!tfhnJ1oj0@kft2QR<;GK?58 z0+Puj3>-KR9(m-Ef7vnqRXb{LZ-;&N-52h<>n=F!th4@AyZxv4BjG8_)h3HhsMn&b@QuA2S?voQ-T?zCi)6Z_f|j*EParRej?*NO+u2 z`yQ1+x+nw)_-;U0F3(+uG0zl{F|u;L14vCyy8Nuqrw0L_KRzq$VW*oea64=LQCAixEwSV>SEZ&+7?M^V*a#NssbeTW;H3ss zu>zj$5?(i%Ltd6`sfABa3ZzB&E@;29Zjq2W1@EGM@To3OIhM% zs(ttzC3$~BP-R8At2`Mj5JU;7rMyGQkX9YIrvvI%MD?lneIl$ZFplO-|J7v!du)EC zmUB`n_Bd$uW_ZX?(p0$~k_Z-NpP#8yT3b^WpG=B-B5_g`2A|{l=*0$LPo?2m&wwX= z?(tGGZVo8y?N{*b*!*-xrS$0f6LcFYh$dRUyDQkcx39f5v%)ZK)x^UR33sVKJ2MYc zW~}66D&TD;g~32RhQnik=RHlU(JWKA|9UQwMu|0w8A+!V*vN znFbk6cZl3H(Ux<)XLwXy*JuGwwhCV5wKUj!S{E;8WRYCY^c>6WJ{scZvoU4uj8|tO z^#f4Don+wkR3LE{8MoR|PJgypqWsM-dS?%&6rBM8QFicg54Z{N0iYvT@k;`_Em#Mv zAWA-q5EzA8Z;<;}RUbPK6>Zj}UBjk$?Xpnii1Xv;Ad^T)noA2p(u>Pg-!zT^M;)M0 z?GV|tC#{w?3sP#TV%+F(@L`!mvDafK4S0lBs(M^O&Y$eMjZGso=o6AD!#=Iv6N#~y z)REx>m7{CfxI@APp`}%kri&5vaga)0EoMR9JLWl0vkM=Af`b`IT15^3RG)bHp7wc= z373q(Bh2Qbvf?~D(JIcj1m*;VN`o=g0)o@OW%0?Z=rombXNoD8U6*!(mPwyFIUhje znueyU&?sUB9Bpn}B9d`2J7PAIfy{O^=1~vGuBiXv03T%BiDVux?NDO~b4?0P(1@>i zIjl0_rF}hbo3gm-5|`-7*t`omGr<4pFUal>c2}Ug0{`nO&<#fa*WHrt6Z$_^fzy}k z(BPIt-<+QDd6Q0=QqmFdZ3jdR@w z^N#~5=`3WRm&9dM)>$c>()TmqB5y!q*KcYb4z4>F37+u!L1jR~Kz;=5=W1W&gbq2K zmHZMP#7b3{bqrLhYGb37f}_&?W}(WJ-$V~knlA_B_sa@#IJUB z2$n&WV&2DPcw>A~=xr%n6 z_g{Iae`;T`SPbO9!Gj0e&oeVzam5u-QBh&*^nZJ~=%S0@h$D`$_h-e56>$0GmqT4$ z9lTNb0YrDiVagp7UaHyLIt`QVY({QzG6Rdp4#*TEFS|&;95IYXJznt9T|GzOIu&s&6VKf;=#3&p4FuG!!d6;RJV@j)Qo2Gz*@&q|k&M3~d#z?ZP zsgEDy65Rn{ZuDfMvVL`K)A0l_OJXNM`!*t*6I0~A=xC=*T!s)T-#XjasKmjqChdc9G>td$@!l}scT4_=6)eh&@3P$r58nrhdHp_a?unGV+OMa=C zXr+`oi3kR3rNAL~iS*)1-Yz9l;(D7x#!a39ml*lDoVbn|nkdyWfBZg!cFOgvs*7H% zkoN&lZ+gEG)th5QoZvIH#%4AwIh}8>scYQNC}%Vo^QlsBpgq3!j|MhpDM(&d(uEOE z-LG!3Y>2;sXJxA=&obqi5{5pLIP>Kj$_=C>}1%wLQKzg2$NC88M{*-||{L zsy8%_1xHQRj=p_dhe@BE+#xjqfnu3NkBj78B59O%hB81%rBX`-w8|ug>+&>aY=>0p zArCZ*1U^BjhYaz{UhZgBLu|BSK8XN6EGtN}ta4A3!RtYRKL62`7qi0WV)s{w$y)c) zU4iZj>}D0{2BW*#4eh?1f2;zbSxXog)<)+~ImG*^zc|H>cbG>FW!3Flf_VAQtF2Cy|WMh%?&TUeCVnBcjk zcknc;3b!)QTk=k%BV1I4#7LlmcT4kg?E@rkx&UwpvU;y;_UB8r(SscgV$yQIXZn(M ze>M3^X&)>6%u&3-HSidcdNo{>^K|-M{L-J1IY_d8zxZW@OHFO;2vU5r<5TyJ8=PjP zR@X)+vV!pvEh6&u)sc7w853cjN+6kob5!n9Veo1iVrP-z9Env?4p&;q?fMAm`R1m{X0Wco8wvu7pdmaOCEh|VzRLQb(!;kwo+V=pFvAM13i3O*E4X2b+ z?|FtbvaMwwkpZOci3=AnPPJd@~FWnXBuE6e5 zfo?Fmd)&wFtN14?5Sq2b0N`iQc@>t@s;-M(%nZk6WZ;#Zv-nny#*^G6OrJ13x06At zip1t4KrCFCc90ZutB)_AlMoBtik@f;~=q z;J0E@Qx%Cmr-;5P?a1{_Ur%%{0Jetng#PUVP)iA_M9Ddgm{Ft&Zz^h(Ns(V0<|x z`I>CjFzEe2@qj=eup*U6UWo|GW%Z;7dX{hI%s?`Ju}rui;!4j^cTHXMeuQQ!Bd#mW z&v{g?OEPhRu$cg365+CT^JhyB9CW~;3iScpGw>SjYMVspya)unG}6(mz>lC-h^$=P zWLKx_XBZ*RtKT~foYBIuD~Wk8t(`~5bwta^q=A5QL-=i~ee+^rD<$7oB+~!}ko8XM z1l`ayL^Dow4S%c@9;scoiWFs{^4~&$Pj;=dt@VcJ$x34%muM?0HC&==5Fw9}JhyzG zT-*0)w~NH5Akc}NN?j_y8y#kN6>QKCn!f6MA8jlU%+-v4Dk%ysl+Oxi)u5-M0@SR3 zD{(Dp<`zdIs3dD#8{RAD&lYg{oQsgTzXA1v*QO$V2W#q^?wTgy8^pM1-ilL z?r|Txui~GqKxo#|FM!!Z=TA9!W&O_6H96-%dtz32zrJ<$$5MJcwYr{NxK-q6-eJ;? zpsIJcFy|_7pjJ~Cy^9fi;lj{$T~DXFF8TmSu3=H`&FLTY=)pdP$B`lfhCcbp#c<~l zMyb;^^M+5KdFV-z0@p-Z2NR^OLI6oPShPJ>_ig{&;_Df>pQDm@NDP4;OmFz{aCCg< zGV>Nc1t0YKk|f4K5ubsG_1`zuK6%N=k*N;Z;8~jW92ro^0I64ox@i65uU$0!utGRu zoK3lbGtM{zUVQOI*sx&(6c-o&-3kknD!qz7{`e#O@WT(VY11Zn;DHC=@WT(cvfihk zei|No>@irlaG?cDk3RY+?78Qjmc&G8|42u^pw#O_iEQEs(J{TrUm;jlXnReTZ zj0`K?^_J(Ke;z*i=p*Rcw=djt&pohf*Dg5fsH0%&)Tyv><3_mg#v9?m2Oos1uDS|7 z_}~M$=9+8Zv(G+*mX;RSym_mGBM}PIf z_wAR2i*h<6T&x+7f!T-<8888%*kAwvAOJ~3K~y9--#WcE#HKURL4IJwb7saK*^e^f+HgV8HVd!Z*u0N2rW9D>EvQ-gH*4ynb0jmhtoSFU zadln%T7$G#Sz+jBJ!W?Bjrw6uOOCB8r|n%;`ep!rF*J3CbG?`OY1wSXUI@6QE1PX)pUn5MF~9M8*{$=k%L|yzi{-_=e{Pl)i9SxK z>dHD|b>w)Km2ZwMK!smrL(XGylFUu~6c~Clah7rTb!G5krB#TCR(g>-@>$!e;NU)r z;4Lq!S$aYV)C~x{t(j>4ITC49*La#%DqE5M+KX_3lpbi5J35uZRepy{wer2onq8AJ zB`krrO1jLJEjvG0*;ZGlUFpemd}Q+Uh?D6e!aKdRDRq`rG>#; z|L%`b_Xgb+=&r!ORRy}i=)cwN>OR?jbp=ARmLve-%Vn32zlIU6XN5O;@~0J%9U~pq zw|i1gAO_fzWCw`3na6$vi@%AXUv!Ze!t%WQdtCu3cLCF=buAvZZ5p{-g{71 zRtA$MO|l?rk3IH)V~#n-t`jilEk#8|aLzgBbTXq~e)%Pol$2Od`@#$9wm$*0^0{r> zwpp+$0C)QI>9BU~T5EVDOOGBs;O@KcwqR5i*+#&bfYEQi{TAlVoohj^09gUW0*2+> z`}FB!L9YPLnwlE>e*xA4m<5muNd42F{$!a^0l)%?PdMQO3$!o2^iq4Qe^o8I7QMQ< z+Mb`(Q6$rHzETtEvGt6TwrtsAujQA_XydjRyt?#{pdAfkr=PYuC!k8beW!bw=|W@~ zaI5z^9V-gBtUX}fxvHMKDD^|QAb3~$9gU4f4KtYaH69yn&BGj;#Ee>c1j~xk(pt;h z`uIFV)yTl>nap}r&b7$gf|+Vw$$*?6?XlPI$Y#f>U=#-^PU@!i%94>CZ3P>CJRFq1 z6j7~^o>XT>fN6a))G&%_#HlYw9e0>9POm`dV@z~v(h;)mrO zJ^;4=knmb&%tAMLukuSf!|{BtO@>n_E^9aXKUVw8n=@hlFgN zti<4e;Xzshn)IYcwAyBTs_hKIVAJM6Kz-4kfCo{*$KIrjS0|B7Yvq(M;UAR4Cknd@ zL_@WsUl5ZpZ@X0u+Yi#@pUX-;7tT-1*exT>kZ+iOC@;#jts`Qbm&DjzfY2jc5WGU( zDKRT+ZfKrt!8O3E(o36Wvbh2gV+@$^%#m!YkAjg*_+D4P1gkhgJdRk+kf<2>ZDQtg z?7W>;FG%g)d54|mJ)6&AAdw=!CcjVK`S-o<>6W5B^1l1a%#vYUpONlAcUPdh0=q{A zy20q~aUZ*{;-9QQaMqHx44>2R#D%5bGU7r{{v@nUTXV(}46v!Z_@}`2H4U*}8{#uK z!#`bIG1G&o#z_FG%=FZkkMEbg-8+@4+SuiQbeNy%N*NSO->8Eb6^ytGkv5m+r~9I8 zZ;%gWF>pJ&=0O=K-TKZu&d9+dFCpCtXOiME06fn#2uTmn^>op9p%&wo z^dLvfVA#>KKuk7Vcm9~-UR!MMo@AyHu9Cs1HIi`M3mHsKpB(>lwTs^PZ1CRwVbqz2 z+e;93vcA3^#GTbMF8c4vEJjBH)&!UdqbZBH@D3U@2*!>b3(J-*v-^^LzV+5y7QD$K zAWB%&x8Lp@cfc>fsB9;Fq`iCh?gXO(FvZ>X>#x%-XX3m&eE4wt?`NKQrd=lhTKYRZ zFe*;GvuDq?U{n@4Ct($%(I^CiLAy>E%?mHQ5a!I8W0^%^O2rIFSV+09UxHDu9^x)6 z`xh|!udGGaddv06xy_tu<2CIf45)y00oStpcVKjD{dV|E^=IPZ0%y!TZ9XE384O64 zC@11q1M|KH1J{-3XKt*iZ#f0Poni>?7m1w=3K;!@+R&wrH@jUno8SktZq_ zt{pclRNwVnYa+4B80aV;(QJA4IwnC%5qYPN=r{5{q>a9uGnokundiI4z*I$=Zc(6e zOACWD>^tI}1MqeR9ZdRjmikiBi5k>6OyT7sp_T2d;fhw58?9%J?~q1%=T#GFx}5>C z!iBl^+F#nzI>?uBZz6OzmlfpANt^JPaS5OM+d$GOK{B707WevK#W&FcpARP?g9FTe z@CL~i%z!!#Q2-J?<4q2UbF4_4+uOdIEiz02vP$DzW8nVrLqoRrP6qucM@*0)3z6%E zk+t_j`V2J*Gt^2<-$PF54UETUFhXCgdA>{xbY4$g(_{uMDJp$^tSi0A0C8_+t*!ym z?@0fwWT9%tF@z9713A*u*j(Rygkc)42$Vtd#rWc07P!>ZHk}Jf{km&Jm0e#Sy_y(` z!Ue(0WD-Fp7Lef(LU1Y3vefHI6hILh9D7KC`nI$%$IeQ9!tC4H5TD0H+rve<7My!a zRc&-ODA@Ct40cBrZJ%IaXl67L9Vgo>#4QpdlarNG*|IA(mH~$|I@X;c+y*&iu&vfs^Ene?}hXW%y|;A~axR3X4zBOFMi zc4TL&Pg|2D-`Oe2b}cK&TP?@xFj^We@?ciD)|%)OO@ zXG%I+GGtp|+*kTfb;@5^GOWjUVyeYtG$J4nxIPHImO@e1s2{>b>4}Y>YA0^gdMqRU zQ4x<~ghnJh8Wcb4xzVQI@vXh7wTJXhSBE=TRhfuTqz(dw(P&HC)8c$9+g3%Qvk_n~ z?Z6G5T)QUHcov~5&S8I6Fi*S(%2WBc(3f6kRjp=i0Jo~cWtXbj`uik#&`KNcSLHD1#E6`nm z-J=5CV08DmkKI@CPgWo_Ye`GM=WKf7;&JzM%~`CjYkC+Ew}uNt_jtSRknc@5%(r-b zFdcCfSCgw}mk-UdF$#9@7Kxq3z^7+q_@|E^*kiLDkPuE$TDf8rQdStW&bzC>+1i_Y znbQy;h^!v*G6Ac^t(4TkfMmnOWsrrgTcJQdKCUA&!w%40z6`X=MQ|*0D*H^EMEFHw z*;gC0sAO30_14UTQgZ>+$Kj&jBNl}0ie3yF`w(J{45pUdSw;Qx``}5FjE=XPu zQ|^BUMnys_l3f9#|H@i;=jHW+KK0a7FlEY=&eOf+mRqdRll;5LhW|S-+VJHT`1H-M z!0~A)yZj{S@3ibzb)->ZSoTAt#WKMmzzG%3X27S*i-NC;?5?UIHbpaiV-&V%g5y&N zs~my?M!cL6=XxxmcT)1~D#mgKyjA+W1mv;d$%e^Azwc2oeG#U}=W{OR6d5r~@}!LR zoa$p&Fw-H)w(l+xFlQN)y<(FIFo}%44Yxk4ICF$BjgC)WGj`9czu9-LHhM5Cyce18 z?aHdy_pG65nsMQv%+|z}qYv!2%gPBG;&(7p&!oTQ#!Tpy=Oz+Ud_H{67(7a%IYhN! zvwquYiqe=M#*H5E5gDyvx0IxV&ET5x!_qz9t0S@L2I#kOPPoqZy=%QwUO)BC zS&Oyca?ZWy?9-n8?En7#zpJe(b<$c#x8~9bh5)UV^=ePj6i;f!cN>E|C$MSBZJ!v+ zgjK{?6sGXpzz@<%CjqVnfe*DmUHv_~)~D-Hq(6gXymi)@0GP`w)og4z%O)18nXWq8VwHeAZ6tK6e zfP=BM+Til2gmO{bc23hV{7UZMA?f49(I!}4h%%6VpisH7!F3} z&q_*4KS-}lo{31Wqh+O za&dm_f?i!?3f>mZ?yS{GV7mj8_gD4r&3~RX$J6%U=9S9?vR){ z!6e3lmNlmt;~i>%FFC3r$3|#u>li~oI|#$7lI4*(2OWfdQ)|a@NHj#fdBO8$>;3E? zMn2a8Kx@hJ$ZTCNcP}UQ7s07k__lFXWv@Tq+PPU5$;lubMuc~QYfnK}NK&Ca;Q8lN z!CoT%#lOD4X-~`i=fsSOC;Y!2)_ouJMW8PNKlupsC8Iz2Q`mO^|4sy=(`KhZpe3KC z+Z0b}PfAIwGU6&I?xngcu`^iuEuy)zreeUK^fLz*0=f+h-We;8JQu9Hpe=cr5u9u# zb5&i{rti4zTRKh@0hRhK`=+Dh!83QmtPVa){pchIb20o#FsM`c7or?UEN`gYOjBFO zjv(e@Bz(N4yu?*gl>k|=TjxX(u0)}Q`Tc(j;vJI+%t+(OBcq2!-%)^)U0-yQ%Kie_ zQf?Mn_CkclfKWQ`hDLw0A!X+9Q}=U+qLNUpBr2pR=u7;^SZgAue>6!{`R(hkzwY`r zgGKvJwQBj%M<4x1lhH&X;b^f}UwyTc(WA5|Xtd(QHrYcc?mMf0EnX52v9^XfsM7?@xGp2RXYiF35S)=nNbYM_(s z>Ohr#g+bUd!EKL-Y^&s?W z;HTQu)^QRr)gkg!?HyF0S-3rQzleNNS6S+M?{skke57rKA>AGBY#2W@mo(*Uo@@lc zR2KH%aMgyj1&1Nh0f6*WzJ-gM00XGf>Z?U*tt&5Wbk8G|#}?SDn6Wcc5c%!+p}1jT zTj~@L@EM^}*l+McCSix2R;`r!usydwM=5LS1uk2Dk%rY0j%RoD8iY1)Sz#K=vg zv?c2enic^mXOIG5*%1tW8Y_?9mw)Xyx20}i5mVbEt=1|z35*3X9%t->0o+J!g+$4@ z$TtV78wF4y;NF6=ApkQijHiyYz?*BIunEzUF~dq0>hU0&2?DZ4Q0@(UT%8n``6gg# z(B5($v3gA1k9;3D%0RN_qSD@9(O% z`N^pEjt(C_ytg!cV|1Kt*Y?D=)tF6VG`1Twwrv{|HFjg$w$Ze)&53P0-`vl;zQ6PD zTC>i*_Q7qz@qO}bw2Y?ivs`m;NXJJ6hbo!bYO$isJHpzbmg!T^>~41{bztc_xsIv* z%fFm}^76>O=z;*JIvg*#4xSxz~9ZahTl2*;RPV(lOK3| z;V8P$k!gbcY+t%eq^^!+#WOTiv>J|jwHJRQlVw3iXNGkJ4aG8C9s&&IuLs4^3B^N5 z_h=hsp<$r#0ul5ui8epG*SqIfwE^5>9A<*AQ#cRI?@XQKoKX;&rwkORL4`~9D*X3= z0$<`v#_V)b_ICyHG-K-5Os9p+p32WwN39d_2fOhQx+S!=jI=GJCZc{8!u6UGxYgPD z9Nt*J03`87autGf_Ajir>o=-e9=N9vD|Kk#epM+wwkpB0l)WE@?SkrhClB59IbAU5 z?Ddi1P^s;^R+s$1zZY`C8=CMaBA*s6auol5{mPS$klG}+dAEb0g0=jpsz+|oAR}OV zg9Jh#zYD~N@e<*#iZkEIi=OFKE-*E_U=~0OHWWjqPDkE{+Js)|7?ZKgCp zBU|`6)-uF~@U>09Y6vqyOUsG;(eNct$QlJtL_da!OghVELe4GwrjdH?yW{)o85>fH zZ61~@zUj&hzC9%Cgz)f7BoXh9=mq|6uXmf+1Rh|UdP(|xWOp?Qs4?3LiR>naCx?qR z-4R0NL1KL14zIQN_+76L1npsna_IV`BZ+cIjhw_HpIe-$u@++Cib&}20D#VcK?(c^ zd_FvoW6Dx>%&!z%Qh~N=xrc^c#DT1$Zzca&Qn!3K#Sa{e-!~8uEfr{@+$enE^SG(i zS+_bb_2%qGOr#x2pzwmWXn=KCWHrDa2a~|6np5U*+W94qPEBxCLv=;Pr3KAc>1h`_ z{_SgwK+VVox-bu?}*L_xH*6ws=)e+ z-NK$f1mg1UKVt@LSGOlw^M#ZZw@{o6ulvavK)+C2-G&Pru)W-VkMondW|k!5wNro# zZ?Z9)U*XBi3ZXlMQx&gfxOpk?fiQKdsu;%*aI=c0#UmTFsgKOk$at-Cn@|$YkU{tE zDscu@PVSjXx;rQjOE2aUA&<_Z{f2mi31)^KDazEttJIG=-@u`MO!iIwGM$~AdAFaf zc(mY83Rp$M*hGO3x4)W6)iBbw4roEaQ{X9Q5;dPh}k)e+-}{~v_!VgZ3m{QijZOKIE#u9pc^&X^_(k@%bq}W_dBC!KP3~7b?lAh5P zF)WRJjc!!G>cY`XO^W?BcR@XM6T^0mSaGvT!0%Zm_jQsw;-~4AB+I5=^FGx2V7%-( z!i3dPsC_xX=I2J}*sNPhzeT3rdH%{wk{Svk*&HG|lmiO9Wv6_wX!aLP#{6#u^oMZ_ zWZy*8eyCv?Z!?f}2rYXQKOSndLt5HO+~TpXou!5s7V?i8&5Ci@REK5a|2Hq8QT))lLIi8X+Uhm zfgQ-sn_xyeXIwH*>pwsF^Gp?lN7OnApz2ym8k$m-E3h4a<3FOV!obhUmwK&aRz@Hf z2KZ)m{q+!yI-{zk1aWyw7isgJTx9qpZjmbJv)A%ieO z3Cm5@1d5SfaDJd4aFC<)4f4W8jcVbUF=LWVgp__-dj=djofOrHO3}T0O0co%B(tod zF_Nd{VId4WIaM*-WI;AH=&g9Cj2lFBLCwo8wzg$j7zX79{H!vbqkf(Oz?df_z$3W= zg{gz0h5HyS8rhRMr+pO5@R-KFi(eA^T`*fd*UY9(I}MZ&Vwl4;Je5po#0)AuF+h9L z*|Yyz1dt^r#xu&8&?yo{sP_r2~)bosZ!ZR7Zt{XnMkRq?KAJ7Y&ZJFh_j z+Kko2p}Jv1(Hp3prc)g?>YzSh;Dyj&g)_8|8kO%xPLH0j`n}T;Rm0mh&Qcv&W|8U&<|8U&9%d!XbrzA8s0UENwc((7|^VaSC@Pl(`%3aU=nld|# zp_=etSLQ{}8%c}wANb6P3* z-OT2NpG%-ZOqmBG!r-b0{;tMP^@K@PofB9JV2xWsCFIwz15a-Q*e}(v+a{xwjXri} z^R*K<5kWWREW?)x;UrK&sedadsui25B?c$#*~F9seBE9_ z^=kj$3!pAz_31dF#nYx#M@KBRpO1*FJRL`4gh;~+wv6{$JQws)RD&8vz&cXe&sVQ}+keg+r(K-MkTX@0g)|6;%FS&_S9pfAV?!ar#jfqK+jg&&b^KWGt1f_7y+5 z=Y-Xajo`4l0!LYXpj0vUBD@!oS((1U|MIvr_X1N(;1}2x@`pNKL*I+qGN4M`Kq`iC ze@p&Tff17TLP&p=P^kFfWDhu6s8&!l(#XURx+q(Ik@-*3q;jZWY)8lsIeWw{UUvnd zP+|45ISy+hZvUB4p9xYdZO=J*8HS7$c;N*vQAqGstlh6Qoza#9nDbWPyPS#xY4WS2ImBcRhtVjvMBL;f%g~LXeMA{x<=fd5g8h zi?r?WWaIpNchePiCL@zgWq3j1!9TX(z9E?FBLSL0pT@ZNfnR!TI~Pe0^G?HT;|;!8 zeNMV;Gui1fKt-5fuX|_cEiqABAFCdLg~kYL%Fvzn`jU>PB;73Klhh7U%DnogL=8Z> zEiMx_(99@yoj{X=)33)mK1A%EDh++F))=SQYdU8>!uT0oyj_esC2$W*sUt97@6|%> z191RG_&eQ?e4cI@FmHkbX!8;rX`#LDkb>TxaB5uGv z+Cs2Vi)Y-EpLPr!sX~P(@Z{VbODM^!>o@52XCb%*pkFcGh{_MTg7BJXXgtNC#ESv~ z(|E!(aBAm^q6R{fR#ru{2KZuYqMO>>*0A`e+ zQrRFPKya*`I>CxQJ)cNX*ibF46@H_SHOGs0g3?_v_%G2_XQm<)WGwisJ{tbB6-h** zju_f)1tq*MHJM81C$&p^=HXYyd1+2ds>3Q3cVW%R?IR@T`wu_`tl%EjV|S4Hll)FhaZV*`e9KAX+w5DqGuH{=YGMJ+N`weQuqCQ*2{icWLHDZ~i@oqlC-+*|6-faeP&Zh)!0 znN@9a$io%K-z4?~OSAYUChf#3L#R>&<@EFA zAw$&~hC{lAgLSS*wX$3rLoLVw)W8ZE5bywXq@5Z#=s}O~cJmP>I2xijJraKKu$MmI z2$X(GT&?gQ(~Gm<(s799w{C2M15h;w72-0HH8fJUlN}+Kc6nKA74{NRFGn-N%RfD(R?sr`mtI@>eVOIWfAUo^#9~+rcsdSqvTyGrO9sFt=kl2Bk`5f5K4aX!<4pn$qDx)3THflfI9yL z^dZ|eNIS2GhjFoHc=bDeX30OA_XxV3y7!7mkxel_~2nma7*kU z#rVXnjQ;LbCwl|oiTU!u0TXs?p#X{E`%9hruX%1YNqt1pSGb!W(8rK>n}wp!svS?5 zcG}2Vmni_o!Vx1QBN2fpGm5$V5n=RTm~Z7t5qrWIuYA<@aNw_g;4?m%))$b61(=~D z+MYlNl-Cir)}D{BYdPk+9{!SnkmvNM8Uc~-M3NnAv@<7^V{hGU-NYop_kLbQ%|g6W zK2nU_a_$Q(k_n9P0AKu5?q7^}M=z!a12AS^Ig@8HgWomiJ;0Y^FcP>y*?3-tsVcn9 z6w4IRPy*D>9%cscIKNI1tn$qKt!&+nzjjX@K8XKFd%z14g2AzZb8GybjqIjfw{+ZG zk%R=~XA6O0HgB_G#Nx-HD6&-tTgWUVo*X4Fuj@ois^<$Faglp)mGrYiQKTc_Q67-H zOBR{Hq$TIM^UYqPh+Qo58ehjXSFGM2oUh1>6z1$KHp|fm7&pKO+I3KHjpCNkdLWF zf&mvKdITfoCQT&bKG6i5syeu>LOjD8oX=nS5LdnemR_}>Z9#KfSdaEMwgQmm;(=1c z>D5?N+Q;DFdctJ9E3qI14K~adF8Z5+XC#6w7i(pAo!3#kU3HeUN9qE#4 z%H8Z~hPFyC#_wu&A~p+HzlNA^<&CA|INrmr=q7(EeN)M{<$@ zT%`?{!XL@-;-wQG?uJenn@+PB8Vjltr0_j|(tD8XJ1Gcwbg0$suS!0A7z>=Q z@KZYRd~9~S0gQ-=>d7WraRKr`BMe_wAksJM^Yu-*Ph=`xh0s%rPH0ohpaypRcVs5^G7>|ovPoUbpl>hEW~i=IaLTcA4XiQ)U}2Q-{g(|{AJJ?Pf$1F&-WGV;J>L; zzgQT;)>6PUr`YldwprcavnwZHT-Vaj@{W0ZOg)8_De3$YsNNu4QNzpIyQ0?n!6Q)o(AlE1F}~pdLFL z`TI-n=@jmF`6^qo_+Dtlh?3%n_mSI&R@=^KJrIleUfu#&VC07BB=P?mejW?PUx@LQ z&IP(t>h?92lh1M|@7V{c0(G{r;kB?(kI%WagaoKz|HxeM@~lX+=$_}6p!iBDTtXY? zkFU`$yn3<_h5rI(t5bOUZ--a*S#n_@Cm0C)omV=(iDgx{o&|{EkMhFDsn1Q5!UQ26 z`8en;Jm1(HIKcsVM7SN2v!v62?+!a?O%c%(ID4}?Aq*>6kGQqW8J zIP$P0;?h$Bg&UE5U6~-hwI)U z(GErP~A|ISy%qV&B#$JlF@KR!hs*xLQh1 zfu0(ep3FeC{Y^8H)Tn8tn`3V4sNYd~htOo3;?S$sUkeoP?l6}q(~=?Gp$#9;H2)re z?&+*hG4eEeEh@1t(?TpC9@0z7Q!Q^B_Lyu%z5(&Y^{4f%vwuVW(yO}iX1lW!ycC8o zq|hWPm~NL!MtkD&$aW`oK#s|M65d7C%1te@&t2vod!qE8x;xi4fc{wc5AA$f@4d9V zYKeo{n@Mi6h8-V{jfcB(!{^~d{{$CQ!jQ?{>GZ|IADl)m+eg)r*{);Vj5=6z@PwILBg<~&Y5`YwvY5sfV_IVFux4CUie$7x;d6XoL?1x zamJX9KO<-j!M{Yt>T{3)$VepWDy_jjkhiInr9JIUZmwdJ%K~1zjo(iJ8;Te%!o&t2e5?iB?mta0X8a$n zKfIVkE{-j_M%nZ@TRMtbwR}WuhT7rVYzD&;~W%oGg*G<68NIgUc1ioxNaqVkoD}QN+e0g+t zlp=&^+PJF72sug=W7w(7AI?L$9eUQ&#N%SMLDp&u?GM^ z|7-FVKLd+KGyz-R%yNcKVi;>b74*}2h)-_D7@a|hJ>Pja>BGp%qm3WNQB)rqMqrQW zU0Ap?$l=YB609%1eg$ZyXF07hUF?HqS${>)L|8B(!%p(l#S3kCI-VXG@hI}>WoTn! z{oOL6>HN^GPHDrl=P_uwvnn8 zZx@HYK-!{OwJ~M&DxrZxS5M`k&kANE zP-@@L4PNo5We(XB7yW@0Roft;=W&4|Ul}DA3A>p6xT_%PX0RZ7@QcXa@jZW)yTY%0 z_0J1PYx>QSxsTLxNZ-L9Z`ne+>c^kW(u;tZ)31y4u7~9v7&EjR&BTh))EruX=U55% z4Gv-}X;XEy3DF~5G^@#@$i&Sr5+2#D)I(5P2)JI6`cn*-%^MqdP}2XrA0C|kaO-U+ zGUc;FlOdjQ!`;m1yzbeGEEjfm?I9P>!@A>SASbex7@q%XKYhis<~+uQzFpH)yOz7q zf05+czAyJlZ)>k97@u+Vxg2V_J0^Po>~4D%hV7q`X6%m0scsVC`doYH^QxRk(O{;x zYIzb>OIw-Ae07Dno)_m({RNQw_dE4_B{rPjHKPBw9#_h%UCsq4AF9p~8M+3IHed;z z*@D-Dd+}wfEvRBFIE%BH%DS)5p6*VItomF)Ax~6zr0emo4+P{T%07)$ZqWL>ahF6Ldv!jRCkN%=H!ISWck~FJd`7>qv3tn^M0T~Ili~1 znog(eRN!9A8#?s-T>MH&-mAPZ!g-BZ&Y&;l5d~-YHjbF>s8ofn)nphRu zZA0R`oPKfD&P2`3;_hD$=QR=eDu=Bc6XJ_*@a_0OFUvbuRV>DA_ga${ z)+W!?2N_;MoA6Va@kY_Eq@*ErNdreNA-YOoPj+){H60wU{Q7TRf(Xdy1}!^#2Q^PI?Tto@7Y>p7hw0jdOXn`h?l<)go zRdhOFs~+(G2uu2E(As(@3qX#EqG#h|S)6}D0~?WlIgqH#TvpQx={1{`(YZzf+{p)& zW5OyZ`&v2S8&m-l=^h{a4sTD_i|0Oa#ujX@-Du7l(wNv-nh`{gNj`oErF$DH-1 zGmB_8h^8k+xBk6-DGNQ1&^CYKOlW5*Q|0>07YjKkAQJd>p*^sHNXhWTS0vQz%C8^T z5|+oKfRB4J#s&05AAQT<7Y=_Q%qMI|`lL5VY-Y(R!y7ap^L&ggAD*CM4)<7>me!Z| z+Ea!ZZxadX+YY&EHQXu+-u|~ZFU|sh*2IoS!TTn6*?sWHEF_fI=GeEKE6n!7oOSX! zmuYF{YG+MSC0`X*f%V{X9yNK9YRw><4HtI{3$qTHzKPc)yyznPSr z3`P@~wo)r%^@|Np>6c-jmUs?DK;DrA{RRZrx|0f=#=r$4j@`I1r%C(lPYYoI2Y%E^ z!|nEWj5`;k4UD+$OVp6o)l)n1dH;?~ma0M7Y049DBGcyi9ljbhMu`$Auc{(E zJmZ&I8WmuDn{Vz`>~1`SH3icT`W!WS>= zdu({Pf?;$TOS-FeF+W|qMfW7uhda@p`bgQD*fJb|gDjejtoLhC&P)jxvp%Y>=`q;hmgy|fdtv{R6Mexfsp zE^H%if6yDkUZR_sp&9&E4de`^cA4K* zHmf(hHjVmNqS{lXyvS;z@-W(opu01wVp#Q2Y&+qcrNemsQElw1cMiv;e*|p^yXzHa zt!B^)7yPPu%FO!Dws=XRGYq8HqMaXCj6ZjyUP}?z(kbXi= zRE2lv;sK#ZVxR?1e)ACK43CclL1q+V(b(r|FP=#pWlNB`1bfK1beR}HtfD~+G_0&# z2wKS#Q;CaVkpJlcV+t=eT*BpMih1~3S8C$elv13QWm@W*At9^*p**=A-=K*9$luq~u zC|SwemF%KCInzjgy5YZd%Q>N`S8C@z=r_7CY{gitUfVt4Wo@5 z-?uH$+-8Sd5zG0n- zd=qLfocJ2E3%I`3lo$~s>Sgyr#t)C&m$w_9oIzYHVCHLWCGhdznbA0rEs)53!)7S_ zd`ti6?f#n?wHbVYqNSOsi?%QIX}tMhCQ%A26ZdjLu@go1@TALzrMI1V=V~5WEuP%6 z(#fdVppDS3K`{&!*ex~Ja0fHYww{;nr}_-gu+v&j;a_Dt6aTe2nTpjhh_|hb-o^;1 zq zzcy@14WbQzpbdq@ktiuLk3SHghSbkx}cLKhanEvgip`B>skDH>JGCXz8{sq zUTp})_vGQ~npZO;QTuHfNw&WH)#LLsZ^pWoSd-8pf)9`tDmN=2H-8agWP{5@kDil+ z5GFUhiqtn+T7RM&I`^)yR*^uqy$fBfC_V-2PH*39d*@8XaNcrSOJvZ!Uy&7xqzWY) z@MrV3urgA}-d<4={UJ&`oLw)0he&39MC-?unVr{N%I0!=k5dNIfJdd?(A)l46e2tI zeH9lwkn}6R^{ziP8crY*>zN)l5$~3m$9og?P~-6R@4raaEwL>Qx*ikxWCs+Kj#|^D z8BroPn#SLm#9>sD?d6SllO=EoLd1Mexv?lPGq3>troNs>M+rZdrYdlmTAGeTv55yH z?a!M3J{P#~)%((GTA`ZeG9lnf<70v>2#T}B-_p9!)-&d2DZz}SR=W>hloc(8*# zA#zBNDmzE&aKh~1VN?mEs{O(pxLGcO2-76w$@kgI@h&9ASho>Msb}zoTBJB)3_j_ z_s}x(8FBG3*X8}3PSewHMI-AX?HhBZGJX3-(X9qnp8W9Cb?=Y3C1A*3M{tIa-+SMw zF8N-1;NSQur&FUp_@`_@Ki|>*d(EXW=(8wECxS*rsn)kX@jD|r;#s~GOJGa3R82N2 z<0D)$4%~?0rzy!aA=<@dGJFfIF_|k1g+MX1BsV~5HGkhq`l&~o{Ck9<&J7o=Gz@y` zx_1Or`Zc`p8(m$=FiJSzgGe8O@zDt2W2>w{T*|CEAW-(%bxYiMN&=WnzTN3v-Z`la zg&kvH9hgI`qt(zfqG-tJE;fCU>)j|-6lC4+Q;{ru| za|$(tO~IrbCxQ@q0+eSj5J3FPUzkFPv|C=OCadvgHu9IZ4YkMoW9Vxu9UY@55JJDK zaufv{ubDco9uSr{O$mY1SZ_A54KxqH{$NysKk85%;&UHHl*ijjcT+QqJy~fhG7-9Q zCkCqWD60c#n5(k5WS9nD1W z*E$+?rwl)3(O03wKO}p4MMd*v1{lS!#Ctf}>Wg=6DOP9jdT5V|JtCs|CV+QKV26{S zN7nUx!tksC{~M;3JAM9eR#Wc!FaFiI#v1}pmM))n4Hu+Wv<(TsBV3CFFdwEq5`uIR z4*{>Km?lzMvwRoAR{He{JbEaC^ftP-xw4@hhvpg%@Qk|(fyHwnTjYKhHb{f8(u&wy zn5LfXB^`G-)gNwVjrYc9#-@#(_5Q)s>rvqf*Z8Gh(%~wd4-K_;$gYj(@~X`Hd_fff7kYUqUmclP#^+B>KZeR1f+)Tl#LHofcZ+c9Rc8D;_6Fz^Q~6EGMqjI< zAGc_I!Ze#B&@IBhCBWOQ=n_o_58`Z2L<5M5s^jiA2&pzkEu(ZSey2dEc!*M&Er z6m&iibwrAi*Xk(L9|eeRor^%m#T?i79=A`K!{4s1o@Dh_E0-diFNi;F@S(JV9M7AV zI@~u(TJ9w91aHRwR?ZO#%8!=`7~u+; z8yzxEy~EK-{+t5pINhAft|B%!#-jKi0$(HI7VRe`J~p85T&pSu@3l_O>M+tq8413! zu^*i};~*ty3wtq@k?q^Ev+*XqtIdm-ex))Mu{q)XWtb$gPmKr5_U&Gi19~WMc8 zx53gFO4H&6a8FUBKQ%c0=)luD5_pC-yhPVM^ZeDhpFolc9Y=hRJJc05XGc`1S7Vf!~$g=P+;}9r8wIOXi4C zS94zK(JDEk6T)mPqnjUb;fV9guf(w69=2}9_-j;AuZog_`F>SwRB>E1G38a7o`U!3 ziSrRT2}j2&idm#iCj?Aol>4YGff6{nlC?)w+Y8u#8c-`mlyNU?PykYuk)lm@z>3&3 zyF-M-;}yT{bdgALH1NSw@@lvb3L;DDm7i6-GXgCa_GYV8yLV%}u%J`3ZHbiK!b9|a zadaN&yGH4d&3IA@fAG;K`j;N9;~ZbIF61ip0wsM43F%KNq;x&nrb9CSD$%ZSDEf+V z@WFfEuRj~F)dR-SHmG>@vq7t=LJ<0{KF*yA zqsi@lsz;@%#*hMB0JMtNON(MJuTKS^Ec~6eO!{;CRxS7?RJ2zlq}H0jdBG>!wXO=6 z>CFSl75cuA=YuyEedn6)1~=Ze5}oeO3%!6FwZ9?pH57a`;+S7mZ}xh;jAJ64LVYk{{uFmO1N-b8X8}Bt73z!~>UB4%LHxzr3R9`C{4KFl=b2eDOEX2!5 zl65VifI@7JYk?7Vj}N%Qw6m7ir3Ylfe6%1kk0s9d6oezxoEMu9B_%-{g61xClh_}Y+)H!vc?sRls;ndg|=OfKgEE|(oH-wHifWoSe8gz?du`1M`L{f) zXWEiv-t9gTywfT;fhqu3lSsM3Ly=Ubjkpg&W|sy%ZNBdK+?+SA5Ou0)F9h| z63buc-D)}*=?j$4nRJ%=;wextZ?N)&zkTH_C(T8OL~oaWCPN82BdGZ72%B6hP4AWQ z&$4`(sjzL%>wHpxwk$7?+&s7_H9PK}Ssm+V=Z0Z>e;z9?BTLE(2@mcYC=}Vr>)z@S z7Jzq6yxyFVwNv3|CD0}PzL{lk?2JIWV<>7#pn~CNyn9RMMg<^+5`VN|!=*y)5e|dU zDz}4?O`Cuuj)vch(85-&17|xFXa-rySr4J762VtBkSI)T7@RBOzFZFZg_6s;zh`Z& z^AKLw%`;XrJPstLRDBu$*O`qhka`)G9<=~`4LP!l38?$5fkS`7#W-YtmZB}>j7JB> zp>OkMSE;zck)hB6TfynBoa62b-Fvh+laOZ-P`&q>dy9wu*KwG6hj%p|p)oM%29{J5#TSO}gCLjkJk{Co;8LWqY1 ziz4jM-bKRf=opNl%5J7j)1!LzuS71l9#+k8AgMK|>Sehi^(*2xiMtQ`_Qvb1`5;h=OWPAOmD+xcd-gc!Cg2PT=Xydh~b%cfHhfFyYPs+|_}JoL<~DLn zS$N6}%aGZ0v2#QzB(Mk4dCA}tH)|LTf&n9#(VJz-vw4sZ(Taa7C?|CVxzj@R;-BLJ zrFPg2s!0=%FLJ_xUm^B0H6>8NnS=~}D2zwrhf+A1Q>fGlhYjatnq-qn)%zv1)~1%0 zf!#Qv3q~ziWPAV|i7Pt3iQ(~VvEx-g+@Jd;1GEI`J-8L}bCWgu&U51O$EV%6PZ9sy zu%`qx{byqJrdmjhK=OKl8ts%Le-dK!5y5R$W z;XY(PlO6^I<|wGOlK4sRDIni;9jj`b!}7=q7s%_;?qt_?k27J?f&~|7d!*Gv{MuEJ zIR<|n_HniEDrN`u@gb&{tVSmG9z4*isVfcNTZRYLOHlWMLn^C7espY;qqVNzEam43 z`_37Mm)z8fQTiV%3IYix#UbSPaxx$LTQemhqy8a9CB|`EDi+F}A;iL^Fnzt#RQA}PU zg0lMoJ+YK>W;P=dGd1h+!bZos#7tig%;fl8Y1QmVGzwc@6EMC*hWsv~4$EteZO(8+RD zwK~ei&3fnhx@w@+a#%Q(8bhGW{vSD|YZJZ)mQYakt#239hWA;Vx*a6pURJgm(ncC$Rc| zxYmS4)IbmHt7@`|jYQkmO=s|9{q{Yza3ElJPMXTKKV1hw8kn-U{`tB8{&Ar{i|BI1 zkQHe>3h$+_1T(vG{*5wO15q^n8^;pe-)WRGdN(+Le_Opl=`I~fIO{FDtkC@Be4rtB zf_7UKT*5b#_ zqq3gQW=r}=4qexe@z_kZ|} z#(z342(+`I|n>Icc)tYsN;V&W>@M|FAUZ0rZSBQEG%$IOXwpFQZfD zl900?NX^8GFG>yj(g)3k@#}?>X@iEHNb>!9y@Z)>Q`u*#s zIJ$KB)|Kz9OikOk#T(3_%kQi6bs0$;3oE*RVxd*FpZ}tLDFvT8It;P^?dtL!2>ba(J+REL8GvV3pp`e zJ1W*C@Pj65GsmE)4F>v>=3{U3aHy+`qx8RLYX%tUe>wN5yRoo%%iC>yUU-e@kw+@N z-euU@U-AR0gw)aXM|wRn*A}Dk@>zjwdTZReXRC9pExITnL_fAWcxnpPO^yd47u28L z>(yp@`AG~qgV8>y3_s}9^$xt9^s2N~N?C@FszT-521G&3f-~Y643c8CC!FV|7a=DL zr;W|n%bENBy|;k+2R5Uw4tMdv?nm5ak1s<5K1enT{6L5jcf9%~j9EJqhC=2OZ?HON zz;JG$>U9`GnG>Vt+w1Tq_0)F0R@?)BC$W_q{a=hr5w^H|FBdr96J*uhqd~J%j-Ga1R+!#0xcltT(VgozZt{^iAx-mum(Hh z!o}E)6v|xDu{gIXv#Ldg4zwbTK|uiMxv%6-$3HHlpALOrELC)NyiEyHs6S#}=I^D4 znufk&S27B;TCDlSpLs&R+4OWd81Yvp=d%#@EyPAJ1F{1JCo5NYU+`Mr8R%17 zPYy24dmYE)Z{%g;_|E~CpK*;{;L@N!xH`7i-Gl77Q6k`?{9CMd9_lb5SKm}d`>-jH zeei%kOx^QOzTBp+Ic8P*ibpStd88G-K~IOl(I_7*MvwD~1cB*mf1xyfd!=K%)lb;` zX|teNQgYYAS*h9{ZOcQ1^0^UF9DLt~68@Xkt!2VB-bs;v8=aj!f|N%>^9<3z-voi2 zh!Zmi#DI(uOMe5MpX*=c?ILL}!D3JVaa-jXHi8X$x6A$G1{rsbves+P@4r?I5~|^G z6E8hvsL)VjC!=y3Xa9mcowG!UsRu6MpgfZCF{cr<&8UGs!4+UoezQb(C6}q?lk+fX z6=!CBq|iz^GpZ@E_iGCuhaydQ0V2~ zzL(IZRe zZb#7>A;3Za!*^Vrp>K3_Is7QM`7xOhM=OL5BA_5-KkFUQ{+lr9A44P&`cK_}`sAc$ zunSrU6*Ko=%bh=&b5>4e{Q^<9=7LxTM2qC0N0Z{50ADJ#J8slakYj1R9$Hyf`*GBr zps^PbnKo1pjQlX+?nowrur)&=NNxuLfcI|>E5tTTlNbS32s$MVz=(8P!N<9M7GuHB zss`VB`7lw8xOP&X!9x{y+Hw1)wIhsGq9Sp%P1djS3qo^q0iWWS9Imn|Z5~Q< zPv>s_qonDlkra9U2*tF>h+8Y1V2%9PB1veL06~8zeI4c;0x33OkmY}nTBpd=$Y>=I zx)&xm6XqL3ha&3w5L@ufCaJ2okM!a$z$>tV(pBIv|LaC;@KoH8WXe11_lN4*Ob{d; zRB0}kzcdTPy_k^LtAFkP(&ZqqOPKAY7jLb{;R69|3Ox59g~$Urx^MWvc6$t|V)L!! z6YaH>(851SX%1&`w^$>=5jb(^6k!Qp-DZ3#C>x;UiYsA)1#XA<`fZgTGLWax0A|iK zC9W&mt`NkyceHFm)*NX3=JRKE*18V$W|R;hL9mL#(l&ros!sT#{^1)$l-?2RP;RfGLcm5 z(JN-5GWd&bZVP&P8emtD{G5Q8l895uA9V8$hXpU8QhSZLi`TcD$J+}Bj}5oOkKoPr z{EK$C%G3F0*wCv~+Z=VfA~SrKP@t+l(MU7DSN+Wg{GD={CkV~YPRthq!}Z1dUe3%f z_Iuf3-cJknCwl#j&)?DDYe4r`;Fj7yUu(M{q2N&8=risc+bsT+8vGe@@P#FTA|Z49 zs7EsPNtENm_Si@YA51|Pb@BT75p)K}38@ROlHkaNgyc2y!?gk1GfmlXN^mA;nHsPo z4tUSB)z?xhdS;{Q8dUUt%S*I3$h@VjH-eNfAnPs-6H;2i{iRyqamH%0tAwqYEn`o( zg9M~Iba;p6=DHv(liBz|X3_9c-fr$U=SaV277uCiZ9q*D(-R${8F99nU*=%93I+~h zVNJF&O!CN=GLcssNz*#i_WLmwyvgcxHh))L*!5#ogt*o0=OE1NUnyL7RV= zdB;sG-(xM`H+B`ilQ)wS^GOw46HU&AOgX>VP)?*`MCkW*&FuJ6mYE+xb?+zwW_`FK zIHyPzvLc6-0_uSY#EdOTF1o%P2;HQZUkltPG~4F=lkr8BL3G7gw$JgL+skg@o?OL= zDpj0P9g5M|K)mLe&CKf2Dgr*r`Zb6;kJRc+nkHgTTZgM{HM&6^*~+9OpQL1-cAjjJ zY0YUe*GP5qGQ_pA;9gE%xX?SB{L4B~uG2pgrC=v|)8K-;Q-7Zbgvr1{J7K@-wlz_q zMPLx5XaZ!>rGQasip%gqDdrJ$$Az{+5w~yl(E*jw??ncB_?F+rNt3P;UW|b5T$Exn zI>vnC1rT#J$klBx>=xY@4%wViO13H|D{`&0#zNF{dt3(BNM$8emX{;;svN?!gZd? z0s(J*z9X(C_C`hKRwJB{Td-G%hj*@#`%n+I-7M2cyO|CDKeo=YE6%P9(m0I;cbA~S z-Q7J{ppgK<-66QUyF&+e2<}dBcXxO9>Gzp6-{ueWTK(bFea_xhbzRs|jQg+Cno`6o z$2-MhFOqN2AvX3^cJT9$B|h2VlG1&6RgSE z(B4G@^GlsouQmAVjd*ZRl$)80_nQ>?9Rlqh#X;e9Ei;!?tSntx0eV>|&b}QB8aIwV zx}$Un8S|eNE9yy+K#pT!6DZH!0fMWe|QqVq9W=iurzFgBAEi(E;|W{h8RwS z-tT6w9#-x8as)k*ACqDQpZ5~SH$RjQEh|ynT<%Zi?ZN5pzGjErpXVzLaE+sj;Piih z(*!TP>*WRtyV*pLvd}Y3j{6P*&(l`m_Bi)u5DFnzH<(~#wZd<+!r>H+D)a=QS*Zid z?|SCPYCPDzRBLQ_cQjq&ejOY4`}5A;SMQU!U9AlPYMozvdTTe9`FPqwO;Ow#C*Wwh zmB!BUf$BM!xs!k7a#Am>Kr^X`0cRfNx*T>2A5cFd_HUV64K2Hvvm+5@i2XhGXIc5S z>u6z>36PvIMpRZ-VP{si2h6D1h=l@~XouUo7&{AC3ec-#5hW5Q-QU;ldO;l~g7$Ua z**49M@4i+31d(;bZ71u}QS^g#kdWM^=1n{&N*h+G+6XV0Uu^MA7=>T4;^N5lhbe~MWlz@0 zoT;o-QcC45a1l`c?PYhn&Uv;%s%}Y-;OxC6V9c9+y0N@K{^-~JjbeVfEF$Bi6vOP# zf*9b1bEu1NMgUOHgGkj#rSqV!|C3F^Z>;?+dRVhrm(Y)j;L zt84GaguD4!Kc|h!A-*C%cS`9@?f0YV1oF_Z|8Yp$!*&% zC;gHbb7=%s7=%%cCuF`d6V72R7XB6gpDhn-dN(6ZjQia0RYyrRIzeTbcPVXAEhk00 zo=_i1f~I{NB!Px<xivVQH8is%aUMzt919@~5#87lVQ}lO zLG&^Fza$xt$GG%b&eF{E(28sABRQWDNy~424`Dko%LLwp+rqp_KD+0m4{%@n>J#$< z2UjdvG%g^Tp^_|IyMa0bHE)BK`Pg*sOL<>y8w{ehW|CW5M=ZB$?V`vi0@L!Up^>I}da>gn>n&tYpByIl3R} zrz@EIDspvL_pK)zm(Y!P*U}B0;#+Nva@7bzzHdJEJ|O;>J8<4}&%;Jl530!=7hvZ#xBP1(IN|CpQ9R@)1D$ymlQf;xfA+Yw z_JE$nVXA0f?NQV%<|G!;v7u)^PVuL)18^&2hlR@ePMpnb5O=Z4GSAr0&|;Nwhv2xp z3;tn;*jx51fXL>=Z*~;74uKQMYiD8E7>p@bY~{Shma2vRe_j9<^WUp0o9c^0@BvfM zX!{Su;|3az`}0xoz7|41+|W=VdTy;F`(C-cmc3f&%c?T}apmf<_O)n8o>i;^5SZ*$i{6q3~2zV|xzm(f57JhiIIv zpTCjdI0%CCl0xJjG#(~mW65UVLH+ACo>0l{XvPWh$r<5(;a^H{wXt0oKrmw5tu_;V zSx>bu*0w`yr=q9tJ^qJ04)UJAVrE7v-3l&$)@J6&xaP4F`x|@HQk&3R>k~c^NA$&) zXaqj#BdyPh3Iyx^re6i7oW~a6sBzLNtr+O6E~Tv|w<^Kr>C3z@MfPsL%B$ZZ+%M(_ zym|8Uuv56vN}0jgD&zE)atY0Yq|RNrvi_eZgk)Vs09`)p^-Yv4kQ<$`rddfBS!a}_LFfH$xI zU8z32HcVa<--yuxN;hL9uM}N(hFsz4zH_s~S4Pi8Y+E3u*SCKX zNxVCj)SS+`?gWT!9LVVMl*H29sLW4!v0FO8#ObQ)&kU5W+1m1sDVD~e&7DAbcVlYl zrwiqivr41y(Ws8sK3;1!8D=SM&qVn63tvB%7Yj6XJOu^B92)SEU0wqAKkwT8f`J}~hUyhcUdGhRF~@I3YQ4qhRJ zfB_-@!Z6pp@Lwe?NQ&S%EjPgid}kSA8O!b zhJx9m!opk#QAIOuL5$)4ZA!e=SATVhEk-8yL~S#+A&ZByA2e?rFn690A|YMk>9`hj zu?-(e{Uc7AinGUj_+G?Dbtk8IXXv47za28!bwTZ&Ee-u0M&xedt6N|9j_vA#Z{w}V z5HpQsH__E@L_}a9`t7-d(V<*-56sIW&d5LdTAywWi6>3TTKJaAa^<9iyjnUGHx!2J z<{ISl`O0i+NR>-!%cZKV(wMCreLwNuU0>Ujhh#*lNRTbOPkzu|iy(gmIbiIpI# z%_5OB=7*}V1AMmq+5-jUJiduKN~5bJ1U)g_&PEHDZMjMFlF&@G*}Cv>eTi4XC4Pu8 zHq5B-tb_pBv5%DBE7Ano8jzYu+Z*SJi@b>(dQMo7VrioVsB36WDy zi&)jPSh2dG14{HvZ|Zy)0`cm;hX8vN$G;G->_RKO6hJe|5$2p07kb}raJI{XK4`Dc zRs0VXtzKjcJXrFG@;Mp*f-G||s{h9MH74Q0UUE(j>yPrebe@K}5rNpfAaT?#U8`#f71&c|d5uOhfw*ZSWF~n67J9rs^M5nNONyE?HMKw}qg* z#SejcDq-VMqb>w0k1G4U33d7gc|K4yRx>O@1VLdL>+G;o`!c z;1Byjq$c24F^Y9RB_2#6GH(C9sgJc%e0nuf>?DK%QK&F@vC$OP^CzfuLg!7Y2c25? zUUtkL$^8m&Gwd$mBGe1U8WVv$Qgh62ASer$NN@7eFYnsd;ZI4kTiLY02YLOiV7aW_ z+8ffQdyb>ABWP`OL9MENe<&tUUcLOkx@1iGKV353UG{1CtO3B#RCtm#P-HKovfXDBW3t5jLt}K1W4GE3!B=Yqa~iP}j~LhWdjwA3dwS zEp2=Ky@H2d1oK~&uL=G#{81}b;?$T1w?mKr==f#VwCF83dbiAg1d7F6A}p_JgF} z9;@0g-Aqf=XsoWK?-7=?PV`i}+9RHy`lF?Fg~C_MB-y;A6Swp*$JL(#F%5o%ctKzP z3d`MnI%tvW;H>YLSDD$!o<*w}n7$F>&*#t`2sDnR2uEc^&Vn`S#x|~}%CRO~h1a}< z!C1@_$E;irO230%5A{R6F5u-C0*_88#dewsVf{T!citx&zkIy&t<$JjGch1C-Mu+7 z<3+A6h-Idut9^a-6zT1V1)v zN8P^?F)LB9ro0^2RY*j2_(N{dLUpY4%A*Wn^65rm5JPz-?pk8G5+g(Q${~4hVBUpD z;M44gO|_Z8zVA68v7py>Ert?APCKrD|(1{8q*`g|u3O;<)9ylQ3FG9Kl8U zjN%Au@db%Znn`DN7`C@n1R$jP!7mFRAq?f z43^tpyEXS6eceaJgcRSJ2HFk^exg9yjNy!zhMx&QPWgsvI{Qk>UTGlxffei8w{@hT z1t>$$1;#y|iKwxTIM#Tj7 zegXa2iE!tZH{R|Z_5y!{F!Qui(RtAm%d^TgDaNZ^ZD?ZED13<)OoZ_pLfG~kME6fNIaxbf9|HCDNC{{6c4fm0Js^$D=?VvDzRsb{BCJ{j zWH&MsiPj?<+cm{HUqmg`spY=4t%hPn#PD4NlFw&)nWURvWFEhmme_Wo0 zjNt~9rl;4zWbK<0v3W4%K2V$ut>I{ywtoOZ-PkY=c^RAcL$!coa@#dXPGB`4I{F%2 zP7RNR5q4tZ@giMscMph)w1QZV%Jsa%d>D(G`wu7Afa`_zE<6x-r9l z<|e2rMNA5RdZ`(jh<-iDdwKV9dSe|TGRFA6k=x&!2w>dj}kvg?((XZSaj~5Tua0FJy63OkY(OBtWAOl4>O^ zKLw}_%IuEgu}*X-ZV*uH*zTsf8B`}13l4txDmTij5*uQpx96;rJ`VZnA~A(e<<%W2 z(g40rSZzl^=b6kJ{S#_THpYBq44)m=*!BCVSirj|G2vmMr-9~W@U+ErhrxIlO>Ef02`jY-R;j?Ik=bz zbf^tE-)r8WIga5cm)31qHtmn8cSp^++FE%6UJobps+nJX_9i%*ETNe&yzjf5P_5*j~QWHl(ha!Zd7w z@uwZ&V;EBh2X~Z8kVK}$+X3B=T*)&j{Vp(b(3}e?h2=YA@lv2$*;&$W(kp7m*u=|i zYGiKqYu9+4_&QTn|82$R(df7|!9adD2<5=%(-OL&ZFC@~Qn9ePo)B5qJ-HpE3 zlAb@^Zj=EqbXi^DFx!U zKMuLD&1m-!q_9JExl}YlD~Gu>{s~Lu_V7SDcQGo)S&k!0^n0;Wy?>KBxZ#uY0FV6M z?q46DE~||$|72b95rWzSu0%_Ct|GMJ=l+WJtytIoIk9)8#j*pfFEA~bmh_=-FN|wK- zT|gIekyB{h)3dmyvdJ+l>X0TbyfzkR*ob5i-k*|y#{ZX5cV=_;E8xjQTlJ^5X;c`8 z0VFL_T>qhoq~1d23FWkN<(*ZQ#LDguU0F!IuLWWC=gSXa4XveLXz0=AS^R(4*rYF& z$HR~?0YG11>7TP}q>Dt3BB?eQ8tAFw5EogCYS5{BRF&Zb{Z^?3I%%J0 z<%_@yuD3fe;#wq3SL3ej`oR-f$dKjS&WV#s?tnUH*jS9V~t7HNPDZ`RdzEthI=>SOu z<;k%CK``WnOFF^0x)Pb4NRW-cn0eHLjg1TaoUmrj&vq?epc(!q^1(vt8`)`8eUUF+ zl`-bl>}x=x^|HQS=*Lf+xec4MUY&IB0ieML{voYF=z@>LEssB%wV~{U`1`a2Dn5GV{eX`K9vh$P>KRVNvfE@xo3IRi%sx1W#WW5^F!= zTCzy%$_hl9Y`hu11CCsARfQey?zIIq>DesJFJCdU7op4kBQMyg77*>G!j+&BLCw(a zVSew{yPwQ~ZiryOkz&E{3J#ur`rKditMr*~cudM{%Pbw0oIHJH#kNsre9Eeh-|~Lk zjhEqWp82kjH<%#{8ulw+52jK629s6^!YbE)6oh%C{*Pb7>vWK|J~p}6A6H()y=EUM zi>7_-`h2r*`kC-m-p{aeOwc5s^1#v&_I|_j^8HgFwfge*8Cl`6C=+>}?(cP{Y$7$j z%f`;m&X`ZtTHOgVP0#L7Ecfs?aSvYqgHKZcvz7z?&a0a3B(o1fefb?W`$&Neyk|I6 z7&??i0JeCkjm+4T4rztx#PAY7%OdJM9mLZisRw}+2ot7T6|9=9?Es?}5AQpAkw#v} zj}b8u=J~}#s@m5-eou<7Guo?ox#BR8nf)tV4kn=-`WMc3%6MKX@X&|sLhX6*{^o>} z`dLzMNcRvhG_X}Ky%C-6Yih(|1#WD^>$v=Fan3~mx_}sadieYEU-UocqpyLgrD|S# zZFGGGNYZA|5w;$|9%|MB-H%WKrx169%PBItHZuh=n6w1T?8*7rF>>n&61l+0gzp&{`LUbYtPfju|*aKxYjk; zw4a8FIn``;lh=`@n&|U{W=6A+rDi2lw_FF&`OD#fyQ2s{8JzeQeR0lr_qu5-?~27D zgh1j~xKRRBHM71pV=1ZAs%sgKbO<_^n3bymNeRD% zF^0ue$Gg_)MTRGK_o1;!)4lVD7-pW3Pw)F(`JBS*(QB8S2Q#~2z5G&wWq6cJ@~uJa zX^8JXmdMzy<=pp%9^9R|3lCWu0JztSyw%i`O;SCb#nXH3=ui`OkUZ^nCXYTsFgfa~0q#3HnG3#+6gd}B~AMq-?7z_TT^ z$%La^q2`*tlxTxNaA4*DeY-6mv=x|c*B_X<8FeItOMhhA+(bw*Ud(U))J+G|5Mn$Y zUID$MpxCU9=5i1r;M52FP0F7Ov$yApJVxve@%v;3Srmr_tG>OwqF~gZqmxjOP$dZB z+64#ESi@TX*UX+}xRSiZbmtQOzWy-~xr7t}`v6F~@OK!yLiY^-L^SCPAAEX;I(nT6 z$nzh#ZLDQ=h%Ud66G`1G`TMwPx7c}E{JibK{C2T4m_2<_Teyg`@_zo=D4iz=C7cVW zr}-nC>$dzs$K#_i9DVAZJ$z5Y~?F{>S{;wkC=5kXB5O0)HbJMF!` zCOAHNs#>_#g=EWdx8cC_ThS5Sw2} zs{nrApO{p6jB_rg(I3?q_9-OC2Z!^t7>{CC`8XQ=3*P}_ovmWbB2zqW5AY>*mBh5c z--fmeHd$)B&tj+Ly5Q=*bDrBVc11_eyJ=~&90r`obSn)lvj~-RFnDsl=e%k2OD4Bn zh?)}b0PRWL(R3tpr+IU61!#1brD?g>^Yg;*J)34h;0YLZZk-?R#Guf!bc->tN(?#< zj0}+CDB)WZ_@a_^+{&`rYcB}I`35W6u&fW_L@tSg~pQnqKx(~sG&KaFu4<* z_^`1~Nbh50m>5wr4O^IOiVH}0CxGM7O8qV+sS56$(|6P*j){fO>+7LOO?|xX@3bV? z#Z3T(L(oIpHBgA~`mpv;1HSF-`q@E|`;gGDnT7Wc$6?uXL0+Iu3o3VuLi|=9@{q_& zZ1I2Y^ZbME!bV>#R;w4jIsZF+Ka|j?^zj&r_BnHAP$GR-$BT!bQ(_gFa)9l zQ@kxL19H`VP_8QGN63?-Xu(LtE&E8zfmbk6;qEtrnc}~q#(1yTmGEdiG&r4?9mOdI z=9Pnq-NE~?kbhtLru3nB`b5)yJr@+|#V_3h?Ddt37p&k&ww8C?hlYNrhmAx8%+6BS z{Yfga3krm{oKh~}h|lFQOwdz}(iZG%swU0jjZAkP&IklNHifOv!6|jj!>q zIg|S%=jC;XY_YgCx;mZla2HNEsx&qSivJ2$HrXr$!I#u`^jA*r3;A(*#zvNpzVzbN?R z@}BhLT}O}vGl@5lQ+Z^|VZyZJBX6QoX>((#Y}F*XMyl2pr7)VVd!@8fPMmBCJOKI4 z%cw?TjW_l#-p)c4B<|yZgzi43D;*k0m*p^ukSYSP3zGoS?&|7PgPc{Ehy zX$(soRB;e;sv0vbz0)*AJ%18;4P(V8i@ zN@z_|LJyKdISa*ZK2UH5wuDYP&pm?NQVJcjUtHu$m8&?CR~@D`07jv9s@!>|73*t< zx@Mfg@S?8Z^YWe{F7fRQ^Mv5HyUAFuSK^O(^rvz5%kD4wu^bi>` zz%-lS^DH6B+8r(33$8^0`|`w&#OpyQ%UQjxAt{+juJCzRiVd}F8l2m0(t%a=;Yh3S z7L~7wy_JBMFcsMkZ_d@7fi%!I0B=#m;JW$rs~!g=L?Xq|Cj@Y(VAq)rip^HYxn=8(bbITU!y1 z521?$yc)RhxYChDL44mmf3n^++o8W=fdE)4D)U1rF9b}GSEjy)H32srabyMI5J(RY zci<&Dt0}KNMCKp^FV<9INe=rR!l{-i4EwP7HH2sjuIut9t?4c3qBf6|KmbN*;m`6?j( z|GWVIpD8Mo+Cn=m2bRPop*NU#o0N(HCJNjsm6TY)VQ6665-?2hX8y}Ir6DvO(CssV zteK#$H+k(!9ZoD%HNSSUXFQC=e7 zpBurrMVX_Hkbe(ro|KMtGKnv*fV!&h1#P8$gvmPTf;E_|m8S5%!cdzeF-yUJ7g*%4 zUnjTF^D5YjAm}9Et;b(u^rxYXYufU$1BEEuc34CT5!(- zBeaPL#}+Xk^H&$TQzc##e}9;TkA+y*J2&{1z?{|Dj4;BsW$#-JNxsGAWNlQ08%)I( zqLH5Xnu7|~Fhhtau|T2nrY;legp>5$A#I{!+)f3elc#xml{8Ag z0%5Y6k`i&dY#V*J9OGdy9cGuzou;C@J6o|ydqdC994ip{2MdLdt|s0OL!%p$JM-f{ zhGvTM#S>8+NVeS`urEfH&4m=?KF<_2?=|g(_0q2^`BEFPQ#H7l)>OvWHi2E`nTf>X z^h0&ayDb+xIQ$ArxP|-Hr3ECd;|wPY&ybp9IJr|MV~t0Fj0RDyozLm?Y3~I?rU&9w z*xhYswOsrtScebt+e|9Nj!Cx^Nnnyt%tcqRBZbY88NLjZ;QfPFC$Hn%C(F>~xvjMe z8^&~0L_&AI_>MIDV1Fx#u^*0%(vi8g%E+q`UDwswJ;K_ln?s?UKB+7EtsmW;;x_@#pYy ziM9(be6Uw)m-Gc{t&CTF(p~m~eSO>$7K7HJq|u>efI|!^4vNr{xR|{#Ce$TWx7O$^ z_Bb~IU6bU18MF~RcevZL1e=yTuMVXTHN@||aFN1y;@b_2TM7|6aY+)hw`7~^DjV63 zFhCbA^B1P!{=O%--TEY@@s{Ra!qCawJ6f$awQwEzpb{%7k`AzY3OUd2$|8%UgbEKq zNxw~Ch`IXrFNNh%ovG*)w>Ne|&?;%MAk=5Wf71&q1Mk;BCzt@W1$9c%uA`ahPz`CL zaCJ}tRAxRa#FA|kkUott;e@Q*tp+op6S~7~0mlI?#p;1*Od|@J-p)qgXZ?`dz3JDrSBEp(n zwM%-;JWUV^mQg+oW}K9wWDQB;%OG;k2zFMuUtF|+LUY#iL)B@EFAI6n2yoVB;^ki6 zTZ&?jfBFuwjzK@d{lIO3lmvv7L^`wZq?q#+-jzK0%ASCm??cP*WrB^Bb)#nDU2IG0 zpkw7>k@JjCC%z2;yODbi-&$L15;SAk9O%qIv!nZ*2!N#`Q?__#1Lj?U2rODv5T90F z<}+C7*Brm(x5_p**KnNMyqzk$I$NG6c#;PE`xeD&DW1oUC}Km=O~JSop7ghzkvpAR z4*m2djJnTz&uufUnM4K`V#`U>#AWxOzjQf)vui&*YrO?Na8etJ zfTW?3HvRDvtad}8;v$fR5c&>Y5_$F+WL_=x?gm*XG;^_TagM&Y^cSX4kyeB|S`IT2 z5SZsXAuYaCtVk-Cxx2Vd?&y7arZ4@{PLaG66iirYBNIKm0ET5RW zxhOmOL+F!VWEm_7ZJ?bm;qHxNoLqQDrYlK;imx*(f;4P4w?}$qC8gsJG@M z`kRr8@Oe4;6tVJeSMa1y52z{Mumdo_oB8F3#{n{jpub{P6&3%yVmI9;j<*iw%uK(r zZ7RJ#{4F?QK|;7N?4jCln@Pyf>aa6`(L&BJ6x9s;1L`TIA56|jY6vWBg2gYa;EBkEk#hQ|jTGCEa9 ziNH}NH443@i;*vUAee~sTOFn&4sU$v9ES6jjb<(fX75W1iI94^%9fNBw%R%#sb5Cb zY|trVl;gU=zuZ}JAp-Q)fWg>rT2*DNeBa}m|7l$8SxigbVOE{WBsC?0qI@@zvHz;vZ3hfX4H_|X5x@&BVK^ooUw?)_LzSb=- z`1Md5@s4QpJ+Q?|@_fEYsHov%iaNFEvKmO^q};rvU+GfU-fSgR*g%Z|Ml(&${TRTT zgNXPOUeDaZJse)L-Krst@dx4#0^=_3e!XI2#*wGh5(D&PtepZ5BCWtUBV)rXF<|9X z*^Qij+hg;8im#;2u;S`xg6r)mxPxBEoqN3i@?7(FOFnA#MYMJqETReOVBR7OIOS8I zYK{?>r&{)-)7Db+$CpR1LK@K8M38AAMOV!HN}O%x2zp2(0N}s zGS1`nBXW!#9pGiAmth?5aQQ{RkDy%atH0S<2N%~MJbgfTYqY5b5zgCGlqv+x?WSrU z|KJTJhA=t=liHq-s_NQ#yaK=QrUTWB(;@WM?sDx-nPo2uHtaZ5TBVR>0HfFrIh}&w zaGcd7rJ5Ubub^NgRPr~9{;MBY_8^g#X+%sLH?{Q9l#>8-4?mg0Da6JqX!{yt=rxywn70~Pi|NF8sipK6@u1KrNuc(=-5uH4FN zM%y~L(K-`wR|??hixAP^9%RCX83@9w)l?h{hARx9m7pQJ{wnTcMbNoQN^6D>D*aAq zxBfr7@s{PIkVsTL_TIR$JSiq-AFwcvLdP5jXGwe>y=p;4Vns_^|IFiWh6BZnmmowA zHK@m-kYqPKQH>?cs$u=`uouTEJyQb-iL zAHc$lkfkMQgV(DCx09v^bA5pmn(OYybF0rLL8x=|r$dQ6LHzf_{)YFmPjay3Q~!2V zH`l3Gd@)(@aXQhTkevd(h%K%a+MlFR-({nK%(WWM?*_DWZn`s#Cn#mETL6h;>RE^% z?iKV0JzKg0zxnac84v)~7(7ECK#R4T%4tT5ju+xJ``4ql> zS*L9E6blH2d^$|Vc3I0f_C=}H$oNUfP@Hkww}}h=Bn6>@Yk%d@XyabmS*j%$7OGIl z*s)~vVk>UVihl708&=_-=`@4=hpwdS5_`j49tX`|AwFe3it37PwIEv3jOH|6R@77zp{57h?)tY$wtL_Sue&M#<8lY2o5@|LZy%Nwfv}*PMbb zV){F>sRRA{Yk$A~GLU>FN~ow11PWzd^tZ9TAsfJuv~KBQu;M56oZ3CsM}(n4a*=Sf<_YTW`fvEW`KZ$gZ2u5QMw>HiFhzx8Y&_m z6io)6;ciA(Uu51S;4L5_)`o1hSR+JI1B*1pmayo@d`|~tcF{I4Gm6c%-LUeu=0iN&KWdk4eCLcmGM{UXgdxsxyq3k8F0+tHf-E&c z6RTyxpcIZ;;T^e^Dc?*^b;s^m`Ii%j0B(?uzsbK%ldPNLs$UZ;h>54VB>jFC9e;+J zi9zinh~VHY)gL}@1j(ctu|4=4(q#_Qj&&~`-g0y+Jl&!ddWjKT`zkyAaFb9q=sIef zwO6Qqqcaoccjf80UmTN*L)QC%igUaCx&=T6;lWLPTjS&!BFY> z%eK!`KhED@XF}XVls+icEy(HvG2Q&>q2TSRIY6hM?g)ib|HSB`S>F_h`mMv z)oPBecCUwO{h><5X(VHLsmoMvuUFru|K|U(|IPnnAD2F`e9d5fPq?4JlJ|G-_kqz3 zJPWs7z|Z>}eI?)xWOQp8sK&}vOdC5~(G9{=-1!j;hh1B%t3&#W>krs4PT`w(YlWb& zxo4T1XKUWq6Pa5tF(UFL-We9lilTNX2tH6RIbA{8sEPG*QtY{|%0rMW z`%7Hbm@A{caO?(D*pN|Z_xRW`dlpwXB?9?Z*~KKB-x@uwFa2~nC#qXTmSUlIEE=*n zS1XYd)`~0Zh4bs0^GTQ-Ra-E>Hhzq{lz-u#grP%yZ1ebIL!l1bbcR82;HOwf#)ey5 zcC8a*q4Or-dHSur**&U%kA6WVxoJv6xuyw|K?n23OPJHj+WzVeTWUe(P+6Iz$qkO4 z5r}7OVV1AyV8$2#O5hREx@uGKrD~{`8;Lk<0Ljkd>U4^*NLO;}MKn5+ng(FE`(L!c)N7rNF)Zr4_N^5DNX+&46`a>a0D z=O?t$)T9=1OAUme8^KeZloD$XjSLOyNQ_{{*NewgCkSSxN6O}fAYomuIxMzhMsvq4 zKtdX2SJHYu@LS&p+UfYJ+`gR+lpUMX?MLFb;U2Ivv}yv%2ooBq4Q;z9_q4}`VFJve zT(rEMNdVIWj#TXL>FBUA>7a}=q`xZ@WsD6hw5ouzn32Oy}EE4DdTL5i=zhaYo}HZ~W!#X)*^_@xBR8U_||wz=+Z}ef{(H z87uO!$B7Evn|G8j-7!uzppKoL+>7o@f8J&%rl&#LCMqW|f4?hX75$x1RzO0>dw@Rn zVIpTAS|2KikTGgOmzyXP4k}_rM)_}I!b-@IBZV^;Hk|DNwv#?%v2C`QRUxsn8j`h1 zKHr*i8JZ)S`Aby;X9L)ks}Cz9+18YibE~ZSI$6r|Jgm4&q!yzQvcA z_iGw7JvWKd;u!wzpgHidZCw|miEZDD3g856J?GWi31#E zRr#cq8s0s;3p{E9-4POgn3TJ16tHk9l3@i!1i)=rzGxeJ!C3G~k+s{xT3QkqMaJ3N zfh{#vf>nGN#KC@t;`A&`&LzcgqlBIWAiq(+E3VPoijT5q$0Va4nWv<}?FK`3OH35p zvWpgZL{u-8*xrU#D28X>`+=^8A%-PG+=Io?;Tv?zT$^RbwomkY>N0r8d^VWO7fvF9 z$B)}bGAQo(Aq&?j{70psMHl3L!Y06GylLES(V)AkhPskyiNnMYfoVFP*@!K7B()Y@ z!{~?@&&vi4eKkRxk2cX`f=mSh2Xc5R^00A5&@;I{V5>knuUR3_ebHw!OZO74ofJ|C z0ej!f8YCdBC@4*z#`}aenKDq1>40YO?#U2f{J_nTYROn7mYX%%$aC;ah)L;x7hLI? zfXTSVD@Za%<2R9C4_2{TtX2nX1h2MsvZoqWOe|2cw&>7OWytH{GzQjGL#{A-WQ81ufU2}UN*BIEoc&S+ zlV<9fXYaJMDwn@R=Ga1ah5fgIT$O{X7ql~%SxOp#&l7LgC{DR{(? zakG&3x0>x$;Pj;oBva&KA=$A|zwGDBOOgKfuxXjQWRc>&xL&5@vH1#=Av?$dW8fq8 z5b%{q^Y7OJw$y&2QAs5=6y8Ecepy7sTSI$F^j98{GJW#r{h2jYYP5 zjdg{n05bqu`&i9I_ui15bhkw^x4MFQ%qO?z+_4!uPm{0=*mFGkUyLEu&F}MJ2vy0) zix=WcBqQ5J1L5=^@6Cm2b3AJjK7I6iR ze>Ut9t6dGDr{;2qP`EzZT@ng69ad|<17$caR|uPT&T2(kdnMC2Dp)qvS!W)^cSR%2 znrD*Jc|wgB(R-QSL|yvwY%L@gWV~47`Q+sevuB``iT>?U7;n~n`+8hv|3(4Hq0j4> zu+Q`xLGI34qrAVDN3Gn%ZqIePj zB4l*1gdeHH)RGx%quUBatBk>8IE_T!Zd_jwcg3k}maLi&PW81B{5xpvs)>`E$OiD~ z>)`$3`9^u2e=Jhi2XWFHlydg_YF^d z2O+s*37os68_^EZd8bofb17^og1^j`E6G$}y?}3~|F^?NyEjgC6{)h>p6unT`DMb! zT3bfv90B_>5S?&ePnsEa4pqA+BN}Kl#DH6!fFVpgvuIVEzV(+ewg4#lFZBPg^-b-S zMccN)ic_)8in(Ijwv&oku_{i*wr$%^#kOtRzS;Yp^WB&G1Ln*4<{Y!Bw_b5t>-S)V z6+D`$s5U!6R(xWAr6%b1EGX)Sn;Jdx*7E9Q;GKt};H9Q^92rbol^=?L;;U^lJ07;x z!IZoco#t^WmtngwqM7&i8Vj~>DHoaA(Whx9F;_p(A71%QWxsAzpNeiL)LHp!f_jy`5a=y z`y@sQ{F8rfQ+<%_QyfMzcV3D{g8Wf?7PBpMF}$Ml!kSeZ%h9(PzXH>4wgl#goH~|i zd)@=jl6LF>avoE#C{9nmTFo~xgeM#364&$lpY!*8d0cL%2;;v6%Z>%)k}6vqN`)vA zep;Bq1*f^K&kZ4HO1k0n-ZaQ4muhkdMKnuCHqn6+g7|h6Up^X!QFb^vF&K?-4`e&h z$6YHeNjH*~SHJ08-3j*Jw6VTFeS3<(Ty5zMq+8O%!roU=+azcX4JXF ziRjdr>bz*9+_OCXYV>OU&wu)R%$uJd>|*5D=abvo$NwuF8cVDf<|IDY?fCV<;{k4j5bfqx!pO0>xvIfLG(irUoq!IwYDU$Xy2h&}L2K5Y ziA#Gm$A-lVuHs(NLY|*z*M|Xvf+fDHTgSsl_A|CbA(A?o4*Lr3WRH%{8+{F)YHe<- zcXdT!LyjpxMZ(0>F>@O9N=2T{^xbWV0Pgzx`kvQ?kU;yNhi`XrPvr=qtc#fqYT}tW zt`o3JwEguxmt@dvZ@=WdI@&y4I~nh|BAl}Qbn|&F_+lgsFRLnZv{l`5oOGSh1&~zO zL|8tIpN`I6BB&^zQ=>7$VCh@)NUP4CLh4LGcQc))PChj2$oEv49DA3P@#yzepefSP*SVjSter)?qYe62w3HN4640 zWNXzMG84MZnU>2PHu$PD2~yNX1PZ-TL^bQXH62O(Kj+ybd38jF&C)9%9_L?V+7I^2 z!doGT<7}eZVYDC?TkX-(kQ(+K%Z&UPw}%*fcnjM{j>=)fSm zs=k$XloT@p)L7@({EKQa`_SMDkqEM%PN9n60x+tnGe&@|JwV5%&E{bzDG=Z(0M|6m zgmmhfPSVxVQyEd;Tt3Q^CSBzTM7DsGc#&-&ZSCzB(Uh`xq9di!W2Nq`4v5OUfV8Tu z83;<-@nSa0;~D@w#{+KK6DmWoX~-GlGszYLNkIWTnIZU637EX)BDR*eT4hK#Qj*tY zI~rU|2WU*jbv9{!JD1OS2P`zfm4Fy+@Xxp<8Gmv?NC`t+kPF3Y!^C?=q-In}Q)v#y zrn=`+_Oy}sFp(pPJf-m|-Cx^-jjx^J$zXpG;aL{^T;@8V&$Czlsf=Q#fv-~rd|1eu zl*+BT;)NvF1!(w#4C&rJhn3UNpk4(GulcPe6(ddmQMY$xB~+dUBk>S*7A>W>PKmw^ z|5-C7zCGH0pL~j4E4c}iVN*(QiY7Sg_{t1vM}KuJq;Nydz~OLaZoS&$v(hoZ){ z9IW#~1G4;E*-mlYo7fyy;+|2A0jH%6hr2gLVcHZ^nh)4kvGr?#lL7@U6%G?3h@)H6 z*<(%IFS8Ab&U29L{KQP17m>oHRl69?#aS}_p&cEmCBaEWux_G}d)Hmj#PzZCWcG?< zeKp#3cmlenoT7n44HP~>>S|1EE$6b_sIT`TZ6Nf+Sq8ECVwn@*gvi{*q@Z>WMXmx# zR;|QW<>#;kDKMW9dsSV!g~W%G`TpErHipLk@>REFb#-trmctJA^$YMPe&&nOw=>wM zopd|%Wu93i?Ri~ysp=<{{3zR;oGV^ZUU)SkJeB8~rb2&}dLC&=C{@r=)0sg>^f_4} z2_=#P+c#!yqy({;0^|h$=)Zm_T6S+LD8!hpn>is|(9J#01iSH+Dr8%Ncje$1y(Lmi z;YJ5}lSGoo{d?awI7|YzICb_k-T}bhEN%J~QwoLEM_064Q2}y_lW!FxxURuh;-wEK z%7CEAdi=jx08D{7Wh##mR*I*K$24Kir{~G;%v2sce9xoPY-$4e>ZRjm56h>PSAG6B z0z7jL+P8HFcV475wM@C9jNid-A)uZp*B(n|7?VF@!?F83Vt0g$Xc`>l_dOzZz`*`6 ztQ@SdeX__bva#w1`cDb$)`KM?z&j0rQXlBXR`$4gAtGlF9`^cr;-g$B5ky*UU1a0q z$HX6P7Pv22^k(BDP+XWApEs|B>vY;tP=Y6ESZ8&%+3gD@aA+dg07qi{+sAf0#Qm=2 zdtt>pRn|0oJ0-y`%c!3CY%lAZsJM{HbSMi_k}E~%==cah_DDt+DOq>gyk_dDAnvgC z(iieL9X%;szm?d(1-@QFn19CXd>?qIJMz|`yk~dVS z_%rSz6#$(@hrgyJRuP+^5~}_v%{W-KUBL=YG)MuFl&NZeokvKj;BgC=@O;t3JECs2pM& zc9bSp6jNpRirZ|dA3+!iLc7tgJ)9g$`M&M-l>js{)3VFV)yKiy#jeuFd5rDnKQ-gn z9tU*NznAFBNGmS|oynW8isLdw&ea6QlLfA@>EEl0mRYDQ0Ft#MPB^Om5-5XGv8y&B z1+$~IPoUGWBE`0WY5A|6&CSjM3AglM*e)o%QEww9?mJG3Ob1s^8uTDU^a1Z(M=swLJmam6SiarX^X?Bo{#AQ*~Roe=@iWsSQ01wlAx_?au);L!DTl z2oUdjHWiem^W1QFcM$}=S<-cwBQKV)PBW^x8Z8E2D=<{jGOWX*S<7tRN^uZG3 zGvv~!_QI#bWE&Uk5ym^H4?8R3v>BfN=P27WYGp&&78!$MIU2r{!ickAI=P)+#(X8_ zpEhck2~8uasJ$)g+mfw)pW$b?$i}iYnBojmf2`LBoX?|+U?B3vXSEnE z1U`}C3U2S5N@c5Yc{PVRXcsnxS-`72CyX|HrpQt3S=&QK+C_xru$G~8ph)f#FLcV# z+*eT;RGSL(S-FZch=+U230YSWEQ&j_XNorUAtp1WnTgD}unqe3Dr8Z>WHBl%zS=pl zA!pM1Rx`izE_eZ8P_gPb2aS|`%#@utB_IX6#kF(HqbC%sA&HWhe4S0V+Kg00ZkC1N ziSuJB+8Qo-mc)W8f&(YYBgN^rQ|hr|3C1tk7J?03QKwG`Fj5^PH8qo|g@}f-Nfgt4 z`;DjtU94@crOp(ATB#|m}8R?!>yx%DAY=#-@e80kok zC<6X%INurjNqZZN4p#&u_^F*Lj~`w_?kglc*uLk4e$4WjVYPmfPR(+2I4=Q7bx8lLoS~6!bZo3u=j%p++w7!-BnYa z-6f`SOKHHxW~LxIbO~Zp4p#y=prD!msc;J`1_H2x$YAk$%i_K^ov#hL&c{9Ap}&wS zt}Ui!*>SYqeiA*P89k?4Z`Ptvg2g<+^+Qk>m648Mafkc1p(ydh(>19OhEdTw+4o#! z{;I0y!}G!eL4+9X#3ny2PET`?F0|!DZooEwam>b}zy5QZ6kE{I;a{bx{=;q>KB`c~ z0UZ3fo?2-BB2-5LzS zQZ;-iK9oeI;hr-dUu&UUS=bkIX4QS;CVfE% z8a^n~#F`q9EHNd>uwDiI)4L=EbC^*Gix_%`%&)VBjiISpovJ{Y;RjU!+ID#<@ zo>lCq%~3Md+Kdb;)xUS$?)9aP=CE;dk`ljw%LN>RZ6!Z{A%n8Phq*0fc{TMhd67Fc z%tBN(id?Hax-PPcsY~ZfriJZ#040vVv06|TN1kC{=ppE0(;q~Tt0sj7?Llu4WeS?}U+KKr{1-*+XdUy8DY z3^blml)WN1wewmY7eh-%N;ibch>f9GL0k$~6dzGnM z?P0R*7p+=cJOw7|FKs=KrLak`CG6qlXg`5v=qW6MH{2f+1nGA}AUQ+k%y}asdIidisF{*i@aaD>iQlRjpxfu!!ITEHdJQ5 z{FGEWiC45x6;Ftb6KHW#QFpZW&^0V?_DqN7rS`UnjS4tE@V>|Xp9~DT@UR%lPc&N3*^QY zw8WE#A)&iGXVM5nHiDZPQr=S&j9UAqQZgc?Ut0K7Clmqep5Yh5AksFdBBGL#h4lRe z12xJvr2cq<`@cf`i7EBsRu5+{eYbAqt)$y811>*yagVu6uvYW%um9@nygv~az8s}$ zE9<&|yb>3jxBj$nsPHyiLplb=H(2tE5o8O;$&tt*ruob2QoceXu{>PY+JwoH3Km0A zdp4T|*YM#f`wK((IZS2z-kM4Z>~Z@#b+}?_tk!ZXYGK64 zRRpe6jhoM4G<(!1IOx0h*Vi+#E$rTRPUdcMqh%{zwAT|mup8NF{nj>Y^ZVc&L8~J6 zzgX#L(cM{|5K$41BY;-J@Y&}foiPDy!>T{?Mf0$(MtbLV34gV|csxsUb-ss4X$8UlxphM&Ib@ zd9OwCik-(RPQF`~PG{4RF7PLnu8GRKU2TcnrJ9<9tgbD3wLYo6iTLzi+U4lUGrJfD zu|T(Fw{6?b*M)V23hAsJ07Dwj!pr6T95?2goOII2FdDE#yzQwxU$KG9pDo#jfb@w& zdH4B^z9`kGBqG#dn2i>LA({2I&>XE5-=o;8KPQ8Ry?otZ$DTF~Rk9P8)llAeCPBXN zO0Id!!no-BPkJ;^VtKdvq*?IVVaOmHXqWC~jyTY=1&A1=G2AJla zq9h9zIDkR?#sFKj!tgRJrY;U!0?-8J^eqNDPP7oPh*~nDt~f96hqoXL!u7aRd3~Cg zEDx8}Ml-4%3diV99}m)LT)!(ZK-U9Y_0=Hb{pP@z{x@#$e034g!qf!{x`H|TLkWQT zGz+@w8d>u)b74?EnV`8Ol2H29ndON8AXH%h!O1W8`(;+Mo_+#0A4u{<%xFvGk&6^% zA%}7JdYB&QkK*tPj{XTsd@(<7cK_%?@V^yV z9IfCrK{FrYqOJIs z-rEUPG8fr*eub%1h!%KV6x;H7Kc9zFyzYleDWXTW3e%0Pt@6#TYc36sT?rsyqV*d{ z86ViPtaCkmj>-LGPZw13_TGPzO%L}$O=5fyC+7rTNA&C82=(yE&n@sAAvbGT_oS7G zgD~gk22>b%y(L{EYHL+V5NFRW{RSzImlD=VT*}mzxiCoc`?8M5oX?1$a5AXTZU`fElc(n8p zTpYS}=x0g0Ta<~cF3eg)$BAs_;i(%TKsn2+X)7T}OHw}^+%h0L-BvsX3I`jZf0cZ- z+#B@e>ez1OH9cyWZHD&AOJu#o19v-et}D7AO1Pa@r;v{!A*Jtv@gN_DGG%w42I>>sZ2!#G+ei`aFs8EHq1w8qc(=c6T6dx4(o@?2) z7Nrf?;cU9gBDijtV9Y_%k4t!Cl~Afd;C#$b*ZU8m)D}nFR@EJDL+8_;w6A3xHOl7? zkPxbY{S7i`mCwb=;JC2q1QcXU26Wby)!j2#rq>bILYqlVdh6?6dQG}_H)J9tr2T+* z#V*H6Y*0|&flTjDHma}SRVhaD{Yl)XX&T!_gU78dk>)$=&CO9U6*c}M919cTh8~lF zdYyc(y!JhZeN_XYBZ48zRO1bC6&Yw4O=Q&m_aF;Cf@=dk1H$)vfG&DhE(%uk%CP5M zldW^45^#^7?7K&sidA@r&+W=!I(mq)`ipb>6PZZb$O;Lm0{ zQxDsk+dkf7OCI+t`QAqP3MlRii-FQt{nuoZ{E*uUH_eQw&k=f^rtBl|tMaOz$|aF* zKN5bW$Xc3&JP!ar2^y3B_kcY6)c&_+rv@w&jN)(DXX#DgUctGcubc8e-3I4(gY$Ll zsE-KHNGiMfkz_;%6pshRcX9QqHv%duzj3Yn`H946I+BlJ!>W}PM}2os*f>3!)mDKQ zrEZ+43}aB`N6xR|p!c#AqCTo7B&)%qqbT7mq8ov55g^%5%S~$XMmwAm3eiH_2hC`UcTm?F)tB!l}MwCVVc3mPo^Ail-fms zoXjJtMG%Jc3R3lDswpWKFQEOq zMX?1_Ar3uDGA6q zBz~rR0N+Y8XSakW@j;0`-`En1QpG3~5ADqKgTMmjv5lfX<}uTBGlAt_rjtgKg`cKA z6b0I4yv>CSbY}z)_FpJ}zv4AMeei`rGNG@ry1Qr)X~Vf^SRB-3S>l`wyI!UbTVSKMz{R^@gPJ0KI&9{M^C8Ebk_ z4pV^X5R+${V)VCpK)a#-vbVau#u-jFY&KM+ zYIv4zxJ4n^Oqzq@Hp3$s>|sg8F!xmcp+`qs&>WnHNEKq()EF$qMLq*-{0=(z@rM_U z(DbhcxUVf%NjFzl7ZpK*(&xC%&47AwyO@{=G_+|-RL&~9F6|k#sr`owOTSN#A}wh@ zy41wt%jEI{+5QXQJsDd&!|wbiSqnUwwoQN8Y^_!hpvoHkR#&!i35M8vbeeaAtTM`$ zQkAq0&HfBVmBp^#Z&^spZQ9h~uT+}z5gQdDh`|ubK^FSn3^K74CLUVz^~z~oLwA|c z4s$Yim&Uz|hBd8h-N;jH%^G>NK*GoQc z?7c-=V)M`Coq;mO0{*B%jCE3SG?<*=gzd!BPtcwz=!+Ml4=*5$mKPWwLO!tNvzL zGoqD{EN{V-kCKVsqE9NJffiS&swJz(z6_*QQ1kZqE+Eg0w1)%6X`aq2I>pe!i^H2H zuj9MRdxX3ZX&V5sU^4uPbM0|on`#!l4H>Q(FYDmb7w+SITp9g1?sYhsHughj?R@L4 znH{VX`T0>ihaLOlG5XgP{yWq+2K#f01900(9a#V(zqr#b0Y{vu6IY2*^!9&ctpPo; z8x@F(&J8wUR9>@&-+kE{WCZ&iQ6=WuE{OA%U|^O)X{*_T5ySY+d{e6unowe9-g^JZ zQQlWUKMtsUwZ=`TIc?#`E>)R9`x&guP9|2R?G3+%{ zkuo(0U!EsR+3N*B(=pCN1_! zgs64359==aM1(Z^q^>XBZpBF&_YhTk_LuU;Y<`R-nYOT3xs25WztH7fWA9k-xITB5CgxziE4sdjaTKm^e;xb~T|_HO(6 zVR@qi*oca5gEH;P%Cn#F-ptS1FFYPU;$suXaou-oI&3Zg`sn?Co(x=9?#HIg$a zKUV@-D|)<4`MS;wCdmpt@QnS=#f10S9Md0=Z1U@F-nsniWUWnkykc(^4H9C03Op zwJMLObRAvXaZIoWW~pm%P;FZ!l(V{JiTH}eaa`~z9;#uXwhJj9d_p|aSzy^M$q)Gt zXCtd_dNk>T0|?Bl$Rg$PJtz+F>D3%siTSQ-*1;)EqAPSEJ`R_bcp{D?C3E;=)Dk;1 z2j};$-+X~ER^+jst3(W^k0RAXKZhKQt5cXHUA=w$z?vXuKXYEWg=15t0;rA|y5 zi3u4LWHxx(D-+yRs?(PJ*)eGKGQ|0Oc)FD25Av^GKpA9VD!lkHE%9MJ#3astVy|f- z3?NjR{#@!fn@%<*2arJ(5oAFT)0ufrM4|3vJJ?3KO6}}=f0Z_U1Iqt6g`(3E-as8b z$)Z~o7^_C?d8i8WuD(im>Dh2F4jTsIB3+~Z6`Qtf`7Qkt-i22|IpU^TZWe4Wy@Jze z5NCwW59t7gWJiDgpxXCl{#oiT=GYIH2(1w%?VThstPMR=_}sgal~0Wv_8`ed~2?csNbF4lePq&g1LxKMwcSE%g1*{HhO-AXfy;ExcEJp&exhI~c(B2ye4`h!@jCEZsJGc zte{V33|dLAbF2B++hSs|GImSJEn`pmskmZ^btKFuRIa%wCS$Ynjis>f(dR%NF#2mL zLXP9lt8{FPoY;g*pr5_4iBn&LBx10-Q<*f(a}pl(MaO!6&|uZEfBS){Cmb6g0_wm? zU`JD%-MtG@8?@3R8R@Gc;q0b|tG}^x(ce2U;h`Kd>EA*y45@*|S!Os~Lln|Tcg*%m z8?Zr7jE2(Xv!MlbpvXz1>oSCNz6z}_0Sicf=u3p4NETj zAa7e!X>UIeH?JihZ@Ma#T0<;^s3Cyr=Qs5!mV*?SGzmeBl6<4RT%P0lx9h+P@|zVu zXSG^e9#ngBN2o)YwPK$f=<=|03e?Y_F{@Oja4xo93Y))FbAI|K=bEkJR)cfVi^ry;8ycfBjUM4VH43m z>A~h%?Dk=RPzQ5zt0~rS^5qPf))w1bNY$Zp;n9G>BPDR}vGOETO z6U88VaGWz^ykS_A>#c3NHB{^c$T(Uin9EWE8e77(?HgH;@QwiqQzl{NvNNreJI32J zER6Ghx|YLK+Yr!(etx(#e)zxlSVjhL7Y+)!IMqX~5$aTxMipd5N6N<6Ekd%Wuw^0o zmwv!&3D+w(B<0pIIH;sI+frl!slS~n8b*jQm1I4SzQfiglv{q4WDn**u_G_6R8T;^ zwXt;djR$U1uvSn@s0|4HXL(x%%Xfvq77`*#nD#U|CZrtof|_{yznL}i?Ld?R74T%a z@Vg3#e^atY?|dX@<95~v$O*s%>4^_+FpXOtV;(##t@{jWgoEwVY zI}xsC0gAm`i!90_?t*0{4t&jZVz<}lYn9KXH)Wft|19M3$A2w?t=j+IU$vkYota;n z04Xy*du*o9Nh4J8Y-d>$embqZb8;mVLb1tYs9=nfQ7)ukHXL>S(9=f@dgcZ#QZfMO zD@eI;_@ekO@T@KU`&|9&TjH zL|*$&8ybW3%vnS*k!E3f!*)v#pVe^U*H4&ctwi{W5cDs+TE*x;ROPw(oWwWKN6CYBPxlh5CPQE4F^GLnm>l-|GfxIUuplE ztR@PIsKxnd@mF&H3@6^QUbbGMjzDA-8Z_t-PZUlbCy z%~9S7&&UY~lD<$`g8jzC+@giDU`Fv2W<=xHxLCmZFdME&M;3ojQ_uRn^aswHcZKS95nVN9pZSS*+LtH+@=gVw?)Fkhgyq=0_u zCT`s|gwC<=q$nAFQhLOe0OS;Ul#F*l^G9D^{i=SskkqP4ygV@7=$Mt+*Ot|XF_;ciIB+I_F5&Z5c|Y8E{c{1@+c?^<@HpkoPh>n1B&i*Yb(R9F4L z5{pvSQrp-zdy+tXupxv?NE~CEj*xWPbdC4qFt|_Q$4nt;*9H6o#n{G3T!B5fxszx& zCXu`^jclNu^Y6{nbn83$Ljnge%8T8e)TUsKkHmtT%gF2UgHE-C!>`p-?OG)IRH^SV zUmVVH%^?YOyoMRbNou7b@+0UZJ z(SLykWK;HZ%u>Y&t}~5tus67SwI|O>gUwQsK2?)K67y8VI5|Wbr6;|_QU9*q-l(oL zsH@^OA_xnzJjgJS`}kFpxl0f)z|*tu7?D0W+cgTpokimPo^`-iydJ_IQ7hKx#gOXg zHBOvT8x0W7xc?F-fbF>4@qLq=O{olT5uqw(rVV5+zNEirT5*p`^>mf%?Gd0|>WQiq zWpJVk+yNesUJZ+-xI>NjM?YY7&^f0}j$W?{`gz7Jy3=6Cx)#Q-g2~I2;D<6}K zI)`>Dq5iDu$;sw6L9ao_iT&nmj7^V+k=1zOK|YaHsncuNtPJU!-QRQ;LG(X#7U75K zRpt8>sRGMg=^f`k!ingN(|P;kb=VN+70GNhHDiTXBF?2AJAIpwtP$jd>ebaWsjaos z^KMQgh6@SmLaCRcTH0yL4zx9i0DYWn-bP!k1^W!5+I1&57dDYF}YQ2I*YdF%>E%O!`IBC^K-GS5iPI*ZG&v$qsAO}DOkXW-XnPq)-5YQ-)fa64o};wOm`=Vn#8-9PN_aJB)U#K#-GiuUnZl0(~GhR1+=Z~ebeIynlgf4*{bm)d5V3p&>-f`o>|8X66~jGOzl1*do8xT;|C zk%-8kOAJtDm{nWw1A>i8yF*E9D#p=~sJrsW8#s=T!Z?FaKdi;TwO7)RV3_TzpC=24 zkGapNfO~Hj|9nqtY{P5;&E}_^(+KD~_SHDO@6>a}ui)>cFjyOq@HpTHQA5R23QEi3 zf@(}NC#n3OEWxNH&#oD@Fv}42WwZFALzZIJKZCH#u|G0*p8pEOJs{!0i5}6U=UE@9 z4d|2ll1ntSLE#YNd4M3pG7Z%a_uQTd&!EQ%m^!lSuQZx5zb?Eg_$KIfCqMq z%xy&Y0zt$L4uS(_k#!#RjhF4&qR4E9-KwagDsxhMo=xM2OXyuGZVx~Tc$8IdPXyAx zxugUK3F3kE-oVT0rV+)r0|pt;{ujOLQqDqagj4Y{)oQ!;VQ2A1Y1K&L-)h>g0m8F0 zc+n%|*&G9RS4DdKZd_0U7C((&F;I=U%X1R9zJmV8d$?Ni5I@yH;^nE^(Rj1_Y8|nA zP(Z#h=#VPB(oL6x84jA} zn~VhQm2r=n4XJ|;N1X#2`S9LSPmf8q`G4I05-&LjrXMVm*j>`ie9Iml;k^L^@MH@N zqHqq#Q|Fe9^K9T|hYBI|Nes!5Ki-dC?j^T#WQ&jymRHe!INwAR%TtIE^0U9BjmHWlx+5<&{7K%4F)d4dQg~Y^=&Zcj2;a}e# zGBUAnK;9NsmEgFsu0o&1Z2j1lMm0 z_NOxV$%wKpz}H<%W9(gfbhPb$mkJMGKJIr7mT>^XY&Z^t;=68ipetn^fnVeOb%?cj zD-3q|W!=Te-dqP!q7&0Xr^vHO&H9tv(}OsMw6Rwl{+k&ta`At{fS@XWrnxuBX1QGm zIse{e1WKF_2o#Dl9HS+mD2>R1Sc|*Z3y>oKBK*DOf3{Xyg?(TFWI+N{d!3$cChV53 z$;cOT`iCZ5EfW{f=;S=QT!jDPYW*ZVI%*3rGZb^`(~B}GL*Huh@rAc^oL|MtGpqDR83zW3Bw*2Mb?+A4QFkc28k zJ>$OZjY?s}fPDYWzxYaj`beCOIA&^9kLG{_lTFBZ`uPEz3% z4W9L26#%b~kmL^3VgJ#ZV8@m0S><<5{UArebI@Pn8n!dB=rhLzXp6%Q2+&_td2KSA zEZkm&rw*?>ygbt%8iLmT^jF|BNYFmR(WWQrSy7tC>D#E_786B^<`0A4LP&6Dah;LW zA^Gk@EQ$UOj!+$_bjqR^A^naAp^=>}%7z&rhdLdXgG}fy15lRTxRR2&u&{jjlIjm~ z&`mV?mi`bYH1!P?XjSjKZT5Lg<)-kNW)?xxRXYR6Hg}@r$|gn#SbuaEdw5Q)&Oi9= zXN7zWpbtu6nU;ryS?OC zViijQt9#ebKH5#6!rERgJhy3Alxj~aJa3mhdfCWVSzg7_hn2{K#*eB(Eqo`hr_L|&r9{Y3>0rS zN&HA(SF==+h8p?s-}f0-V_y~rEf^W1GM~ddAq-uD#h4w%+rFZEM{w@pwWgGU;SGz+ zfKDN|@4|uHv`E)Ps;gsIOzG+}#)2#)MygyE{QiE>h0pktS&@>W*X zEQ3>C4TE2nA2z8RZ4xg<9QcVU6#bMHh9CFtmua2O;nJTIk!Gh$=|Y%GYahPnSY1`2 z;-aS|5MJ<10LrTJhTqaj4;I^j5W|X^Z(}~@2mkT|KR_X)K9`Amfkg2yN8Q18MpNu|-W(Ks3Z z0?gKs;syibG)X|>FgR4Jzx|{C$!O;jIy!5+VYHN??UITUgHqxSZ|ptPXlJ}^@dR>q zPvExy%Qu8pDmfiJV6&h+I`U(-g?ucT7w7DeFx{yb|HnUJX5xDXWL%x%b38gkTqW~k zRWa)&V1?I^(yys=3xaX}*!(`oqLUb-i602`PR}_}DFY;vZeFUIib2AKL_yF_I0Z_s zxK$Zamz+lG`z^o1kSS*vfj!Rfn!2j1kizyY4vy=%g@J@-!r{)&*?ZFlsq8d@+}>3U z749L|CCL5LBhIh{JHwmUdr#(A)t5~m+Vmj^#qV7Q*!-j4(Rmb|sT}Q(IY}*hd=g$v z35rPSlX9Dg-}@N|P_uT-okUgjT)G|ck*WrkO;C-b9J4<+=>R@8k@9YmovG9&gdQXTyo^Sw0kcFe zCwNa)DJ&Gmz%{zsj>~J(|MsiUAa@YP-h6tCS1u@DYMSoy_D{{MnNgvxXlT zo9)=oBw|>EoLp)Xp%)CjS1D&TdOQcqYNjoy7mt5K=f8cmGTK~L4iP7}L!V-uMWGr1 zy6+g%*1BD`4dTxRvR!X_S+LiT3i4#;IN1pCqt>ct!$$hVgrg}IgdgU$GflZP?yaLkQ2U_!->Gmd zE|Pgh=3W-x?-*qP&%LunWu@=fs>7pU&Nx+1X$l#(zOQfVcAXk_d7kdhGoEA}Py6@t zMk08ibQkfe;xn9jnD%V2F_A`dC9#?M&DjIz`|yA+I_=g)G*+r5-i>4O^L6~rh*kpv zi7pb2*rL(`_j+hIExzH@RR5{XMQMfMaB@M%y0LoMiEexkZE-v8cQD^L3|AZbF=I0* zy9e%=J`SJB=N>Lc5(gNtO_1R%)uqBC-q4kvor!a>*|;rFPWz2?pOwe=d85-A?p~$_`$4u2wo5zoeZHHo{Fr7eL&au~UJQ zS1}VzbGfu=&2nU;C#1fPdbF`#b?tT6S-P$KqT+8>nNeBv-T{B z$REK~tkfcmR6)YPF5K}Ue9+3mvolGWtbZvQjjX!4AVs=cb zJlQTzQ8PxpbvX!#s3;sJnKwh%_`?(T_s5)-{81W?AHCs+7A4}OWS>7T1B>;H^^!n1 zN62i-wD+WDxFDaER0HKH{*7LH&u=THBNG{KTfe^NhP=}2mnVe(AXE>P1^ov$EH#<^ zwr}Ux%xH#-(zT?V%aMmB3kUX13VD>@Tu3%)MVH3YMn8$`b5z2u4el-2DC+p|)<6Wr zzf3OIqXIA;2hFf){$~D|P-p%!M)%Z z*RW|PD);?kZCFY7V=ErWx{M*hz!^S>Qg{!>>o)`xeXvgOUciek0*xnn9c+UT%LcKL ze4=`;SQSQ>golDw3@T%Nr&8#j;C@VG2^pt1#>i*|Py(NzVe4}{5nK}vTgk>d+h%u! zXj)h#JmP(`?95E|dK<1v$9r}gyJ=<{-RYO+X@b$r`HsW0#lqp>1c>pxt@=%7uR=5d zZVuB|ndS+$iG~~!?%0?PO(!gt0e%5g#w&Ma^3)3uE%)ndG9plAA1hZSi|rx(slg$=X;AAl#F z!sP_?5_T*vW)E-BkRE0fA{5mU@@T}SAJ@`k&~ar(A39*siS)DRLXWInObUC#d2g?* z=9ozHycM7X8}P&O-Gv(M$3F>>vI(`~MHLvdW@1V$KifB4C@#pAk$wl_c8JUQR@cDQ z-#mEXU)Gc1wz}xLz+Be}OMr!$n5$y^oXprb77yj-hpfJ?T* zu%MD;O7sVoOAOwze9X&{8IIb71M&Qp=UV3fly;S2QFUGW5F-sL4bmVb0)li&hjdFy zN=tW22ug=Y4bmM_0z(KQ0y>m54BeeW^Ue4?_RzsFcfLZ*(Gur0WybSPMM>-~yw zx*Qqfo;FU4j!2Yv@IBb)`Dvu|K8s&5xoMdBo%WE|YkLx12gJj#SqhN&<@T+TuQ54A z^%)Z0;&cWtjCL^nSiEd+7RG&Oy}8mi>uV5CA&>D9A>Ks^L_E>+CL?l+V~*z+{cteJ z;zMBHc)%n9)EF%mifcg-W6Q!vE*~I1k(_3iWWL$vD4HCq_lwN2gd%NOlPtyoHRsJl zhoUf?SJgTr_K0gY$&tl$NixnYwyG@Oe7LIZ{TI9=!#p+_ZPY!Ti+9#(zLOI~#a8zn zi50}`wlJ;d%PJHKzERK`e)ttXGeKt5b9Y8mNDZ;>VCV#oWASyl*&%BG1@+T`C%!H&3=ZDXR;|#vNb0Afr6#jv@N>aHU9bFGnUU7s>y`MQL$VGGMY5ADv$20}| zR6+M7@vfW~+?UzN1#9yB^tA}B{B*pi$}!@e6l#Oc_)x%-Nm6R^oSITqj_~>vanvlm zg7L@L1LzL^&p~zCX?Aiw_UNJ%9r0i8;^7&`L6Fg>GOHn>pC$%Y#?sAJ^BFm;EGn_I zjt2MCK%M#0wuDk=Zrb`OCRG~&36HSOn+Jh{H{bKV^y{hQt-?rXFJ??-YznIK2=&br zrHc*5Upd)789&H)7BEW{&RoD<5;)N{#7x(rpf0W)6l zA?8almoZ5D0BSi`nV9?hS}x)1 zY`<*!NNjgjTS|8jAAR`AvpT52(Btgw==t#8s0Vux0a|rKhz)PZ3KhT17+v;!fY2@n zo_83X9DTH>s>p?Xgz%aBl%>X7n;&IND_OM^6+l;5z;L_iaUGv5Gku55oXao1F1`^P zhHt)k7H~=>dQlbBF`l3{#N^x{u$xI>h^EL!gV7GJX@)35pea>J&euuL$`L=`S|N$g z!}vMEwl^vO?CoR=6?O&niIPKo%Qv)8@$t`_TS_)tqq3AAd)*Dwqk5oIvW~NEHg@L@ zBw|3{sL1j@aB=VMV<=|1jWCx71}*f-Vp6?A8V1X54^jGq!09kdfw|5~@r>%F1f`=x zJ<_N$sc(xDpsLB&mvSu2sNpV}+Ap{-8dZzh4aoe7f^MMiGpQ3_A5qXlKHgomfYJ!@ z{gi|gu@)20RLE&v9v`Oerpbl+D|8@k%4LR^m=s=?Mu!Kt7KHy`k<^N6rD1oAmp$2X zFp{P1vGo05@#_A@mHoSXxrOq;)Qb+`P2WUyo(tp|+FUa+;;o#c=BHULo`>Sm?NqTV z7g2`Wv8rUQ^L0}Vm!MXGZBR72F>)*Lb@tR?k|=>0$rFNR0}8D@t;WYn?CKS$rcokRlWpDD)XqLpt z=l_$S0ENMBhB9yhosWB2*Sk-~I_8*UCD!lqSDV;x5KE6rHI6K9xyZ2i>mgl?*qe>* z8^=>jbnB%Qf%%Bsf_nG-nAYsXkm0)t)`^6 z;X<+0d8Woh+tN@hoVvtLh(xdmf^z6;iz`WVO^~NH~t* zOoPSs3aeW_WKP28+|~7)U&V;I_Azn21meE6W_5^J<5F>*r!VdY2Aut>=EOo7*%v3{ zJ5^j>xc(4+wOeE!tnfhaG}ILW5@fz^nNQ~@tS=|kdZQ%z#???qTUQa%dgDcZnjCWb zEWj2ZCHY-IxcTxMyHG;$sr3c^4IXeWZm;&)RsSz{16W{a>lqd8x*f&j7{7f`!>ezk z7_ryfu&lSGR|keWkm2y7<}Z!qu1=@&7W~1|1OE+T@urIJmV#lR(Cx&E95rD3aD%Z-+*0k{|X_z(ruF#3AIjwOV8$ zegF2s(+4)!g%dh2;`p;G3$y(KT`y}+q;s@0ySEn_nUD8l-g~%F36VH>Rz%X_KHkS& z#hvkumC=?{Z-ZYDErZnzQ~6KRS58-{dXmCViB}q1(EPLR$t{*gtNSan0cvWa-K)Fz zi$~vZIQV8N16S{`?~txEU2NG!24;N@Q+WvS7HqwSh0M#DJKzn*NK0>TO7>A0ZV1*r zjTeDEa2lHtJ|X^Go18mwr~?uVYTQY96MyPxAa5{Z8`E`wK}4$kZL&E= zTDVCI18YQ!TuZ~v#hQL(a(eVQnnwl5mpMa2TyxEZaw^z<%@AoQMW9n9G6_3YhU6-B z=8rt5oMSJMSD5gA1an3YJ`&kp?4hxzbES%@w=KQzZj$Ba3C@9Jw8||yD6<;aW@UDz zmVz6yA)@i`rG@WfKh1`!UbTRvl2o^=^)|-peOyDvkd1vAX*2 zFWMe?osA zX}Hfej%X{#((};c&WPR!MW7vNja=>Q>cEe5`#h&QDEW9DoL8JjKHS_nW+ls7=5e*- z=Y@b;r0BH3kc{iAcP?^e6TdIPDKS-i>IE-PL$2Nt*uVQuAqFez{w+8(vKP#hn}643 zaH9egsOIr+YN^WBPx(-$HS^P>*XWG?WxJdeJwaFp7PIeAoI zu3}s^=0@P2I%*nt{qhA@n0(UxUAZgn)&5dYzcnN9Yk z!_|`_ViMF60e&?Bs~S#;u zDrY^@mh%NZm2L(h*?C8Albpe1t^=3-#kZ>na4O9YioLD$(tug&=j?hpntwlDSNw9RnqLZBPN+EfA?rNT)%DWqb=QXb;q~Q-98EOkU}gV4#+Gnh zIm7u1m1^5%s@4!mZ&fKi&C|Joq1F#9on<$R>`wjOo4IukHBgcDpIcjH)t{n&wPoFG ziI1L@1&N;3ax-1vZ}#zul^!1YdoX7k1BG3ky~74N?dPjjNu}afj1;a3N-d}URxzJ0h+-a| zTga~yoc@BGyejLe*J2D1!1}liCzdwXk^B8QgPzN$2j{dVr~V*}VNhrH=`e52W%v)9 z*cTl2mV*8X;V;pjGl-k%Q*rl=P6-=fp8B2fC5^B?9RA^PPE_|IqahS#+`DDpHoyD! z`y@x0yvQ>xp9>Lxk?wBRikxo3eRF2+lY+Q_;kaP=pOa=&y&gKmk_d~sZE`s&Dn5pU z!#_rMrKs$3R3%UAlo+k*x@Uc%6Za4~t1s8$wOS7qhPC!{p$hRaHxdm*u5t~>1)#i? zc4(GrYg_QYA5LeHlD}2uu=yP7Ei6&F3Hj=`{aoA$HNeX$YvQbCVfs`u6E2t&g!3ble+wYnM?Z;l7%6)-fe4Wq(g9+=!99y{K&-a|Sj@fs1*+pr6GNw&X zBj+y;>~`*D+X!C;C_NyL9LqdpX})gG>)7}%94J(Fxc}ouJqYz9ZPli@#FJ-{{%cQB z_YGJrUs_giIkV^U7)91X6S>VdPW`dP2FT7mc)|BQS%aY?_obBEs*{btBDym}lPj($ z7rxa&84EMm`d44SznMRr!B;Xe;m#4*znmFrvReJvdN4Q2YM8Rth=W({Bx5sp29ppm z8g_ZlQEr!iS2vcE!%wR1`e?FFP{-iJuk-E=nRpqCbKiz;(l%!V$3q)@=Q+$T?G?(-rnf-R&=K}Iv97*k9! z%jKnl(J;}=sfgZ;91|~1yEOy4FiXU=>T$gORWxH2J{`GsEWH+3%Eqopq#UVRq3x@K z{*LqD`O$A$jUQnBd+}eEk0GPn3#4W>{d~LLv%+fStaA-UD=+GQ%wP{7z)PSm|frPW%=CU!tHlrVQ zD}~?TS#1*S~yN3?$xnOwq%NAWiPSgr)JM{68b%w zV@%L?YL;y=fO3e^n3H2~=S;P#BX58wpOx;ZUi31AZi$g@#By2cT}Ek+>PQ^{_jXJ( z(|gcjA2x~8w&o%gYEG`mnfK_Vl~E*|(V)ac3y<9+3(N3ie}h`G;Qi@fdiCip27jl=`Is$G4Hvj~P9oi3@QSLvnC z^=&^%7n=8%C-_i@#(xn#+D``KonW}^CUgYkT*6%myJ0ysoGs+2-$NU++9-Bgn1jss zPGe8f8N-}4j5H6KbVc_*{36qPL|q|b``kF@W;7;dZ_Ab1>p&(O_tlxu z6+U}|jqNb}5vtYbX3UOpc)fLs(Pg7%08Z*z?jk-rwCCL2)nF=f_(SV;g00iN2n?kf zsDR6Ca>Sg*#4StD(Ii5;`NLP7wu< zFUJBiSI65t#~Y$lU`}h>>S2M({$7ndZ6!Z?wLLTakD|{T7yGD<5>nY#PiQhdd}7v1 z&tFRo*ItmcT^Ad}(`xW(TC9zCqL1hIGCtyfJy$44`=%9^Ys{<1o7ia#_~a~Bg;^K2 z31iY8?0q!9KJD%8yE%hiP(5KbF%ov3_EbD@DX6Or+iluWAW!Rf6z-ajcK#$7*h{(`Pvctpp6;&z`x?|!P3de_|w%#P5hx(Cz`P| zr!#CcO9bf+dLLAp&On7M<6Yu{10o(^QO7Wi>SG6v2IJG;QYug9Wvoq3gr&xvw9u6v z`1<>p4n{<;l8Jfyr0_B`>%xxBR%VH^C9JTx$bXgXTR61_2dQx3QSvZ25nuT&NY5J@ z4Y=kjFgYc4wDNhwelq#c`(kO`Q9APThknkh*r&i6X@j_Jy2khn9rs72QLFcU=_x(Z zH-dWy=6~KHR20!yuXpdoy2>cAe0SK_7ggYU@w(>F#lxv8@#7N7 zjpNc|*BHsNax$IQr49aDy}UG$(SK$Zqi}V(G}Kg(E+pRExbD@S zVLvfySxB%;*p{qyQEn^rynQm)Ogd6?{Ry>Q=Q5wPj>{mCH5;lW4GGjXbBlP)8GD{+ zRRo)9RV#^D0Bh(yInUCw#0oD=$?F<3z3b5>KkY@VUNz!mg-Cn%qH8S{?|8NETD#;% z%mtI-&0%qso@uTpxhn=o?lDU?mTrS-s5aC0>dMn0V(T_WZq=-yOFr+64BO-(v05`P z1+xq{aI2n#QbT1a9nL4%QGxK_;)KSSUmHgmadJKr^w7!2TZD)W_pPYoBTkOzTCMKv z&rDeS4@#Ek<@?JV1x7!Q7#q`(b~jcy3)wF*()jM1mn^>`SKE!9t!Y<)X6CSq%_>Wd zzw7>xBC=iAR#s3z`{+WY7@LIYJWo|czPP|6X$8Ehy*9Ebe)!VdhEeGRo>lFh;l6C# z>8Q9foS?SIE3us^qVi7MmgPR*P6NYtw_S3B)hmm$-8V_^*xrOef8U3Si93=lnh1nnt1h(3vGr|6k@&g6m9{#sdKZA>ZXt|CB!e6^5ehPYfV42>5Lt7ZXtfBIZroZQ(!^6Z7i@avX17wtluG+PQM?azlt;!PA)c)qf%9p^9A_)Duldi=vv{r&!)PAHA~JcX zioR7%{51#cz5T7bF(A+&DgmoAiZJrEyF(``T^D-~sBEE{&nVr{UV-$1M*I&Ey6A7N zosn==qv2Tgncfx0EsQC}OotUBqs2@K!yI;W_6yuT-a=)vv|S>PsLH9mw!14=u#D>c zv9y&nU)K(O11m4^)V_JXbHG7QMHdYp6&vnTv;wa(m$gy2s|)zd30sY}20it?)u`8J z{#iANel)#7-CD+7S<gbtaw;6kcj9_-vmY+bV zxGdJS&eFGUkv(~~`Fv!gNlAyFMqRL$HlEhKF2FOO;+=|jvS#xO6VjQ35^B%79n!#x zRmJ!EXY-M{(uK~GqXBN(lL&1b&e$wY#J(Vq&!Si=tsit1P!TaxyCm7llOZ)wP^mbM zB^l$rZJsO?Q&`B{ zIv5@C1Zg$uS~U2IL~LNFPJj2+GU+-_pmy>#dazkL6e8`?(sH$t=v&w{;?*1#XdphO z>E-Qu=(w#3?`~{%*dQc;i4++*)SR~ANwr`%8tJNh_PqjhjqmR z7^KyxuBNvBdg&mqq{pbdAFLUKy3WyV!Q0XuJBZjO$_79z5-8Yeh)sDVl!v)Cg7&y+ z|Ft_?!UuwFUdsz+WzAvxR%KD zNm@$h_iWaGUH;&id_Ew6hCPLCaUilJ zhH4I64!2ND(zN#h-_gE&ZE@%K_vw)To1At&gw7ADkYU9&q28cy-EYSLWE&gSHViz# zpgqEdAL<*j{XhN&((ZxmzxQwdD`2g+2?xm74HqPpAP&L=oxiag~Jh@Bm+^4B3P6(YcbP8M!iBp@an*_CfM*qWVC1ki(2 zlmsoiU2`74Pdw^CU^d7EZrIJ7EqR|3xvrXG2i;2-^hG4vRjwdxlr?%;pGnfI%QaM>X}UMrU@UpLP1z{6V|Gmo5&+BT^DR#Sfp%Gyc`hPZETpCl>o)NGT1Ve)!U} z1_D|M+C7}6W+bU^gJh{{MxylCyIu+5A=?_H0_@!lxN zw+KEj$0ISzhGTAl=3WBnfIPt5tSevYOMv35_-~XFC71}_C&!yUKnCNZGWQth2E2gw z=Wy)x=`6b}j=%CoF(zN;{$sBJJA+`(7#K#$K$&v_D%Q%$w)k)TigLEI=ZZQ(Nst1_ zi)z<{*Bf0;zaj@fbM^pL@qOAq*dfi(x*~{cwKM+N8tJ)-VW6ACK97BC6pait_Xwz) znMmD43Kt2rL@*Vx>64~hm+2TJm8`JV3_Mgp*{gJ-cmy%rf}>_pj`y$M@wBZrn_3)!HfJ$j<{k(N#Sv~_(#~n54p(N{QwXU0$8DZaqadv zPBvKgR-yDf5Ni~^O~DW%p|8^L$U2b<8IVHd0SwWzv4S4Ib{pZhffpBMv4Oc>c6^zr zv8EAsfSL^~e$Up{c3@y22m*nO7bvIW6G@g$2m8Aa-r9L0fv|H2m%bSZr70=)nr-vBpoS>k z^Js(VqWtD5U&`0j!>{$*e0`sHE(&ywn<)v# za*-G#Q{s-4HdK%6KGIF`qt{G91}J{mbIpK`C-XQtj}@fJWx1CjSz~RsO}wIUh2m$H zC}nwhIhlwTS4nB<{>hXR`&7Lg+MM>#PPPlxKe0-LBN+B8F4%$}>EkGK3wR8x>xSFl~DROCORZ9EodkH)W>2r+I+~%%9azM z)o6YgnUFQ~0TBtw0?c>Uy&|E$uCDm}+((I38^u(=`l(SV^q-^=ba-sE(-nPqv)fV+W9B=A>fZ$_XjqqtGDq zY%q$lv74k1W{@mUi8hezt%L$ueVD@yU`x1BPMt{qw10D}Q))yho9vvk|D#jRyI%L& z2LZQ`;=uk|;D_rw!gYF?aJ#sSs*Pi}efq1KbQHr`oQ!dqe~D6wJh(IhocTu^O6YEq z#f1S_sN<9prM@GY%=zv>3R-H8(~P^p*yiSfjF9>W*48R8x|8tZi{@<>G?0^6FD?k} z6H=mf=tt#W3Q@c&#*R{{kfKGBXifbdGhDKh>{~ug`Bu} zNZyActBup$frbS~fD5m^rR7uS7Q;VAf>5Ur(e^U@Gjbn|Yyt#xdS|TVd_OzX-_95k z*oZ3)%AdZPvizZIaJ!nP&<7qAEqKWF=XbXS%P$PMY@+zn97sgTloqtpULU%z~JCj9FZiMwN zfz+Q8iYycSSbM!|jv>}Hf5ItlCk9r&G^`mJ(%Z3^AXd&vau|P_TeiXb05wJxR{Jx6uL-XL7#Q;p_&quD?Dft6ZG0I0 zD7k+O$lL)SkNoy-;0_>w)}G+N>qZpx z0hk8n&W*@1;mUu8g~+chGDqe6ro71hPZZ{20XAT*Lnd%irP~T6bwf<)-0UGr73Xa{ zes#!nQT=IFv718om0sDIkVq^SmP3`y5N6)qaNTHl}Jc0;1h%7)M$9xB<<(?!ZVb7=4s zV^LyU(%V!$(L>Gw1dp4MOAb?hOd_+o1*O={MfYna;_yprEB%&;PH>O@OfSA?fKAfqB(A!!=&KREjh=Kufz literal 0 HcmV?d00001 diff --git a/rfcs/0006-cdevents/Flux-CDEvents-RFC.png b/rfcs/0006-cdevents/Flux-CDEvents-RFC.png new file mode 100644 index 0000000000000000000000000000000000000000..8d49225e5cf4f4469e77d052872bdd4423e5317c GIT binary patch literal 39957 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 + +**Status:** provisional + + + +**Creation date:** 2023-12-08 + +**Last update:** 2024-02-09 + +## Summary + +This RFC proposes to add a `receiver` type to Flux that can handle CDEvents. +The `receiver` will receive `CDEvent` events, sent to the receiver's webhook URL. It will verify the received events, check their `event type`, and eventually trigger reconciliation of the configured resources. + + +## Motivation + +CDEvents enables interoperability between supported tools in a workflow, and flux is a very popular continuous delivery tool, and consequently we have received many questions about implementing CDEvents into the tool. + + +### Goals + +Integrate CDEvents into Flux with a CDEvents Receiver. + + +### Non-Goals + +A CDEvent provider will be handled as a separate RFC in the future. + + + +## Proposal + +Add CDEvents to the list of available receivers in Flux Notification controller. Similar to other receivers such as the github, the user will be able to use `spec.events` in order to specify which event types the receiver will allow. The receiver will also verify using the [CDEvents Go SDK](https://github.com/cdevents/sdk-go) that the payload sent to the webhook URL is a valid CDEvent. + + + +### User Stories + + + +Users of multiple different CI/CD tools such as Tekton and Flux could use CDEvents as a potential way to enable interoperability. For example, a user may want a Flux resource to reconcile as part of a Tekton `pipeline`. +The Tekton `pipeline` will fire off a CDEvent to the CloudEvents Broker. A subscription that the user will have set up externally, e.g. with the [knative broker](https://knative.dev/docs/eventing/brokers/) will then send a relevant CDEvent to the CDEvent Receiver within Flux. + +![usecase](cdevents-flux-tekton.png) + +### Alternatives + +Certain use cases for CDEvents could be done alternatively using available receivers such as the generic webhook. + + + +## Design Details + +Adding a receiver for CDEvents that works much like the other event-based receivers already implemented. The user will be able to write a yaml file for the receiver and deploy it to their cluster. The receiver takes the payload sent to the webhook URL by an external events broker, checks the headers for the event type, and filters out events based on the user-defined list of events in spec.Events. If left empty, it will act on all valid CDEvents. It then validates the payload body using the [CDEvents Go SDK](https://github.com/cdevents/sdk-go). Valid events will then trigger reconciliation of the resources. The events broker is not a part of this design and is left to the user to set up however they wish. + +Example Receiver YAML: + +```yaml +apiVersion: notification.toolkit.fluxcd.io/v1 +kind: Receiver +metadata: + name: cdevents-receiver + namespace: flux-system +spec: + type: cdevents + events: + - "dev.cdevents.change.merged" + secretRef: + name: receiver-token + resources: + - kind: GitRespository + apiVersion: source.toolkit.fluxcd.io/v1 + name: webapp + namespace: flux-system +``` + +![User Flowchart](Flux-CDEvents-RFC.png) + + + +![Adapter](CDEvents-Flux-RFC-Adapter.png) + + +## Implementation History + + diff --git a/rfcs/0006-cdevents/cdevents-flux-tekton.png b/rfcs/0006-cdevents/cdevents-flux-tekton.png new file mode 100644 index 0000000000000000000000000000000000000000..72223a0a1ee4660d54d969689f4c735c856fa9db GIT binary patch literal 665010 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