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
15 changes: 12 additions & 3 deletions cmd/replicate-add.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ var replicateAddFlags = []cli.Flag{
Name: "disable-proxy",
Usage: "disable proxying in active-active replication. If unset, default behavior is to proxy",
},
cli.BoolFlag{
Name: "insecure-tls,it",
Usage: "disable TLS certificate verification during replicate",
},
}

var replicateAddCmd = cli.Command{
Expand Down Expand Up @@ -125,18 +129,22 @@ EXAMPLES:
{{.Prompt}} {{.HelpName}} myminio/mybucket --remote-bucket https://foobar:foo12345@minio.siteb.example.com/targetbucket \
--priority 1

3. Add replication configuration rule on bucket "mybucket" for alias "myminio" to replicate all objects with tags
3. Add replication configuration rule on bucket "mybucket" for alias "myminio" to replicate all operations in an active-active replication setup, with TLS disabled.
{{.Prompt}} {{.HelpName}} myminio/mybucket --remote-bucket https://foobar:foo12345@minio.siteb.example.com/targetbucket \
--priority 1 --insecure-tls

4. Add replication configuration rule on bucket "mybucket" for alias "myminio" to replicate all objects with tags
"key1=value1, key2=value2" to targetbucket synchronously with bandwidth set to 2 gigabits per second.
{{.Prompt}} {{.HelpName}} myminio/mybucket --remote-bucket https://foobar:foo12345@minio.siteb.example.com/targetbucket \
--tags "key1=value1&key2=value2" --bandwidth "2G" --sync \
--priority 1

4. Disable a replication configuration rule on bucket "mybucket" for alias "myminio".
5. Disable a replication configuration rule on bucket "mybucket" for alias "myminio".
{{.Prompt}} {{.HelpName}} myminio/mybucket --remote-bucket https://foobar:foo12345@minio.siteb.example.com/targetbucket \
--tags "key1=value1&key2=value2" \
--priority 1 --disable

5. Add replication configuration rule with existing object replication, delete marker replication and versioned deletes
6. Add replication configuration rule with existing object replication, delete marker replication and versioned deletes
enabled on bucket "mybucket" for alias "myminio".
{{.Prompt}} {{.HelpName}} myminio/mybucket --remote-bucket https://foobar:foo12345@minio.siteb.example.com/targetbucket \
--replicate "existing-objects,delete,delete-marker" \
Expand Down Expand Up @@ -257,6 +265,7 @@ func fetchRemoteTarget(cli *cli.Context) (bktTarget *madmin.BucketTarget) {
ReplicationSync: cli.Bool("sync"),
DisableProxy: disableproxy,
HealthCheckDuration: time.Duration(cli.Uint("healthcheck-seconds")) * time.Second,
InsecureTLS: cli.Bool("insecure-tls"),
}
return bktTarget
}
Expand Down
22 changes: 21 additions & 1 deletion cmd/replicate-update.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@ var replicateUpdateFlags = []cli.Flag{
Usage: "enable proxying in active-active replication, valid values are ['enable', 'disable']",
Value: "enable",
},
cli.StringFlag{
Name: "tls",
Usage: "enable tls in active-active replication, valid values are ['enable', 'disable']",
Value: "enable",
},
cli.StringFlag{
Name: "bandwidth",
Usage: "Set bandwidth limit in bytes per second (K,B,G,T for metric and Ki,Bi,Gi,Ti for IEC units)",
Expand Down Expand Up @@ -139,6 +144,10 @@ EXAMPLES:
10. Disable proxying and enable synchronous replication for remote target of bucket mybucket with rule ID kxYD.492
{{.Prompt}} {{.HelpName}} myminio/mybucket --id "kxYD.492" --remote-bucket https://foobar:newpassword@minio.siteb.example.com/targetbucket \
--sync "enable" --proxy "disable"

10. Disable tls replication for remote target of bucket mybucket with rule ID kxYD.492
{{.Prompt}} {{.HelpName}} myminio/mybucket --id "kxYD.492" --remote-bucket https://foobar:newpassword@minio.siteb.example.com/targetbucket \
--tls "disable"
`,
}

Expand All @@ -149,7 +158,7 @@ func checkReplicateUpdateSyntax(ctx *cli.Context) {
}
}

// modifyRemoteTarget - modifies the dest credentials or updates sync , disable-proxy settings
// modifyRemoteTarget - modifies the dest credentials or updates sync , disable-proxy settings, enable TLS settings
func modifyRemoteTarget(cli *cli.Context, targets []madmin.BucketTarget, arnStr string) (*madmin.BucketTarget, []madmin.TargetUpdateType) {
args := cli.Args()
foundIdx := -1
Expand Down Expand Up @@ -192,6 +201,17 @@ func modifyRemoteTarget(cli *cli.Context, targets []madmin.BucketTarget, arnStr
fatalIf(errInvalidArgument().Trace(args...), "--proxy can be either [enable|disable]")
}
}
if cli.IsSet("tls") {
tlsState := strings.ToLower(cli.String("tls"))
switch tlsState {
case "enable", "disable":
bktTarget.InsecureTLS = tlsState == "disable"
ops = append(ops, madmin.InsecureTLSUpdateType)

default:
fatalIf(errInvalidArgument().Trace(args...), "--tls can be either [enable|disable]")
}
}

if len(args) == 1 {
_, sourceBucket := url2Alias(args[0])
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ require (
github.com/minio/cli v1.24.2
github.com/minio/colorjson v1.0.8
github.com/minio/filepath v1.0.0
github.com/minio/madmin-go/v3 v3.0.107-0.20250415152934-4b504b82db63
github.com/minio/madmin-go/v3 v3.0.111-0.20251001033705-5b7ec259a9fb
github.com/minio/minio-go/v7 v7.0.90
github.com/minio/pkg/v3 v3.1.0
github.com/minio/selfupdate v0.6.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,8 @@ github.com/minio/crc64nvme v1.0.1 h1:DHQPrYPdqK7jQG/Ls5CTBZWeex/2FMS3G5XGkycuFrY
github.com/minio/crc64nvme v1.0.1/go.mod h1:eVfm2fAzLlxMdUGc0EEBGSMmPwmXD5XiNRpnu9J3bvg=
github.com/minio/filepath v1.0.0 h1:fvkJu1+6X+ECRA6G3+JJETj4QeAYO9sV43I79H8ubDY=
github.com/minio/filepath v1.0.0/go.mod h1:/nRZA2ldl5z6jT9/KQuvZcQlxZIMQoFFQPvEXx9T/Bw=
github.com/minio/madmin-go/v3 v3.0.107-0.20250415152934-4b504b82db63 h1:ktN/FrMuM9sjvjIbPZYRKeHEzBDOXQdpYUDiNO0CutE=
github.com/minio/madmin-go/v3 v3.0.107-0.20250415152934-4b504b82db63/go.mod h1:U0bL6ip4yKFwvo0keonUcWFQp0Hd462tOLLeVyPzWmE=
github.com/minio/madmin-go/v3 v3.0.111-0.20251001033705-5b7ec259a9fb h1:GFmNqpQ3HWyElhronJ/ROvSccevnynRewsFZl4TZT6k=
github.com/minio/madmin-go/v3 v3.0.111-0.20251001033705-5b7ec259a9fb/go.mod h1:WOe2kYmYl1OIlY2DSRHVQ8j1v4OItARQ6jGyQqcCud8=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.90 h1:TmSj1083wtAD0kEYTx7a5pFsv3iRYMsOJ6A4crjA1lE=
Expand Down