diff --git a/CHANGELOG.md b/CHANGELOG.md index b9df51328..07e0c20c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,31 @@ > requests](https://github.com/fluxcd/toolkit/discussions) for Flux v2 > and Toolkit components. +## 1.25.4 (2022-08-29) + +This release includes a base image upgrade to the Alpine 3.15.6 upstream +that mitigates a number of CVE issues detected from the base image. + +We've removed the telemetry collection in accordance with the CNCF's published +policies against default telemetry. Some deprecation notices are now emitted by +the installer, please upgrade to Flux v2 or open an issue if you are blocked. + +Go dependencies have been upgraded as well. This release has no code changes. + +### Maintenance and documentation + +- Update dependencies [fluxcd/flux#3639][] +- Add deprecation warnings to Helm Chart and fluxctl [fluxcd/flux#3638][] +- Remove telemetry [fluxcd/flux#3636][] + +### Thanks + +Thanks to @kingdonb, @stefanprodan, and @pjbgf for their contributions to this release. + +[fluxcd/flux#3639]: https://github.com/fluxcd/flux/pull/3639 +[fluxcd/flux#3638]: https://github.com/fluxcd/flux/pull/3638 +[fluxcd/flux#3636]: https://github.com/fluxcd/flux/pull/3636 + ## 1.25.3 (2022-07-27) This release includes a base image upgrade to the Alpine 3.15.5 upstream diff --git a/chart/flux/CHANGELOG.md b/chart/flux/CHANGELOG.md index 04cfff250..581400dce 100644 --- a/chart/flux/CHANGELOG.md +++ b/chart/flux/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.13.2 (2022-07-27) + +### Improvements + + - Updated Flux to `1.25.3` + [fluxcd/flux#3625](https://github.com/fluxcd/flux/pull/3625) + ## 1.13.1 (2022-05-26) ### Improvements diff --git a/chart/flux/Chart.yaml b/chart/flux/Chart.yaml index 6c792ec5b..e6bde8b03 100644 --- a/chart/flux/Chart.yaml +++ b/chart/flux/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 -appVersion: "1.25.2" -version: 1.13.1 +appVersion: "1.25.3" +version: 1.13.2 kubeVersion: ">=1.16.0-0" name: flux description: Flux is a tool that automatically ensures that the state of a cluster matches what is specified in version control diff --git a/chart/flux/templates/NOTES.txt b/chart/flux/templates/NOTES.txt index 8553985a0..5e6f65375 100644 --- a/chart/flux/templates/NOTES.txt +++ b/chart/flux/templates/NOTES.txt @@ -8,3 +8,12 @@ and running: fluxctl identity --k8s-fwd-ns {{ .Release.Namespace }} +--- + +**Flux v1 is deprecated, please upgrade to v2 as soon as possible!** + +New users of Flux can Get Started here: +https://fluxcd.io/docs/get-started/ + +Existing users can upgrade using the Migration Guide: +https://fluxcd.io/docs/migration/ diff --git a/chart/flux/values.yaml b/chart/flux/values.yaml index 7679236ec..5176d76b8 100644 --- a/chart/flux/values.yaml +++ b/chart/flux/values.yaml @@ -9,7 +9,7 @@ logFormat: fmt image: repository: docker.io/fluxcd/flux - tag: 1.25.2 + tag: 1.25.3 pullPolicy: IfNotPresent pullSecret: diff --git a/cmd/fluxctl/install_cmd.go b/cmd/fluxctl/install_cmd.go index 7b0ae8552..279ff40f3 100644 --- a/cmd/fluxctl/install_cmd.go +++ b/cmd/fluxctl/install_cmd.go @@ -61,6 +61,16 @@ fluxctl install --git-url 'git@github.com:/flux-get-started' --gi } func (opts *installOpts) RunE(cmd *cobra.Command, args []string) error { + fmt.Fprintf(os.Stderr, `**Flux v1 is deprecated, please upgrade to v2 as soon as possible!** + +New users of Flux can Get Started here: +https://fluxcd.io/docs/get-started/ + +Existing users can upgrade using the Migration Guide: +https://fluxcd.io/docs/migration/ + +`) + if len(args) != 0 { return errorWantedNoArgs } diff --git a/cmd/fluxd/main.go b/cmd/fluxd/main.go index 69edc69e7..bdd908396 100644 --- a/cmd/fluxd/main.go +++ b/cmd/fluxd/main.go @@ -640,10 +640,10 @@ func main() { // until we have failed or succeeded. updateCheckLogger := log.With(logger, "component", "checkpoint") checkpointFlags := map[string]string{ - "cluster-version": clusterVersion, - "git-configured": strconv.FormatBool(*gitURL != ""), + "cluster-version": "XXXXX", + "git-configured": "XXXXX", } - checkpoint.CheckForUpdates(product, version, checkpointFlags, updateCheckLogger) + checkpoint.CheckForUpdates(product, "XXXXX", checkpointFlags, updateCheckLogger) gitRemote := git.Remote{URL: *gitURL} gitConfig := git.Config{ diff --git a/deploy/flux-deployment.yaml b/deploy/flux-deployment.yaml index 264437e20..2bbf52107 100644 --- a/deploy/flux-deployment.yaml +++ b/deploy/flux-deployment.yaml @@ -66,7 +66,7 @@ spec: # There are no ":latest" images for flux. Find the most recent # release or image version at https://hub.docker.com/r/fluxcd/flux/tags # and replace the tag here. - image: docker.io/fluxcd/flux:1.25.3 + image: docker.io/fluxcd/flux:1.25.4 imagePullPolicy: IfNotPresent resources: requests: diff --git a/go.mod b/go.mod index 7ec17a87b..dbeb1e530 100644 --- a/go.mod +++ b/go.mod @@ -22,6 +22,12 @@ replace ( k8s.io/code-generator => k8s.io/code-generator v0.21.14 ) +// Versions v3.0.0>x>v2.4.0 are susceptible to CVE-2022-28948 +replace gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 + +// Fix CVE-2022-1996 +replace github.com/emicklei/go-restful => github.com/emicklei/go-restful v2.16.0+incompatible + // Version v1.5.0 breaks make test replace github.com/spf13/cobra => github.com/spf13/cobra v1.4.0 @@ -34,6 +40,7 @@ require ( github.com/aws/aws-sdk-go v1.44.61 github.com/bradfitz/gomemcache v0.0.0-20220106215444-fb4bf637b56d github.com/cheggaaa/pb/v3 v3.1.0 + github.com/containerd/continuity v0.3.0 // indirect github.com/docker/distribution v2.8.1+incompatible github.com/evanphx/json-patch v5.6.0+incompatible github.com/fluxcd/flux/pkg/install v0.0.0-00010101000000-000000000000 @@ -46,7 +53,10 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 github.com/imdario/mergo v0.3.13 + github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/klauspost/compress v1.15.9 // indirect github.com/opencontainers/go-digest v1.0.0 + github.com/opencontainers/runc v1.1.4 // indirect github.com/opentracing-contrib/go-stdlib v1.0.0 // indirect github.com/pkg/errors v0.9.1 github.com/pkg/term v1.1.0 @@ -58,13 +68,13 @@ require ( github.com/stretchr/testify v1.8.0 // Latest versions of github.com/weaveworks/common are not supporterd by Flux. github.com/weaveworks/common v0.0.0-20190410110702-87611edc252e - github.com/weaveworks/go-checkpoint v0.0.0-20220223124739-fd9899e2b4f2 github.com/whilp/git-urls v1.0.0 github.com/xeipuuv/gojsonschema v1.2.0 go.mozilla.org/sops/v3 v3.7.3 golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f // indirect golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f + golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde // indirect + golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64 golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.21.14 diff --git a/go.sum b/go.sum index 2aeb345e0..3732e22e0 100644 --- a/go.sum +++ b/go.sum @@ -293,8 +293,9 @@ github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMX github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41/go.mod h1:Dq467ZllaHgAtVp4p1xUQWBrFXR9s/wyoTpG8zOJGkY= github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= -github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA= github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= +github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= github.com/containerd/stargz-snapshotter/estargz v0.12.0 h1:idtwRTLjk2erqiYhPWy2L844By8NRFYEwYHcXhoIWPM= @@ -368,8 +369,7 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkg github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f h1:8GDPb0tCY8LQ+OJ3dbHb5sA6YZWXFORQYZx5sdsTlMs= github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.16.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= 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= @@ -814,8 +814,9 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/log15 v0.0.0-20170622235902-74a0988b5f80/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/instrumenta/kubeval v0.0.0-20190804145309-805845b47dfc/go.mod h1:bpiMYvNpVxWjdJsS0hDRu9TrobT5GfWCZwJseGUstxE= @@ -870,8 +871,9 @@ github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8 github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.7/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.15.8 h1:JahtItbkWjf2jzm/T+qgMxkP9EMHsqEUA6vCMGmXvhA= github.com/klauspost/compress v1.15.8/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1083,8 +1085,9 @@ github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198 h1:+cz github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198/go.mod h1:j4h1pJW6ZcJTgMZWP3+7RlG3zTaP02aDZ/Qw0sppK7Q= github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.1.0 h1:O9+X96OcDjkmmZyfaG996kV7yq8HsoU2h1XRRQcefG8= github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runc v1.1.4 h1:nRCz/8sKg6K6jgYAFLDlXzPeITBZJyX28DBVhWD+5dg= +github.com/opencontainers/runc v1.1.4/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -1230,6 +1233,7 @@ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0 github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/securego/gosec/v2 v2.9.1/go.mod h1:oDcDLcatOJxkCGaCaq8lua1jTnYf6Sou4wdiJ1n4iHc= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= @@ -1356,8 +1360,6 @@ github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17 github.com/weaveworks/common v0.0.0-20190410110702-87611edc252e h1:Y5z9Bu95l0laB3xOF3BT6LWkcR7VcRxN0n+nf2S72xA= github.com/weaveworks/common v0.0.0-20190410110702-87611edc252e/go.mod h1:pSm+0KR57BG3pvGoJWFXJSAC7+sEPewcvdt5StevL3A= github.com/weaveworks/go-checkpoint v0.0.0-20170503165305-ebbb8b0518ab/go.mod h1:qkbvw5GPibQ/Nf7IZJL0UoLwmJ6858b4S/hUWRd+cH4= -github.com/weaveworks/go-checkpoint v0.0.0-20220223124739-fd9899e2b4f2 h1:EWUmjQdHzmBimPxGIus5JOvNPu+tWxOTC+Q4w9fJOok= -github.com/weaveworks/go-checkpoint v0.0.0-20220223124739-fd9899e2b4f2/go.mod h1:HfUHaw/CuYj2phXCM9etFQwvOQ3W0786feIEs9OMFHk= github.com/weaveworks/promrus v1.2.0 h1:jOLf6pe6/vss4qGHjXmGz4oDJQA+AOCqEL3FvvZGz7M= github.com/weaveworks/promrus v1.2.0/go.mod h1:SaE82+OJ91yqjrE1rsvBWVzNZKcHYFtMUyS1+Ogs/KA= github.com/whilp/git-urls v0.0.0-20160530060445-31bac0d230fa/go.mod h1:2rx5KE5FLD0HRfkkpyn8JwbVLBdhgeiOb2D2D9LLKM4= @@ -1464,7 +1466,6 @@ golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f h1:OeJjE6G4dgCY4PIXvIRQbE8+RX+uXZyGhUy/ksMGJoc= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -1619,8 +1620,9 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/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-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f h1:Ax0t5p6N38Ga0dThY21weqDEyz2oklo4IvDkpigvkD8= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180821044426-4ea2f632f6e9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1734,14 +1736,15 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/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-20220610221304-9f5ed59c137d/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 h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64 h1:UiNENfZ8gDvpiWw7IpOMQ27spWmThO1RwwdQVbJahJM= +golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -2148,9 +2151,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/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 v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= diff --git a/pkg/checkpoint/checkpoint.go b/pkg/checkpoint/checkpoint.go index b4b04dc26..f3f10da67 100644 --- a/pkg/checkpoint/checkpoint.go +++ b/pkg/checkpoint/checkpoint.go @@ -4,39 +4,62 @@ import ( "time" "github.com/go-kit/kit/log" - "github.com/weaveworks/go-checkpoint" ) const ( versionCheckPeriod = 6 * time.Hour ) -func CheckForUpdates(product, version string, extra map[string]string, logger log.Logger) *checkpoint.Checker { - handleResponse := func(r *checkpoint.CheckResponse, err error) { - if err != nil { - logger.Log("err", err) - return - } - if r.Outdated { - logger.Log("msg", "update available", "latest", r.CurrentVersion, "URL", r.CurrentDownloadURL) - return - } - logger.Log("msg", "up to date", "latest", r.CurrentVersion) +func CheckForUpdates(product, version string, extra map[string]string, logger log.Logger) *checker { + handleResponse := func() { + logger.Log("msg", "Flux v1 is deprecated, please upgrade to v2", "latest", "v2", "URL", "https://fluxcd.io/docs/migration/") } flags := map[string]string{ - "kernel-version": getKernelVersion(), + "kernel-version": "XXXXX", } for k, v := range extra { flags[k] = v } - params := checkpoint.CheckParams{ + params := checkParams{ Product: product, Version: version, SignatureFile: "", Flags: flags, } - return checkpoint.CheckInterval(¶ms, versionCheckPeriod, handleResponse) + return checkInterval(¶ms, versionCheckPeriod, handleResponse) +} + +func checkInterval(p *checkParams, interval time.Duration, + cb func()) *checker { + + state := &checker{ + doneCh: make(chan struct{}), + } + + if isCheckDisabled() { + return state + } + + go func() { + cb() + + for { + after := randomStagger(interval) + state.nextCheckAtLock.Lock() + state.nextCheckAt = time.Now().Add(after) + state.nextCheckAtLock.Unlock() + + select { + case <-time.After(after): + cb() + case <-state.doneCh: + return + } + } + }() + + return state } diff --git a/pkg/checkpoint/checkpoint_darwin.go b/pkg/checkpoint/checkpoint_darwin.go deleted file mode 100644 index 726f522da..000000000 --- a/pkg/checkpoint/checkpoint_darwin.go +++ /dev/null @@ -1,13 +0,0 @@ -package checkpoint - -import ( - "syscall" -) - -func getKernelVersion() string { - v, err := syscall.Sysctl("kern.osrelease") - if err != nil { - panic(err) - } - return "darwin-" + v -} diff --git a/pkg/checkpoint/checkpoint_linux_amd64.go b/pkg/checkpoint/checkpoint_linux_amd64.go deleted file mode 100644 index 29a6cc1d3..000000000 --- a/pkg/checkpoint/checkpoint_linux_amd64.go +++ /dev/null @@ -1,23 +0,0 @@ -package checkpoint - -import ( - "syscall" -) - -func getKernelVersion() string { - var uts syscall.Utsname - syscall.Uname(&uts) - return cstringToString(uts.Release[:]) -} - -func cstringToString(c []int8) string { - s := make([]byte, len(c)) - i := 0 - for ; i < len(c); i++ { - if c[i] == 0 { - break - } - s[i] = uint8(c[i]) - } - return string(s[:i]) -} diff --git a/pkg/checkpoint/checkpoint_linux_arm.go b/pkg/checkpoint/checkpoint_linux_arm.go deleted file mode 100644 index b1c5ac37a..000000000 --- a/pkg/checkpoint/checkpoint_linux_arm.go +++ /dev/null @@ -1,23 +0,0 @@ -package checkpoint - -import ( - "syscall" -) - -func getKernelVersion() string { - var uts syscall.Utsname - syscall.Uname(&uts) - return cstringToString(uts.Release[:]) -} - -func cstringToString(c []uint8) string { - s := make([]byte, len(c)) - i := 0 - for ; i < len(c); i++ { - if c[i] == 0 { - break - } - s[i] = uint8(c[i]) - } - return string(s[:i]) -} diff --git a/pkg/checkpoint/checkpoint_linux_arm64.go b/pkg/checkpoint/checkpoint_linux_arm64.go deleted file mode 100644 index 38221f2b7..000000000 --- a/pkg/checkpoint/checkpoint_linux_arm64.go +++ /dev/null @@ -1,22 +0,0 @@ -package checkpoint - -import ( - "syscall" -) - -func getKernelVersion() string { - var uts syscall.Utsname - syscall.Uname(&uts) - return cstringToString(uts.Release[:]) -} - -func cstringToString(arr []int8) string { - b := make([]byte, 0, len(arr)) - for _, v := range arr { - if v == 0x00 { - break - } - b = append(b, byte(v)) - } - return string(b) -} diff --git a/pkg/checkpoint/types.go b/pkg/checkpoint/types.go new file mode 100644 index 000000000..c8ae7d43d --- /dev/null +++ b/pkg/checkpoint/types.go @@ -0,0 +1,31 @@ +package checkpoint + +import ( + "sync" + "time" +) + +type flag struct { + Key string + Value string +} + +type checkParams struct { + Product string + Version string + Flags map[string]string + ExtraFlags func() []flag + Arch string + OS string + Signature string + SignatureFile string + CacheFile string + CacheDuration time.Duration + Force bool +} + +type checker struct { + doneCh chan struct{} + nextCheckAt time.Time + nextCheckAtLock sync.RWMutex +} diff --git a/pkg/checkpoint/util.go b/pkg/checkpoint/util.go new file mode 100644 index 000000000..7a94dcefd --- /dev/null +++ b/pkg/checkpoint/util.go @@ -0,0 +1,16 @@ +package checkpoint + +import ( + mrand "math/rand" + "os" + "time" +) + +func isCheckDisabled() bool { + return os.Getenv("CHECKPOINT_DISABLE") != "" +} + +func randomStagger(interval time.Duration) time.Duration { + stagger := time.Duration(mrand.Int63()) % (interval / 2) + return 3*(interval/4) + stagger +} diff --git a/pkg/install/generated_templates.gogen.go b/pkg/install/generated_templates.gogen.go index fa51e119e..919bac3d2 100644 --- a/pkg/install/generated_templates.gogen.go +++ b/pkg/install/generated_templates.gogen.go @@ -33,7 +33,7 @@ var templates = func() http.FileSystem { modTime: time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC), uncompressedSize: 7263, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xd4\x59\xdd\x6f\x1b\x37\x12\x7f\xf7\x5f\x31\x50\x0e\x48\x0c\x48\x2b\xbb\x6e\x8b\xc3\xf6\x5c\x5c\x9a\x0f\x37\x97\x26\x35\xec\xe4\x0e\x7d\xaa\x29\xee\x48\x4b\x88\x4b\xee\x71\xb8\x52\x17\x46\xff\xf7\xc3\x90\xfb\xc1\x95\x65\xa7\xc8\xdb\xf9\x21\xb1\xc9\xe1\x70\xe6\x37\xdf\xdc\xc5\x62\x71\x22\x6a\xf5\x6f\x74\xa4\xac\xc9\x41\xd4\x35\x2d\x77\xe7\x27\x5b\x65\x8a\x1c\x5e\x63\xad\x6d\x5b\xa1\xf1\x27\x15\x7a\x51\x08\x2f\xf2\x13\x00\x23\x2a\xcc\x61\xad\x9b\x3f\xee\xef\x41\xad\x21\xfb\x28\x2a\xa4\x5a\x48\x84\x3f\xff\xec\xf6\xc3\x9f\x39\xdc\xdf\x4f\x77\xef\xef\x01\x4d\xc1\x64\x54\xa3\x64\x66\x0e\x6b\xad\xa4\xa0\x1c\xce\x4f\x00\x08\x35\x4a\x6f\x1d\xef\x00\x54\xc2\xcb\xf2\x17\xb1\x42\x4d\x71\x21\xbd\x9b\xa9\xbd\x13\x1e\x37\x6d\xdc\xf4\x6d\x8d\x39\xdc\xa0\x74\x28\x3c\x9e\x00\x78\xac\x6a\x2d\x3c\x76\xcc\x12\x0d\xf8\x47\x18\x63\xbd\xf0\xca\x9a\x81\x39\x40\xed\x6c\x85\xbe\xc4\x86\x32\x65\x97\xb5\x75\x3e\x87\xd9\xc5\xd9\xc5\xf9\x0c\x9e\x81\x47\xad\x13\x0a\xf0\x16\x48\x3a\x51\x23\x2c\x2b\xf4\x4e\x49\x62\xe5\x6a\xab\x8c\x7f\x4e\xc0\x87\xb3\x8e\xb1\x9e\xe8\x70\xa0\x05\x40\x8f\x45\xd8\xb2\x05\xde\x4e\x50\xe0\x9f\x15\x7a\x91\x6d\x9b\x15\x3a\x83\x1e\x83\x70\x96\x72\xd0\xca\x74\x2c\x18\x3a\xb7\x53\x12\x5f\x4a\x69\x1b\xe3\x3f\x4e\x6f\x00\xd8\x59\xdd\x54\x38\xc8\xb0\xe8\x64\xd8\x28\xbf\xd8\x62\x3b\x5c\x44\x0c\x9f\x1f\x2f\xee\x57\x46\x7e\x0b\x3e\x52\x04\xcf\x48\xa8\x0a\x5c\x8b\x46\xfb\x0f\xb6\xc0\x1c\xce\xbe\x3d\x3b\x83\x67\xb0\x2f\xd1\x40\xc5\xd2\x60\x01\x0e\x45\xb1\xb0\x46\xb7\x73\xd8\x23\xec\xad\x79\xee\x61\x85\x20\x56\x1a\x19\x48\x59\x56\xb6\x38\xe9\x18\x3e\x83\x4f\xa5\x22\x50\x04\x02\x7c\x55\xaf\x09\x1a\xc2\x02\xd6\xd6\xc1\x06\x0d\x3a\xe1\x95\xd9\xc0\xed\xed\xcf\xb0\xc5\x96\x32\x78\x67\xe0\xfd\xdf\x09\x7e\xbc\x84\xf3\xec\xfc\x6c\x3e\x70\xe9\xef\x8e\x2a\x10\x08\x87\xa9\x1c\x64\x59\x14\x83\x58\x80\x00\xc2\x5a\xb0\x37\x75\x40\xc1\x1e\x07\x36\x52\x18\xd8\x3b\xe5\x59\xd0\xec\x38\x7e\x1b\x34\x03\x18\x58\xd5\xbe\x7d\xad\x5c\x0a\x62\x85\x85\x6a\xaa\x1c\x3e\x60\x65\x5d\x9b\xea\x89\xb0\xb6\x5a\xdb\x3d\x6b\xd4\x5d\xad\x28\xa8\xda\x10\xaf\x09\x90\x0d\x79\x5b\x29\x46\x60\x6b\xec\xde\xfc\x5e\x5a\xf2\x34\xb0\x58\x2b\x8d\x73\xd8\x97\x4a\x96\xd0\xda\x06\xf6\x4a\xeb\xa8\x94\xb7\x50\x58\x0e\x50\x5e\xe6\x43\xfc\x8b\x03\xbb\x37\x2c\xf6\xc0\xc0\x61\x6d\xc1\x09\x5f\xa2\x03\x5f\x0a\xd3\x5d\xbc\x51\xbe\x6c\x56\x60\x79\x11\x41\xab\x2d\x66\xf0\x9b\x6d\x9e\x6b\x0d\x42\x93\xed\xaf\x98\x82\x0d\xca\x83\x32\xde\x86\x33\xd2\x1a\x2f\x94\x41\x37\x87\x15\x6a\xbb\xcf\xe0\x16\x47\x54\x4b\xef\x6b\xca\x97\x4b\xf6\x29\x59\xb0\x47\x6b\xdc\x08\xd9\x86\x85\xe5\xa6\x51\x05\xd2\xb2\x21\x5c\xd4\x4e\xed\x84\xc7\xe0\x77\xac\xc5\x72\x60\xd1\x1b\x81\xa8\x5c\x48\x6b\xd6\x6a\x33\x6c\x01\xc4\x85\x0f\xa2\xce\x93\xc5\x34\xf4\x16\xc9\xb1\xaf\x35\x48\x88\xc9\x65\x64\x32\xfa\xdd\x17\x8d\xb1\x57\x54\xf2\x4a\x29\x76\x08\x02\x0a\xb5\x5e\xa3\xe3\x34\xdb\x73\xe8\xc2\x69\x4c\xa5\x01\xfb\xc8\x2e\x45\x9f\xd3\xd1\x4e\x15\xd8\xe3\xbd\x56\x9b\x4a\xd4\xa3\x20\xca\x97\x20\x0c\xa0\xf1\xae\x0d\x3a\xdc\x45\xa2\xbb\x39\x08\x53\x40\x63\xa4\xad\x38\xbf\x87\xf3\x51\xdb\x0f\xc1\x8e\xc2\x14\x03\x17\x34\xbb\xc0\x41\x21\x75\x86\x7c\x60\x01\x86\xe1\x2b\x2c\x90\x1c\xfb\xa2\x05\x42\x0a\xf0\x16\x54\xc5\x99\x15\xae\xae\xaf\x42\xf4\xc3\x0b\x56\x8b\xd4\xc6\x28\x33\x5e\xce\xca\xed\xd0\xa9\xb5\x92\x21\xc5\x43\xdd\xb8\xda\x12\xd2\xe9\x5f\x00\x72\xe0\x12\xf3\x46\x44\x91\x01\xe2\xfb\xfe\x02\x70\x20\xdc\x66\x8c\xcf\x47\x10\xdb\xd4\x1b\x4e\x1c\x94\x40\x33\xcd\xbd\xcf\x1e\xc9\xbe\x0f\xcf\x1d\xc9\xbe\x3d\x9c\x43\x08\x3e\x48\xfc\x49\x69\xe8\x50\x77\x18\x12\xa4\xb1\x30\xcb\xb9\x6c\x92\x9f\x81\xaa\xc4\x06\xa3\xf7\xf3\x81\x0c\xde\x2a\x53\x04\x9d\x2b\xce\x27\x0e\xe5\xe8\xb5\x31\x97\x68\x14\x84\x9c\x35\xc2\x51\x36\x02\x77\x16\x20\xfc\x10\xf0\x65\xb3\xca\x0a\x2b\xb7\xe8\x32\x69\xab\xa5\xeb\x32\x40\x8c\x7b\x2f\x06\xe8\x7a\x3b\x72\x87\xc0\xdd\x03\xdf\xea\xc5\x06\x58\xd2\x6c\xa0\x09\xd7\xe4\xd0\x31\x54\x36\xe5\x96\x9f\x67\xdf\x7c\x97\x5d\x4c\x69\xaf\x1b\xad\xaf\xad\x56\xb2\xcd\xe1\xdd\xfa\xa3\xf5\xd7\x0e\x29\xd5\xc2\x21\xd9\xc6\x49\xa4\x34\x81\x3b\xfc\x6f\x83\xe4\x27\x6b\x00\xb2\x6e\x72\xf8\xee\xac\x9a\x2c\x56\x21\xc7\xe7\xf0\xfd\xb7\x1f\xd4\xd8\x58\x58\x97\x1e\x5e\x8c\x96\xb9\x0e\x4d\xc6\xc5\xd9\x05\x97\x4c\x65\xd6\xd6\x55\xc1\x65\x85\x1e\xa8\xb5\xda\xa1\x41\xa2\x6b\x67\x57\x98\x4a\xc0\x90\x5e\x4d\xcb\x75\xbc\x2a\x32\x9c\x2e\x0b\x5f\xe6\xb0\x14\xb5\x8a\x48\xef\xbe\x5f\xaa\x02\x8d\x57\xbe\xcd\xea\x66\x95\xd0\x2a\xa3\xbc\x12\xfa\x35\x6a\xd1\xde\x72\x7c\x16\x94\xc3\x77\x09\x81\x57\x15\xda\xc6\x1f\xd9\xe3\xea\xaa\xfe\x3f\x44\x4d\x82\x76\x62\x98\xe3\x7d\x11\xc4\xfa\x76\x1d\x25\x43\x2f\x83\x64\xc5\x92\xa8\xe4\xce\xd0\xc6\x5e\x15\xb4\xed\xf2\xcd\x86\x4d\x06\xca\x44\x9f\x7b\x4e\xf1\x0c\x51\xb9\x9c\xa4\xc9\x1e\xb3\x5f\x8d\x6e\x73\xf0\xae\x41\xe6\xc6\xcd\x4f\xc8\x50\xab\x2e\xb1\x73\x48\xd5\xe8\xd6\xd6\x49\x64\xa6\xb1\xdb\xe1\x66\xe7\x31\xc1\xd3\x86\x64\x2a\xfb\x4e\xb8\x4e\xf6\x48\xf6\x75\xe2\x27\x31\xfa\xce\x48\xdd\x84\xcc\xc9\x3d\x5b\x2c\x70\x7d\x56\x8d\x4d\xc1\x17\x7a\x98\xbe\x8b\xf9\x81\x8f\x1e\xf4\x17\x43\x76\x85\x02\xa5\x16\x8e\x7b\xb5\x95\xdd\x25\x09\xe0\x89\x36\x20\xa6\xc7\x54\x79\x67\xad\x5f\x66\x44\xe5\xa3\x0a\x08\x33\xb9\x75\x36\x96\xa8\x59\xbc\x79\xde\x93\x24\x1c\xd0\xec\x94\xb3\x26\x14\x84\x58\x6b\x67\xef\x3f\xff\xf4\xe6\xd5\xaf\x1f\xdf\xbe\xbb\x9a\xc5\x12\x30\x67\x3c\xec\x0e\x9d\x9b\xd6\xeb\x84\x4d\x28\x71\xab\x36\x56\x53\xaf\x8f\xe9\xf8\xa0\xd0\x3e\xd4\x71\x74\x4e\x26\x7e\x54\x51\xae\x79\x3c\xaa\xf4\xb7\x71\x8a\x4e\x5a\x91\x4e\xba\x60\x93\x84\xc5\x61\x43\x93\x1a\x3d\x74\x33\x7d\xcf\x2d\x0c\x08\xed\xd1\x19\xee\xa9\x1f\x48\xbc\x76\xb6\x62\xb7\xe8\x3b\x96\x39\x08\x62\x77\xeb\xaa\x2a\xc3\xa0\xad\xdc\xd2\x43\x63\xa3\xd9\xe5\x47\x70\x19\xe1\x9e\xe0\xb2\x13\xba\xc1\x07\x98\x7c\xc9\x89\x0f\x7d\xa0\xaf\xb9\x4f\x78\x00\x97\xfc\x69\xa9\x7f\xa2\xd8\x3f\xe2\x97\x4c\x15\xbb\x9b\x09\xdd\x34\x3f\x7c\x29\xf2\xf6\x82\x9b\x12\x0b\xd4\xd4\xb5\x6e\xe1\xe7\x4f\x9f\xae\x61\x25\x48\x49\x10\x8d\x2f\x41\x3a\x0c\x99\x54\xe8\x58\xd5\xc7\x41\x80\x19\xee\x94\x08\x8a\xdf\x5d\xbd\xfb\xf4\xfb\xcb\xcf\x9f\x7e\xfe\x7c\xfb\xe6\xe6\x2e\xa8\x3b\x2c\xbd\x7f\xf3\xdb\xdd\xc4\xe1\x77\xc2\x29\x1e\xe3\xa8\x6f\x90\x13\x86\xb1\x7d\x39\xb0\xdf\x5b\x67\xab\xa9\x0d\x23\xd9\x0d\xae\xf3\x89\xe6\x93\x5e\x91\x13\x1b\xab\x30\x02\xc0\x98\xe7\x13\x3c\x22\x04\x71\x38\xc5\x82\x2b\xb1\x14\xb2\xc4\x82\x5d\x2b\xf5\xed\xa1\xad\x66\xa4\x98\xfb\x3c\xe1\x62\x5d\xd7\x37\x27\x07\xba\xe1\x3a\x1c\x9c\x87\x4b\x78\x28\xec\x30\xf6\x25\x52\xea\x0b\x63\xf7\xea\xf7\x96\xa5\x6c\x18\xa7\x10\x71\xe1\x09\x21\x38\x22\x94\x76\x1f\x06\x5f\x6b\x0c\xca\x60\x32\xe5\xa7\xbe\xb3\x58\x0c\x0a\x84\xc1\x87\x2f\xbf\x1c\x96\xb2\xae\xe9\xcb\x68\x27\x33\xa9\x1b\xf2\xe8\x32\x4e\xe0\x3a\x85\xe4\x33\xc5\x5c\x33\x42\xf1\x2a\x92\xbe\xbb\x9e\x28\xc5\x69\x87\xd0\x87\xc1\x7a\xea\xd9\xa3\x0c\x3d\x3d\x7b\x97\x77\x4c\x19\x46\xdd\xa4\x04\xa5\x12\x77\xd4\x97\x27\x93\x2e\x53\x11\x54\x0d\x85\xd1\x3f\xa0\xa7\xb0\x88\xe1\xb4\x0a\x85\x2d\xf4\x78\x61\xe2\x7f\xd1\x8f\xd1\xa7\xa9\x2c\x7d\x72\x89\x61\xc8\x0e\x9c\x0c\xfe\x13\x41\xb8\x18\xc4\x02\xb7\x28\x94\xbb\x7c\x50\xf6\x52\xb1\x6e\x92\x0e\x73\x34\xde\xe7\x9b\x5f\xe2\xcb\x84\x30\x9b\xb8\x77\xa5\x7c\x98\x96\x49\x79\xeb\xda\x21\x5d\xbf\xe5\xce\x38\x61\xf7\x54\xcc\xb1\xdb\x24\xba\x77\x21\x73\x34\x9c\xd2\x58\xe8\x7b\xe7\xbf\xbd\x48\x23\xf3\x34\x1f\xff\x7e\xff\xe6\xb7\xd3\x7f\xc6\x99\x3d\xb4\xd5\x0d\xa1\x5b\x8e\xc2\x66\x69\xa0\x33\x3e\x1c\x4e\x8d\xd3\x97\xf7\xf7\x90\x5d\x29\xcf\xca\x86\xc7\xbb\x29\xc5\xca\x09\x23\xcb\x9e\xe8\xa7\xf0\x57\x7c\xc6\x53\xeb\xb0\xc4\xf9\x8b\x8e\x9d\xe4\x1e\x8e\xcf\xdd\x06\x4f\xa1\x7f\x59\x65\x92\x03\xb3\xf9\xac\x7b\x0d\xd4\x84\xe9\xf1\xa7\x93\x9a\x43\x76\x3c\x19\xa7\xae\x4a\x18\xb5\xe6\x9e\x9c\x63\x88\x54\x81\x2e\x9a\xe3\x60\xb2\x09\x8f\x11\x96\x10\x1a\x53\xa0\x3b\xb0\xb1\x43\x2d\xbc\xda\x61\x68\x39\xa9\xf7\xc0\xcd\xc4\xce\x07\x31\x39\x28\x47\xcd\xaa\x50\xee\x7c\x1e\xff\xff\x66\x78\xda\x1c\xc1\x09\x4f\x97\xc7\xc0\x09\xef\x81\x3d\xaa\x3d\xd5\x11\x06\x9f\x09\xdd\xb1\xf3\x6c\xdc\xc1\x72\x4c\x03\xc7\xcf\xbf\xa9\x84\x3a\x2a\x00\xf2\x46\xcf\xa1\xa7\x1a\x1f\x67\x8f\x9a\x03\x39\x95\xec\x2d\x03\x8a\x26\xbc\xdb\x31\x4e\x5c\xb1\x95\x3f\x18\xc0\x53\xac\xba\xda\xd7\x55\xb6\xcb\x27\x4a\x5d\x7f\xa2\xe3\xc5\xa7\x2e\xff\xb1\xc5\x16\x54\xf1\xe3\x40\xf6\x44\x3b\x93\x48\xc5\x2c\x84\x6f\x1c\x4e\x5e\x01\x8e\xdc\x15\xb6\xdb\xc5\x40\x4f\x93\x74\xd5\x67\x6b\x50\x1e\x4a\x41\xa1\x14\x5b\xa3\x5b\x10\x52\x22\xc5\x8c\x5e\x62\x7c\x41\x7b\xd1\xbf\xd9\xdc\xad\x85\x26\xbc\x3b\x3d\xb9\xbf\x5f\xf4\x86\xb8\xe9\x6a\xf8\x31\x5b\xf4\x4c\x03\xfd\xc3\x78\x38\x4e\x76\xc4\x4e\xe4\x5d\x23\x7d\x94\x77\x1f\xc6\x79\x6e\xf1\x1a\x0f\xd4\x1a\x09\x2b\x6b\xb7\x5b\xc4\x9a\xbd\x7e\x10\x75\xb6\x51\x7e\x36\x87\x0a\x05\x03\xce\x09\x0d\x44\x98\xb1\xbb\x40\x68\x6a\xf2\x0e\x45\x35\x44\xc4\xe9\x81\x60\xcc\x7a\x41\x5e\x78\xbc\xe4\x04\xf3\xa8\xdf\x18\xfc\xc3\xf7\xce\x93\x54\x3c\x61\x60\xd6\xdf\x31\xeb\xeb\x51\xc2\xe4\x05\x66\x9b\x6c\x0e\xff\x41\xee\x2c\x5f\x69\xdb\x14\xa7\x59\x78\x20\xf2\x76\xcb\xf3\x09\x41\x2d\x9c\x57\xb2\xd1\xc2\xf5\xc6\xe8\xb8\x1c\x96\xd2\xee\xd6\xcb\x3d\x71\x1e\x95\xcc\x2b\xdb\x33\xdf\x6c\x6f\xdd\x96\x86\x61\xf3\xe0\x58\xb8\xe8\x52\xac\xe4\xf9\x37\x17\x0f\xff\x4d\x15\x7e\x13\xbd\xaf\xcf\x4a\xc3\x4b\xb5\x35\x4f\xb8\xc6\x87\x8e\xfa\x6a\x24\x3e\xf0\x90\x9e\xdf\x62\xe4\x77\x19\xfa\xc0\xc7\xbd\xe5\xd8\x91\x70\xf1\x23\xae\x73\x8b\x6e\x77\xe4\x1b\x06\x0f\x04\x63\x07\xc4\xb1\xfa\x43\x5a\x8a\xc5\x96\xcb\x58\xf4\x32\x42\x9f\x7c\x18\x79\x9e\x7c\x5b\x49\x3e\x92\xb0\x71\xc2\xd3\x5d\x68\xca\xb3\x89\x96\x5a\x91\x47\xb3\xe8\x44\xb8\xcc\x2f\xce\x2e\xce\x07\x90\x6e\x70\xa3\xc8\xbb\xf6\xb5\x22\x86\xf8\x56\x0a\x13\xdc\xf5\x00\x29\xd7\x91\x2d\x8a\x48\xb7\xa0\x8e\x30\x55\xbb\xcb\x8d\x2f\x8b\x42\xc5\x47\x16\x2e\xde\x2f\xb9\x79\x9f\xc0\x38\xee\x8f\xfd\xdb\xfd\x3d\xb8\xd0\x0a\x7c\xe1\xf4\x22\x7c\xf5\x9a\xe4\xd3\xf1\xb7\xfe\x82\x5f\xeb\x8e\xfd\xeb\x8f\xb7\x7d\xe3\x45\xf3\x6e\x20\x6a\x5c\xd7\x86\x81\x29\xac\x27\xb0\x81\x18\x2a\xd1\x86\xc7\x29\xbd\x1b\x9f\x28\x0d\x69\x6b\xb7\x4d\x0d\x8a\xa8\x41\x02\x6b\x80\x6c\x85\xf0\x7e\xf8\x56\xc4\xdc\x9b\x9a\xc6\x17\xc8\xc2\x50\xff\xfe\x35\xfb\x68\x0d\xce\xd2\x9d\x57\x41\x80\xf4\x0d\x32\x5e\x4e\xd3\x67\xc9\x7e\xb0\x09\xf2\x4d\x76\x86\x99\x6b\x76\x3e\x3b\xf9\x5f\x00\x00\x00\xff\xff\x2d\xd0\x57\x21\x5f\x1c\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xd4\x59\xdd\x6f\x1b\x37\x12\x7f\xf7\x5f\x31\x50\x0e\x48\x0c\x48\x2b\xbb\x6e\x8b\xc3\xf6\x5c\x5c\x9a\x0f\x37\x97\x26\x35\xec\xe4\x0e\x7d\xaa\x29\xee\x48\x4b\x88\x4b\xee\x71\xb8\x52\x17\x46\xff\xf7\xc3\x90\xfb\xc1\x95\x65\xa7\xc8\xdb\xf9\x21\xb1\xc9\xe1\x70\xe6\x37\xdf\xdc\xc5\x62\x71\x22\x6a\xf5\x6f\x74\xa4\xac\xc9\x41\xd4\x35\x2d\x77\xe7\x27\x5b\x65\x8a\x1c\x5e\x63\xad\x6d\x5b\xa1\xf1\x27\x15\x7a\x51\x08\x2f\xf2\x13\x00\x23\x2a\xcc\x61\xad\x9b\x3f\xee\xef\x41\xad\x21\xfb\x28\x2a\xa4\x5a\x48\x84\x3f\xff\xec\xf6\xc3\x9f\x39\xdc\xdf\x4f\x77\xef\xef\x01\x4d\xc1\x64\x54\xa3\x64\x66\x0e\x6b\xad\xa4\xa0\x1c\xce\x4f\x00\x08\x35\x4a\x6f\x1d\xef\x00\x54\xc2\xcb\xf2\x17\xb1\x42\x4d\x71\x21\xbd\x9b\xa9\xbd\x13\x1e\x37\x6d\xdc\xf4\x6d\x8d\x39\xdc\xa0\x74\x28\x3c\x9e\x00\x78\xac\x6a\x2d\x3c\x76\xcc\x12\x0d\xf8\x47\x18\x63\xbd\xf0\xca\x9a\x81\x39\x40\xed\x6c\x85\xbe\xc4\x86\x32\x65\x97\xb5\x75\x3e\x87\xd9\xc5\xd9\xc5\xf9\x0c\x9e\x81\x47\xad\x13\x0a\xf0\x16\x48\x3a\x51\x23\x2c\x2b\xf4\x4e\x49\x62\xe5\x6a\xab\x8c\x7f\x4e\xc0\x87\xb3\x8e\xb1\x9e\xe8\x70\xa0\x05\x40\x8f\x45\xd8\xb2\x05\xde\x4e\x50\xe0\x9f\x15\x7a\x91\x6d\x9b\x15\x3a\x83\x1e\x83\x70\x96\x72\xd0\xca\x74\x2c\x18\x3a\xb7\x53\x12\x5f\x4a\x69\x1b\xe3\x3f\x4e\x6f\x00\xd8\x59\xdd\x54\x38\xc8\xb0\xe8\x64\xd8\x28\xbf\xd8\x62\x3b\x5c\x44\x0c\x9f\x1f\x2f\xee\x57\x46\x7e\x0b\x3e\x52\x04\xcf\x48\xa8\x0a\x5c\x8b\x46\xfb\x0f\xb6\xc0\x1c\xce\xbe\x3d\x3b\x83\x67\xb0\x2f\xd1\x40\xc5\xd2\x60\x01\x0e\x45\xb1\xb0\x46\xb7\x73\xd8\x23\xec\xad\x79\xee\x61\x85\x20\x56\x1a\x19\x48\x59\x56\xb6\x38\xe9\x18\x3e\x83\x4f\xa5\x22\x50\x04\x02\x7c\x55\xaf\x09\x1a\xc2\x02\xd6\xd6\xc1\x06\x0d\x3a\xe1\x95\xd9\xc0\xed\xed\xcf\xb0\xc5\x96\x32\x78\x67\xe0\xfd\xdf\x09\x7e\xbc\x84\xf3\xec\xfc\x6c\x3e\x70\xe9\xef\x8e\x2a\x10\x08\x87\xa9\x1c\x64\x59\x14\x83\x58\x80\x00\xc2\x5a\xb0\x37\x75\x40\xc1\x1e\x07\x36\x52\x18\xd8\x3b\xe5\x59\xd0\xec\x38\x7e\x1b\x34\x03\x18\x58\xd5\xbe\x7d\xad\x5c\x0a\x62\x85\x85\x6a\xaa\x1c\x3e\x60\x65\x5d\x9b\xea\x89\xb0\xb6\x5a\xdb\x3d\x6b\xd4\x5d\xad\x28\xa8\xda\x10\xaf\x09\x90\x0d\x79\x5b\x29\x46\x60\x6b\xec\xde\xfc\x5e\x5a\xf2\x34\xb0\x58\x2b\x8d\x73\xd8\x97\x4a\x96\xd0\xda\x06\xf6\x4a\xeb\xa8\x94\xb7\x50\x58\x0e\x50\x5e\xe6\x43\xfc\x8b\x03\xbb\x37\x2c\xf6\xc0\xc0\x61\x6d\xc1\x09\x5f\xa2\x03\x5f\x0a\xd3\x5d\xbc\x51\xbe\x6c\x56\x60\x79\x11\x41\xab\x2d\x66\xf0\x9b\x6d\x9e\x6b\x0d\x42\x93\xed\xaf\x98\x82\x0d\xca\x83\x32\xde\x86\x33\xd2\x1a\x2f\x94\x41\x37\x87\x15\x6a\xbb\xcf\xe0\x16\x47\x54\x4b\xef\x6b\xca\x97\x4b\xf6\x29\x59\xb0\x47\x6b\xdc\x08\xd9\x86\x85\xe5\xa6\x51\x05\xd2\xb2\x21\x5c\xd4\x4e\xed\x84\xc7\xe0\x77\xac\xc5\x72\x60\xd1\x1b\x81\xa8\x5c\x48\x6b\xd6\x6a\x33\x6c\x01\xc4\x85\x0f\xa2\xce\x93\xc5\x34\xf4\x16\xc9\xb1\xaf\x35\x48\x88\xc9\x65\x64\x32\xfa\xdd\x17\x8d\xb1\x57\x54\xf2\x4a\x29\x76\x08\x02\x0a\xb5\x5e\xa3\xe3\x34\xdb\x73\xe8\xc2\x69\x4c\xa5\x01\xfb\xc8\x2e\x45\x9f\xd3\xd1\x4e\x15\xd8\xe3\xbd\x56\x9b\x4a\xd4\xa3\x20\xca\x97\x20\x0c\xa0\xf1\xae\x0d\x3a\xdc\x45\xa2\xbb\x39\x08\x53\x40\x63\xa4\xad\x38\xbf\x87\xf3\x51\xdb\x0f\xc1\x8e\xc2\x14\x03\x17\x34\xbb\xc0\x41\x21\x75\x86\x7c\x60\x01\x86\xe1\x2b\x2c\x90\x1c\xfb\xa2\x05\x42\x0a\xf0\x16\x54\xc5\x99\x15\xae\xae\xaf\x42\xf4\xc3\x0b\x56\x8b\xd4\xc6\x28\x33\x5e\xce\xca\xed\xd0\xa9\xb5\x92\x21\xc5\x43\xdd\xb8\xda\x12\xd2\xe9\x5f\x00\x72\xe0\x12\xf3\x46\x44\x91\x01\xe2\xfb\xfe\x02\x70\x20\xdc\x66\x8c\xcf\x47\x10\xdb\xd4\x1b\x4e\x1c\x94\x40\x33\xcd\xbd\xcf\x1e\xc9\xbe\x0f\xcf\x1d\xc9\xbe\x3d\x9c\x43\x08\x3e\x48\xfc\x49\x69\xe8\x50\x77\x18\x12\xa4\xb1\x30\xcb\xb9\x6c\x92\x9f\x81\xaa\xc4\x06\xa3\xf7\xf3\x81\x0c\xde\x2a\x53\x04\x9d\x2b\xce\x27\x0e\xe5\xe8\xb5\x31\x97\x68\x14\x84\x9c\x35\xc2\x51\x36\x02\x77\x16\x20\xfc\x10\xf0\x65\xb3\xca\x0a\x2b\xb7\xe8\x32\x69\xab\xa5\xeb\x32\x40\x8c\x7b\x2f\x06\xe8\x7a\x3b\x72\x87\xc0\xdd\x03\xdf\xea\xc5\x06\x58\xd2\x6c\xa0\x09\xd7\xe4\xd0\x31\x54\x36\xe5\x96\x9f\x67\xdf\x7c\x97\x7d\x3b\xa5\xbd\x6e\xb4\xbe\xb6\x5a\xc9\x36\x87\x77\xeb\x8f\xd6\x5f\x3b\xa4\x54\x0b\x87\x64\x1b\x27\x91\xd2\x04\xee\xf0\xbf\x0d\x92\x9f\xac\x01\xc8\xba\xc9\xe1\xbb\xb3\x6a\xb2\x58\x85\x1c\x9f\xc3\xf7\xdf\x7e\x50\x63\x63\x61\x5d\x7a\x78\x31\x5a\xe6\x3a\x34\x19\x17\x67\x17\x5c\x32\x95\x59\x5b\x57\x05\x97\x15\x7a\xa0\xd6\x6a\x87\x06\x89\xae\x9d\x5d\x61\x2a\x01\x43\x7a\x35\x2d\xd7\xf1\xaa\xc8\x70\xba\x2c\x7c\x99\xc3\x52\xd4\x2a\x22\xbd\xfb\x7e\xa9\x0a\x34\x5e\xf9\x36\xab\x9b\x55\x42\xab\x8c\xf2\x4a\xe8\xd7\xa8\x45\x7b\xcb\xf1\x59\x50\x0e\xdf\x25\x04\x5e\x55\x68\x1b\x7f\x64\x8f\xab\xab\xfa\xff\x10\x35\x09\xda\x89\x61\x8e\xf7\x45\x10\xeb\xdb\x75\x94\x0c\xbd\x0c\x92\x15\x4b\xa2\x92\x3b\x43\x1b\x7b\x55\xd0\xb6\xcb\x37\x1b\x36\x19\x28\x13\x7d\xee\x39\xc5\x33\x44\xe5\x72\x92\x26\x7b\xcc\x7e\x35\xba\xcd\xc1\xbb\x06\x99\x1b\x37\x3f\x21\x43\xad\xba\xc4\xce\x21\x55\xa3\x5b\x5b\x27\x91\x99\xc6\x6e\x87\x9b\x9d\xc7\x04\x4f\x1b\x92\xa9\xec\x3b\xe1\x3a\xd9\x23\xd9\xd7\x89\x9f\xc4\xe8\x3b\x23\x75\x13\x32\x27\xf7\x6c\xb1\xc0\xf5\x59\x35\x36\x05\x5f\xe8\x61\xfa\x2e\xe6\x07\x3e\x7a\xd0\x5f\x0c\xd9\x15\x0a\x94\x5a\x38\xee\xd5\x56\x76\x97\x24\x80\x27\xda\x80\x98\x1e\x53\xe5\x9d\xb5\x7e\x99\x11\x95\x8f\x2a\x20\xcc\xe4\xd6\xd9\x58\xa2\x66\xf1\xe6\x79\x4f\x92\x70\x40\xb3\x53\xce\x9a\x50\x10\x62\xad\x9d\xbd\xff\xfc\xd3\x9b\x57\xbf\x7e\x7c\xfb\xee\x6a\x16\x4b\xc0\x9c\xf1\xb0\x3b\x74\x6e\x5a\xaf\x13\x36\xa1\xc4\xad\xda\x58\x4d\xbd\x3e\xa6\xe3\x83\x42\xfb\x50\xc7\xd1\x39\x99\xf8\x51\x45\xb9\xe6\xf1\xa8\xd2\xdf\xc6\x29\x3a\x69\x45\x3a\xe9\x82\x4d\x12\x16\x87\x0d\x4d\x6a\xf4\xd0\xcd\xf4\x3d\xb7\x30\x20\xb4\x47\x67\xb8\xa7\x7e\x20\xf1\xda\xd9\x8a\xdd\xa2\xef\x58\xe6\x20\x88\xdd\xad\xab\xaa\x0c\x83\xb6\x72\x4b\x0f\x8d\x8d\x66\x97\x1f\xc1\x65\x84\x7b\x82\xcb\x4e\xe8\x06\x1f\x60\xf2\x25\x27\x3e\xf4\x81\xbe\xe6\x3e\xe1\x01\x5c\xf2\xa7\xa5\xfe\x89\x62\xff\x88\x5f\x32\x55\xec\x6e\x26\x74\xd3\xfc\xf0\xa5\xc8\xdb\x0b\x6e\x4a\x2c\x50\x53\xd7\xba\x85\x9f\x3f\x7d\xba\x86\x95\x20\x25\x41\x34\xbe\x04\xe9\x30\x64\x52\xa1\x63\x55\x1f\x07\x01\x66\xb8\x53\x22\x28\x7e\x77\xf5\xee\xd3\xef\x2f\x3f\x7f\xfa\xf9\xf3\xed\x9b\x9b\xbb\xa0\xee\xb0\xf4\xfe\xcd\x6f\x77\x13\x87\xdf\x09\xa7\x78\x8c\xa3\xbe\x41\x4e\x18\xc6\xf6\xe5\xc0\x7e\x6f\x9d\xad\xa6\x36\x8c\x64\x37\xb8\xce\x27\x9a\x4f\x7a\x45\x4e\x6c\xac\xc2\x08\x00\x63\x9e\x4f\xf0\x88\x10\xc4\xe1\x14\x0b\xae\xc4\x52\xc8\x12\x0b\x76\xad\xd4\xb7\x87\xb6\x9a\x91\x62\xee\xf3\x84\x8b\x75\x5d\xdf\x9c\x1c\xe8\x86\xeb\x70\x70\x1e\x2e\xe1\xa1\xb0\xc3\xd8\x97\x48\xa9\x2f\x8c\xdd\xab\xdf\x5b\x96\xb2\x61\x9c\x42\xc4\x85\x27\x84\xe0\x88\x50\xda\x7d\x18\x7c\xad\x31\x28\x83\xc9\x94\x9f\xfa\xce\x62\x31\x28\x10\x06\x1f\xbe\xfc\x72\x58\xca\xba\xa6\x2f\xa3\x9d\xcc\xa4\x6e\xc8\xa3\xcb\x38\x81\xeb\x14\x92\xcf\x14\x73\xcd\x08\xc5\xab\x48\xfa\xee\x7a\xa2\x14\xa7\x1d\x42\x1f\x06\xeb\xa9\x67\x8f\x32\xf4\xf4\xec\x5d\xde\x31\x65\x18\x75\x93\x12\x94\x4a\xdc\x51\x5f\x9e\x4c\xba\x4c\x45\x50\x35\x14\x46\xff\x80\x9e\xc2\x22\x86\xd3\x2a\x14\xb6\xd0\xe3\x85\x89\xff\x45\x3f\x46\x9f\xa6\xb2\xf4\xc9\x25\x86\x21\x3b\x70\x32\xf8\x4f\x04\xe1\x62\x10\x0b\xdc\xa2\x50\xee\xf2\x41\xd9\x4b\xc5\xba\x49\x3a\xcc\xd1\x78\x9f\x6f\x7e\x89\x2f\x13\xc2\x6c\xe2\xde\x95\xf2\x61\x5a\x26\xe5\xad\x6b\x87\x74\xfd\x96\x3b\xe3\x84\xdd\x53\x31\xc7\x6e\x93\xe8\xde\x85\xcc\xd1\x70\x4a\x63\xa1\xef\x9d\xff\xf6\x22\x8d\xcc\xd3\x7c\xfc\xfb\xfd\x9b\xdf\x4e\xff\x19\x67\xf6\xd0\x56\x37\x84\x6e\x39\x0a\x9b\xa5\x81\xce\xf8\x70\x38\x35\x4e\x5f\xde\xdf\x43\x76\xa5\x3c\x2b\x1b\x1e\xef\xa6\x14\x2b\x27\x8c\x2c\x7b\xa2\x9f\xc2\x5f\xf1\x19\x4f\xad\xc3\x12\xe7\x2f\x3a\x76\x92\x7b\x38\x3e\x77\x1b\x3c\x85\xfe\x65\x95\x49\x0e\xcc\xe6\xb3\xee\x35\x50\x13\xa6\xc7\x9f\x4e\x6a\x0e\xd9\xf1\x64\x9c\xba\x2a\x61\xd4\x9a\x7b\x72\x8e\x21\x52\x05\xba\x68\x8e\x83\xc9\x26\x3c\x46\x58\x42\x68\x4c\x81\xee\xc0\xc6\x0e\xb5\xf0\x6a\x87\xa1\xe5\xa4\xde\x03\x37\x13\x3b\x1f\xc4\xe4\xa0\x1c\x35\xab\x42\xb9\xf3\x79\xfc\xff\x9b\xe1\x69\x73\x04\x27\x3c\x5d\x1e\x03\x27\xbc\x07\xf6\xa8\xf6\x54\x47\x18\x7c\x26\x74\xc7\xce\xb3\x71\x07\xcb\x31\x0d\x1c\x3f\xff\xa6\x12\xea\xa8\x00\xc8\x1b\x3d\x87\x9e\x6a\x7c\x9c\x3d\x6a\x0e\xe4\x54\xb2\xb7\x0c\x28\x9a\xf0\x6e\xc7\x38\x71\xc5\x56\xfe\x60\x00\x4f\xb1\xea\x6a\x5f\x57\xd9\x2e\x9f\x28\x75\xfd\x89\x8e\x17\x9f\xba\xfc\xc7\x16\x5b\x50\xc5\x8f\x03\xd9\x13\xed\x4c\x22\x15\xb3\x10\xbe\x71\x38\x79\x05\x38\x72\x57\xd8\x6e\x17\x03\x3d\x4d\xd2\x55\x9f\xad\x41\x79\x28\x05\x85\x52\x6c\x8d\x6e\x41\x48\x89\x14\x33\x7a\x89\xf1\x05\xed\x45\xff\x66\x73\xb7\x16\x9a\xf0\xee\xf4\xe4\xfe\x7e\xd1\x1b\xe2\xa6\xab\xe1\xc7\x6c\xd1\x33\x0d\xf4\x0f\xe3\xe1\x38\xd9\x11\x3b\x91\x77\x8d\xf4\x51\xde\x7d\x18\xe7\xb9\xc5\x6b\x3c\x50\x6b\x24\xac\xac\xdd\x6e\x11\x6b\xf6\xfa\x41\xd4\xd9\x46\xf9\xd9\x1c\x2a\x14\x0c\x38\x27\x34\x10\x61\xc6\xee\x02\xa1\xa9\xc9\x3b\x14\xd5\x10\x11\xa7\x07\x82\x31\xeb\x05\x79\xe1\xf1\x92\x13\xcc\xa3\x7e\x63\xf0\x0f\xdf\x3b\x4f\x52\xf1\x84\x81\x59\x7f\xc7\xac\xaf\x47\x09\x93\x17\x98\x6d\xb2\x39\xfc\x07\xb9\xb3\x7c\xa5\x6d\x53\x9c\x66\xe1\x81\xc8\xdb\x2d\xcf\x27\x04\xb5\x70\x5e\xc9\x46\x0b\xd7\x1b\xa3\xe3\x72\x58\x4a\xbb\x5b\x2f\xf7\xc4\x79\x54\x32\xaf\x6c\xcf\x7c\xb3\xbd\x75\x5b\x1a\x86\xcd\x83\x63\xe1\xa2\x4b\xb1\x92\xe7\xdf\x5c\x3c\xfc\x37\x55\xf8\x4d\xf4\xbe\x3e\x2b\x0d\x2f\xd5\xd6\x3c\xe1\x1a\x1f\x3a\xea\xab\x91\xf8\xc0\x43\x7a\x7e\x8b\x91\xdf\x65\xe8\x03\x1f\xf7\x96\x63\x47\xc2\xc5\x8f\xb8\xce\x2d\xba\xdd\x91\x6f\x18\x3c\x10\x8c\x1d\x10\xc7\xea\x0f\x69\x29\x16\x5b\x2e\x63\xd1\xcb\x08\x7d\xf2\x61\xe4\x79\xf2\x6d\x25\xf9\x48\xc2\xc6\x09\x4f\x77\xa1\x29\xcf\x26\x5a\x6a\x45\x1e\xcd\xa2\x13\xe1\x32\xbf\x38\xbb\x38\x1f\x40\xba\xc1\x8d\x22\xef\xda\xd7\x8a\x18\xe2\x5b\x29\x4c\x70\xd7\x03\xa4\x5c\x47\xb6\x28\x22\xdd\x82\x3a\xc2\x54\xed\x2e\x37\xbe\x2c\x0a\x15\x1f\x59\xb8\x78\xbf\xe4\xe6\x7d\x02\xe3\xb8\x3f\xf6\x6f\xf7\xf7\xe0\x42\x2b\xf0\x85\xd3\x8b\xf0\xd5\x6b\x92\x4f\xc7\xdf\xfa\x0b\x7e\xad\x3b\xf6\xaf\x3f\xde\xf6\x8d\x17\xcd\xbb\x81\xa8\x71\x5d\x1b\x06\xa6\xb0\x9e\xc0\x06\x62\xa8\x44\x1b\x1e\xa7\xf4\x6e\x7c\xa2\x34\xa4\xad\xdd\x36\x35\x28\xa2\x06\x09\xac\x01\xb2\x15\xc2\xfb\xe1\x5b\x11\x73\x6f\x6a\x1a\x5f\x20\x0b\x43\xfd\xfb\xd7\xec\xa3\x35\x38\x4b\x77\x5e\x05\x01\xd2\x37\xc8\x78\x39\x4d\x9f\x25\xfb\xc1\x26\xc8\x37\xd9\x19\x66\xae\xd9\xf9\xec\xe4\x7f\x01\x00\x00\xff\xff\xd2\xcf\xfc\x7c\x5f\x1c\x00\x00"), }, "/flux-secret.yaml.tmpl": &vfsgen۰CompressedFileInfo{ name: "flux-secret.yaml.tmpl", diff --git a/pkg/install/templates/flux-deployment.yaml.tmpl b/pkg/install/templates/flux-deployment.yaml.tmpl index 36cb736e6..ece02bfa3 100644 --- a/pkg/install/templates/flux-deployment.yaml.tmpl +++ b/pkg/install/templates/flux-deployment.yaml.tmpl @@ -66,7 +66,7 @@ spec: # There are no ":latest" images for flux. Find the most recent # release or image version at https://hub.docker.com/r/fluxcd/flux/tags # and replace the tag here. - image: docker.io/fluxcd/flux:1.25.3 + image: docker.io/fluxcd/flux:1.25.4 imagePullPolicy: IfNotPresent resources: requests: