configuration

package
v0.0.0-...-be29cce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SyndesisGlobalConfigSecret = "syndesis-global-config"
)

Variables

View Source
var TemplateConfig string

Location from where the template configuration is located

Functions

func GetProductName

func GetProductName(file string) (string, error)

Load the configuration and return the name of this product

func GetVersion

func GetVersion(file string) (string, error)

Load the configuration and return the name of this product

Types

type AMQConfiguration

type AMQConfiguration struct {
	Image string // Docker image for AMQ
}

type AddonConfiguration

type AddonConfiguration struct {
	Enabled bool    // Whether the addon is enabled
	Olm     OlmSpec // The specification for the Operator-Lifecyle-Manager
}

func (AddonConfiguration) GetOlmSpec

func (ac AddonConfiguration) GetOlmSpec() *OlmSpec

func (AddonConfiguration) IsEnabled

func (ac AddonConfiguration) IsEnabled() bool

func (AddonConfiguration) IsVersionCompatible

func (ac AddonConfiguration) IsVersionCompatible() bool

Is compatible with previous version of addon

type AddonInfo

type AddonInfo interface {
	Name() string
	IsEnabled() bool
	GetOlmSpec() *OlmSpec
	IsVersionCompatible() bool
}

func GetAddonsInfo

func GetAddonsInfo(configuration Config) []AddonInfo

/ Returns an array of the addons metadata

type AddonsSpec

type AddonsSpec struct {
	Jaeger    JaegerConfiguration
	Ops       OpsConfiguration
	Todo      TodoConfiguration
	Knative   KnativeConfiguration
	PublicApi PublicApiConfiguration
}

Addons

type ComponentsSpec

type ComponentsSpec struct {
	UI         UIConfiguration         // Configuration ui
	S2I        S2IConfiguration        // Configuration s2i
	Oauth      OauthConfiguration      // Configuration oauth
	Server     ServerConfiguration     // Configuration server
	Meta       MetaConfiguration       // Configuration meta
	Database   DatabaseConfiguration   // Configuration database
	Prometheus PrometheusConfiguration // Configuration monitoring
	Grafana    GrafanaConfiguration    // Configuration grafana
	Upgrade    UpgradeConfiguration    // Configuration upgrade
	AMQ        AMQConfiguration        // Configuration AMQ
}

Components

type Config

type Config struct {
	AllowLocalHost             bool
	Productized                bool
	Version                    string                     // Syndesis version
	DevSupport                 bool                       // If set to true, pull docker images from imagetag instead of upstream source
	Scheduled                  bool                       // Legacy parameter to set scheduled:true in the imagestreams, but we dont use many imagestreams nowadays
	ProductName                string                     // Usually syndesis or fuse-online
	PrometheusRules            string                     // If some extra rules for prometheus need to be specified, they are defined here
	OpenShiftProject           string                     // The name of the OpenShift project Syndesis is being deployed into
	OpenShiftOauthClientSecret string                     // OpenShift OAuth client secret
	SupportedOpenShiftVersions string                     // Supported openshift versions
	OpenShiftConsoleUrl        string                     // The URL to the OpenShift console
	ImagePullSecrets           []string                   // Pull secrets attached to services accounts. This field is generated by the operator
	DatabaseNeedsUpgrade       bool                       // Enabled the image running the database doesn't match the operator's configured image spec
	ApiServer                  capabilities.ApiServerSpec // Metadata of the API Server providing the application
	Syndesis                   SyndesisConfig             // Configuration for syndesis components and addons. This fields are overwritten from environment variables and from the custom resource
}

func GetProperties

func GetProperties(ctx context.Context, file string, clientTools *clienttools.ClientTools, syndesis *synapi.Syndesis) (*Config, error)

/ Returns all processed configurations for Syndesis

  • Default values for configuration are loaded from file
  • Secrets and passwords are loaded from syndesis-global-config Secret if they exits and generated if they dont
  • For QE, some fields are loaded from environment variables
  • Users might define fields using the syndesis custom resource
