0
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-11-24 20:17:03 +01:00
gitea/modules/setting
Michael Owoc 713364fc71
Support optional/configurable IAMEndpoint for Minio Client (#32581) (#32581)
Targeting issue #32271

This modification allows native Kubernetes + AWS (EKS) authentication
with the Minio client, to Amazon S3 using the IRSA role assigned to a
Service account by replacing the hard coded reference to the
`DefaultIAMRoleEndpoint` with an optional configurable endpoint.

Internally, Minio's `credentials.IAM` provider implements a discovery
flow for IAM Endpoints if it is not set.

For backwards compatibility: 
- We have added a configuration mechanism for an `IamEndpoint` to retain
the unit test safety in `minio_test.go`.
- We believe existing clients will continue to function the same without
needing to provide a new config property since the internals of Minio
client also often resolve to the `http://169.254.169.254` default
endpoint that was being hard coded before

To test, we were able to build a docker image from source and, observe
it choosing the expected IAM endpoint, and see files uploaded via the
client.
2024-11-22 20:12:06 +00:00
..
config
actions_test.go
actions.go
admin.go
api.go
asset_dynamic.go
asset_static.go
attachment_test.go
attachment.go
cache.go
camo.go
config_env_test.go
config_env.go
config_provider_test.go
config_provider.go
config.go
cors.go
cron_test.go
cron.go
database_sqlite.go
database_test.go
database.go
federation.go
git_test.go
git.go
gloabl_lock.go
glob.go
global_lock_test.go
global.go
highlight.go
i18n.go
incoming_email.go
indexer_test.go
indexer.go
lfs_test.go
lfs.go
log_test.go
log.go
mailer_test.go
mailer.go
markup.go
metrics.go
migrations.go
mime_type_map.go
mirror.go
oauth2_test.go
oauth2.go
other.go
packages_test.go
packages.go
path_test.go
path.go
picture.go
project.go
proxy.go
queue.go
repository_archive_test.go
repository_archive.go
repository.go
security.go
server.go
service_test.go
service.go
session.go
setting_test.go
setting.go
ssh.go
storage_test.go
storage.go
task.go
time.go
ui.go
webhook.go