github.com/docker/compose-on-kubernetes@v0.5.0/api/compose/impersonation/impersonationconfig.go (about)

     1  package impersonation
     2  
     3  import "github.com/docker/compose-on-kubernetes/api/compose/clone"
     4  
     5  // Config contains the data required to impersonate a user.
     6  type Config struct {
     7  	// UserName is the username to impersonate on each request.
     8  	UserName string
     9  	// Groups are the groups to impersonate on each request.
    10  	Groups []string
    11  	// Extra is a free-form field which can be used to link some authentication information
    12  	// to authorization information.  This field allows you to impersonate it.
    13  	Extra map[string][]string
    14  }
    15  
    16  // Clone clones the impersonation config
    17  func (ic *Config) Clone() *Config {
    18  	if ic == nil {
    19  		return nil
    20  	}
    21  	result := new(Config)
    22  	result.UserName = ic.UserName
    23  	result.Groups = clone.SliceOfString(ic.Groups)
    24  	result.Extra = clone.MapOfStringToSliceOfString(ic.Extra)
    25  	return result
    26  }