Custom Resource Definitions¶
This document gives details about the Custom Resource Definitions (CRDs) that the SF-Operator installs on a cluster.
The specs are constantly evolving during alpha development, and should be considered unstable but the ultimate source of truth for documentation about their properties.
SoftwareFactory¶
This custom resource describes a Software Factory instance.
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: softwarefactories.sf.softwarefactory-project.io
spec:
group: sf.softwarefactory-project.io
names:
kind: SoftwareFactory
listKind: SoftwareFactoryList
plural: softwarefactories
shortNames:
- sf
singular: softwarefactory
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.ready
name: Ready
type: boolean
- description: Status
jsonPath: .status.conditions[0].status
name: Status
type: string
- description: Message
jsonPath: .status.conditions[0].message
name: Message
type: string
name: v1
schema:
openAPIV3Schema:
description: SoftwareFactory is the Schema for the softwarefactories API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: SoftwareFactorySpec defines the desired state of SoftwareFactory
properties:
FluentBitLogForwarding:
description: Enable log forwarding to a [Fluent Bit HTTP input](https://docs.fluentbit.io/manual/pipeline/inputs/http)
properties:
debug:
default: false
description: Run fluent bit sidecars in debug mode. This will
output forwarded payloads and additional info in the sidecar's
logs. Defaults to false.
type: boolean
forwardInputHost:
description: The Host for the Fluent Bit Forward Input to forward
logs to.
type: string
forwardInputPort:
default: 24224
description: The (optional) port of the forward input, defaults
to 24224.
format: int32
type: integer
type: object
config-location:
description: Config repository spec
properties:
base-url:
description: Base URL to use to perform git-related actions on
the config repository. For example, if hosted on GitHub, the
Base URL would be `https://github.com/<username>/`
pattern: ^https?:\/\/.+$
type: string
branch:
description: The branch of the `config` repository. This value
is set to the load-branch.
type: string
k8s-api-url:
description: |-
Public URL of the k8s cluster API. This is useful when running zuul executors outside
of the cluster. This is mainly used for config-update secret generation
type: string
logserver-host:
description: |-
Public HOST of the default logserver. This is useful when running zuul executors outside
of the cluster. This is mainly used for config-update secret generation
type: string
name:
description: The name of the `config` repository. This value is
appended to `base-url` to clone the repository
minLength: 1
type: string
zuul-connection-name:
description: Name of the Zuul connection through which Zuul can
handle git events on the config repository
minLength: 1
type: string
required:
- base-url
- name
- zuul-connection-name
type: object
extraLabels:
additionalProperties:
type: string
description: Whether you need to add extra labels on all managed resources
type: object
fqdn:
description: |-
The fully qualified domain name to use with the deployment. Relevant services will be served
at https://`service`.`FQDN`
type: string
gitserver:
description: Git server spec
properties:
storage:
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your cluster's
configuration to see what storage classes are available
and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource, expressed
as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
type: object
logserver:
default:
loopDelay: 3600
retentionDays: 60
description: Logserver service spec
properties:
loopDelay:
default: 3600
description: The frequency, in seconds, at which the log pruning
cronjob is running. Defaults to 3600s, i.e. logs are checked
for pruning every hour
minimum: 1
type: integer
retentionDays:
default: 60
description: Logs retention time in days. Logs older than this
setting in days will be purged by a pruning cronjob. Defaults
to 60 days
minimum: 1
type: integer
storage:
description: Storage-related settings
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your cluster's
configuration to see what storage classes are available
and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource, expressed
as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
type: object
mariadb:
description: MariaDB service spec
properties:
dbStorage:
description: Storage parameters related to mariaDB's data
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your cluster's
configuration to see what storage classes are available
and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource, expressed
as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logStorage:
description: Storage parameters related to the database's logging
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your cluster's
configuration to see what storage classes are available
and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource, expressed
as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
required:
- dbStorage
- logStorage
type: object
nodepool:
description: Nodepool services spec
properties:
builder:
description: Nodepool-builder related settings
properties:
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logLevel:
description: |-
Specify the Log Level of the nodepool launcher process.
Valid values are:
"INFO" (default),
"WARN",
"DEBUG".
enum:
- INFO
- WARN
- DEBUG
type: string
storage:
description: Storage related settings
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your
cluster's configuration to see what storage classes
are available and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource,
expressed as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
type: object
launcher:
description: Nodepool-launcher related settings
properties:
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logLevel:
description: |-
Specify the Log Level of the nodepool launcher service.
Valid values are:
"INFO" (default),
"WARN",
"DEBUG".
Changing this value will restart the service.
enum:
- INFO
- WARN
- DEBUG
type: string
type: object
statsdTarget:
description: The address to forward statsd metrics to (optional),
in the form "host:port"
type: string
type: object
prometheusMonitorsDisabled:
default: false
description: Set to true to disable deployment of PodMonitors and
related Prometheus resource
type: boolean
storageDefault:
description: Default setting to use by Persistent Volume Claims
properties:
className:
default: topolvm-provisioner
description: Default storage class to use with Persistent Volume
Claims issued by this resource. Consult your cluster's configuration
to see what storage classes are available and recommended for
your use case.
type: string
extraAnnotations:
additionalProperties:
type: string
description: Whether you need to add extra annotations to the
Persistent Volume Claims
type: object
type: object
zookeeper:
description: Zookeeper service spec
properties:
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
storage:
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your cluster's
configuration to see what storage classes are available
and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource, expressed
as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
required:
- storage
type: object
zuul:
description: Zuul service spec
properties:
defaultAuthenticator:
description: The name of the default authenticator to use if no
authenticator is bound explicitly to a tenant with zuul-web
type: string
elasticsearchconns:
description: The list of ElasticSearch-based connections to add
to Zuul's configuration
items:
description: |-
Describes a Zuul connection using the [ElasticSearch driver](https://zuul-ci.org/docs/zuul/latest/drivers/elasticsearch.html#connection-configuration).
When an optional parameter is not specified then Zuul's defaults apply
properties:
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
uri:
description: '[uri](https://zuul-ci.org/docs/zuul/latest/drivers/elasticsearch.html#attr-%3CElasticsearch%20connection%3E.uri)'
type: string
useSSL:
description: '[useSSL](https://zuul-ci.org/docs/zuul/latest/drivers/elasticsearch.html#attr-%3CElasticsearch%20connection%3E.use_ssl)'
type: boolean
verifyCerts:
description: '[verifyCerts](https://zuul-ci.org/docs/zuul/latest/drivers/elasticsearch.html#attr-%3CElasticsearch%20connection%3E.verify_certs)'
type: boolean
required:
- name
- uri
type: object
type: array
executor:
description: Configuration of the executor microservices
properties:
diskLimitPerJob:
default: 250
description: the [disk_limit_per_job](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-executor.disk_limit_per_job)
minimum: -1
type: integer
enabled:
default: true
description: If set to false, the zuul-executor deployment
won't be applied
type: boolean
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logLevel:
description: |-
Specify the Log Level of the zuul-executor service.
Valid values are:
"INFO" (default),
"WARN",
"DEBUG".
Changing this value will restart the service.
enum:
- INFO
- WARN
- DEBUG
type: string
standalone:
description: |-
When set the Control plane is not deployed.
The standalone executor must be able to connect to the control plane
properties:
controlPlanePublicGSHostname:
description: This is the public hostname or IP where control
plane's GitServer can be reached
type: string
controlPlanePublicZKHostname:
description: This is the public hostname or IP where control
plane's Zookeeper can be reached
type: string
publicHostname:
description: This is the public host or IP address reachable
from zuul-web
type: string
required:
- controlPlanePublicGSHostname
- controlPlanePublicZKHostname
- publicHostname
type: object
storage:
description: Storage-related settings
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your
cluster's configuration to see what storage classes
are available and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource,
expressed as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
type: object
gerritconns:
description: The list of Gerrit-based connections to add to Zuul's
configuration
items:
description: |-
Describes a Zuul connection using the [gerrit driver](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#connection-configuration)
When an optional parameter is not specified then Zuul's defaults apply
properties:
canonicalhostname:
description: The canonical hostname associated with the
git repositories on the Gerrit server. Equivalent to the
[canonical_hostname](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20connection%3E.canonical_hostname)
parameter.
type: string
git-over-ssh:
description: Set to true to force git operations over SSH
even if the password attribute is set. Equivalent to the
[git_over_ssh](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20ssh%20connection%3E.git_over_ssh)
parameter.
type: boolean
hostname:
description: The gerrit server hostname. Equivalent to the
[server](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20connection%3E.server)
parameter.
type: string
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
password:
description: The name of a Kubernetes secret holding the
Gerrit user's API Password. The secret's data must have
a key called "password". Equivalent to the [password](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20ssh%20connection%3E.password)
parameter.
type: string
port:
description: SSH port number to the Gerrit instance. Equivalent
to the [port](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20ssh%20connection%3E.port)
parameter.
maximum: 65535
minimum: 1024
type: integer
puburl:
description: URL to Gerrit's web interface. the [baseurl](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20connection%3E.baseurl)
parameter.
pattern: ^https?:\/\/.+$
type: string
sshkey:
description: The name of a Kubernetes secret holding the
Gerrit user's SSH key. The secret's data must have a key
called "priv".
type: string
username:
description: Username that Zuul will use to authenticate
on the Gerrit instance. Equivalent to the [user](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20connection%3E.user)
parameter.
type: string
verifyssl:
description: Disable SSL certificate verification with the
Gerrit instance when set to false. Equivalent to the [verify_ssl](https://zuul-ci.org/docs/zuul/latest/drivers/gerrit.html#attr-%3Cgerrit%20ssh%20connection%3E.verify_ssl)
parameter.
type: boolean
required:
- hostname
- name
type: object
type: array
gitconns:
description: The list of Git-based connections to add to Zuul's
configuration
items:
description: |-
Describes a Zuul connection using the [git driver](https://zuul-ci.org/docs/zuul/latest/drivers/git.html#connection-configuration).
When an optional parameter is not specified then Zuul's defaults apply
properties:
baseurl:
description: '[baseurl](https://zuul-ci.org/docs/zuul/latest/drivers/git.html#attr-%3Cgit%20connection%3E.baseurl)'
pattern: ^(https?|git):\/\/.+$
type: string
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
pollDelay:
description: '[poolDelay](https://zuul-ci.org/docs/zuul/latest/drivers/git.html#attr-%3Cgit%20connection%3E.poll_delays)'
format: int32
type: integer
required:
- baseurl
- name
type: object
type: array
githubconns:
description: The list of GitHub-based connections to add to Zuul's
configuration
items:
description: Describes a Zuul connection using the [github driver](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#).
properties:
appID:
description: GitHub [appID](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.app_id)
type: integer
canonicalHostname:
description: the [canonical_hostname](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.canonical_hostname)
parameter
type: string
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
secrets:
description: |-
Name of the secret which contains the following keys:
[app_key](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.app_key) must be defined if appId is defined
[api_token(optional)](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.api_token)
[webhook_token (optional)](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.webhook_token)
The keys must have the same name as above
type: string
server:
description: the [server](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.server)
type: string
verifySsl:
default: true
description: the [verify_ssl](https://zuul-ci.org/docs/zuul/latest/drivers/github.html#attr-%3Cgithub%20connection%3E.verify_ssl)
parameter
type: boolean
required:
- name
type: object
type: array
gitlabconns:
description: The list of GitLab-based connections to add to Zuul's
configuration
items:
description: Describes a Zuul connection using the [gitlab driver](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#gitlab).
properties:
apiTokenName:
description: the [apiTokenName](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.api_token_name)
type: string
baseUrl:
description: the (baseUrl)[https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.baseurl)
type: string
canonicalHostname:
description: the [canonicalHostname](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.canonical_hostname)
type: string
cloneUrl:
description: the [cloneUrl](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.cloneurl)
type: string
disableConnectionPool:
description: the [disableConnectionPool](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.disable_connection_pool)
type: boolean
keepAlive:
description: the [keepAlive](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.keepalive)
minimum: 0
type: integer
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
secrets:
description: |-
Name of the secret which containes the following keys:
the [api_token](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.api_token)
the [api_token_name](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.api_token_name)
the [webhook_token](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.webhook_token)
minLength: 1
type: string
server:
description: the [server](https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html#attr-%3Cgitlab%20connection%3E.server)
type: string
required:
- name
- secrets
type: object
type: array
merger:
description: Configuration of the merger microservice
properties:
gitHttpLowSpeedLimit:
description: the [git_http_low_speed_limit](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-merger.git_http_low_speed_limit)
parameter
format: int32
minimum: 0
type: integer
gitHttpLowSpeedTime:
description: the [git_http_low_speed_time](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-merger.git_http_low_speed_time)
parameter
format: int32
minimum: 0
type: integer
gitTimeout:
description: the [git_timeout](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-merger.git_timeout)
parameter
format: int32
minimum: 1
type: integer
gitUserEmail:
description: the [git_user_email](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-merger.git_user_email)
parameter
type: string
gitUserName:
description: the [git_user_name](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-merger.git_user_name)
parameter
type: string
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logLevel:
description: |-
Specify the Log Level of the nodepool launcher service.
Valid values are:
"INFO" (default),
"WARN",
"DEBUG".
Changing this value will restart the service.
enum:
- INFO
- WARN
- DEBUG
type: string
storage:
description: Storage-related settings
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your
cluster's configuration to see what storage classes
are available and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource,
expressed as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
type: object
oidcAuthenticators:
description: A list of OpenID Connect authenticators that will
enable admin API access on zuul-web
items:
description: The description of an OpenIDConnect authenticator,
see [Zuul's authentication documentation](https://zuul-ci.org/docs/zuul/latest/configuration.html#authentication)
properties:
audience:
description: Optionally provide the claim where the audience
is set if not in `aud`, equivalent to the [audience](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-audience)
parameter
type: string
authority:
description: Optionally provide the claim where the authority
is set if not in `iss`, equivalent to the [authority](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-authority)
parameter
type: string
clientID:
description: The client ID, as exposed in the `aud` claim
of a JWT. Equivalent to the [client_id](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E.client_id)
parameter
type: string
issuerID:
description: The issuer ID, as exposed in the `iss` claim
of a JWT. Equivalent to the [issuer_id](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E.issuer_id)
parameter
type: string
keysURL:
description: Optionally provide a URL to fetch the Identity
Provider's key set, equivalent to the [keys_url](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-keys_url)
parameter
type: string
loadUserInfo:
default: true
description: If set to false, zuul-web will skip loading
the Identity Provider's `userinfo` endpoint and rely on
what's available in the JWT. Equivalent to the [load_user_info](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-load_user_info)
parameter
type: boolean
maxValidityTime:
description: Optionally override the `expires_at` claim
in a JWT to enforce a custom expiration time on a token.
Equivalent to the [max_validity_time](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E.max_validity_time)
parameter
format: int32
type: integer
name:
description: The [name of the authenticator in Zuul's configuration](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E)
type: string
realm:
description: Authentication realm, equivalent to the [realm](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E.realm)
parameter
type: string
scope:
default: openid profile
description: The scope used to fetch a user's details, equivalent
to the [scope](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-scope)
parameter
type: string
skew:
default: 0
description: Optionally compensate for skew between Zuul's
and the Identity Provider's clocks, equivalent to the
[skew](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E.skew)
parameter
format: int32
type: integer
uidClaim:
default: sub
description: The JWT claim to use as a unique identifier
in audit logs, equivalent to the [uid_claim](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-auth%20%3Cauthenticator%20name%3E.uid_claim)
parameter
type: string
required:
- clientID
- issuerID
- name
- realm
type: object
type: array
pagureconns:
description: The list of Pagure-based connections to add to Zuul's
configuration
items:
description: Describes a Zuul connection using the [pagure driver](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#connection-configuration).
properties:
appName:
description: the [appName](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-<pagure
connection>.app_name)
type: string
baseUrl:
description: the (baseUrl)[https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-%3Cpagure%20connection%3E.baseurl)
type: string
canonicalHostname:
description: the [canonicalHostname](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-<pagure
connection>.canonical_hostname)
type: string
cloneUrl:
description: the [cloneUrl](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-<pagure
connection>.cloneurl)
type: string
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
secrets:
description: |-
Name of the secret which containes the following keys:
the [api_token](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-<pagure connection>.api_token)
type: string
server:
description: the [server](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-<pagure
connection>.server)
type: string
sourceWhitelist:
description: the [sourceWhitelist](https://zuul-ci.org/docs/zuul/latest/drivers/pagure.html#attr-<pagure
connection>.source_whitelist)
type: string
required:
- name
type: object
type: array
scheduler:
description: Configuration of the scheduler microservice
properties:
DefaultHoldExpiration:
description: the [DefaultHoldExpiration](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-scheduler.default_hold_expiration)
format: int32
minimum: 0
type: integer
MaxHoldExpiration:
description: the [MaxHoldExpiration](https://zuul-ci.org/docs/zuul/latest/configuration.html#attr-scheduler.max_hold_expiration)
format: int32
minimum: 0
type: integer
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logLevel:
description: |-
Specify the Log Level of the zuul-scheduler service.
Valid values are:
"INFO" (default),
"WARN",
"DEBUG".
Changing this value will restart the service.
enum:
- INFO
- WARN
- DEBUG
type: string
statsdTarget:
description: The address to forward statsd metrics to (optional),
in the form "host:port"
type: string
storage:
description: Storage-related settings
properties:
className:
description: Default storage class to use with Persistent
Volume Claims issued by this resource. Consult your
cluster's configuration to see what storage classes
are available and recommended for your use case.
type: string
size:
anyOf:
- type: integer
- type: string
description: Storage space to allocate to the resource,
expressed as a [Quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- size
type: object
type: object
smtpconns:
description: The list of SMTP-based connections to add to Zuul's
configuration
items:
description: |-
Describes a Zuul connection using the [SMTP driver](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#connection-configuration).
When an optional parameter is not specified then Zuul's defaults apply
properties:
defaultFrom:
description: '[default_from](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.default_from)'
type: string
defaultTo:
description: '[default_to](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.default_to)'
type: string
name:
description: How the connection will be named in Zuul's
configuration and appear in zuul-web
type: string
password:
description: '[password](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.password)'
type: string
port:
description: '[port](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.port)'
type: integer
server:
description: '[server](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.server)'
type: string
tls:
description: '[use_starttls](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.use_starttls)'
type: boolean
user:
description: '[user](https://zuul-ci.org/docs/zuul/latest/drivers/smtp.html#attr-%3Csmtp%20connection%3E.user)'
type: string
required:
- name
- server
type: object
type: array
web:
description: Configuration of the web microservice
properties:
limits:
default:
cpu: 2000m
memory: 2Gi
description: Memory/CPU Limit
properties:
cpu:
anyOf:
- type: integer
- type: string
default: 2000m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memory:
anyOf:
- type: integer
- type: string
default: 2Gi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
required:
- cpu
- memory
type: object
logLevel:
description: |-
Specify the Log Level of the zuul-web launcher service.
Valid values are:
"INFO" (default),
"WARN",
"DEBUG".
Changing this value will restart the service.
enum:
- INFO
- WARN
- DEBUG
type: string
type: object
type: object
required:
- fqdn
type: object
status:
description: SoftwareFactoryStatus defines the observed state of SoftwareFactory
properties:
conditions:
description: Information about ongoing or completed reconciliation
processes between the Log server spec and the observed state of
the cluster
items:
description: "Condition contains details for one aspect of the current
state of this API Resource.\n---\nThis struct is intended for
direct use as an array at the field path .status.conditions. For
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
observations of a foo's current state.\n\t // Known .status.conditions.type
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
\ // other fields\n\t}"
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: |-
type of condition in CamelCase or in foo.example.com/CamelCase.
---
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
useful (see .node.status.conditions), the ability to deconflict is important.
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
observedGeneration:
description: The Generation of the related Custom Resource that was
last processed by the operator controller
format: int64
type: integer
ready:
description: The deployment status.
type: boolean
reconciledBy:
description: The name of the operator handling this Custom Resource's
reconciliation
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}