@@ -14,20 +14,21 @@ import (
1414)
1515
1616type sharedOptions struct {
17- brokerAddr string
18- clusterConfig string
19- expandEnv bool
20- saslMechanism string
21- saslPassword string
22- saslUsername string
23- tlsCACert string
24- tlsCert string
25- tlsEnabled bool
26- tlsKey string
27- tlsSkipVerify bool
28- tlsServerName string
29- zkAddr string
30- zkPrefix string
17+ brokerAddr string
18+ clusterConfig string
19+ expandEnv bool
20+ saslMechanism string
21+ saslPassword string
22+ saslUsername string
23+ saslAssumeRole string
24+ tlsCACert string
25+ tlsCert string
26+ tlsEnabled bool
27+ tlsKey string
28+ tlsSkipVerify bool
29+ tlsServerName string
30+ zkAddr string
31+ zkPrefix string
3132}
3233
3334func (s sharedOptions ) validate () error {
@@ -95,6 +96,10 @@ func (s sharedOptions) validate() error {
9596 (s .saslUsername != "" || s .saslPassword != "" ) {
9697 log .Warn ("Username and password are ignored if using SASL AWS-MSK-IAM" )
9798 }
99+
100+ if saslMechanism != admin .SASLMechanismAWSMSKIAM && s .saslAssumeRole != "" {
101+ log .Warn ("AssumeRole is ignored unless using SASL AWS-MSK-IAM" )
102+ }
98103 }
99104
100105 return err
@@ -150,10 +155,11 @@ func (s sharedOptions) getAdminClient(
150155 SkipVerify : s .tlsSkipVerify ,
151156 },
152157 SASL : admin.SASLConfig {
153- Enabled : saslEnabled ,
154- Mechanism : saslMechanism ,
155- Password : s .saslPassword ,
156- Username : s .saslUsername ,
158+ Enabled : saslEnabled ,
159+ Mechanism : saslMechanism ,
160+ Password : s .saslPassword ,
161+ Username : s .saslUsername ,
162+ AssumeRole : s .saslAssumeRole ,
157163 },
158164 },
159165 ReadOnly : readOnly ,
@@ -211,6 +217,12 @@ func addSharedFlags(cmd *cobra.Command, options *sharedOptions) {
211217 os .Getenv ("TOPICCTL_SASL_USERNAME" ),
212218 "SASL username if using SASL; will override value set in cluster config" ,
213219 )
220+ cmd .Flags ().StringVar (
221+ & options .saslAssumeRole ,
222+ "sasl-assume-role" ,
223+ "" ,
224+ "Intermediate role to assume if using SASL AWS-MSK-IAM" ,
225+ )
214226 cmd .Flags ().StringVar (
215227 & options .tlsCACert ,
216228 "tls-ca-cert" ,
0 commit comments