func (config *Config) SetConsoleLink(ctx context.Context, client client.Client, syndesis *synapi.Syndesis, syndesisRouteHost string) error

adds the syndesis url link to the openshift web console

func (*Config) SetOpenshiftManagementConsoleUrl

func (config *Config) SetOpenshiftManagementConsoleUrl(ctx context.Context, clientTools *clienttools.ClientTools)

func (*Config) SetRoute

func (config *Config) SetRoute(ctx context.Context, client client.Client, syndesis *synapi.Syndesis) error

Set Config.RouteHostname based on the Spec.Host property of the syndesis route If an environment variable is set to overwrite the route, take that instead

type ConnectionPool

type ConnectionPool struct {
	// maximum number of milliseconds that syndesis-server will wait for a connection from the pool
	ConnectionTimeout int
	// maximum amount of time that a connection is allowed to sit idle in the pool
	IdleTimeout int
	// amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak
	LeakDetectionThreshold int
	// maximum size that the pool is allowed to reach, including both idle and in-use connections
	MaximumPoolSize int
	// maximum lifetime of a connection in the pool
	MaxLifetime int
	// minimum number of idle connections that HikariCP tries to maintain in the pool
	MinimumIdle int
}

Connectin Pool parameters used in syndesis-server to manage the connections to the database time values are in milliseconds https://github.com/brettwooldridge/HikariCP

type DatabaseConfiguration

type DatabaseConfiguration struct {
	Image            string                        // Docker image for Database
	User             string                        // Username for PostgreSQL user that will be used for accessing the database
	Name             string                        // Name of the PostgreSQL database accessed
	URL              string                        // Host and port of the PostgreSQL database to access
	ExternalDbURL    string                        // If specified, use an external database instead of the installed by syndesis
	Resources        ResourcesWithPersistentVolume // Resources, memory and database volume size
	Exporter         ExporterConfiguration         // The exporter exports metrics in prometheus format
	Password         string                        // Password for the PostgreSQL connection user
	SampledbPassword string                        // Password for the PostgreSQL sampledb user
	LoggerImage      string                        // Docker image responsible for monitoring and logging when the database backup has completed
}

type ExporterConfiguration

type ExporterConfiguration struct {
	Image string // Docker image for database exporter
}

type GrafanaConfiguration

type GrafanaConfiguration struct {
	Resources Resources // Resources for grafana pod, memory
}

type JaegerConfiguration

type JaegerConfiguration struct {
	Enabled       bool // Whether the addon is enabled
	Olm           OlmSpec
	ClientOnly    bool
	OperatorOnly  bool
	QueryUri      string
	CollectorUri  string
	SamplerType   string
	SamplerParam  string
	ImageAgent    string
	ImageAllInOne string
	ImageOperator string
}

func (JaegerConfiguration) GetOlmSpec

func (j JaegerConfiguration) GetOlmSpec() *OlmSpec

func (JaegerConfiguration) IsEnabled

func (j JaegerConfiguration) IsEnabled() bool

func (JaegerConfiguration) IsVersionCompatible

func (j JaegerConfiguration) IsVersionCompatible() bool

Is compatible with previous version of addon

func (JaegerConfiguration) Name

func (j JaegerConfiguration) Name() string

type KnativeConfiguration

type KnativeConfiguration struct {
	AddonConfiguration
}

func (KnativeConfiguration) Name

func (k KnativeConfiguration) Name() string

type MavenConfiguration

type MavenConfiguration struct {
	Append              bool              // Should we append new repositories
	AdditionalArguments string            // User can set extra maven options
	Repositories        map[string]string // Set repositories for maven
	Mirror              string            // Maven mirror used solely for dependency download
}

type MetaConfiguration

type MetaConfiguration struct {
	Image       string                        // Docker image for syndesis meta
	Resources   ResourcesWithPersistentVolume // Resources for meta pod, memory
	JavaOptions string
}

type OauthConfiguration

