Documentation
¶
Index ¶
- Constants
- Variables
- type Config
- type ConfigMapManager
- func (m *ConfigMapManager) Create(ctx context.Context, cfg *Config) error
- func (m *ConfigMapManager) Delete(ctx context.Context) error
- func (m *ConfigMapManager) GetConfig(ctx context.Context) (*Config, error)
- func (m *ConfigMapManager) GetConfigMap(ctx context.Context) (*corev1.ConfigMap, error)
- func (m *ConfigMapManager) Update(ctx context.Context, cfg *Config) error
- type Product
- type Products
- type Settings
- type Spec
Constants ¶
const ( // Filename the default Filename = "config.yaml" // Label label selector to find the cluster's installer configuration. Label = "tssc.redhat-appstudio.github.com/config" // Name name of the installer's configuration ConfigMap. Name = "tssc-config" )
const ( // DeveloperHub Red Hat Developer Hub (RHDH). DeveloperHub = "Developer Hub" // OpenShiftPipelines OpenShift Pipelines. OpenShiftPipelines = "OpenShift Pipelines" )
Variables ¶
var ( // ErrInvalidConfig indicates the configuration content is invalid. ErrInvalidConfig = errors.New("invalid configuration") // ErrEmptyConfig indicates the configuration file is empty. ErrEmptyConfig = errors.New("empty configuration") // ErrUnmarshalConfig indicates the configuration file structure is invalid. ErrUnmarshalConfig = errors.New("failed to unmarshal configuration") )
var ( // ErrConfigMapNotFound when the configmap isn't created in the cluster. ErrConfigMapNotFound = errors.New("cluster configmap not found") // ErrMultipleConfigMapFound when the label selector find multiple resources. ErrMultipleConfigMapFound = errors.New("multiple cluster configmaps found") // ErrIncompleteConfigMap when the ConfigMap exists, but doesn't contain the // expected payload. ErrIncompleteConfigMap = errors.New("invalid configmap found in the cluster") )
var DefaultRelativeConfigPath = fmt.Sprintf("installer/%s", Filename)
DefaultRelativeConfigPath default relative path to YAML configuration file.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Installer Spec `yaml:"tssc"` // root configuration for the installer
// contains filtered or unexported fields
}
Config root configuration structure.
func NewConfigDefault ¶
NewConfigDefault returns a new Config instance with default values, i.e. the configuration payload is loading embedded data.
func NewConfigFromBytes ¶
NewConfigFromBytes instantiates a new Config from the bytes payload informed.
func NewConfigFromFile ¶
NewConfigFromFile returns a new Config instance based on the informed file.
func (*Config) GetEnabledProducts ¶
GetEnabledProducts returns a map of enabled products.
func (*Config) GetProduct ¶
GetProduct returns a product by name, or an error if the product is not found.
func (*Config) MarshalYAML ¶
MarshalYAML marshals the Config into a YAML byte array.
func (*Config) UnmarshalYAML ¶
UnmarshalYAML Un-marshals the YAML payload into the Config struct, checking the validity of the configuration.
type ConfigMapManager ¶
type ConfigMapManager struct {
// contains filtered or unexported fields
}
ConfigMapManager the actor responsible for managing installer configuration in the cluster.
func NewConfigMapManager ¶
func NewConfigMapManager(kube *k8s.Kube) *ConfigMapManager
NewConfigMapManager instantiates the ConfigMapManager.
func (*ConfigMapManager) Create ¶
func (m *ConfigMapManager) Create(ctx context.Context, cfg *Config) error
Create Bootstrap a ConfigMap with the provided configuration.
func (*ConfigMapManager) Delete ¶
func (m *ConfigMapManager) Delete(ctx context.Context) error
Delete find and delete the ConfigMap from the cluster.
func (*ConfigMapManager) GetConfig ¶
func (m *ConfigMapManager) GetConfig(ctx context.Context) (*Config, error)
GetConfig retrieves configuration from a cluster's ConfigMap.
func (*ConfigMapManager) GetConfigMap ¶
GetConfigMap retrieves the ConfigMap from the cluster, checking if a single resource is present.
type Product ¶
type Product struct {
// Name of the product.
Name string `yaml:"name"`
// Enabled product toggle.
Enabled bool `yaml:"enabled"`
// Namespace target namespace for the product, which may involve different
// Helm charts targeting the specific product namespace, while the chart
// target is deployed in a different namespace.
Namespace *string `yaml:"namespace,omitempty"`
// Properties contains the product specific configuration.
Properties map[string]interface{} `yaml:"properties"`
}
ProductSpec contains the configuration for a specific product.
func (*Product) GetNamespace ¶
GetNamespace returns the product namespace, or an empty string if not set.
type Products ¶
type Products []Product
ProductSpec represents a map of product name and specification.
type Settings ¶
type Settings map[string]interface{}
Settings represents a map of configuration settings.
type Spec ¶
type Spec struct {
// Namespace installer's namespace, where the installer's resources will be
// deployed. Note, Helm charts deployed by the installer are likely to use a
// different namespace.
Namespace string `yaml:"namespace"`
// Settings contains the configuration for the installer settings.
Settings Settings `yaml:"settings"`
// Products contains the configuration for the installer products.
Products Products `yaml:"products"`
}
Spec contains all configuration sections.