in internal/node/hybrid/aws.go [20:54]
func (hnp *HybridNodeProvider) ConfigureAws(ctx context.Context) error {
if hnp.nodeConfig.IsSSM() {
configurator := SSMAWSConfigurator{
Manager: hnp.daemonManager,
Logger: hnp.logger,
}
if err := configurator.Configure(ctx, hnp.nodeConfig); err != nil {
return fmt.Errorf("configuring aws credentials with SSM: %w", err)
}
configCtx, cancel := context.WithTimeout(ctx, 2*time.Minute)
defer cancel()
hnp.logger.Info("Waiting for AWS config to be available")
awsConfig, err := ssm.WaitForAWSConfig(configCtx, hnp.nodeConfig, 2*time.Second)
if err != nil {
return fmt.Errorf("reading aws config for SSM: %w", err)
}
hnp.awsConfig = &awsConfig
} else {
configurator := RolesAnywhereAWSConfigurator{}
if err := configurator.Configure(ctx, hnp.nodeConfig); err != nil {
return fmt.Errorf("configuring aws credentials with IAM Roles Anywhere: %w", err)
}
awsConfig, err := LoadAWSConfigForRolesAnywhere(ctx, hnp.nodeConfig)
if err != nil {
return fmt.Errorf("generating aws config for IAM Roles Anywhere: %w", err)
}
hnp.awsConfig = &awsConfig
}
return nil
}