2024-05-16 15:52:51 +02:00
# The {self.title} Container Image
2024-05-07 21:12:20 +02:00
![Redistributable ](https://img.shields.io/badge/Redistributable-Yes-green )
2024-05-16 15:52:51 +02:00
# Purpose
This chart deploys a SUSE Repository Mirroring Tool (RMT) server on Kubernetes.
It is tested on K3s but should work on any Kubernetes distribution.
## Overview
2024-05-17 09:57:50 +02:00
To deploy SUSE RMT on top of Kubernetes, each component of the stack is deployed in a dedicated container via a
Helm Chart.
2024-05-16 15:52:51 +02:00
### Repository Mirroring Tool (SUSE RMT) server
2024-05-17 09:57:50 +02:00
A containerized version of the SUSE RMT application that can pass its configuration via Helm values. Because persistent storage resides on a persistent volume, you need to adjust the volume size according to the number of repositories you need to mirror.
2024-05-16 15:52:51 +02:00
### MariaDB
2024-05-17 09:57:50 +02:00
The database back-end for SUSE RMT.
If needed, RMT creates the database and tables at startup, so no specific
post-installation task is required for it to be usable. Passwords are
self-generated, unless explicitly specified in the values file.
2024-05-16 15:52:51 +02:00
### NGINX
2024-05-17 09:57:50 +02:00
The web server with appropriate configuration for RMT routes. Having a correctly
configured web server right from the start allows you to target your ingress traffic
(for RMT) to directly to the server. You don't have to configure ingress for RMT specific
paths handling, as NGINX is configured to do that.
2024-05-16 15:52:51 +02:00
## Prerequisites
2024-05-17 09:57:50 +02:00
- a running Kubernetes cluster
- helm command configured to interact with the cluster
2024-05-16 15:52:51 +02:00
## Custom mandatory values
2024-05-17 09:57:50 +02:00
Certain values of the chart do not have any defaults:
- SCC mirroring credentials (refer to [more information ](https://documentation.suse.com/sles/15-SP4/html/SLES-all/cha-rmt-mirroring.html#sec-rmt-mirroring-credentials ) for more information)
2024-05-16 15:52:51 +02:00
- list of products to mirror
2024-05-17 09:57:50 +02:00
- list of products not to mirror
- DNS name used to reach the RMT server
- configured [storage ](https://kubernetes.io/docs/concepts/storage/ )
2024-05-16 15:52:51 +02:00
2024-05-17 09:57:50 +02:00
Before deploying the chart, you must fill a custom values file.
2024-05-16 15:52:51 +02:00
2024-05-17 09:57:50 +02:00
The following example enables ingress with TLS.
2024-05-16 15:52:51 +02:00
The create-certs.sh can be used to create self-signed certificates and
add them to Kubernetes as a usable TLS secret.
```
cat < < EOF > myvalues.yaml
---
app:
storage:
class: my-storage-class
scc:
username: UXXXXXXX
password: PASSXXXX
products_enable:
- SLES/15.3/x86_64
- sle-module-python2/15.3/x86_64
products_disable:
- sle-module-legacy/15.3/x86_64
- sle-module-cap-tools/15.3/x86_64
ingress:
enabled: true
hosts:
- host: chart-example.local
paths:
- path: "/"
pathType: Prefix
tls:
- secretName: rmt-cert
hosts:
- chart-example.local
db:
storage:
class: my-storage-class
EOF
```
## Deploying
`helm install rmt ./helm -f myvalues.yaml`
2024-05-07 21:12:20 +02:00
## Licensing
2024-06-04 16:36:34 +02:00
2024-05-07 21:12:20 +02:00
`SPDX-License-Identifier: MIT`
2024-06-04 16:36:34 +02:00
This documentation and the build recipe are licensed as MIT.
2024-05-07 21:12:20 +02:00
The container itself contains various software components under various open source licenses listed in the associated
Software Bill of Materials (SBOM).
This image is based on [openSUSE Tumbleweed ](https://get.opensuse.org/tumbleweed/ ).