mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-19 12:50:23 +00:00
4f0bb2315b
With Amazon STS and kubernetes cluster is configured with OIDC identity provider, credentials to access Amazon KMS can be fetched using oidc-token(serviceaccount token). Each tenant/namespace needs to create a secret with aws region, role and CMK ARN. Ceph-CSI will assume the given role with oidc token and access aws KMS, with given CMK to encrypt/decrypt DEK which will stored in the image metdata. Refer: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html Resolves: #2879 Signed-off-by: Rakshith R <rar@redhat.com>
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package defaults
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/aws/aws-sdk-go-v2/aws"
|
|
)
|
|
|
|
// Configuration is the set of SDK configuration options that are determined based
|
|
// on the configured DefaultsMode.
|
|
type Configuration struct {
|
|
// RetryMode is the configuration's default retry mode API clients should
|
|
// use for constructing a Retryer.
|
|
RetryMode aws.RetryMode
|
|
|
|
// ConnectTimeout is the maximum amount of time a dial will wait for
|
|
// a connect to complete.
|
|
//
|
|
// See https://pkg.go.dev/net#Dialer.Timeout
|
|
ConnectTimeout *time.Duration
|
|
|
|
// TLSNegotiationTimeout specifies the maximum amount of time waiting to
|
|
// wait for a TLS handshake.
|
|
//
|
|
// See https://pkg.go.dev/net/http#Transport.TLSHandshakeTimeout
|
|
TLSNegotiationTimeout *time.Duration
|
|
}
|
|
|
|
// GetConnectTimeout returns the ConnectTimeout value, returns false if the value is not set.
|
|
func (c *Configuration) GetConnectTimeout() (time.Duration, bool) {
|
|
if c.ConnectTimeout == nil {
|
|
return 0, false
|
|
}
|
|
return *c.ConnectTimeout, true
|
|
}
|
|
|
|
// GetTLSNegotiationTimeout returns the TLSNegotiationTimeout value, returns false if the value is not set.
|
|
func (c *Configuration) GetTLSNegotiationTimeout() (time.Duration, bool) {
|
|
if c.TLSNegotiationTimeout == nil {
|
|
return 0, false
|
|
}
|
|
return *c.TLSNegotiationTimeout, true
|
|
}
|