Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CertAuthoritySpecV2 ¶
type CertAuthoritySpecV2 struct {
// Type is either user or host certificate authority
Type services.CertAuthType `json:"type"`
// DELETE IN(2.7.0) this field is deprecated,
// as resource name matches cluster name after migrations.
// and this property is enforced by the auth server code.
// ClusterName identifies cluster name this authority serves,
// for host authorities that means base hostname of all servers,
// for user authorities that means organization name
ClusterName string `json:"cluster_name"`
// Checkers is a list of SSH public keys that can be used to check
// certificate signatures
CheckingKeys [][]byte `json:"checking_keys"`
// SigningKeys is a list of private keys used for signing
SigningKeys [][]byte `json:"signing_keys,omitempty"`
// Roles is a list of roles assumed by users signed by this CA
Roles []string `json:"roles,omitempty"`
// RoleMap specifies role mappings to remote roles
RoleMap RoleMap `json:"role_map,omitempty"`
// TLS is a list of TLS key pairs
TLSKeyPairs []TLSKeyPair `json:"tls_key_pairs,omitempty"`
// Rotation is a status of the certificate authority rotation
Rotation *Rotation `json:"rotation,omitempty"`
}
CertAuthoritySpecV2 is a host or user certificate authority that can check and if it has private key stored as well, sign it too
type CertAuthorityV1 ¶
type CertAuthorityV1 struct {
// Type is either user or host certificate authority
Type services.CertAuthType `json:"type"`
// DomainName identifies domain name this authority serves,
// for host authorities that means base hostname of all servers,
// for user authorities that means organization name
DomainName string `json:"domain_name"`
// Checkers is a list of SSH public keys that can be used to check
// certificate signatures
CheckingKeys [][]byte `json:"checking_keys"`
// SigningKeys is a list of private keys used for signing
SigningKeys [][]byte `json:"signing_keys"`
// AllowedLogins is a list of allowed logins for users within
// this certificate authority
AllowedLogins []string `json:"allowed_logins"`
}
CertAuthorityV1 is a host or user certificate authority that can check and if it has private key stored as well, sign it too
type CertAuthorityV2 ¶
type CertAuthorityV2 struct {
// Kind is a resource kind
Kind string `json:"kind"`
// Version is version
Version string `json:"version"`
// Metadata is connector metadata
Metadata Metadata `json:"metadata"`
// Spec contains cert authority specification
Spec CertAuthoritySpecV2 `json:"spec"`
// contains filtered or unexported fields
}
CertAuthorityV2 is version 2 resource spec for Cert Authority
type CommandLabelV2 ¶
type CommandLabelV2 struct {
// Period is a time between command runs
Period Duration `json:"period"`
// Command is a command to run
Command []string `json:"command"` //["/usr/bin/hostname", "--long"]
// Result captures standard output
Result string `json:"result"`
}
CommandLabelV2 is a label that has a value as a result of the output generated by running command, e.g. hostname
type Duration ¶
Duration is a wrapper around duration to set up custom marshal/unmarshal
func NewDuration ¶
NewDuration returns Duration struct based on time.Duration
func (Duration) MarshalJSON ¶
MarshalJSON marshals Duration to string
func (Duration) MarshalYAML ¶
MarshalYAML marshals duration into YAML value, encodes it as a string in format "1m"
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON marshals Duration to string
func (*Duration) UnmarshalYAML ¶
type Metadata ¶
type Metadata struct {
// Name is an object name
Name string `json:"name"`
// Namespace is object namespace. The field should be called "namespace"
// when it returns in Teleport 2.4.
Namespace string `json:"-"`
// Description is object description
Description string `json:"description,omitempty"`
// Labels is a set of labels
Labels map[string]string `json:"labels,omitempty"`
// Expires is a global expiry time header can be set on any resource in the system.
Expires *time.Time `json:"expires,omitempty"`
}
Metadata is resource metadata
type RoleMapping ¶
type RoleMapping struct {
// Remote specifies remote role name to map from
Remote string `json:"remote"`
// Local specifies local roles to map to
Local []string `json:"local"`
}
RoleMappping provides mapping of remote roles to local roles for trusted clusters
type Rotation ¶
type Rotation struct {
// State could be one of "init" or "in_progress".
State string `json:"state,omitempty"`
// Phase is the current rotation phase.
Phase string `json:"phase,omitempty"`
// Mode sets manual or automatic rotation mode.
Mode string `json:"mode,omitempty"`
// CurrentID is the ID of the rotation operation
// to differentiate between rotation attempts.
CurrentID string `json:"current_id"`
// Started is set to the time when rotation has been started
// in case if the state of the rotation is "in_progress".
Started time.Time `json:"started,omitempty"`
// GracePeriod is a period during which old and new CA
// are valid for checking purposes, but only new CA is issuing certificates.
GracePeriod Duration `json:"grace_period,omitempty"`
// LastRotated specifies the last time of the completed rotation.
LastRotated time.Time `json:"last_rotated,omitempty"`
// Schedule is a rotation schedule - used in
// automatic mode to switch beetween phases.
Schedule RotationSchedule `json:"schedule,omitempty"`
}
Rotation is a status of the rotation of the certificate authority
type RotationSchedule ¶
type RotationSchedule struct {
// UpdateClients specifies time to switch to the "Update clients" phase
UpdateClients time.Time `json:"update_clients,omitempty"`
// UpdateServers specifies time to switch to the "Update servers" phase.
UpdateServers time.Time `json:"update_servers,omitempty"`
// Standby specifies time to switch to the "Standby" phase.
Standby time.Time `json:"standby,omitempty"`
}
RotationSchedule is a rotation schedule setting time switches for different phases.
type ServerSpecV2 ¶
type ServerSpecV2 struct {
// Addr is server host:port address
Addr string `json:"addr"`
// PublicAddr is the public address this cluster can be reached at.
PublicAddr string `json:"public_addr,omitempty"`
// Hostname is server hostname
Hostname string `json:"hostname"`
// CmdLabels is server dynamic labels
CmdLabels map[string]CommandLabelV2 `json:"cmd_labels,omitempty"`
// Rotation specifies server rotatoin status
Rotation Rotation `json:"rotation,omitempty"`
}
ServerSpecV2 is a specification for V2 Server
type ServerV2 ¶
type ServerV2 struct {
// Kind is a resource kind
Kind string `json:"kind"`
// Version is version
Version string `json:"version"`
// Metadata is User metadata
Metadata Metadata `json:"metadata"`
// Spec contains user specification
Spec ServerSpecV2 `json:"spec"`
}
ServerV2 is version1 resource spec of the server
type TLSKeyPair ¶
type TLSKeyPair struct {
// Cert is a PEM encoded TLS cert
Cert []byte `json:"cert,omitempty"`
// Key is a PEM encoded TLS key
Key []byte `json:"key,omitempty"`
}
TLSKeyPair is a TLS key pair