Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions tests/e2e/kubetest2-kops/aws/s3.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ type Client struct {
stsClient *sts.Client
}

type BucketType string

const (
BucketTypeStateStore BucketType = "state"
BucketTypeDiscoveryStore BucketType = "discovery"
)

// NewAWSClient returns a new instance of awsClient configured to work in the default region (us-east-2).
func NewClient(ctx context.Context) (*Client, error) {
cfg, err := awsconfig.LoadDefaultConfig(ctx,
Expand All @@ -58,7 +65,7 @@ func NewClient(ctx context.Context) (*Client, error) {
}

// BucketName constructs an unique bucket name using the AWS account ID in the default region (us-east-2).
func (c Client) BucketName(ctx context.Context) (string, error) {
func (c Client) BucketName(ctx context.Context, bucketType BucketType) (string, error) {
// Construct the bucket name based on the ProwJob ID (if running in Prow) or AWS account ID (if running outside
// Prow) and the current timestamp
var identifier string
Expand All @@ -72,7 +79,7 @@ func (c Client) BucketName(ctx context.Context) (string, error) {
identifier = *callerIdentity.Account
}
timestamp := time.Now().Format("20060102150405")
bucket := fmt.Sprintf("k8s-infra-kops-%s-%s", identifier, timestamp)
bucket := fmt.Sprintf("k8s-infra-kops-%s-%s-%s", bucketType, identifier, timestamp)

bucket = strings.ToLower(bucket)
// Only allow lowercase letters, numbers, and hyphens
Expand Down Expand Up @@ -120,6 +127,8 @@ func (c Client) EnsureS3Bucket(ctx context.Context, bucketName string, publicRea
klog.Infof("Bucket %s created successfully", bucketName)

if publicRead {
fmt.Println("WAITING 5 MINUTES !!! ")
time.Sleep(5 * time.Minute)
err = c.setPublicReadPolicy(ctx, bucketName)
if err != nil {
klog.Errorf("Failed to set public read policy on bucket %s, err: %v", bucketName, err)
Expand Down
11 changes: 9 additions & 2 deletions tests/e2e/kubetest2-kops/deployer/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ func (d *deployer) stateStore() string {
switch d.CloudProvider {
case "aws":
ctx := context.Background()
bucketName, err := d.aws.BucketName(ctx)
bucketName, err := d.aws.BucketName(ctx, aws.BucketTypeStateStore)
if err != nil {
klog.Fatalf("Failed to generate bucket name: %v", err)
return ""
Expand Down Expand Up @@ -390,7 +390,14 @@ func (d *deployer) discoveryStore() string {
if discovery == "" {
switch d.CloudProvider {
case "aws":
discovery = "s3://k8s-kops-ci-prow"
ctx := context.Background()
bucketName, err := d.aws.BucketName(ctx, aws.BucketTypeDiscoveryStore)
if err != nil {
klog.Fatalf("Failed to generate bucket name: %v", err)
return ""
}
d.createBucket = true
discovery = "s3://" + bucketName
}
}
d.discoveryStoreName = discovery
Expand Down
3 changes: 3 additions & 0 deletions tests/e2e/kubetest2-kops/deployer/down.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ func (d *deployer) Down() error {
if err := d.aws.DeleteS3Bucket(ctx, d.stateStore()); err != nil {
return err
}
if err := d.aws.DeleteS3Bucket(ctx, d.discoveryStore()); err != nil {
return err
}
case "gce":
gce.DeleteGCSBucket(d.stateStore(), d.GCPProject)
gce.DeleteGCSBucket(d.stagingStore(), d.GCPProject)
Expand Down
3 changes: 3 additions & 0 deletions tests/e2e/kubetest2-kops/deployer/up.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ func (d *deployer) Up() error {
if err := d.aws.EnsureS3Bucket(ctx, d.stateStore(), false); err != nil {
return err
}
if err := d.aws.EnsureS3Bucket(ctx, d.discoveryStore(), true); err != nil {
return err
}
case "gce":
if err := gce.EnsureGCSBucket(d.stateStore(), d.GCPProject, false); err != nil {
return err
Expand Down
Loading