Documentation ¶
Index ¶
- type ClusterConfig
- func (c ClusterConfig) AbsSubpaths() []string
- func (c ClusterConfig) CheckVersion(version string) error
- func (c ClusterConfig) DescriptiveName() string
- func (c ClusterConfig) FullPath() string
- func (c ClusterConfig) PrettySubpaths() string
- func (c ClusterConfig) PrettySubpathsList() string
- func (c ClusterConfig) RelPath() string
- func (c *ClusterConfig) SetDefaults(path string, rootPath string) error
- func (c ClusterConfig) ShortRegion() string
- func (c ClusterConfig) StarParams() map[string]interface{}
- func (c ClusterConfig) SubpathCount() int
- type Profile
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClusterConfig ¶
type ClusterConfig struct { // Cluster is the name of the cluster. // // Required. Cluster string `json:"cluster"` // Region is the region for this cluster, e.g. us-west-2. // // Required. Region string `json:"region"` // Env is the environment or account for this cluster, e.g. production. // // Required. Env string `json:"env"` // UID is a unique identifier of this cluster. Specifically, it is the unique // identifier of the kube-system namespace. If set, kubeapply will validate that // cluster it is interacting with has a matching kube-system namespace uid. This // can help prevent against accidentally running a kubeapply config on a similarly- // named cluster but in the wrong environment. // // You can fetch your cluster's UID by running: // // kubectl get namespace kube-system -o json | jq -r .metadata.uid // // Optional. UID string `json:"uid"` // Charts is a URL for the default location of Helm charts. // // Required unless profile doesn't contain charts or all values files have explicit chart // URLs. Charts string `json:"charts"` // ProfilePath is the path to the profile directory for this cluster. // // Optional, defaults to "profile" if not set. ProfilePath string `json:"profilePath"` // Profiles is a list of profiles for this cluster. Unlike the ProfilePath // above, these allow for multiple profiles in a single cluster. If these are set, then // ProfilePath will be ignored. // // Optional. Profiles []Profile `json:"profiles"` // ExpandedPath is the path to the results of expanding out all of the configs for this cluster. // // Optional, defaults to "expanded/[env]/[region]" if not set. ExpandedPath string `json:"expandedPath"` // Parameters are key/value pairs to be used for go templating. // // Optional. Parameters map[string]interface{} `json:"parameters"` // GithubIgnore indicates whether kubeapply-lambda webhooks should ignore this cluster. // // Optional, defaults to false. GithubIgnore bool `json:"ignore"` // ReviewOptional indicates that reviews should not be required for changes in this // cluster even if strict mode is on. // // Optional, and only applicable to webhooks mode. GithubReviewOptional bool `json:"reviewOptional"` // VersionConstraint is a string version constraint against with the kubeapply binary // will be checked. See https://github.com/Masterminds/semver for details on the expected // format. // // Optional, defaults to no check. VersionConstraint string `json:"versionConstraint"` // KubeConfigPath is the path to a kubeconfig that can be used with this cluster. // // Optional, defaults to value set on command-line (when running kubeapply manually) or // automatically generated via AWS API (when running in lambdas case). KubeConfigPath string `json:"kubeConfig"` // ServerSideApply sets whether we should be using server-side applies and diffs for this // cluster. ServerSideApply bool `json:"serverSideApply"` // Subpath is the subset of the expanded configs that we want to diff or apply. Subpaths []string `json:"-"` // Profile is the current profile that's being used for config expansion. Profile *Profile `json:"-"` // contains filtered or unexported fields }
ClusterConfig represents the configuration for a single Kubernetes cluster in a single region and environment / account.
func LoadClusterConfig ¶
func LoadClusterConfig(path string, rootPath string) (*ClusterConfig, error)
LoadClusterConfig loads a config from a path on disk.
func (ClusterConfig) AbsSubpaths ¶
func (c ClusterConfig) AbsSubpaths() []string
AbsSubpaths returns the absolute subpaths of the expanded configs associated with this ClusterConfig.
func (ClusterConfig) CheckVersion ¶
func (c ClusterConfig) CheckVersion(version string) error
CheckVersion checks that the version in the cluster config is compatible with this version of kubeapply.
func (ClusterConfig) DescriptiveName ¶
func (c ClusterConfig) DescriptiveName() string
DescriptiveName returns a descriptive name for this ClusterConfig.
func (ClusterConfig) FullPath ¶
func (c ClusterConfig) FullPath() string
FullPath returns the full path to this ClusterConfig.
func (ClusterConfig) PrettySubpaths ¶
func (c ClusterConfig) PrettySubpaths() string
PrettySubpaths generates a Github-friendly format for the cluster subpaths.
func (ClusterConfig) PrettySubpathsList ¶
func (c ClusterConfig) PrettySubpathsList() string
PrettySubpathsList generates a Github-friendly, bulleted list for the cluster subpaths.
func (ClusterConfig) RelPath ¶
func (c ClusterConfig) RelPath() string
RelPath returns the relative path to this ClusterConfig.
func (*ClusterConfig) SetDefaults ¶
func (c *ClusterConfig) SetDefaults(path string, rootPath string) error
SetDefaults sets reasonable defaults for missing values in the current ClusterConfig.
func (ClusterConfig) ShortRegion ¶
func (c ClusterConfig) ShortRegion() string
ShortRegion converts the region in the cluster config to a short form that may be used in some templates.
func (ClusterConfig) StarParams ¶
func (c ClusterConfig) StarParams() map[string]interface{}
StarParams generates the base starlark params for this ClusterConfig.
func (ClusterConfig) SubpathCount ¶
func (c ClusterConfig) SubpathCount() int
SubpathCount generates the number of subpaths for Github comments.
type Profile ¶
type Profile struct { // Name is the name of the profile. Name string `json:"name"` // URL is where the profile configs live. URL string `json:"url"` // Parameters are override parameters that will be merged on top of the global parameters // for this cluster. // // Optional. Parameters map[string]interface{} `json:"parameters"` }
Profile contains the configuration for a single profile.