diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..dd40d9c --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,82 @@ +# AGENTS.md + +This file provides guidance to AI agents when working with code in this repository. +## Project Overview + +`biosdk-services` is a Spring Boot REST service that wraps MOSIP's `IBioApiV2` biometric SDK interface and exposes it over HTTP. It is used by the MOSIP registration processor to perform biometric operations (match, segment, extract, quality check, format convert). The service loads a third-party SDK JAR at startup via `-Dloader.path` and `-Dbiosdk_bioapi_impl`, so the actual biometric logic lives outside this repo. + +## Build & Run + +All Maven commands must be run from `biosdk-services/` (the inner module directory), not the repo root. + +```bash +# Build (skip GPG signing for local dev) +cd biosdk-services +mvn clean install -Dgpg.skip=true + +# Run tests only +mvn test + +# Run a single test class +mvn test -Dtest=MainControllerTest + +# Run with mock SDK (after build) +java -Dloader.path=mock-sdk-1.4.0-SNAPSHOT-jar-with-dependencies.jar \ + -Dbiosdk_bioapi_impl=io.mosip.mock.sdk.impl.SampleSDKV2 \ + --add-modules=ALL-SYSTEM \ + --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED \ + --add-opens java.base/java.lang.reflect=ALL-UNNAMED \ + --add-opens java.base/java.lang.stream=ALL-UNNAMED \ + --add-opens java.base/java.time=ALL-UNNAMED \ + --add-opens java.base/java.time.LocalDate=ALL-UNNAMED \ + --add-opens java.base/java.time.LocalDateTime=ALL-UNNAMED \ + --add-opens java.base/java.time.LocalDateTime.date=ALL-UNNAMED \ + -jar target/biosdk-services-1.4.0-SNAPSHOT.jar +``` + +The `run_local.bat` script captures the full run command for Windows. Health check: `http://localhost:9099/biosdk-service/`. Swagger UI: `http://localhost:9099/biosdk-service/swagger-ui.html`. + +## Key Configuration + +- **`biosdk_bioapi_impl`** — fully qualified class name of the `IBioApiV2` implementation to load. Required at startup; must be on the `-Dloader.path`. +- **`spring.cloud.config.enabled`** — set to `false` (via `application-local.properties`) for local development without a config server. +- Config server integration: `bootstrap.properties` points at `http://localhost:51000/config`; remote config files live in [mosip-config](https://github.com/mosip/mosip-config/tree/master) (`application-default.properties`, `biosdk-service-default.properties`). +- Java 21 with `--enable-preview` is required. The compiler and surefire plugin both pass `--enable-preview`. + +## Architecture + +``` +MainController ← single REST controller, all /biosdk-service/* endpoints + │ + └─ BioSdkServiceFactory ← selects BioSdkServiceProvider by request.version + │ + └─ BioSdkServiceProvider (SPI interface) + │ + └─ BioSdkServiceProviderImpl_V_1_0 ← current only implementation (spec "1.0") + │ + └─ IBioApiV2 ← loaded dynamically at startup by BioSdkLibConfig +``` + +**Request flow**: Every endpoint receives a `RequestDto` (wrapper with `version` + base64-encoded `request` payload). `MainController` asks the factory for the matching `BioSdkServiceProvider` by version string, then delegates. `BioSdkServiceProviderImpl_V_1_0` deserializes the inner request DTO, calls `IBioApiV2`, and returns the result wrapped in `ResponseDto`. + +**SDK loading** (`BioSdkLibConfig`): At startup, `@PostConstruct` validates the class name from `biosdk_bioapi_impl`. The `IBioApiV2` bean is created lazily via reflection using that class name; it must exist on the Spring Boot loader path (`-Dloader.path`). + +**Versioning**: The factory pattern in `BioSdkServiceFactory` is designed to support multiple spec versions. Adding a new version means implementing `BioSdkServiceProvider`, annotating it `@Component`, and setting `getSpecVersion()` accordingly — Spring will auto-inject it into the factory's list. + +## API Endpoints + +All endpoints are under `/biosdk-service/` (context path). All POST endpoints consume and produce `application/json`. The request body is always `RequestDto` with a `version` field and a base64-encoded `request` field. + +| Path | Method | Operation | +|---|---|---| +| `/` | GET | Health check | +| `/init` | POST | SDK initialization | +| `/match` | POST | Biometric 1:N matching | +| `/check-quality` | POST | Quality assessment | +| `/extract-template` | POST | Feature extraction | +| `/segment` | POST | Biometric segmentation | +| `/convert-format` | POST | ISO to JPEG/PNG conversion | + +## Sonar / Code Coverage + +Sonar exclusions are configured for `dto/`, `config/`, `constants/`, and `Status/` packages. Run with the `sonar` Maven profile: `mvn verify -Psonar`. \ No newline at end of file diff --git a/THIRD-PARTY-NOTICES b/THIRD-PARTY-NOTICES index c3afecc..0317892 100644 --- a/THIRD-PARTY-NOTICES +++ b/THIRD-PARTY-NOTICES @@ -62,7 +62,7 @@ Homepage: https://github.com/eclipse-ee4j/servlet-api ================================================================================ Package: MOSIP Kernel Core Name: io.mosip.kernel:kernel-core -Version: 1.3.0-SNAPSHOT +Version: 1.4.0-SNAPSHOT License: MPL-2.0 (Inferred from MOSIP repo) Homepage: https://mosip.io ================================================================================ @@ -70,7 +70,7 @@ Homepage: https://mosip.io ================================================================================ Package: MOSIP Kernel BOM Name: io.mosip.kernel:kernel-bom -Version: 1.3.0-SNAPSHOT +Version: 1.4.0-SNAPSHOT License: MPL-2.0 (Inferred) Homepage: https://mosip.io ================================================================================ @@ -78,7 +78,7 @@ Homepage: https://mosip.io ================================================================================ Package: MOSIP Kernel Logger (Logback) Name: io.mosip.kernel:kernel-logger-logback -Version: 1.3.0-SNAPSHOT +Version: 1.4.0-SNAPSHOT License: MPL-2.0 (Inferred) Homepage: https://mosip.io ================================================================================ @@ -86,7 +86,7 @@ Homepage: https://mosip.io ================================================================================ Package: MOSIP Biometrics API Name: io.mosip.kernel:kernel-biometrics-api -Version: 1.3.0-SNAPSHOT +Version: 1.4.0-SNAPSHOT License: MPL-2.0 (Inferred) Homepage: https://mosip.io ================================================================================ diff --git a/THIRD-PARTY-NOTICES.txt b/THIRD-PARTY-NOTICES.txt new file mode 100644 index 0000000..0317892 --- /dev/null +++ b/THIRD-PARTY-NOTICES.txt @@ -0,0 +1,217 @@ +THIRD-PARTY-NOTICES + +This project includes third-party packages that are distributed under various open-source licenses. Below is a list of packages and their associated licenses. + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: tag.yml +Version: master +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: chart-lint-publish.yml +Version: master +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: maven-build.yml +Version: master-java21 +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: maven-publish-to-nexus.yml +Version: master-java21 +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: maven-sonar-analysis.yml +Version: master-java21 +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: docker-build.yml +Version: master-java21 +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: mosip/kattu – GitHub Actions Workflow: release-changes.yml +Version: master +License: CC0-1.0 (Creative Commons Zero v1.0 Universal) +Homepage: https://github.com/mosip/kattu +================================================================================ + +================================================================================ +Package: Java Servlet API +Name: javax.servlet:javax.servlet-api +Version: Not specified +License: CDDL 1.1 +Homepage: https://github.com/eclipse-ee4j/servlet-api +================================================================================ + +================================================================================ +Package: MOSIP Kernel Core +Name: io.mosip.kernel:kernel-core +Version: 1.4.0-SNAPSHOT +License: MPL-2.0 (Inferred from MOSIP repo) +Homepage: https://mosip.io +================================================================================ + +================================================================================ +Package: MOSIP Kernel BOM +Name: io.mosip.kernel:kernel-bom +Version: 1.4.0-SNAPSHOT +License: MPL-2.0 (Inferred) +Homepage: https://mosip.io +================================================================================ + +================================================================================ +Package: MOSIP Kernel Logger (Logback) +Name: io.mosip.kernel:kernel-logger-logback +Version: 1.4.0-SNAPSHOT +License: MPL-2.0 (Inferred) +Homepage: https://mosip.io +================================================================================ + +================================================================================ +Package: MOSIP Biometrics API +Name: io.mosip.kernel:kernel-biometrics-api +Version: 1.4.0-SNAPSHOT +License: MPL-2.0 (Inferred) +Homepage: https://mosip.io +================================================================================ + +================================================================================ +Package: Spring Boot Starter Actuator +Name: org.springframework.boot:spring-boot-starter-actuator +Version: Not specified +License: Apache License 2.0 (Inferred) +Homepage: https://spring.io/projects/spring-boot +================================================================================ + +================================================================================ +Package: Spring Boot Starter Web +Name: org.springframework.boot:spring-boot-starter-web +Version: Not specified +License: Apache License 2.0 +Homepage: https://spring.io/projects/spring-boot +================================================================================ + +================================================================================ +Package: Spring Boot Maven Plugin +Name: org.springframework.boot:spring-boot-maven-plugin +Version: 3.2.3 +License: Apache License 2.0 +Homepage: https://spring.io/projects/spring-boot +================================================================================ + +================================================================================ +Package: Spring Data Commons +Name: org.springframework.data:spring-data-commons +Version: Not specified +License: Apache License 2.0 (Inferred) +Homepage: https://spring.io/projects/spring-data +================================================================================ + +================================================================================ +Package: SpringDoc OpenAPI WebMVC UI +Name: org.springdoc:springdoc-openapi-starter-webmvc-ui +Version: 2.5.0 +License: Apache License 2.0 +Homepage: https://springdoc.org +================================================================================ + +================================================================================ +Package: Jackson Dataformat XML +Name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml +Version: Not specified +License: Apache License 2.0 (Inferred) +Homepage: https://github.com/FasterXML/jackson-dataformat-xml +================================================================================ + +================================================================================ +Package: Jakarta Transaction API +Name: jakarta.transaction:jakarta.transaction-api +Version: Not specified +License: EPL 2.0 +Homepage: https://github.com/eclipse-ee4j/jta-api +================================================================================ + +================================================================================ +Package: JSON-Simple +Name: com.googlecode.json-simple:json-simple +Version: Not specified +License: Apache License 2.0 (Inferred) +Homepage: https://github.com/fangyidong/json-simple +================================================================================ + +================================================================================ +Package: Gson +Name: com.google.code.gson:gson +Version: Not specified +License: Apache License 2.0 +Homepage: https://github.com/google/gson +================================================================================ + +================================================================================ +Package: Lombok +Name: org.projectlombok:lombok +Version: Not specified +License: MIT License +Homepage: https://projectlombok.org +================================================================================ + +================================================================================ +Package: Apache Maven Compiler Plugin +Version: 3.11.0 +License: Apache License 2.0 +Homepage: https://maven.apache.org/plugins +================================================================================ + +================================================================================ +Package: Apache Maven Surefire Plugin +Version: 3.1.2 +License: Apache License 2.0 +Homepage: https://maven.apache.org/plugins +================================================================================ + +================================================================================ +Package: Apache Maven Source Plugin +Version: 3.3.1 +License: Apache License 2.0 +Homepage: https://maven.apache.org/plugins +================================================================================ + +================================================================================ +Package: Apache Maven Javadoc Plugin +Version: 3.2.0 +License: Apache License 2.0 +Homepage: https://maven.apache.org/plugins +================================================================================ + +================================================================================ +Package: Apache Maven GPG Plugin +Version: 3.2.3 +License: Apache License 2.0 +Homepage: https://maven.apache.org/plugins +================================================================================ + +================================================================================ +Package: JUnit Vintage Engine +Name: org.junit.vintage:junit-vintage-engine +Version: Not specified +License: Eclipse Public License 2.0 +Homepage: https://junit.org +================================================================================ + +Full license texts and additional details for each of the above packages are available in the license/ directory of this repository. Please refer to those files or the original source of each package for complete legal terms and conditions. diff --git a/biosdk-services/Dockerfile b/biosdk-services/Dockerfile index b8de09d..3b2236f 100644 --- a/biosdk-services/Dockerfile +++ b/biosdk-services/Dockerfile @@ -1,4 +1,4 @@ -FROM mosipdev/openjdk-21-jre:latest +FROM mosipid/openjdk-21-jre:21.0.4 # label to be assigned along with Docker build [Mandatory] ARG SOURCE @@ -93,7 +93,8 @@ ADD ./target/biosdk-services-*.jar biosdk-services.jar RUN chmod +x /home/${container_user}/configure_biosdk.sh \ && chmod a-w /home/${container_user}/configure_biosdk.sh \ && chmod 775 biosdk-services.jar \ - && chown -R ${container_user}:${container_user} /home/${container_user} + && chown -R ${container_user}:${container_user} /home/${container_user} \ + && chmod +x configure_biosdk.sh # select container user for all tasks USER ${container_user_uid}:${container_user_gid} @@ -102,5 +103,4 @@ EXPOSE 9099 ENTRYPOINT ["./configure_biosdk.sh"] -CMD echo $biosdk_bioapi_impl ; \ -java -XX:-UseG1GC -XX:-UseParallelGC -XX:-UseShenandoahGC -XX:+ExplicitGCInvokesConcurrent -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:+UseStringDeduplication -XX:+HeapDumpOnOutOfMemoryError -XX:+UseCompressedOops -XX:MaxGCPauseMillis=200 -Dfile.encoding=UTF-8 -Dloader.path="${loader_path_env}" -Dserver.servlet.context-path="${server_servlet_context_path_env}" -Dspring.cloud.config.label="${spring_config_label_env}" -Dspring.profiles.active="${active_profile_env}" -Dspring.cloud.config.uri="${spring_config_url_env}" -Dspring.application.name="${spring_application_name_env}" -Dspring.cloud.config.name="${spring_cloud_config_name_env}" --add-modules=ALL-SYSTEM --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang.stream=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.time.LocalDate=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime.date=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect.DirectMethodHandleAccessor=ALL-UNNAMED -jar biosdk-services.jar +CMD java -Dloader.path="${loader_path_env}" -Dserver.servlet.context-path="${server_servlet_context_path_env}" -Dspring.cloud.config.label="${spring_config_label_env}" -Dspring.profiles.active="${active_profile_env}" -Dspring.cloud.config.uri="${spring_config_url_env}" -Dspring.application.name="${spring_application_name_env}" -Dspring.cloud.config.name="${spring_cloud_config_name_env}" --add-modules=ALL-SYSTEM --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang.stream=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.time.LocalDate=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime.date=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect.DirectMethodHandleAccessor=ALL-UNNAMED -jar biosdk-services.jar diff --git a/biosdk-services/pom.xml b/biosdk-services/pom.xml index ecd616f..f7c7765 100644 --- a/biosdk-services/pom.xml +++ b/biosdk-services/pom.xml @@ -6,7 +6,7 @@ biosdk-services io.mosip.biosdk - 1.2.1-SNAPSHOT + 1.4.0-SNAPSHOT biosdk-services Sample implementation of biometrics SDK services https://github.com/mosip/biosdk-services @@ -41,10 +41,10 @@ 2.5.0 - 1.2.1-SNAPSHOT - 1.2.1-SNAPSHOT - 1.2.1-SNAPSHOT - 1.2.1-SNAPSHOT + 1.4.0-SNAPSHOT + 1.4.0-SNAPSHOT + 1.4.0-SNAPSHOT + 1.4.0-SNAPSHOT **/dto/**, **/config/**, **/constants/**, **/Status/** @@ -140,7 +140,6 @@ https://central.sonatype.com/api/v1/publisher - @@ -286,7 +285,6 @@ --> - maven-deploy-plugin diff --git a/biosdk-services/run.bat b/biosdk-services/run.bat index a2f49b3..e378c30 100644 --- a/biosdk-services/run.bat +++ b/biosdk-services/run.bat @@ -1 +1 @@ -java -Dloader.path=mock-sdk-1.3.0-SNAPSHOT-jar-with-dependencies.jar -Dbiosdk_bioapi_impl=io.mosip.mock.sdk.impl.SampleSDKV2 -jar target/biosdk-services-1.3.0-SNAPSHOT.jar \ No newline at end of file +java -Dloader.path=mock-sdk-1.4.0-SNAPSHOT-jar-with-dependencies.jar -Dbiosdk_bioapi_impl=io.mosip.mock.sdk.impl.SampleSDKV2 -jar target/biosdk-services-1.4.0-SNAPSHOT.jar \ No newline at end of file diff --git a/biosdk-services/run_local.bat b/biosdk-services/run_local.bat index 6ec7c7a..b06101c 100644 --- a/biosdk-services/run_local.bat +++ b/biosdk-services/run_local.bat @@ -1 +1 @@ -java -Dloader.path=mock-sdk-1.3.0-SNAPSHOT-jar-with-dependencies.jar -Dbiosdk_bioapi_impl=io.mosip.mock.sdk.impl.SampleSDKV2 --add-modules=ALL-SYSTEM --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED --add-opens java.xml/jdk.internal.reflect=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang.stream=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.time.LocalDate=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime.date=ALL-UNNAMED -jar target/biosdk-services-1.3.0-SNAPSHOT.jar +java -Dloader.path=mock-sdk-1.4.0-SNAPSHOT-jar-with-dependencies.jar -Dbiosdk_bioapi_impl=io.mosip.mock.sdk.impl.SampleSDKV2 --add-modules=ALL-SYSTEM --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED --add-opens java.xml/jdk.internal.reflect=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang.stream=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.time.LocalDate=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime=ALL-UNNAMED --add-opens java.base/java.time.LocalDateTime.date=ALL-UNNAMED -jar target/biosdk-services-1.4.0-SNAPSHOT.jar diff --git a/helm/biosdk-service/values.yaml b/helm/biosdk-service/values.yaml index cc12338..3bb2e83 100644 --- a/helm/biosdk-service/values.yaml +++ b/helm/biosdk-service/values.yaml @@ -12,23 +12,18 @@ ## commonLabels: app.kubernetes.io/component: mosip - ## Add annotations to all the deployed resources ## commonAnnotations: {} - ## Kubernetes Cluster Domain ## clusterDomain: cluster.local - ## Extra objects to deploy (value evaluated as a template) ## extraDeploy: [] - ## Number of nodes ## replicaCount: 1 - service: type: ClusterIP port: 80 @@ -49,7 +44,6 @@ service: ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## externalTrafficPolicy: Cluster - image: registry: docker.io repository: mosipqa/biosdk-server @@ -65,10 +59,8 @@ image: ## # pullSecrets: # - myRegistryKeySecretName - ## Port on which this particular spring service module is running. springServicePort: 9099 - ## Configure extra options for liveness and readiness probes ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes ## @@ -82,7 +74,6 @@ startupProbe: timeoutSeconds: 5 failureThreshold: 30 successThreshold: 1 - livenessProbe: enabled: true httpGet: @@ -93,7 +84,6 @@ livenessProbe: timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1 - readinessProbe: enabled: true httpGet: @@ -104,7 +94,6 @@ readinessProbe: timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1 - ## # existingConfigmap: @@ -112,12 +101,10 @@ readinessProbe: ## command: [] args: [] - ## Deployment pod host aliases ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ ## hostAliases: [] - ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ ## resources: @@ -126,42 +113,37 @@ resources: # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. limits: - cpu: 1500m - memory: 4000Mi + cpu: 1600m + memory: 5000Mi requests: - cpu: 300m - memory: 1000Mi - + cpu: 800m + memory: 2500Mi additionalResources: ## Specify any JAVA_OPTS string here. These typically will be specified in conjunction with above resources ## Example: java_opts: "-Xms500M -Xmx500M" - javaOpts: "-Xms3250M -Xmx3250M" - + javaOpts: >- + -XX:+UseZGC -XX:+ZGenerational -XX:+ZProactive -Xms1875m -Xmx4050m -XX:SoftMaxHeapSize=3550m -XX:ActiveProcessorCount=2 -XX:+UseContainerSupport -XX:MaxMetaspaceSize=300m -XX:MetaspaceSize=160m -XX:ReservedCodeCacheSize=192m -XX:InitialCodeCacheSize=64m -XX:+UseCodeCacheFlushing -XX:+ExitOnOutOfMemoryError ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container ## Clamav container already runs as 'mosip' user, so we may not need to enable this containerSecurityContext: enabled: false runAsUser: mosip runAsNonRoot: true - ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## podSecurityContext: enabled: false fsGroup: 1001 - ## Pod affinity preset ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity ## Allowed values: soft, hard ## podAffinityPreset: "" - ## Pod anti-affinity preset ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity ## Allowed values: soft, hard ## podAntiAffinityPreset: soft - ## Node affinity preset ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity ## Allowed values: soft, hard @@ -183,32 +165,26 @@ nodeAffinityPreset: ## - e2e-az2 ## values: [] - ## Affinity for pod assignment. Evaluated as a template. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity ## affinity: {} - ## Node labels for pod assignment. Evaluated as a template. ## ref: https://kubernetes.io/docs/user-guide/node-selection/ ## nodeSelector: {} - ## Tolerations for pod assignment. Evaluated as a template. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] - ## Pod extra labels ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ ## podLabels: {} - ## Annotations for server pods. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## podAnnotations: {} - ## pods' priority. ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ ## @@ -223,18 +199,14 @@ lifecycleHooks: - sh - -c - sleep 30 - ## Termination grace perios : the maximum amount of time (in seconds) Kubernetes will wait for a container to gracefully shut down terminationGracePeriodSeconds: 60 - ## Custom Liveness probes for ## customLivenessProbe: {} - ## Custom Rediness probes ## customReadinessProbe: {} - ## Update strategy - only really applicable for deployments with RWO PVs attached ## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the ## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will @@ -242,7 +214,6 @@ customReadinessProbe: {} ## updateStrategy: type: RollingUpdate - ## Additional environment variables to set ## Example: ## extraEnvVars: @@ -256,26 +227,21 @@ extraEnvVars: value: biosdk-service - name: spring_cloud_config_name_env value: biosdk-service - ## ConfigMap with extra environment variables that used ## extraEnvVarsCM: - global - config-server-share - artifactory-share - ## Secret with extra environment variables ## extraEnvVarsSecret: [] - ## Extra volumes to add to the deployment ## extraVolumes: [] - ## Extra volume mounts to add to the container ## extraVolumeMounts: [] - ## Add init containers to the pods. ## Example: ## initContainers: @@ -287,7 +253,6 @@ extraVolumeMounts: [] ## containerPort: 1234 ## initContainers: {} - ## Add sidecars to the pods. ## Example: ## sidecars: @@ -299,7 +264,6 @@ initContainers: {} ## containerPort: 1234 ## sidecars: {} - persistence: enabled: false ## If defined, storageClassName: @@ -321,7 +285,6 @@ persistence: existingClaim: # Dir where config and keys are written inside container mountDir: - ## Init containers parameters: ## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section. ## @@ -355,12 +318,10 @@ volumePermissions: ## cpu: 100m ## memory: 128Mi ## - ## Specifies whether RBAC resources should be created ## rbac: create: true - ## Specifies whether a ServiceAccount should be created ## serviceAccount: @@ -369,7 +330,6 @@ serviceAccount: ## If not set and create is true, a name is generated using the fullname template ## name: - ## Prometheus Metrics ## ## TODO: Enable metrics after prometheus url is available @@ -380,9 +340,7 @@ metrics: ## podAnnotations: prometheus.io/scrape: "true" - endpointPath: /v1/biosdk-service/actuator/prometheus - ## Prometheus Service Monitor ## ref: https://github.com/coreos/prometheus-operator ## @@ -409,7 +367,6 @@ metrics: ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec ## additionalLabels: {} - ## Custom PrometheusRule to be defined ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions @@ -427,13 +384,11 @@ metrics: # labels: # severity: error rules: [] - ## Only internal access istio: enabled: true gateway: istio-system/internal prefix: /biosdk-service - ## Biosdk server expects an SDK library (zip file). Default is a mock SDK available in the artifactory. ## You may specify any url as long as it can be accessed from within the cluster ## bioapi_impl: Classpath of SDK implementation within the SDK lib.