Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertStructValid ¶ added in v0.11.0
func AssertStructValid(c interface{}) error
AssertStructValid checks the fields in the structure and makes sure that they contain valid values as specified by the 'valid' flag. Empty fields are implicitly valid.
func IsCloudConfig ¶ added in v0.11.0
Types ¶
type CloudConfig ¶
type CloudConfig struct { SSHAuthorizedKeys []string `yaml:"ssh_authorized_keys"` Coreos struct { Etcd Etcd `yaml:"etcd"` Flannel Flannel `yaml:"flannel"` Fleet Fleet `yaml:"fleet"` OEM OEM `yaml:"oem"` Update Update `yaml:"update"` Units []Unit `yaml:"units"` } `yaml:"coreos"` WriteFiles []File `yaml:"write_files"` Hostname string `yaml:"hostname"` Users []User `yaml:"users"` ManageEtcHosts EtcHosts `yaml:"manage_etc_hosts"` NetworkConfigPath string `yaml:"-"` NetworkConfig string `yaml:"-"` }
CloudConfig encapsulates the entire cloud-config configuration file and maps directly to YAML. Fields that cannot be set in the cloud-config (fields used for internal use) have the YAML tag '-' so that they aren't marshalled.
func NewCloudConfig ¶
func NewCloudConfig(contents string) (*CloudConfig, error)
NewCloudConfig instantiates a new CloudConfig from the given contents (a string of YAML), returning any error encountered. It will ignore unknown fields but log encountering them.
func (CloudConfig) String ¶
func (cc CloudConfig) String() string
type ErrorValid ¶ added in v0.11.0
func AssertValid ¶
func AssertValid(value reflect.Value, valid string) *ErrorValid
AssertValid checks to make sure that the given value is in the list of valid values. Zero values are implicitly valid.
func (ErrorValid) Error ¶ added in v0.11.0
func (e ErrorValid) Error() string
type Etcd ¶
type Etcd struct { Addr string `yaml:"addr" env:"ETCD_ADDR"` BindAddr string `yaml:"bind_addr" env:"ETCD_BIND_ADDR"` CAFile string `yaml:"ca_file" env:"ETCD_CA_FILE"` CertFile string `yaml:"cert_file" env:"ETCD_CERT_FILE"` ClusterActiveSize int `yaml:"cluster_active_size" env:"ETCD_CLUSTER_ACTIVE_SIZE"` ClusterRemoveDelay float64 `yaml:"cluster_remove_delay" env:"ETCD_CLUSTER_REMOVE_DELAY"` ClusterSyncInterval float64 `yaml:"cluster_sync_interval" env:"ETCD_CLUSTER_SYNC_INTERVAL"` CorsOrigins string `yaml:"cors" env:"ETCD_CORS"` DataDir string `yaml:"data_dir" env:"ETCD_DATA_DIR"` Discovery string `yaml:"discovery" env:"ETCD_DISCOVERY"` GraphiteHost string `yaml:"graphite_host" env:"ETCD_GRAPHITE_HOST"` HTTPReadTimeout float64 `yaml:"http_read_timeout" env:"ETCD_HTTP_READ_TIMEOUT"` HTTPWriteTimeout float64 `yaml:"http_write_timeout" env:"ETCD_HTTP_WRITE_TIMEOUT"` KeyFile string `yaml:"key_file" env:"ETCD_KEY_FILE"` MaxResultBuffer int `yaml:"max_result_buffer" env:"ETCD_MAX_RESULT_BUFFER"` MaxRetryAttempts int `yaml:"max_retry_attempts" env:"ETCD_MAX_RETRY_ATTEMPTS"` Name string `yaml:"name" env:"ETCD_NAME"` PeerAddr string `yaml:"peer_addr" env:"ETCD_PEER_ADDR"` PeerBindAddr string `yaml:"peer_bind_addr" env:"ETCD_PEER_BIND_ADDR"` PeerCAFile string `yaml:"peer_ca_file" env:"ETCD_PEER_CA_FILE"` PeerCertFile string `yaml:"peer_cert_file" env:"ETCD_PEER_CERT_FILE"` PeerElectionTimeout int `yaml:"peer_election_timeout" env:"ETCD_PEER_ELECTION_TIMEOUT"` PeerHeartbeatInterval int `yaml:"peer_heartbeat_interval" env:"ETCD_PEER_HEARTBEAT_INTERVAL"` PeerKeyFile string `yaml:"peer_key_file" env:"ETCD_PEER_KEY_FILE"` Peers string `yaml:"peers" env:"ETCD_PEERS"` PeersFile string `yaml:"peers_file" env:"ETCD_PEERS_FILE"` RetryInterval float64 `yaml:"retry_interval" env:"ETCD_RETRY_INTERVAL"` Snapshot bool `yaml:"snapshot" env:"ETCD_SNAPSHOT"` SnapshotCount int `yaml:"snapshot_count" env:"ETCD_SNAPSHOTCOUNT"` StrTrace string `yaml:"trace" env:"ETCD_TRACE"` Verbose bool `yaml:"verbose" env:"ETCD_VERBOSE"` VeryVerbose bool `yaml:"very_verbose" env:"ETCD_VERY_VERBOSE"` VeryVeryVerbose bool `yaml:"very_very_verbose" env:"ETCD_VERY_VERY_VERBOSE"` }
type Flannel ¶ added in v0.11.1
type Flannel struct { EtcdEndpoint string `yaml:"etcd_endpoint" env:"FLANNELD_ETCD_ENDPOINT"` EtcdPrefix string `yaml:"etcd_prefix" env:"FLANNELD_ETCD_PREFIX"` IPMasq string `yaml:"ip_masq" env:"FLANNELD_IP_MASQ"` SubnetFile string `yaml:"subnet_file" env:"FLANNELD_SUBNET_FILE"` Iface string `yaml:"interface" env:"FLANNELD_IFACE"` }
type Fleet ¶
type Fleet struct { AgentTTL string `yaml:"agent_ttl" env:"FLEET_AGENT_TTL"` EngineReconcileInterval float64 `yaml:"engine_reconcile_interval" env:"FLEET_ENGINE_RECONCILE_INTERVAL"` EtcdCAFile string `yaml:"etcd_cafile" env:"FLEET_ETCD_CAFILE"` EtcdCertFile string `yaml:"etcd_certfile" env:"FLEET_ETCD_CERTFILE"` EtcdKeyFile string `yaml:"etcd_keyfile" env:"FLEET_ETCD_KEYFILE"` EtcdKeyPrefix string `yaml:"etcd_key_prefix" env:"FLEET_ETCD_KEY_PREFIX"` EtcdRequestTimeout float64 `yaml:"etcd_request_timeout" env:"FLEET_ETCD_REQUEST_TIMEOUT"` EtcdServers string `yaml:"etcd_servers" env:"FLEET_ETCD_SERVERS"` Metadata string `yaml:"metadata" env:"FLEET_METADATA"` PublicIP string `yaml:"public_ip" env:"FLEET_PUBLIC_IP"` Verbosity int `yaml:"verbosity" env:"FLEET_VERBOSITY"` }
type Unit ¶
type Unit struct { Name string `yaml:"name"` Mask bool `yaml:"mask"` Enable bool `yaml:"enable"` Runtime bool `yaml:"runtime"` Content string `yaml:"content"` Command string `yaml:"command" valid:"start,stop,restart,reload,try-restart,reload-or-restart,reload-or-try-restart"` // For drop-in units, a cloudinit.conf is generated. // This is currently unbound in YAML (and hence unsettable in cloud-config files) // until the correct behaviour for multiple drop-in units is determined. DropIn bool `yaml:"-"` }
type User ¶
type User struct { Name string `yaml:"name"` PasswordHash string `yaml:"passwd"` SSHAuthorizedKeys []string `yaml:"ssh_authorized_keys"` SSHImportGithubUser string `yaml:"coreos_ssh_import_github"` SSHImportURL string `yaml:"coreos_ssh_import_url"` GECOS string `yaml:"gecos"` Homedir string `yaml:"homedir"` NoCreateHome bool `yaml:"no_create_home"` PrimaryGroup string `yaml:"primary_group"` Groups []string `yaml:"groups"` NoUserGroup bool `yaml:"no_user_group"` System bool `yaml:"system"` NoLogInit bool `yaml:"no_log_init"` }