|
9 | 9 |
|
10 | 10 | configv1 "github.com/grafana/loki/operator/apis/config/v1"
|
11 | 11 | lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
|
| 12 | + "github.com/grafana/loki/operator/internal/manifests/storage" |
12 | 13 | )
|
13 | 14 |
|
14 | 15 | func TestHashSecretData(t *testing.T) {
|
@@ -617,6 +618,62 @@ func TestS3Extract(t *testing.T) {
|
617 | 618 | }
|
618 | 619 | }
|
619 | 620 |
|
| 621 | +func TestS3Extract_S3ForcePathStyle(t *testing.T) { |
| 622 | + tt := []struct { |
| 623 | + desc string |
| 624 | + secret *corev1.Secret |
| 625 | + wantOptions *storage.S3StorageConfig |
| 626 | + }{ |
| 627 | + { |
| 628 | + desc: "aws s3 endpoint", |
| 629 | + secret: &corev1.Secret{ |
| 630 | + ObjectMeta: metav1.ObjectMeta{Name: "test"}, |
| 631 | + Data: map[string][]byte{ |
| 632 | + "endpoint": []byte("https://s3.region.amazonaws.com"), |
| 633 | + "region": []byte("region"), |
| 634 | + "bucketnames": []byte("this,that"), |
| 635 | + "access_key_id": []byte("id"), |
| 636 | + "access_key_secret": []byte("secret"), |
| 637 | + }, |
| 638 | + }, |
| 639 | + wantOptions: &storage.S3StorageConfig{ |
| 640 | + Endpoint: "https://s3.region.amazonaws.com", |
| 641 | + Region: "region", |
| 642 | + Buckets: "this,that", |
| 643 | + }, |
| 644 | + }, |
| 645 | + { |
| 646 | + desc: "non-aws s3 endpoint", |
| 647 | + secret: &corev1.Secret{ |
| 648 | + ObjectMeta: metav1.ObjectMeta{Name: "test"}, |
| 649 | + Data: map[string][]byte{ |
| 650 | + "endpoint": []byte("https://test.default.svc.cluster.local:9000"), |
| 651 | + "region": []byte("region"), |
| 652 | + "bucketnames": []byte("this,that"), |
| 653 | + "access_key_id": []byte("id"), |
| 654 | + "access_key_secret": []byte("secret"), |
| 655 | + }, |
| 656 | + }, |
| 657 | + wantOptions: &storage.S3StorageConfig{ |
| 658 | + Endpoint: "https://test.default.svc.cluster.local:9000", |
| 659 | + Region: "region", |
| 660 | + Buckets: "this,that", |
| 661 | + ForcePathStyle: true, |
| 662 | + }, |
| 663 | + }, |
| 664 | + } |
| 665 | + |
| 666 | + for _, tc := range tt { |
| 667 | + tc := tc |
| 668 | + t.Run(tc.desc, func(t *testing.T) { |
| 669 | + t.Parallel() |
| 670 | + options, err := extractS3ConfigSecret(tc.secret, lokiv1.CredentialModeStatic) |
| 671 | + require.NoError(t, err) |
| 672 | + require.Equal(t, tc.wantOptions, options) |
| 673 | + }) |
| 674 | + } |
| 675 | +} |
| 676 | + |
620 | 677 | func TestS3Extract_WithOpenShiftTokenCCOAuth(t *testing.T) {
|
621 | 678 | fg := configv1.FeatureGates{
|
622 | 679 | OpenShift: configv1.OpenShiftFeatureGates{
|
|
0 commit comments