Moduł EZDRP-BPMN jest integralną częścią EZD RP, dlatego dotyczące go wymagania zostały określone w głównej dokumentacji systemu. Aby moduł działał poprawnie, konieczne jest ustanowienie połączenia z Silnikiem BPMN.
Silnik Camunda 7 można pobrać ze strony internetowej: Camunda Download Hub. Wersja Community jest bezpłatna i może zostać użyta do połączenia z EZD RP. Firma Camunda udostępniła również gotowe obrazy Docker, które można pobrać z oficjalnej strony internetowej projektu Docker Hub. Obrazy pozwalają na instalację Silnika Camunda 7 w środowisku Kubernetes.
Przy określaniu szczegółowych wymagań systemowych dla Silnika Camunda 7, należy zapoznać się z wytycznymi firmy Camunda dostępnymi na stronie z dokumentacją Camunda. Wymagania dla EZD RP dostępne są na stronie Portalu EZD RP z licencjami i regulaminami.
Instalacja z poziomu powłoki systemowej (shell)
Camunda zawsze powinna być instalowana w tej samej przestrzeni nazw (namespace) co EZD RP. Ponadto nie można zmieniać nazwy wewnętrznego serwisu, na jakim wystawiane jest rozwiązanie (na jakim Camunda komunikuje się z EZD RP), ponieważ ezdrp-api jest już odpowiednio skonfigurowane, aby łączyć się z Camundą..
Instalacja z bazą wewnętrzną H2
sudo su -
snap install helm --classic
helm repo add ezdrp https://git.eadministracja.nask.pl/api/packages/ezdrp/helm
helm repo update
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
helm install camunda ezdrp/camunda --namespace ezd
Taki sposób instalacji Camundy zakłada skorzystanie z wbudowanej wewnętrznej bazy H2 i umieszczenie jej w trwałym wolumenie o pojemności 1 GB założonym bezpośrednio na klastrze. Jest to standardowa i domyślna metoda instalacji, która nie udostępnia webowej konsoli Camundy na zewnątrz klastra, więc nie wymaga korzystania z ingressu. Oczywiście można go skonfigurować samodzielnie.
Przykładowa instalacja z zewnętrzną bazą PostgreSQL
sudo su - snap install helm --classic helm repo add ezdrp https://git.eadministracja.nask.pl/api/packages/ezdrp/helm helm repo update helm install camunda ezdrp/camunda --namespace=ezd \ --set database.driver=org.postgresql.Driver, \ --set database.url=jdbc:postgresql://ezdrp-db-postgresql:5432/camunda, \ --set database.external.enabled=true, \ --set database.external.username=postgres, \ --set database.external.password=postgres, \ --set ingress.enabled=true, \ --set ingress.host=camunda.test.nob.pib.nask.pl, \ --set ingress.secretName=certyfikat
helm install camunda – aplikacja musi koniecznie nazywać się camunda, ponieważ ta nazwa jest wykorzystywana do utworzenia nazwy serwisu umożliwiającego połączenie z Camundą.
database.driver=org.postgresql.Driver – sterownik służący do podłączenia do bazy danych.
jdbc:postgresql://ezdrp-db-postgresql:5432/camunda – wpis zawierający connection string do bazy danych.
ezdrp-dv-postgresql:5432 – adres serwera PostgreSQL wraz z portem; można podać również adres IP serwera, np.: 192.168.1.1:5432.
camunda – nazwa bazy danych, która musi zostać wcześniej utworzona; użytkownik musi mieć odpowiednie uprawnienia do tworzenia tabel w bazie danych (najlepsza będzie rola właściciela – owner).
database.external.username=postgres – login do bazy danych.
database.external.password=postgres – hasło do bazy danych bez znaków specjalnych.
ingress.enabled=true – włączenie automatycznego tworzenia ingressu, który umożliwi dostęp do webowej konsoli Camundy.
ingress.host=camunda.dev.ezdrp.lab.nob.pib.nask.pl – nazwa domeny, pod którą zostanie wystawiony ingress, umożliwiający dostęp do webowej konsoli Camundy; przykładowo można ustawić nazwę domeny jako camunda.ezdrp.miastoxyz.pl; należy pamiętać, że musi to być domena, na której wystawione jest już EZD RP, ponieważ wtedy mamy już do niej certyfikat.
ingress.secretName=certyfikat – parametr ingress.secretName powinien zawierać nazwę sekretu, w którym znajduje się certyfikat dla domeny, na której działa już EZD RP; w naszych instalacjach zwykle ta nazwa to po prostu „certyfikat”.
Przykładowa instalacja z zewnętrzną bazą MS SQL
sudo su - snap install helm --classic helm repo add ezdrp https://git.eadministracja.nask.pl/api/packages/ezdrp/helm helm repo update helm install camunda ezdrp/camunda --namespace=ezd \ --set database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver, \ --set database.url='jdbc:sqlserver://10.10.1.2:1433;encrypt=false;databaseName=camunda;TrustServerCertificate=True;', \ --set database.external.enabled=true, \ --set database.external.username=camunda, \ --set database.external.password=password, \ --set ingress.enabled=true, \ --set ingress.host=camunda.test.nob.pib.nask.pl, \ --set ingress.secretName=certyfikat
W tym przypadku zmienia się nazwa sterownika bazy:
com.microsoft.sqlserver.jdbc.SQLServerDriver
oraz forma connection stringa:
database.url=’jdbc:sqlserver://10.10.1.2:1433;encrypt=false;databaseName=camunda;TrustServerCertificate=True
W haśle nie może być znaków specjalnych
Instalacja z poziomu Ranchera
Z uwagi na to, że przed instalacją Camundy mamy już zainstalowany system EZD RP, nie jest konieczne dodawanie nowego zewnętrznego repozytorium do klastra. W tym przypadku możemy wykorzystać już istniejące repozytorium, które zostało użyte przy instalacji EZD RP.
Przed instalacją trzeba ustawić domyślny storage sekcji Storage klikamy zakładkę StorageClasses i wybieramy local-path(dla instalacji z bazą danych H2) dla instalacji z bazami Postgres oraz MS SQL wybieramy StorageClasses o nazwie nfs-client w tym celu klikamy ikonę menu podręcznego (trzy kropki). Następnie spośród dostępnych opcji wybieramy Set as Default.


