Parameters
The parent key for all of the following parameters is appuio_cloud
.
namespaceLabels
type |
dict |
default |
|
The labels of the namespace in which this component is deployed.
namespaceAnnotations
type |
dict |
default |
|
The annotations of the namespace in which this component is deployed.
images
type |
dict |
default |
This parameter allows selecting the Docker images to us.
Each image is specified using keys registry
, repository
and tag
.
This structure allows easily injecting a registry mirror, if required.
secrets
type |
dictionary |
default |
|
This parameter allows creating arbitrary Secret
resources.
The dictionary keys are used as metadata.name
for the resulting Secret
resources.
The secrets are created in the namespace indicated by parameter namespace
.
monitoring.enabled
type |
boolean |
default |
|
Controls if ServiceMonitor
object is created to scrape the APPUiO Cloud Agent metrics.
agent.resources
type |
dict |
default |
|
Resource requests and limits for the APPUiO Cloud Agent deployment.
The contents of this parameter are merged over the default resource requests and limits of the Agent’s base configuration.
agent.extraArgs
type |
list(string) |
default |
|
A list of extra command line arguments for the agent deployment.
agent.extraEnv
type |
list |
default |
|
example |
|
Additional environment that should be passed to the agent deployment.
If a dict is given valueFrom:
is assumed.
agent.resourceRatio.memoryPerCore
- type
-
string
- default
-
4Gi
The "fair-use" limit of memory to CPU request.
That means, if a namespace requests less than 4Gi
of memory per requested CPU core, the APPUiO Cloud Agent will warn the user that they exceed the "fair-use" limit and will potentially generate additional costs.
agent.nodeSelector
type |
dict |
default |
|
The node selector (if applicable) for the agent deployment.
agent.tolerations
type |
list |
default |
|
The tolerations (if applicable) for the agent deployment.
agent.webhook.tls
This key configures encryption of traffic to the controller’s admission webhook server.
The Kubernetes API server only communicates with admission webhooks over HTTPS.
Therefore, the component requires that both agent.webhook.tls.certificate
and agent.webhook.tls.key
are configured.
agent.webhook.tls.certSecretName
type |
string |
default |
|
The name of the secret containing the TLS certificate and key for the agent’s webhook server.
agent.webhook.tls.caCertificate
type |
string |
default |
|
The CA certificate used to sign the webhook service certificate. If left empty, the component assumes that the provided certificate can be verified using the cluster’s default CA bundle.
If you deploy a self-signed certificate, set this parameter to ${appuio_cloud:agent:webhook:tls:certificate}
.
agent.webhook.namespaceSelector
type |
dict |
NamespaceSelector that’s applied to every webhook installed by the APPUiO Cloud Agent The namespaceSelector decides whether to run the webhook on a request for a namespaced resource (or a Namespace object), based on whether the namespace’s labels match the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is a cluster scoped resource other than a Namespace, namespaceSelector has no effect.
See the upstream documentation on these selectors.
agent.config
type |
dict |
default |
This parameter allows configuring the APPUiO Cloud Agent. See the Agent repository for an overview of the available configuration options.
Configuration parameters can be removed in the hierarchy by setting them to null
.
agent.config._subjects
type |
dict |
default |
|
example |
|
A special key format the Subjects configuration for the APPUiO Cloud Agent.
clusterRoles
type |
dict |
example |
clusterRoles:
namespace-owner:
rules:
- apiGroups: ['']
resources: [namespaces]
verbs:
- get
- watch
- edit
- patch
- delete
The clusterRoles
parameter can be used to create a list of arbitrary ClusterRoles
.
The key is used as the name of the ClusterRole
and the value is transformed into the ClusterRole
resource.
reservedNamespaces
type |
dict |
example |
|
Creating and editing namespaces matching any of the entries is disallowed.
The list must consist of entries like custom: ['custom-', 'test-custom-']
or custom: 'custom-*'
.
allowedNamespaceLabels
type |
dict |
example |
|
Creating and editing namespace labels is disallowed except for labels explicitly approved using this parameter.
The list must consist of entries like custom: ['custom-', 'test-custom-']
or custom: 'custom-*'
.
allowedNamespaceAnnotations
type |
dict |
example |
|
Creating and editing namespace annotations is disallowed except for annotations explicitly approved using this parameter.
The list must consist of entries like custom: ['custom-', 'test-custom-']
or custom: 'custom-*'
.
bypassNamespaceRestrictions.roles
type |
dict |
example |
|
Roles
in the same namespace excluded from all namespace policies.
Must consist of entries like my-admin: ['my-admin', 'test-admin']
or my-admin: 'my-admin'
.
bypassNamespaceRestrictions.clusterRoles
type |
dict |
example |
|
ClusterRoles
excluded from all namespace policies.
Must consist of entries like my-admin: ['my-admin', 'test-admin']
or my-admin: 'my-admin'
.
bypassNamespaceRestrictions.subjects
type |
dict |
example |
|
ServiceAccount
, User
or Group
(chosen by kind:
) excluded from all namespace policies.
generatedResourceQuota
type |
dict |
A key-value map defining ResourceQuota
objects.
Each entry will generate a ResourceQuota
with the key as its name.
generatedResourceQuota[name].spec
type |
dict |
default |
The desired contents of field spec
of the ResourceQuota that should be generated.
The component doesn’t validate the contents of this field.
See the Kubernetes Resource Quota documentation for supported configurations.
You can override these default quotas on a namespace level, by setting an annotation For example For resources containing a forward slash, you will need to substitute it for an underline.
For example: The exception is that for customizing storage class quotas you need to set annotation |
generatedLimitRange
type |
dict |
This parameter defines a LimitRange
object.
generatedLimitRange.name
type |
string |
default |
|
The metadata.name
of the LimitRange
that gets generated in the new Namespace
created by the user.
generatedLimitRange.limits
type |
dict |
example |
|
A key-value map defining limits for different Types
.
The example above will reject any PVC smaller than 1Gi
or larger than 2Gi
.
It will also reject any container requesting more than 4G
of memory or less than 4Mi
.
Consult the official Kubernetes documentation on how to configure these limits
.
disallowDockerBuildStrategy
type |
boolean |
default |
|
Creating build strategies using Docker is disallowed.
maxNamespaceQuota
type |
int |
default |
25 |
Set the number of namespaces an organization can create.
It’s recommended that this quota is applied per zone.
For example, with a quota of |
namespaceQuotaOverrides
type |
dict |
Override maxNamespaceQuota
for a specific organization.
namespaceQuotaOverrides:
exampleCompany: 50 (1)
1 | The organization exampleCompany can now have 50 namespaces |
|
projectTemplate
Configuration options for the OpenShift default project template.
projectTemplate.enabled
type |
boolean |
default |
|
This parameter controls whether the component deploys and enables a custom default project template.
projectTemplate.objects
type |
dict |
default |
|
The contents of this dict are used to populate field objects
of the OpenShift template object.
The keys in the dict are ignored, but can be used in the configuration hierarchy to change existing template objects.
Setting a key to value null
removes the object from the resulting template.
To avoid Commodore trying to interpret template parameters, escape them with \${PARAM}
as shown in the default value.
Any parameters used in the template objects must be defined in component parameter projectTemplate.parameters
.
OpenShift requires that the default template contains at least one object of type Project .
|
projectTemplate.parameters
type |
dict |
default |
|
The contents of this dict are used to populate field parameters
of the OpenShift template object.
The field parameters
in the template object is a list of objects, see the OpenShift documentation.
The component transforms the entries of this component parameter into objects by using the key as field name
of the resulting object and merging it with the provided value.
Users can remove parameters by setting value null
.
runOnceActiveDeadlineSeconds
Configuration for the cluster policy which ensures that .spec.activeDeadlineSeconds
is set for all "runonce" pods.
"Runonce" pods are pods which have .spec.restartPolicy
set to OnFailure
or Never
.
runOnceActiveDeadlineSeconds.defaultActiveDeadlineSeconds
type |
int |
default |
|
This parameter gives the default value for .spec.activeDeadlineSeconds
which is added to "runonce" pods which don’t have the field set already.
runOnceActiveDeadlineSeconds.overrideAnnotationKey
type |
string |
default |
|
The key of the namespace annotation which users can use to override the global default value for .spec.activeDeadlineSeconds
.
runOnceActiveDeadlineSeconds.podMatchExpressions
type |
dict |
default |
|
example |
|
The entries of the dict are expected to be of form labelKey: <partial matchExpression>
.
Each entry is transformed to a Kubernetes matchExpression
entry by taking the key as value for field key
of the resulting match expression.
See the matchExpressions
section in the Kubernetes LabelSelector documentation for supported fields in a matchExpressions
element.
The field activeDeadlineSeconds
will only be set for pods which match the provided expressions.
Generally, we recommend adjusting the value for activeDeadlineSeconds
by annotating namespaces as documented above or by setting activeDeadlineSeconds
in the Pod spec, but in some cases it may be necessary to exclude pods from the policy.