mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-18 14:40:26 +01:00
e65e55e2dd
### Describe Your Changes
These changes support using Azure Managed Identity for the `vmbackup`
utility. It adds two new environment variables:
* `AZURE_USE_DEFAULT_CREDENTIAL`: Instructs the `vmbackup` utility to
build a connection using the [Azure Default
Credential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity@v1.5.2#NewDefaultAzureCredential)
mode. This causes the Azure SDK to check for a variety of environment
variables to try and make a connection. By default, it tries to use
managed identity if that is set up.
This will close
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5984
### Checklist
The following checks are **mandatory**:
- [x] My change adheres [VictoriaMetrics contributing
guidelines](https://docs.victoriametrics.com/contributing/).
### Testing
However you normally test the `vmbackup` utility using Azure Blob should
continue to work without any changes. The set up for that is environment
specific and not listed out here.
Once regression testing has been done you can set up [Azure Managed
Identity](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview)
so your resource (AKS, VM, etc), can use that credential method. Once it
is set up, update your environment variables according to the updated
documentation.
I added unit tests to the `FS.Init` function, then made my changes, then
updated the unit tests to capture the new branches.
I tested this in our environment, but with SAS token auth and managed
identity and it works as expected.
---------
Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
Co-authored-by: Justin Rush <jarush@epic.com>
Co-authored-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
Co-authored-by: hagen1778 <roman@victoriametrics.com>
(cherry picked from commit 5fd3aef549
)
137 lines
6.6 KiB
Modula-2
137 lines
6.6 KiB
Modula-2
module github.com/VictoriaMetrics/VictoriaMetrics
|
|
|
|
go 1.22.5
|
|
|
|
require (
|
|
cloud.google.com/go/storage v1.42.0
|
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.12.0
|
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
|
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
|
github.com/VictoriaMetrics/easyproto v0.1.4
|
|
github.com/VictoriaMetrics/fastcache v1.12.2
|
|
github.com/VictoriaMetrics/metrics v1.34.0
|
|
github.com/VictoriaMetrics/metricsql v0.76.0
|
|
github.com/aws/aws-sdk-go-v2 v1.30.1
|
|
github.com/aws/aws-sdk-go-v2/config v1.27.23
|
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4
|
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.0
|
|
github.com/bmatcuk/doublestar/v4 v4.6.1
|
|
github.com/cespare/xxhash/v2 v2.3.0
|
|
github.com/cheggaaa/pb/v3 v3.1.5
|
|
github.com/gogo/protobuf v1.3.2
|
|
github.com/golang/snappy v0.0.4
|
|
github.com/googleapis/gax-go/v2 v2.12.5
|
|
github.com/influxdata/influxdb v1.11.5
|
|
github.com/klauspost/compress v1.17.9
|
|
github.com/prometheus/prometheus v0.53.0
|
|
github.com/urfave/cli/v2 v2.27.2
|
|
github.com/valyala/fastjson v1.6.4
|
|
github.com/valyala/fastrand v1.1.0
|
|
github.com/valyala/fasttemplate v1.2.2
|
|
github.com/valyala/gozstd v1.21.1
|
|
github.com/valyala/histogram v1.2.0
|
|
github.com/valyala/quicktemplate v1.8.0
|
|
golang.org/x/oauth2 v0.21.0
|
|
golang.org/x/sys v0.21.0
|
|
google.golang.org/api v0.187.0
|
|
gopkg.in/yaml.v2 v2.4.0
|
|
)
|
|
|
|
require (
|
|
cloud.google.com/go v0.115.0 // indirect
|
|
cloud.google.com/go/auth v0.6.1 // indirect
|
|
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
|
|
cloud.google.com/go/compute/metadata v0.4.0 // indirect
|
|
cloud.google.com/go/iam v1.1.10 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.9.1 // indirect
|
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
|
github.com/VividCortex/ewma v1.2.0 // indirect
|
|
github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 // indirect
|
|
github.com/aws/aws-sdk-go v1.54.13 // indirect
|
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.23 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.13 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.13 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.13 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.15 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.15 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.13 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect
|
|
github.com/aws/smithy-go v1.20.3 // indirect
|
|
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/dennwc/varint v1.0.0 // indirect
|
|
github.com/fatih/color v1.17.0 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/go-kit/log v0.2.1 // indirect
|
|
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
|
github.com/go-logr/logr v1.4.2 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
|
github.com/google/go-cmp v0.6.0 // indirect
|
|
github.com/google/s2a-go v0.1.7 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect
|
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
|
github.com/jpillora/backoff v1.0.0 // indirect
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-runewidth v0.0.15 // 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/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
|
|
github.com/oklog/ulid v1.3.1 // indirect
|
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_golang v1.19.1 // indirect
|
|
github.com/prometheus/client_model v0.6.1 // indirect
|
|
github.com/prometheus/common v0.55.0 // indirect
|
|
github.com/prometheus/common/sigv4 v0.1.0 // indirect
|
|
github.com/prometheus/procfs v0.15.1 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
github.com/stretchr/testify v1.9.0 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
|
|
go.opencensus.io v0.24.0 // indirect
|
|
go.opentelemetry.io/collector/pdata v1.11.0 // indirect
|
|
go.opentelemetry.io/collector/semconv v0.104.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect
|
|
go.opentelemetry.io/otel v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.28.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.28.0 // indirect
|
|
go.uber.org/atomic v1.11.0 // indirect
|
|
go.uber.org/goleak v1.3.0 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
golang.org/x/crypto v0.24.0 // indirect
|
|
golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect
|
|
golang.org/x/net v0.26.0 // indirect
|
|
golang.org/x/sync v0.7.0 // indirect
|
|
golang.org/x/text v0.16.0 // indirect
|
|
golang.org/x/time v0.5.0 // indirect
|
|
google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
|
|
google.golang.org/grpc v1.65.0 // indirect
|
|
google.golang.org/protobuf v1.34.2 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
k8s.io/apimachinery v0.30.2 // indirect
|
|
k8s.io/client-go v0.30.2 // indirect
|
|
k8s.io/klog/v2 v2.130.1 // indirect
|
|
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect
|
|
)
|