Aby wyświetlić listę dostępnych aplikacji, które możemy zainstalować na klastrze, należy wybrać opcję Apps, a następnie Charts. Zostanie wyświetlony wykaz dostępnych aplikacji, który możemy przeglądać i wybrać interesujące nas aplikacje do instalacji na klastrze. Warto zawęzić wynik wyszukiwania przy użyciu filtra. Wskazujemy tylko nasze publiczne repozytorium. Z listy dostępnych aplikacji wybieramy Camundę.

Wyświetli się nowy widok z informacjami dotyczącymi wybranej aplikacji. W prawym górnym rogu klikamy przycisk Install.

Przy wyborze przestrzeni nazw do instalacji Camundy należy wskazać w odpowiednim polu ten sam namespace, w którym znajduje się już EZD RP. Następnie podajemy nazwę aplikacji. W polu Name podajemy nazwę camunda. Wprowadzone zmiany zatwierdzamy przyciskiem Next.

Konfiguracja instalacji podzielona jest na dwie zakładki:
- Database configuration
- Domain for camunda
W celu zainstalowania Camundy z jej wbudowaną bazą danych H2 wystarczy nie wypełniać Database configuration, czyli nie zaznaczać pola wyboru Use external database, a w polu Set domain for camunda wpisujemy nazwę domeny i nazwę secretu z certyfikatem który już jest w systemie (ten sam co dla EZD RP). Klikamy przycisk Install.
Z kolei instalacja z zewnętrzną bazą danych wymaga przejścia do zakładki Database configuration i zaznaczenia pola wyboru przy opcji Use external database. Podajemy wymagane informacje, w tym m.in. nazwę użytkownika i hasło – zgodnie z instrukcją instalacji, która została opisana wyżej. Należy wybrać odpowiedni sterownik do zewnętrznej bazy danych: postgres lub mssql. I pamiętać że baza musi zostać wcześniej utworzona, użytkownik musi mieć odpowiednie uprawnienia do tworzenia tabel w bazie danych (najlepsza będzie rola właściciela – owner).
Przykład konfiguracji Postgres
jdbc:postgresql://ezdrp-db-postgresql:5432/camunda

Przykład konfiguracji MS SQL
jdbc:sqlserver://10.10.1.2:1433;encrypt=false;databaseName=camunda;TrustServerCertificate=True;

Jeśli potrzebujemy wystawić webową konsolę Camundy poprzez ingress, należy przejść do zakładki Domain for camunda i zaznaczyć pole wyboru przy opcji Set domain for camunda. Podajemy potrzebne dane, czyli nazwę domeny oraz nazwę sekretu z certyfikatem, który już jest w systemie (ten sam co dla EZD RP). Klikamy przycisk Install, aby zakończyć proces instalacji.

W celu włączenie procesowości należy przejść do widoku Apps > Installed apps w Rancherze, wybieramy naszą aplikację i w menu kontekstowym klikamy opcję Edit/Upgrade.

Wybieramy zakładkę Edit YAML.

Odszukujemy flagę Ezdrp_Feature_Bpmn i zmieniamy na Enabled zatwierdzamy przyciskiem Upgrade.
W dalszej kolejności, należy dodać ingress z bocznego menu wybieramy Service Discovery > Ingresses przyciskami Create.
Wypełniamy pola Name, Request Host, Prefix, Target Service, Port.

Wybieramy certyfikat i dodajemy adres domeny.

W Ingress Class wybieramy nginx.

Po wykonaniu powyższych działań należy dodać wpisy DNS:
camunda.twojadomena.pl
razor.twojadomena.pl
api-bpmn-validators.twojadomena.pl
Dodatkowe informacje w dokumentacji producenta Silnika Camunda 7
- Lista obsługiwanych baz danych: Database Configuration.
- Zalecenia przydatne w przypadku podłączenia silnika do bazy danych MS SQL:
Microsoft SQL Server and Azure SQL Database Configuration. - Dostrajanie wydajności: Performance tuning Camunda 7.
- Dobre praktyki: Deciding about your Camunda 7 stack oraz Operating Camunda 7.