Documentation ¶
Index ¶
- func AssertStructValid(c interface{}) error
- func DecodeBase64Content(content string) ([]byte, error)
- func DecodeContent(content string, encoding string) ([]byte, error)
- func DecodeGzipContent(content string) ([]byte, error)
- func IsCloudConfig(userdata string) bool
- func IsIgnitionConfig(userdata string) bool
- func IsScript(userdata string) bool
- func IsZero(c interface{}) bool
- type CloudConfig
- type CoreOS
- type ErrorValid
- type EtcHosts
- type Etcd
- type Etcd2
- type File
- type Flannel
- type Fleet
- type Locksmith
- type OEM
- type Script
- type Unit
- type UnitDropIn
- type Update
- type User
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 DecodeBase64Content ¶ added in v1.2.0
func DecodeContent ¶ added in v1.2.0
func DecodeGzipContent ¶ added in v1.2.0
func IsCloudConfig ¶ added in v0.11.0
func IsIgnitionConfig ¶ added in v1.5.0
Types ¶
type CloudConfig ¶
type CloudConfig struct { SSHAuthorizedKeys []string `yaml:"ssh_authorized_keys"` CoreOS CoreOS `yaml:"coreos"` WriteFiles []File `yaml:"write_files"` Hostname string `yaml:"hostname"` Users []User `yaml:"users"` ManageEtcHosts EtcHosts `yaml:"manage_etc_hosts"` }
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) Decode ¶ added in v1.10.1
func (cc *CloudConfig) Decode() error
Decode decodes the content of cloud config. Currently only WriteFiles section supports several types of encoding and all of them are supported. After decode operation, Encoding type is unset.
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"` AdvertiseClientURLs string `` /* 126-byte string literal not displayed */ 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"` DiscoveryFallback string `` /* 126-byte string literal not displayed */ DiscoverySRV string `` /* 126-byte string literal not displayed */ DiscoveryProxy string `` /* 126-byte string literal not displayed */ ElectionTimeout int `` /* 126-byte string literal not displayed */ ForceNewCluster bool `` /* 126-byte string literal not displayed */ GraphiteHost string `yaml:"graphite_host" env:"ETCD_GRAPHITE_HOST"` HeartbeatInterval int `` /* 126-byte string literal not displayed */ HTTPReadTimeout float64 `yaml:"http_read_timeout" env:"ETCD_HTTP_READ_TIMEOUT"` HTTPWriteTimeout float64 `yaml:"http_write_timeout" env:"ETCD_HTTP_WRITE_TIMEOUT"` InitialAdvertisePeerURLs string `` /* 126-byte string literal not displayed */ InitialCluster string `` /* 126-byte string literal not displayed */ InitialClusterState string `` /* 126-byte string literal not displayed */ InitialClusterToken string `` /* 126-byte string literal not displayed */ KeyFile string `yaml:"key_file" env:"ETCD_KEY_FILE"` ListenClientURLs string `` /* 126-byte string literal not displayed */ ListenPeerURLs string `` /* 126-byte string literal not displayed */ MaxResultBuffer int `yaml:"max_result_buffer" env:"ETCD_MAX_RESULT_BUFFER"` MaxRetryAttempts int `yaml:"max_retry_attempts" env:"ETCD_MAX_RETRY_ATTEMPTS"` MaxSnapshots int `` /* 126-byte string literal not displayed */ MaxWALs int `` /* 126-byte string literal not displayed */ 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"` Proxy string `` /* 126-byte string literal not displayed */ 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 Etcd2 ¶ added in v1.4.0
type Etcd2 struct { AdvertiseClientURLs string `yaml:"advertise_client_urls" env:"ETCD_ADVERTISE_CLIENT_URLS"` CAFile string `` /* 146-byte string literal not displayed */ CertFile string `yaml:"cert_file" env:"ETCD_CERT_FILE"` ClientCertAuth bool `yaml:"client_cert_auth" env:"ETCD_CLIENT_CERT_AUTH"` CorsOrigins string `yaml:"cors" env:"ETCD_CORS"` DataDir string `yaml:"data_dir" env:"ETCD_DATA_DIR"` Debug bool `yaml:"debug" env:"ETCD_DEBUG"` Discovery string `yaml:"discovery" env:"ETCD_DISCOVERY"` DiscoveryFallback string `yaml:"discovery_fallback" env:"ETCD_DISCOVERY_FALLBACK"` DiscoverySRV string `yaml:"discovery_srv" env:"ETCD_DISCOVERY_SRV"` DiscoveryProxy string `yaml:"discovery_proxy" env:"ETCD_DISCOVERY_PROXY"` ElectionTimeout int `yaml:"election_timeout" env:"ETCD_ELECTION_TIMEOUT"` EnablePprof bool `yaml:"enable_pprof" env:"ETCD_ENABLE_PPROF"` ForceNewCluster bool `yaml:"force_new_cluster" env:"ETCD_FORCE_NEW_CLUSTER"` HeartbeatInterval int `yaml:"heartbeat_interval" env:"ETCD_HEARTBEAT_INTERVAL"` InitialAdvertisePeerURLs string `yaml:"initial_advertise_peer_urls" env:"ETCD_INITIAL_ADVERTISE_PEER_URLS"` InitialCluster string `yaml:"initial_cluster" env:"ETCD_INITIAL_CLUSTER"` InitialClusterState string `yaml:"initial_cluster_state" env:"ETCD_INITIAL_CLUSTER_STATE"` InitialClusterToken string `yaml:"initial_cluster_token" env:"ETCD_INITIAL_CLUSTER_TOKEN"` KeyFile string `yaml:"key_file" env:"ETCD_KEY_FILE"` ListenClientURLs string `yaml:"listen_client_urls" env:"ETCD_LISTEN_CLIENT_URLS"` ListenPeerURLs string `yaml:"listen_peer_urls" env:"ETCD_LISTEN_PEER_URLS"` LogPackageLevels string `yaml:"log_package_levels" env:"ETCD_LOG_PACKAGE_LEVELS"` MaxSnapshots int `yaml:"max_snapshots" env:"ETCD_MAX_SNAPSHOTS"` MaxWALs int `yaml:"max_wals" env:"ETCD_MAX_WALS"` Name string `yaml:"name" env:"ETCD_NAME"` PeerCAFile string `` /* 158-byte string literal not displayed */ PeerCertFile string `yaml:"peer_cert_file" env:"ETCD_PEER_CERT_FILE"` PeerKeyFile string `yaml:"peer_key_file" env:"ETCD_PEER_KEY_FILE"` PeerClientCertAuth bool `yaml:"peer_client_cert_auth" env:"ETCD_PEER_CLIENT_CERT_AUTH"` PeerTrustedCAFile string `yaml:"peer_trusted_ca_file" env:"ETCD_PEER_TRUSTED_CA_FILE"` Proxy string `yaml:"proxy" env:"ETCD_PROXY" valid:"^(on|off|readonly)$"` ProxyDialTimeout int `yaml:"proxy_dial_timeout" env:"ETCD_PROXY_DIAL_TIMEOUT"` ProxyFailureWait int `yaml:"proxy_failure_wait" env:"ETCD_PROXY_FAILURE_WAIT"` ProxyReadTimeout int `yaml:"proxy_read_timeout" env:"ETCD_PROXY_READ_TIMEOUT"` ProxyRefreshInterval int `yaml:"proxy_refresh_interval" env:"ETCD_PROXY_REFRESH_INTERVAL"` ProxyWriteTimeout int `yaml:"proxy_write_timeout" env:"ETCD_PROXY_WRITE_TIMEOUT"` SnapshotCount int `yaml:"snapshot_count" env:"ETCD_SNAPSHOT_COUNT"` StrictReconfigCheck bool `yaml:"strict_reconfig_check" env:"ETCD_STRICT_RECONFIG_CHECK"` TrustedCAFile string `yaml:"trusted_ca_file" env:"ETCD_TRUSTED_CA_FILE"` WalDir string `yaml:"wal_dir" env:"ETCD_WAL_DIR"` }
type Flannel ¶ added in v0.11.1
type Flannel struct { EtcdEndpoints string `yaml:"etcd_endpoints" env:"FLANNELD_ETCD_ENDPOINTS"` EtcdCAFile string `yaml:"etcd_cafile" env:"FLANNELD_ETCD_CAFILE"` EtcdCertFile string `yaml:"etcd_certfile" env:"FLANNELD_ETCD_CERTFILE"` EtcdKeyFile string `yaml:"etcd_keyfile" env:"FLANNELD_ETCD_KEYFILE"` EtcdPrefix string `yaml:"etcd_prefix" env:"FLANNELD_ETCD_PREFIX"` EtcdUsername string `yaml:"etcd_username" env:"FLANNELD_ETCD_USERNAME"` EtcdPassword string `yaml:"etcd_password" env:"FLANNELD_ETCD_PASSWORD"` 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"` PublicIP string `yaml:"public_ip" env:"FLANNELD_PUBLIC_IP"` }
type Fleet ¶
type Fleet struct { AgentTTL string `yaml:"agent_ttl" env:"FLEET_AGENT_TTL"` AuthorizedKeysFile string `yaml:"authorized_keys_file" env:"FLEET_AUTHORIZED_KEYS_FILE"` DisableEngine bool `yaml:"disable_engine" env:"FLEET_DISABLE_ENGINE"` 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"` EtcdUsername string `yaml:"etcd_username" env:"FLEET_ETCD_USERNAME"` EtcdPassword string `yaml:"etcd_password" env:"FLEET_ETCD_PASSWORD"` Metadata string `yaml:"metadata" env:"FLEET_METADATA"` PublicIP string `yaml:"public_ip" env:"FLEET_PUBLIC_IP"` TokenLimit int `yaml:"token_limit" env:"FLEET_TOKEN_LIMIT"` Verbosity int `yaml:"verbosity" env:"FLEET_VERBOSITY"` VerifyUnits bool `yaml:"verify_units" env:"FLEET_VERIFY_UNITS"` }
type Locksmith ¶ added in v1.0.2
type Locksmith struct { Endpoint string `yaml:"endpoint" env:"LOCKSMITHD_ENDPOINT"` EtcdCAFile string `yaml:"etcd_cafile" env:"LOCKSMITHD_ETCD_CAFILE"` EtcdCertFile string `yaml:"etcd_certfile" env:"LOCKSMITHD_ETCD_CERTFILE"` EtcdKeyFile string `yaml:"etcd_keyfile" env:"LOCKSMITHD_ETCD_KEYFILE"` EtcdUsername string `yaml:"etcd_username" env:"LOCKSMITHD_ETCD_USERNAME"` EtcdPassword string `yaml:"etcd_password" env:"LOCKSMITHD_ETCD_PASSWORD"` Group string `yaml:"group" env:"LOCKSMITHD_GROUP"` RebootWindowStart string `` /* 142-byte string literal not displayed */ RebootWindowLength string `yaml:"window_length" env:"REBOOT_WINDOW_LENGTH" valid:"^[-+]?([0-9]*(\\.[0-9]*)?[a-z]+)+$"` }
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)$"` DropIns []UnitDropIn `yaml:"drop_ins"` }
type UnitDropIn ¶ added in v1.0.0
type User ¶
type User struct { Name string `yaml:"name"` PasswordHash string `yaml:"passwd"` SSHAuthorizedKeys []string `yaml:"ssh_authorized_keys"` SSHImportGithubUser string `` /* 129-byte string literal not displayed */ SSHImportGithubUsers []string `` /* 129-byte string literal not displayed */ SSHImportURL string `` /* 129-byte string literal not displayed */ 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"` Shell string `yaml:"shell"` }