type OauthConfiguration struct {
	Image           string            // Docker image for proxy
	CookieSecret    string            // Secret to use to encrypt oauth cookies
	DisableSarCheck bool              // Enable or disable SAR checks all together
	SarNamespace    string            // The user needs to have permissions to at least get a list of pods in the given project in order to be granted access to the Syndesis installation
	Environment     map[string]string // Environment variables to be applied to dc/syndesis-oauthproxy
}

type OlmSpec

type OlmSpec struct {
	Package string // The name of the package if available in the operator-lifecycle-manager
	Channel string // The preferred channel from which to take the operator
}

type OpsConfiguration

type OpsConfiguration struct {
	AddonConfiguration
}

func (OpsConfiguration) Name

func (o OpsConfiguration) Name() string

type PrometheusConfiguration

type PrometheusConfiguration struct {
	Image     string                        // Docker image for prometheus
	Rules     string                        // Monitoring rules for prometheus
	Resources ResourcesWithPersistentVolume // Set volume size for prometheus pod, where metrics are stored
}

type PublicApiConfiguration

type PublicApiConfiguration struct {
	AddonConfiguration
	RouteHostname   string
	DisableSarCheck bool
}

func (PublicApiConfiguration) Name

func (p PublicApiConfiguration) Name() string

type ResourceParams

type ResourceParams struct {
	Memory string
	CPU    string
}

type Resources

type Resources struct {
	Limit   ResourceParams
	Request ResourceParams
}

type ResourcesWithPersistentVolume

type ResourcesWithPersistentVolume struct {
	Limit              ResourceParams
	Request            ResourceParams
	VolumeCapacity     string
	VolumeName         string
	VolumeAccessMode   string
	VolumeStorageClass string
	VolumeLabels       map[string]string
}

type ResourcesWithVolume

type ResourcesWithVolume struct {
	Limit          ResourceParams
	Request        ResourceParams
	VolumeCapacity string
}

type S2IConfiguration

type S2IConfiguration struct {
	Image string // Docker image for S2I
}

type ServerConfiguration

type ServerConfiguration struct {
	Image                        string         // Docker image for syndesis server
	Resources                    Resources      // Resources reserved for server pod
	Features                     ServerFeatures // Server features: integration limits and check interval, support for demo data and more
	SyndesisEncryptKey           string         // The encryption key used to encrypt/decrypt stored secrets
	ClientStateAuthenticationKey string         // Key used to perform authentication of client side stored state
	ClientStateEncryptionKey     string         // Key used to perform encryption of client side stored state
	ConnectionPool               ConnectionPool // Database connection pool parameters
	JavaOptions                  string
}

type ServerFeatures

type ServerFeatures struct {
	IntegrationLimit              int                // Maximum number of integrations single user can create
	IntegrationStateCheckInterval int                // Interval for checking the state of the integrations
	TestSupport                   bool               // Enables test-support endpoint on backend API
	OpenShiftMaster               string             // Public OpenShift master address
	ManagementUrlFor3scale        string             // 3scale management URL
	Maven                         MavenConfiguration // Maven settings
	Auditing                      bool               // Enable auditing support
}

type SyndesisConfig

type SyndesisConfig struct {
	SHA                   bool                  // Whether we use SHA reference for docker images. If false, tag are used instead
	RouteHostname         string                // The external hostname to access Syndesis
	Components            ComponentsSpec        // Server, Meta, Ui, Name specifications and configurations
	Addons                AddonsSpec            // Addons specifications and configurations
	IntegrationScheduling synapi.SchedulingSpec `json:"integrationScheduling,omitempty"`
}

type TodoConfiguration

type TodoConfiguration struct {
	Image string // Docker image for todo sample app
	AddonConfiguration
}

func (TodoConfiguration) Name

func (t TodoConfiguration) Name() string

type UIConfiguration

type UIConfiguration struct {
	Image string // Docker image for UI
}

type UpgradeConfiguration

type UpgradeConfiguration struct {
	Image     string              // Docker image for upgrade pod
	Resources VolumeOnlyResources // Resources for upgrade pod, memory and volume size where database dump is saved
}

type VolumeOnlyResources

type VolumeOnlyResources struct {
	VolumeCapacity string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL