Documentation
¶
Overview ¶
Package controller groups various commands that are based on talking directly to the controller, and not environments in the controller.
Index ¶
- func ConfigDetailsAll() (map[string]common.PrintConfigSchema, error)
- func ConfigDetailsUpdatable() (map[string]interface{}, error)
- func ControllerMachineCounts(controllerModelUUID string, modelStatusResults []base.ModelStatus) (activeCount, totalCount int)
- func NewAddModelCommand() cmd.Command
- func NewConfigCommand() cmd.Command
- func NewDestroyCommand() cmd.Command
- func NewEnableDestroyControllerCommand() cmd.Command
- func NewKillCommand() modelcmd.Command
- func NewListControllersCommand() cmd.Command
- func NewListModelsCommand() cmd.Command
- func NewRegisterCommand() cmd.Command
- func NewShowControllerCommand() cmd.Command
- func NewUnregisterCommand(store jujuclient.ClientStore) cmd.Command
- type AccountDetails
- type AddModelAPI
- type CloudAPI
- type ControllerAccessAPI
- type ControllerDetails
- type ControllerItem
- type ControllerMachines
- type ControllerSet
- type MachineDetails
- type ModelConfigAPI
- type ModelDetails
- type ModelManagerAPI
- type ModelSet
- type ModelSummary
- type ModelSummarySet
- type ModelsSysAPI
- type ShowControllerDetails
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConfigDetailsAll ¶
func ConfigDetailsAll() (map[string]common.PrintConfigSchema, error)
ConfigDetailsAll gets information about all the controller config attributes, including those only settable during bootstrap.
func ConfigDetailsUpdatable ¶
ConfigDetailsUpdatable gets information about the controller config attributes that are updatable.
func ControllerMachineCounts ¶
func ControllerMachineCounts(controllerModelUUID string, modelStatusResults []base.ModelStatus) (activeCount, totalCount int)
func NewAddModelCommand ¶
NewAddModelCommand returns a command to add a model.
func NewConfigCommand ¶
NewConfigCommand returns a new command that can retrieve or update controller configuration.
func NewDestroyCommand ¶
NewDestroyCommand returns a command to destroy a controller.
func NewEnableDestroyControllerCommand ¶
NewEnableDestroyControllerCommand returns a command that allows a controller admin to remove blocks from the controller.
func NewKillCommand ¶
NewKillCommand returns a command to kill a controller. Killing is a forceful destroy.
func NewListControllersCommand ¶
NewListControllersCommand returns a command to list registered controllers.
func NewListModelsCommand ¶
NewListModelsCommand returns a command to list models.
func NewRegisterCommand ¶
NewRegisterCommand returns a command to allow the user to register a controller.
func NewShowControllerCommand ¶
NewShowControllerCommand returns a command to show details of the desired controllers.
func NewUnregisterCommand ¶
func NewUnregisterCommand(store jujuclient.ClientStore) cmd.Command
NewUnregisterCommand returns a command to allow the user to unregister a controller.
Types ¶
type AccountDetails ¶
type AccountDetails struct { // User is the username for the account. User string `yaml:"user" json:"user"` // Access is the level of access the user has on the controller. Access string `yaml:"access,omitempty" json:"access,omitempty"` // Password is the password for the account. Password string `yaml:"password,omitempty" json:"password,omitempty"` }
AccountDetails holds details of an account to show.
type AddModelAPI ¶
type CloudAPI ¶
type CloudAPI interface { Clouds(ctx context.Context) (map[names.CloudTag]jujucloud.Cloud, error) Cloud(context.Context, names.CloudTag) (jujucloud.Cloud, error) UserCredentials(context.Context, names.UserTag, names.CloudTag) ([]names.CloudCredentialTag, error) AddCredential(ctx context.Context, tag string, credential jujucloud.Credential) error }
type ControllerAccessAPI ¶
type ControllerAccessAPI interface { GetControllerAccess(ctx context.Context, user string) (permission.Access, error) ModelStatus(ctx context.Context, models ...names.ModelTag) ([]base.ModelStatus, error) AllModels(ctx context.Context) ([]base.UserModel, error) MongoVersion(ctx context.Context) (string, error) IdentityProviderURL(ctx context.Context) (string, error) ControllerVersion(ctx context.Context) (controller.ControllerVersion, error) Close() error }
ControllerAccessAPI defines a subset of the api/controller/Client API.
type ControllerDetails ¶
type ControllerDetails struct { // ControllerUUID is the unique ID for the controller. ControllerUUID string `yaml:"controller-uuid" json:"uuid"` // APIEndpoints is the collection of API endpoints running in this controller. APIEndpoints []string `yaml:"api-endpoints,flow" json:"api-endpoints"` // Cloud is the name of the cloud that this controller runs in. Cloud string `yaml:"cloud" json:"cloud"` // CloudRegion is the name of the cloud region that this controller runs in. CloudRegion string `yaml:"region,omitempty" json:"region,omitempty"` // AgentVersion is the version of the agent running on this controller. // AgentVersion need not always exist so we omitempty here. This struct is // used in both controllers and show-controller. show-controller // displays the agent version where controllers does not. AgentVersion string `yaml:"agent-version,omitempty" json:"agent-version,omitempty"` // AgentGitCommit is the git commit hash used to build the controller binary. AgentGitCommit string `yaml:"agent-git-commit,omitempty" json:"agent-git-commit,omitempty"` // ControllerModelVersion is the version in the controller model config state. ControllerModelVersion string `yaml:"controller-model-version,omitempty" json:"controller-model-version,omitempty"` // MongoVersion is the version of the mongo server running on this // controller. MongoVersion string `yaml:"mongo-version,omitempty" json:"mongo-version,omitempty"` // IdentityURL contails the address of an external identity provider // if one has been configured for this controller. IdentityURL string `yaml:"identity-url,omitempty" json:"identity-url,omitempty"` // SHA-256 fingerprint of the CA cert CAFingerprint string `yaml:"ca-fingerprint,omitempty" json:"ca-fingerprint,omitempty"` // CACert is a security certificate for this controller. CACert string `yaml:"ca-cert" json:"ca-cert"` }
ControllerDetails holds details of a controller to show.
type ControllerItem ¶
type ControllerItem struct { ModelName string `yaml:"current-model,omitempty" json:"current-model,omitempty"` User string `yaml:"user,omitempty" json:"user,omitempty"` Access string `yaml:"access,omitempty" json:"access,omitempty"` Server string `yaml:"recent-server,omitempty" json:"recent-server,omitempty"` ControllerUUID string `yaml:"controller-uuid" json:"uuid"` APIEndpoints []string `yaml:"api-endpoints,flow" json:"api-endpoints"` CACert string `yaml:"ca-cert" json:"ca-cert"` Cloud string `yaml:"cloud" json:"cloud"` CloudRegion string `yaml:"region,omitempty" json:"region,omitempty"` AgentVersion string `yaml:"agent-version,omitempty" json:"agent-version,omitempty"` ModelCount *int `yaml:"model-count,omitempty" json:"model-count,omitempty"` MachineCount *int `yaml:"machine-count,omitempty" json:"machine-count,omitempty"` ControllerMachines *ControllerMachines `yaml:"controller-machines,omitempty" json:"controller-machines,omitempty"` // k8s controllers are not called machines NodeCount *int `yaml:"node-count,omitempty" json:"node-count,omitempty"` ControllerNodes *ControllerMachines `yaml:"controller-nodes,omitempty" json:"controller-nodes,omitempty"` }
ControllerItem defines the serialization behaviour of controller information.
type ControllerMachines ¶
ControllerMachines holds the total number of controller machines and the number of active ones.
type ControllerSet ¶
type ControllerSet struct { Controllers map[string]ControllerItem `yaml:"controllers" json:"controllers"` CurrentController string `yaml:"current-controller" json:"current-controller"` }
ControllerSet contains the set of controllers known to the client, and name of the current controller.
type MachineDetails ¶
type MachineDetails struct { // ID holds the id of the machine. ID string `yaml:"id,omitempty" json:"id,omitempty"` // InstanceID holds the cloud instance id of the machine. InstanceID string `yaml:"instance-id,omitempty" json:"instance-id,omitempty"` // HAStatus holds information informing of the HA status of the machine. HAStatus string `yaml:"ha-status,omitempty" json:"ha-status,omitempty"` // HAPrimary is set to true for a primary controller machine in HA. HAPrimary bool `yaml:"ha-primary,omitempty" json:"ha-primary,omitempty"` }
ModelDetails holds details of a model to show.
type ModelConfigAPI ¶
type ModelConfigAPI interface { ModelGet(ctx context.Context) (map[string]interface{}, error) Close() error }
ModelConfigAPI defines a subset of the model config API.
type ModelDetails ¶
type ModelDetails struct { // ModelUUID holds the details of a model. ModelUUID string `yaml:"model-uuid" json:"uuid"` // MachineCount holds the number of machines in the model. MachineCount *int `yaml:"machine-count,omitempty" json:"machine-count,omitempty"` // CoreCount holds the number of cores across the machines in the model. CoreCount *int `yaml:"core-count,omitempty" json:"core-count,omitempty"` // UnitCount holds the number of units in the model. UnitCount *int `yaml:"unit-count,omitempty" json:"unit-count,omitempty"` }
ModelDetails holds details of a model to show.
type ModelManagerAPI ¶
type ModelManagerAPI interface { Close() error ListModels(ctx context.Context, user string) ([]base.UserModel, error) ListModelSummaries(ctx context.Context, user string, all bool) ([]base.UserModelSummary, error) ModelInfo(context.Context, []names.ModelTag) ([]params.ModelInfoResult, error) }
ModelManagerAPI defines the methods on the model manager API that the models command calls.
type ModelSet ¶
type ModelSet struct { Models []common.ModelInfo `yaml:"models" json:"models"` // CurrentModel is the name of the current model, qualified for the // user for which we're listing models. i.e. for the user admin, // and the model admin/foo, this field will contain "foo"; for // bob and the same model, the field will contain "admin/foo". CurrentModel string `yaml:"current-model,omitempty" json:"current-model,omitempty"` // CurrentModelQualified is the fully qualified name for the current // model, i.e. having the format $owner/$model. CurrentModelQualified string `yaml:"-" json:"-"` }
ModelSet contains the set of models known to the client, and UUID of the current model. (anastasiamac 2017-23-11) This is old, pre juju 2.3 implementation.
type ModelSummary ¶
type ModelSummary struct { // Name is a fully qualified model name, i.e. having the format $owner/$model. Name string `json:"name" yaml:"name"` // ShortName is un-qualified model name. ShortName string `json:"short-name" yaml:"short-name"` UUID string `json:"model-uuid" yaml:"model-uuid"` Type model.ModelType `json:"model-type" yaml:"model-type"` ControllerUUID string `json:"controller-uuid" yaml:"controller-uuid"` ControllerName string `json:"controller-name" yaml:"controller-name"` IsController bool `json:"is-controller" yaml:"is-controller"` Owner string `json:"owner" yaml:"owner"` Cloud string `json:"cloud" yaml:"cloud"` CloudRegion string `json:"region,omitempty" yaml:"region,omitempty"` CloudCredential *common.ModelCredential `json:"credential,omitempty" yaml:"credential,omitempty"` ProviderType string `json:"type,omitempty" yaml:"type,omitempty"` Life life.Value `json:"life" yaml:"life"` Status *common.ModelStatus `json:"status,omitempty" yaml:"status,omitempty"` UserAccess string `yaml:"access" json:"access"` UserLastConnection string `yaml:"last-connection" json:"last-connection"` // Counts is the map of different counts where key is the entity that was counted // and value is the number, for e.g. {"machines":10,"cores":3, "units:4}. Counts map[string]int64 `json:"-" yaml:"-"` AgentVersion string `json:"agent-version,omitempty" yaml:"agent-version,omitempty"` }
ModelSummary contains a summary of some information about a model.
type ModelSummarySet ¶
type ModelSummarySet struct { Models []ModelSummary `yaml:"models" json:"models"` // CurrentModel is the name of the current model, qualified for the // user for which we're listing models. i.e. for the user admin, // and the model admin/foo, this field will contain "foo"; for // bob and the same model, the field will contain "admin/foo". CurrentModel string `yaml:"current-model,omitempty" json:"current-model,omitempty"` // CurrentModelQualified is the fully qualified name for the current // model, i.e. having the format $owner/$model. CurrentModelQualified string `yaml:"-" json:"-"` }
ModelSummarySet contains the set of summaries for models.
type ModelsSysAPI ¶
type ModelsSysAPI interface { Close() error AllModels(ctx context.Context) ([]base.UserModel, error) }
ModelsSysAPI defines the methods on the controller manager API that the list models command calls.
type ShowControllerDetails ¶
type ShowControllerDetails struct { // Details contains the same details that client store caches for this controller. Details ControllerDetails `yaml:"details,omitempty" json:"details,omitempty"` // Machines is a collection of all machines forming the controller cluster. Machines map[string]MachineDetails `yaml:"controller-machines,omitempty" json:"controller-machines,omitempty"` // Nodes is a collection of all k8s pods forming the controller cluster. Nodes map[string]MachineDetails `yaml:"controller-nodes,omitempty" json:"controller-nodes,omitempty"` // Models is a collection of all models for this controller. Models map[string]ModelDetails `yaml:"models,omitempty" json:"models,omitempty"` // CurrentModel is the name of the current model for this controller CurrentModel string `yaml:"current-model,omitempty" json:"current-model,omitempty"` // Account is the account details for the user logged into this controller. Account *AccountDetails `yaml:"account,omitempty" json:"account,omitempty"` // Errors is a collection of errors related to accessing this controller details. Errors []string `yaml:"errors,omitempty" json:"errors,omitempty"` }