mbs-frontend¶
This page documents the usage of mb-mbs-frontend crd.
Description¶
The frontend of the module-build-service
Parameters¶
Name | Default Value | Type |
---|---|---|
replicas | 1 | int |
image | quay.io/fedora/mbs-frontend:latest | string |
configmap | mbs-frontend-configmap | string |
https_enabled | true | boolean |
postgres_secret | postgres | string |
mbs_configmap | mbs-configmap | string |
fedora_versions | [‘32’] | [string] |
messaging_system | ‘fedmsg’ | string |
topic_prefix | ‘org.fedoraproject.dev’ | string |
scm_url | ‘git+https://src.fedoraproject.org/modules/’ | string |
rpms_default_repository | ‘git+https://src.fedoraproject.org/rpms/’ | string |
rpms_default_cache | ‘https://src.fedoraproject.org/repo/pkgs/’ | string |
modules_default_repository | ‘git+https://src.fedoraproject.org/modules/’ | string |
pdc_url | ‘https://pdc.stg.fedoraproject.org/rest_api/v1’ | string |
oidc_required_scope | ‘https://mbs.fedoraproject.org/oidc/submit-build’ | string |
ca_cert_secret | koji-hub-ca-cert | string |
koji_hub_host | ‘koji-hub:8443’ | string |
host | ‘mbs.mbox.dev’ | string |
client_cert_secret | mbs-frontend-client-cert | string |
service_cert_secret | mbs-frontend-service-cert | string |
mbox | “” | string |
image¶
The full qualified image name to pull mbs-frontend from.
replicas¶
The amount of mbs-frontend replicas to deploy.
configmap¶
The configmap name to use when deploying mbs-frontend
This configmap object contains mbs-frontend specific configuration files that are mounted in mbs-frontend pod filesystem.
https_enabled¶
A boolean flag that enables/disables https connections. If set to false http will be enabled.
postgres_secret¶
Postgresql secret used by MBS to connect to a psql instance.
Deployment will fail if this secret is not present.
Secret format:
apiVersion: v1
kind: Secret
metadata:
name: postgres
labels:
app: postgres
data:
POSTGRES_HOST: fillme
POSTGRES_DB: fillme
POSTGRES_USER: fillme
POSTGRES_PASSWORD: fillme
mbs_configmap¶
The configmap name to use when deploying configuration shared between mbs-frontend and mbs-backend component.
This configmap contains configuration files that are shared between mbs-frontend and mbs-backend.
fedora_versions¶
The versions of the Fedora we need to generate module template for.
messaging_system¶
Messaging system to use when sending messages. Support for fedora messaging is not available in MBS for now.
topic_prefix¶
Prefix of the topic for messaging system.
config_scm_url¶
Source Code Management git URL for modules, should contain repositories for modules builds definitions.
rpms_default_repository¶
Default repository git URL for RPMS.
rpms_default_cache¶
Default cache URL for RPMS.
modules_default_repository¶
Default repository git URL for modules.
pdc_url¶
Product Definition Center URL.
oidc_required_scope¶
OIDC required scope URL.
ca_cert_secret¶
The root CA secret name to use.
If not provided it uses the one generated (self-signed).
koji_hub_host¶
Koji hub service name:port. This is used as common name for client certificate.
host¶
Hostname for MBS server. This is used as common name for server certificate.
client_cert_secret¶
The client secret name to use or create.
It will skip its creation (self signed) if one is already present.
It needs to be created and signed using the root CA certificate and private key.
Secret format:
apiVersion: v1
kind: Secret
metadata:
name: myservice
namespace: default
labels:
app: koji-builder
type: kubernetes.io/tls
data:
tls.crt: -|
fillme
tls.key: -|
fillme
tls.pem: -|
This is a combination of tls.key and tls.crt separated by '\n' and encoded in base64
Example: "{{ (lookup('file', 'client_key.pem') + '\n' + lookup('file', 'client_cert.pem')) | b64encode }}"
service_cert_secret¶
The httpd service secret name to use or create.
It will skip its creation (self signed) if one is already present.
It needs to be created and signed using the root CA certificate and private key.
Secret format:
apiVersion: v1
kind: Secret
metadata:
name: myservice
namespace: default
labels:
app: koji-hub
type: kubernetes.io/tls
data:
tls.crt: -|
fillme
tls.key: -|
fillme
mbox¶
A Mbox resource name to retrieve shared data from (pvc volume, shared certs and shared MBS configmap).
MBS Frontend will use the following vars if this property is missing:
- postgres_secret (PSQL secret)
- mbs_configmap (shared configmap name)
- fedora_versions (versions of fedora for module templates)
- messaging_system (messaging system to use)
- topic_prefix (topic prefix for messaging system)
- scm_url (URL for SCM)
- rpms_default_repository (default URL for RPMS repositories)
- rpms_default_cache (default cache URL)
- modules_default_repository (default URL for modules repositories)
- pdc_url (URL for PDC)
- oidc_required_scope (OIDC required scope URL)
- koji_hub_host (Koji host URL)
- cacert_secret (root ca secret)
Usage¶
Upstream file can be found here
Create a file mbmbsfrontend-cr.yaml containing the following content (modify as needed):
apiVersion: apps.fedoraproject.org/v1alpha1
kind: MBMbsFrontend
metadata:
name: mb-mbs-frontend
labels:
app: mb-mbs-frontend
spec:
replicas: 1
image: quay.io/fedora/mbs-frontend:latest
configmap: mbs-frontend-configmap
https_enabled: true
postgres_secret: postgres
mbs_configmap: mbs-configmap
fedora_versions: ['32']
messaging_system: 'fedmsg'
topic_prefix: 'org.fedoraproject.dev'
scm_url: 'git+https://src.fedoraproject.org/modules/'
rpms_default_repository: 'git+https://src.fedoraproject.org/rpms/'
rpms_default_cache: 'https://src.fedoraproject.org/repo/pkgs/'
modules_default_repository: 'git+https://src.fedoraproject.org/modules/'
pdc_url: 'https://pdc.stg.fedoraproject.org/rest_api/v1'
oidc_required_scope: 'https://mbs.fedoraproject.org/oidc/submit-build'
ca_cert_secret: koji-hub-ca-cert
koji_hub_host: 'koji-hub:8443'
host: 'mbs.mbox.dev'
client_cert_secret: mbs-frontend-client-cert
service_cert_secret: mbs-frontend-service-cert
service_name: 'mbs'
ingress_backend: 'nginx'
# mbox: example-mbox #uncomment to retrieve pvc and cert config from a mbox cr
Run the following command to create a mbs-frontend resource:
kubectl apply -f mbmbsfrontend-cr.yaml
You can check its status by running:
kubectl get mbmbsfrontend/example -o yaml