(opts ...InstanceIdentityOption)
| 28 | } |
| 29 | |
| 30 | func WithAWSInstanceIdentity(opts ...InstanceIdentityOption) SessionTokenSetup { |
| 31 | cfg := applyInstanceIdentityOptions(opts) |
| 32 | return func(client *codersdk.Client) RefreshableSessionTokenProvider { |
| 33 | return &InstanceIdentitySessionTokenProvider{ |
| 34 | TokenExchanger: &AWSSessionTokenExchanger{client: client, agentName: cfg.AgentName}, |
| 35 | } |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | // exchange uses the Amazon Metadata API to fetch a signed payload, and exchange it for a session token for a workspace |
| 40 | // agent. |