This repo is based on the Docker WissKI and contains configuration files needed for creating deployment pipeline based on GitHub actions that builds WissKI Drupal Docker image and deploys it together with official GraphDB and Solr Docker images as WissKI stack to ACDH-CH Kubernetes environment.
Due to specific ACDH-CH environment that is using centralized MariaDB, dedicated MariaDB Docker image is not used with this setup.
Environment variables needed for the WissKI stack:
Name | Required | Type | Level | Description |
---|---|---|---|---|
KUBE_CONFIG | ✅ | Secret | Org | base64 encoded K8s config file. Usually set at the Org level and shared by all (public) repositories. |
C2_KUBE_CONFIG | ✅ | Secret | Org | If you deploy using the workflow for the second cluster the C2_ variant is used. |
KUBE_NAMESPACE | ✅ | Variable | Repo/Env | The K8s namespace the deployment should be installed to. |
DRUPAL_PUBLIC_URL | ✅ | Variable | Env | The URI that should be configured for access to the service. |
DRUPAL_SERVICE_ID | ✅ | Variable | Env | A K8s label ID is attached to the workload/deployment with this value (usually a number) |
GRAPHDB_PUBLIC_URL | ✅ | Variable | Env | The URI that should be configured for access to the service |
GRAPHDB_SERVICE_ID | ✅ | Variable | Env | A K8s label ID is attached to the workload/deployment with this value (usually a number) |
SOLR_PUBLIC_URL | ✅ | Variable | Env | The URI that should be configured for access to the service |
SOLR_SERVICE_ID | ✅ | Variable | Env | A K8s label ID is attached to the workload/deployment with this value (usually a number) |
K8S_SECRET_MARIADB_HOST | ✅ | Secret | Repo/Env | Hostname of an external MariaDB service. |
K8S_SECRET_MARIADB_PORT | ✅ | Secret | Repo/Env | Port of an external MariaDB service. |
K8S_SECRET_MARIADB_USER | ✅ | Secret | Env | Username for the MariaDB database. |
K8S_SECRET_MARIADB_PASSWORD | ✅ | Secret | Env | Password for the MariaDB database. |
K8S_SECRET_MARIADB_DATABASE | ✅ | Secret | Env | Name of the MariaDB database to use. |
K8S_SECRET_DRUPAL_USER | ✅ | Secret | Env | Initial name of administrator user for Drupal. |
K8S_SECRET_DRUPAL_VERSION | ✅ | Secret | Env | Version of Drupal to use. |
K8S_SECRET_MARIADB_DRIVER | ✅ | Secret | Env | Driver type of Drupal set in the configuration (for MariaDB it is mysql ). |
K8S_SECRET_SITE_NAME | ✅ | Secret | Env | Default name of the site in Druapl. |
auth | ✅ | Secret | Env | Should be set over the Rancher. Credentials for protecting Solr with Nginx basic auth. Needed if Solr will use public URL. |
- Create Kubernetes namespace.
- Create MariaDB database.
- Create domains for Drupal, Solr and GraphDB and point them to the cluster.
- Create new GitHub environment for the service that should have the same name as new GitHub branch that will be used for the new WissKI instance.
- Add GitHub environment variables and secrets described in the table above.
- Create a new branch in this repo that should have tha same name as the Kubernetes namespace created in the first step.
- Create auth Secret for the Solr basic authentication if Solr needs public domain.
- The newly created GitHub branch will trigger the Github pipeline that will deploy new WissKI stack to the Kubernetes Cluster.
- Open Drupal and GraphDB domains and install Drupal and the Graphdb.