Azure storage needs the endpoint suffix after v1.15.0
Describe the bug After https://github.com/cortexproject/cortex/commit/da2ad99f2c258537701c2b427195029c838612df all the containers that depend on block storage resources hang on authorization failing to start. There is no message.
it's necessary to specify the endpoint suffix for all values,
In my case I had to specify blob.core.windows.net
the empty value is no longer valid.
# Azure storage endpoint suffix without schema. The account name will be
# prefixed to this value to create the FQDN
# CLI flag: -ruler-storage.azure.endpoint-suffix
[endpoint_suffix: <string> | default = ""]
Expected behavior Cortex should now fail to start if the suffix value is not provided
Additional Context
One can see the problem with
$ cat alertmanager.yaml
alertmanager:
data_dir: /data
enable_api: true
alertmanager_storage:
azure:
account_key: dmFsaWRhY2NvdW50a2V5 # validstoragekey encoded with base64
account_name: validstorageaccountname
container_name: validcontainername
# endpoint_suffix: blob.core.windows.net
backend: azure
server:
log_level: debug
target: alertmanager
$ docker run -e AZURE_SDK_GO_LOGGING=all -v $PWD/alertmanager.yaml:/alertmanager.yaml cortexproject/cortex:master-da2ad99 -config.file=/alertmanager.yaml
...
Get "https://validstorageaccountname./validcontainername?restype=container": dial tcp: lookup validstorageaccountname. on 192.168.5.3:53: no such host
...
Seems related to https://github.com/thanos-io/thanos/issues/6175
@friedrichg @alanprot here's my approach to this, I can add a validate function in pkg/storage/bucket/azure/config.go which checks whether endpoint_suffix is empty or not, and execute the function right after parsing the command line flags. If error occurs then I can just do os.Exit(1). Is this approach correct?
@moki1202 fixing in thanos should be more appropriate