Documentation ¶
Index ¶
- Constants
- func AddCredentialsSecret(comp InfoGetter, svc *runtime.ServiceRuntime, fieldList []string, ...) (string, error)
- func AddGenericSecret(comp InfoGetter, svc *runtime.ServiceRuntime, suffix string, ...) (string, error)
- func AddPDBSettings[T client.Object](ctx context.Context, obj T, svc *runtime.ServiceRuntime) *fnproto.Result
- func AddSaWithRole(ctx context.Context, svc *runtime.ServiceRuntime, policies []rbacv1.PolicyRule, ...) error
- func AddUserAlerting[T client.Object](ctx context.Context, obj T, svc *runtime.ServiceRuntime) *fnproto.Result
- func BootstrapInstanceNs(ctx context.Context, comp Composite, serviceName, namespaceResName string, ...) error
- func CreateBillingRecord(ctx context.Context, svc *runtime.ServiceRuntime, comp InfoGetter, ...) *xfnproto.Result
- func CreateNetworkPolicy(comp Composite, svc *runtime.ServiceRuntime) error
- func CreateTLSCerts(ctx context.Context, ns string, serviceName string, ...) (string, error)
- func CustomCreateNetworkPolicy(sourceNS []string, instanceNs, name string, allowAll bool, ...) error
- func DisableBilling(instanceNamespace string, svc *runtime.ServiceRuntime) error
- func GetBitnamiNano() map[string]any
- func GetDesiredReleaseValues(svc *runtime.ServiceRuntime, releaseName string) (map[string]interface{}, error)
- func GetObservedReleaseValues(svc *runtime.ServiceRuntime, releaseName string) (map[string]interface{}, error)
- func GetReleaseValues(r *xhelmv1.Release) (map[string]interface{}, error)
- func MailgunAlerting[T client.Object](ctx context.Context, obj T, svc *runtime.ServiceRuntime) *xfnproto.Result
- func NewRelease(ctx context.Context, svc *runtime.ServiceRuntime, comp InfoGetter, ...) (*xhelmv1.Release, error)
- func SetNestedObjectValue(values map[string]interface{}, path []string, val interface{}) error
- func SetRandomSchedules(backup BackupScheduler, maintenance MaintenanceScheduler)
- func SetSELinuxSecurityContextDeployment(depl *appsv1.Deployment, comp InfoGetter, svc *runtime.ServiceRuntime) error
- func SetSELinuxSecurityContextStatefulset(sts *appsv1.StatefulSet, comp InfoGetter, svc *runtime.ServiceRuntime) error
- type Alerter
- type AllowedNamespaceGetter
- type BackupScheduler
- type Composite
- type CredentialSecretOption
- type InfoGetter
- type InstanceNamespaceGetter
- type InstanceNamespaceInfo
- type MaintenanceScheduler
- type PostgreSQLDependencyBuilder
- func (a *PostgreSQLDependencyBuilder) AddPGBouncerConfig(pgBouncerConfig map[string]string) *PostgreSQLDependencyBuilder
- func (a *PostgreSQLDependencyBuilder) AddParameters(psqlParams *vshnv1.VSHNPostgreSQLParameters) *PostgreSQLDependencyBuilder
- func (a *PostgreSQLDependencyBuilder) CreateDependency() error
- func (a *PostgreSQLDependencyBuilder) SetCustomMaintenanceSchedule(timeOfDayMaintenance vshnv1.TimeOfDay) *PostgreSQLDependencyBuilder
- type Resources
- type ServiceAddOns
Constants ¶
const ( PgInstanceNameSuffix = "-pg" PgSecretName = "pg-creds" )
Variables ¶
This section is empty.
Functions ¶
func AddCredentialsSecret ¶ added in v4.46.0
func AddCredentialsSecret(comp InfoGetter, svc *runtime.ServiceRuntime, fieldList []string, opts ...CredentialSecretOption) (string, error)
AddCredentialsSecret creates secrets and passwords for use with helm based services. This is to avoid issues with re-generating passwords if helm internal password generators are used. The function accepts a list of fields that should be populated with passwords. It returns the name of the secret resource, so it can be referenced later. The name of the inner secret object is the same as the resource name. Additionally it exposes the generated passwords as connection details, for easier retrieval.
func AddGenericSecret ¶ added in v4.73.0
func AddGenericSecret(comp InfoGetter, svc *runtime.ServiceRuntime, suffix string, fieldList []string, opts ...CredentialSecretOption) (string, error)
AddGenericSecret generates passwords the same way AddCredentialsSecret does. With the difference that the resource name can be chosen. This is helpful if multiple different random generated passwords are necessary.
func AddPDBSettings ¶ added in v4.86.0
func AddSaWithRole ¶
func AddSaWithRole(ctx context.Context, svc *runtime.ServiceRuntime, policies []rbacv1.PolicyRule, compName, namespace, suffix string, withDeletionProtectionDisabled bool) error
AddSaWithRole creates a service account with the given policy and binds it to the role. withDeletionProtectionDisabled will add a label to the sa, role and rolbinding's Object to allow deletion.
func AddUserAlerting ¶ added in v4.42.0
func AddUserAlerting[T client.Object](ctx context.Context, obj T, svc *runtime.ServiceRuntime) *fnproto.Result
AddUserAlerting adds user alerting to the Redis instance.
func BootstrapInstanceNs ¶ added in v4.45.0
func CreateBillingRecord ¶ added in v4.99.0
func CreateBillingRecord(ctx context.Context, svc *runtime.ServiceRuntime, comp InfoGetter, addOns ...ServiceAddOns) *xfnproto.Result
CreateBillingRecord creates a new prometheus rule per each instance namespace The rule is skipped for any secondary service such as postgresql instance for nextcloud The skipping is based on whether label appuio.io/billing-name is set or not on instance namespace
func CreateNetworkPolicy ¶ added in v4.44.0
func CreateNetworkPolicy(comp Composite, svc *runtime.ServiceRuntime) error
CreateNetworkPolicy creates network policy in the instance namespace to allow other namespaces access to the service
func CreateTLSCerts ¶ added in v4.102.0
func CreateTLSCerts(ctx context.Context, ns string, serviceName string, svc *runtime.ServiceRuntime, additionalSANs ...string) (string, error)
CreateTLSCerts creates ssl/tls certificates. Servicename will be concatenated with the given namespace to generate a proper k8s fqdn. In addition to an error it also returns the name of the secret containing the server certifcates.
func CustomCreateNetworkPolicy ¶ added in v4.69.0
func CustomCreateNetworkPolicy(sourceNS []string, instanceNs, name string, allowAll bool, svc *runtime.ServiceRuntime) error
CustomCreateNetworkPolicy creates a more flexible network policy Use this method when, for instance, a service needs a sub-service with more refined network policy access
func DisableBilling ¶ added in v4.60.0
func DisableBilling(instanceNamespace string, svc *runtime.ServiceRuntime) error
DisableBilling deploys a special config map to the appcat control namespace. This configMap contains a key that specifies if a given namespace should be billed or not. The configMap can also be used for other configurations in the future.
func GetBitnamiNano ¶ added in v4.102.0
GetBitnamiNano returns a "nano" bitnami resource termplate, but without the ephemeral storage. See for more details: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
func GetDesiredReleaseValues ¶ added in v4.61.0
func GetDesiredReleaseValues(svc *runtime.ServiceRuntime, releaseName string) (map[string]interface{}, error)
GetDesiredReleaseValues returns the desired releaseValues for the given release name.
func GetObservedReleaseValues ¶ added in v4.53.0
func GetObservedReleaseValues(svc *runtime.ServiceRuntime, releaseName string) (map[string]interface{}, error)
GetObservedReleaseValues returns the observed releaseValues for the given release name.
func GetReleaseValues ¶ added in v4.49.0
GetReleaseValues returns the parsed values from the given release.
func MailgunAlerting ¶ added in v4.42.0
func NewRelease ¶ added in v4.53.0
func NewRelease(ctx context.Context, svc *runtime.ServiceRuntime, comp InfoGetter, values map[string]any, cd ...xhelmv1.ConnectionDetail) (*xhelmv1.Release, error)
NewRelease returns a new release with some defaults set.
func SetNestedObjectValue ¶ added in v4.65.0
SetNestedObjectValue is necessary as unstructured can't handle anything except basic values and maps. this is a recursive function, it will traverse the map until it reaches the last element of the path. If it encounters any non-map values while traversing, it will throw an error.
func SetRandomSchedules ¶
func SetRandomSchedules(backup BackupScheduler, maintenance MaintenanceScheduler)
SetRandomSchedules initializes the backup and maintenance schedules if the user did not explicitly provide a schedule. The maintenance will be set to a random time on Tuesday night between 21:00 and 5:00, and the backup schedule will be set to once a day between 20:00 and 4:00. If neither maintenance nor backup is set, the function will make sure that there will be backup scheduled one hour before the maintenance.
func SetSELinuxSecurityContextDeployment ¶ added in v4.64.2
func SetSELinuxSecurityContextDeployment(depl *appsv1.Deployment, comp InfoGetter, svc *runtime.ServiceRuntime) error
func SetSELinuxSecurityContextStatefulset ¶ added in v4.64.2
func SetSELinuxSecurityContextStatefulset(sts *appsv1.StatefulSet, comp InfoGetter, svc *runtime.ServiceRuntime) error
Types ¶
type Alerter ¶ added in v4.42.0
type Alerter interface { GetVSHNMonitoring() vshnv1.VSHNMonitoring GetInstanceNamespace() string }
Required to get info required for alerting.
type AllowedNamespaceGetter ¶ added in v4.69.0
type BackupScheduler ¶
BackupScheduler can schedule backups
type Composite ¶ added in v4.62.2
type Composite interface { InfoGetter client.Object SetInstanceNamespaceStatus() AllowedNamespaceGetter }
Composite can get and set the relevant information on a given composite.
type CredentialSecretOption ¶ added in v4.79.0
type CredentialSecretOption func(obj *corev1.Secret, cd []xkube.ConnectionDetail) []xkube.ConnectionDetail
func AddStaticFieldToSecret ¶ added in v4.79.0
func AddStaticFieldToSecret(staticFields map[string]string) CredentialSecretOption
AddStaticFieldToSecret adds predefined staticFields into a secret. This is helpful if multiple you need to add a static username to a secret for example.
type InfoGetter ¶ added in v4.46.0
type InfoGetter interface { GetBackupSchedule() string GetBackupRetention() vshnv1.K8upRetentionPolicy GetServiceName() string GetLabels() map[string]string GetSize() vshnv1.VSHNSizeSpec GetInstances() int GetFullMaintenanceSchedule() vshnv1.VSHNDBaaSMaintenanceScheduleSpec GetMonitoring() vshnv1.VSHNMonitoring GetSecurity() *vshnv1.Security InstanceNamespaceInfo GetPDBLabels() map[string]string GetWorkloadPodTemplateLabelsManager() vshnv1.PodTemplateLabelsManager GetWorkloadName() string GetClaimName() string GetSLA() string GetBillingName() string }
InfoGetter will return various information about the given AppCat composite.
type InstanceNamespaceGetter ¶ added in v4.117.0
type InstanceNamespaceGetter interface {
GetInstanceNamespace() string
}
InstanceNamespaceGetter returns the instance namespace of the given object
type InstanceNamespaceInfo ¶ added in v4.45.2
type InstanceNamespaceInfo interface { InstanceNamespaceGetter GetName() string GetClaimNamespace() string GetLabels() map[string]string }
InstanceNamespaceInfo provides all the necessary information to create an instance namespace.
type MaintenanceScheduler ¶
type PostgreSQLDependencyBuilder ¶ added in v4.83.0
type PostgreSQLDependencyBuilder struct {
// contains filtered or unexported fields
}
func NewPostgreSQLDependencyBuilder ¶ added in v4.83.0
func NewPostgreSQLDependencyBuilder(svc *runtime.ServiceRuntime, comp InfoGetter) *PostgreSQLDependencyBuilder
func (*PostgreSQLDependencyBuilder) AddPGBouncerConfig ¶ added in v4.83.0
func (a *PostgreSQLDependencyBuilder) AddPGBouncerConfig(pgBouncerConfig map[string]string) *PostgreSQLDependencyBuilder
func (*PostgreSQLDependencyBuilder) AddParameters ¶ added in v4.83.0
func (a *PostgreSQLDependencyBuilder) AddParameters(psqlParams *vshnv1.VSHNPostgreSQLParameters) *PostgreSQLDependencyBuilder
func (*PostgreSQLDependencyBuilder) CreateDependency ¶ added in v4.83.0
func (a *PostgreSQLDependencyBuilder) CreateDependency() error
func (*PostgreSQLDependencyBuilder) SetCustomMaintenanceSchedule ¶ added in v4.83.0
func (a *PostgreSQLDependencyBuilder) SetCustomMaintenanceSchedule(timeOfDayMaintenance vshnv1.TimeOfDay) *PostgreSQLDependencyBuilder
type Resources ¶ added in v4.53.0
type Resources struct { ReqMem resource.Quantity ReqCPU resource.Quantity Mem resource.Quantity CPU resource.Quantity Disk resource.Quantity }
func GetResources ¶ added in v4.44.0
GetResources will return a `Resources` object with the correctly calculated requests, limits and disk space according to the definitions in the plan as well as the overrides in the claim.
type ServiceAddOns ¶ added in v4.115.0
ServiceAddOns describes an addOn for a services with necessary data for billing